|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
20-07-2013, 11:57 PM | #61 |
Nhập môn đệ tử
Tham gia ngày: Jul 2013
Bài gửi: 6
: |
e dùng điện trở nội trong pic 16f887,e dùng lệnh port_B_pullups(1),nhưng nó cứ báo lối undefined indentifier--port_B_pullups, mong các a jup đỡ
|
21-08-2013, 02:54 PM | #62 |
Nhập môn đệ tử
Tham gia ngày: Feb 2012
Bài gửi: 1
: |
nạp code cho pic16f72 không chạy
Mình viết một chương trình đơn giản nạp vào pic16f72
#include <16F72.h> #device adc=8 #FUSES HS,NOWDT,PUT,NOPROTECT,NOBROWNOUT #use delay(clock=20000000) void main() { set_tris_b(0); output_b(0xff); // TODO: USER CODE!! while(1) { output_b(0); delay_ms(1000); output_b(0xff); delay_ms(1000); } } mình dùng chương trình nạp burn-e và có detect được pic khi nạp file hex thì có mã hexa như hình vẽ nhưng sau khi nạp program của pic lại về 3FFF hết Bạn nào bị lỗi này thì bảo mình với |
23-08-2013, 05:36 PM | #63 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2012
Bài gửi: 54
: |
Trích:
chúc bạn thành công! |
|
13-10-2013, 11:25 PM | #64 |
Đệ tử 1 túi
Tham gia ngày: Apr 2011
Bài gửi: 11
: |
mọi người xem em cái đoạn code này có sử dụng ngắt timer0 biên dịch ko bị lỗi mà sang mô phỏng chạy ko được, ct em viết hiển thị 2 số 38 lên 2 led 7 đoạn
#INCLUDE P16F877A.INC;/*CHI DAN FILE DINH NGHIA CHIP*// __CONFIG _XT_OSC&_WDT_OFF&_LVP_OFF;//*KHAI BAO CAU HINH*// CBLOCK 0X20;KHAI BAO BIEN TAI DAY*// VONG1,VONG2,VONG3,HCTEMP,HDV,STATUS_TEMP,W_TEMP,DE M ENDC;//*KET THUC DAT BIEN*// ORG 0X000;//*CHI THI BIEN DICH*// ;//NHAY TOI CHUONG TRINH CHINH*// GOTO MAIN ORG 0X004 GOTO NGAT ORG 0X005;//*CT CHINH BAT DAU TAI DAY*// MAIN BSF STATUS,5;//*CHUYEN TU BANK0 LEN BANK1*// CLRF TRISD;//*PORTD LA DAU RA*// CLRF TRISC MOVLW B'00000100' MOVWF OPTION_REG CLRF DEM BCF INTCON,TMR0IF BSF INTCON,TMR0IE BSF INTCON,GIE BCF STATUS,5; //*CHUYEN XUONG BANK0*// MOVLW D'100' MOVWF TMR0 ;*****************CHUONG TRINH NGAT*************************** NGAT MOVWF W_TEMP SWAPF STATUS,W MOVWF STATUS_TEMP BCF INTCON,TMR0IF BTFSC DEM,0 GOTO SAI GOTO DUNG DUNG BCF PORTA,4 BSF PORTA,5 MOVLW D'8' ;// HANG DON VI =8// CALL BANGMA MOVWF PORTD MOVLW D'1' MOVWF DEM GOTO THOAT SAI BSF PORTA,4 BCF PORTA,5 MOVLW D'3'; // HANG CHUC =3// CALL BANGMA MOVWF PORTD MOVLW D'0' MOVWF DEM THOAT MOVLW D'100' MOVWF TMR0 SWAPF STATUS_TEMP,W MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W RETFIE ;******************CHUONG TRINH BANG MA************************* BANGMA ADDWF PCL,F RETLW 0XC0 RETLW 0XF9 RETLW 0XA4 RETLW 0XB0 RETLW 0X99 RETLW 0X92 RETLW 0X82 RETLW 0XF8 RETLW 0X80 RETLW 0X90 END |
18-10-2013, 12:32 PM | #65 |
Nhập môn đệ tử
Tham gia ngày: Oct 2013
Bài gửi: 2
: |
Cảm ơn bạn nhiều nhé!!!!!!!!1
__________________
hạt điều rang muối |
21-10-2013, 06:00 PM | #66 |
Nhập môn đệ tử
Tham gia ngày: Aug 2010
Bài gửi: 1
: |
Mình mới học pic và làm cái code nay nhưng khôg chạy xin chỉ bảo mih với? và tại sao khi set_tris_x() một port thì các chân ra port đó lại có các giá trị 0,1 khác nhau.tks!
#include<16F877A.h> #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=10000000) #use fast_io(b) void nhay_led(){ output_b(0xff); delay_ms(200); output_b(0x00); delay_ms(200); } void main(){ set_tris_c(1); set_tris_b(0); if(pin_c1==1) while(1){ nhay_led(); } |
26-10-2013, 12:43 PM | #67 |
Nhập môn đệ tử
Tham gia ngày: Oct 2013
Bài gửi: 1
: |
đội ơn chủ thớt nhiều !!!
__________________
cach lam hat dieu rang muoi |
05-11-2013, 09:02 PM | #68 |
Nhập môn đệ tử
Tham gia ngày: Oct 2013
Bài gửi: 1
: |
mình mới viết lập trình PIC,có 1 lỗi này mong mọi nguòi giúp đỡ
MPLINK 4.40, Linker Device Database Version 1.3 Copyright (c) 1998-2011 Microchip Technology Inc. Error - Device not specified. Use /p option to specify a device. Errors : 1 |
18-02-2014, 10:59 PM | #69 |
Nhập môn đệ tử
Tham gia ngày: Nov 2013
Bài gửi: 2
: |
lập trình cho pic
mình debug mà nó xuất hiện những lỗi này ko biết phải làm sao?
|
18-02-2014, 11:06 PM | #70 |
Nhập môn đệ tử
Tham gia ngày: Nov 2013
Bài gửi: 2
: |
lập trình cho pic
mình debug mà nó xuất hiện những lỗi này ko biết phải làm sao?
|
21-03-2014, 11:25 PM | #71 |
Nhập môn đệ tử
Tham gia ngày: Mar 2014
Bài gửi: 2
: |
Bác nào rành về lập trình PIC bằng mikroC Pro for PIC cho e hỏi, em bị lỗi ntn là sao
0 304 C:/Users/WIN7/Desktop/Test PIC/2/MyProject.c:15: error: Can't open include file "16f887.h" 0 304 C:/Users/WIN7/Desktop/Test PIC/New folder/MyProject.c:16: error: Unknown #directive "device" 0 304 #device *= 16 ADC = 10 |
02-05-2014, 12:58 AM | #72 |
Nhập môn đệ tử
Tham gia ngày: Mar 2014
Bài gửi: 2
: |
các anh chị xem giúp e với ak. em khai báo hàm delay rồi mà nó cứ báo lỗi delay thôi ak. em cảm ơn các anh chị ak.
thay đổi nội dung bởi: picvn1188, 02-05-2014 lúc 01:05 AM. |
08-05-2014, 10:40 PM | #73 |
Nhập môn đệ tử
Tham gia ngày: Apr 2014
Bài gửi: 4
: |
Thanks for this informative post. It help me a lot. And it gave mo ideas on how to make more money in marketing business. I hope lots of people visit this site so they can easily learn this informative post.
|
17-06-2014, 07:27 PM | #74 |
Nhập môn đệ tử
Tham gia ngày: Oct 2012
Bài gửi: 1
: |
Hien thi 4 chu so!
[QUOTE=namqn;33890]Bạn chỉ sửa thế này thôi thì thế nào (tôi không dùng CCS C, nên bạn sửa như dưới đây và dịch xem kết quả ra sao):
Code:
void ht(long a) { int nghin,tram,chuc,dvi; nghin=(int)a/1000; tram=(int)(a%1000)/100; chuc=(int)(a%100)/10; dvi=(int)(a%10); lcd_putchar(nghin+48); lcd_putchar(tram+48); lcd_putchar(chuc+48); lcd_putchar(dvi+48); } Bây giờ: Mình muốn chuyển chuỗi số trên lcd thành thành số thì làm thế nào! không dùng hàm " atoi" vì thư viện của mình bị lỗi! thanks |
28-10-2014, 12:55 AM | #75 |
Nhập môn đệ tử
Tham gia ngày: Aug 2014
Bài gửi: 3
: |
nhờ sửa code đo nhiệt độ dùng LM35 hiển thị lên LED 7SEG
em đang học PIC nên chả biết viết sai chỗ nào nữa,mong anh e chỉ bảo....
code đây ạ //Cau Hinh PIC #include <16f877a.h>//KHAI BAO THU VIEN #fuses XT,NOWDT,NOPUT,BROWNOUT,NOLVP,NOWRT,NODEBUG,NOPROT ECT//KHAI BAO PIC #device 16F877*=16 ADC=8 #use delay(clock=4000000)//KHAI BAO TAN SO THACH ANH void convert_bcd(int8 x); unsigned char const ma_LED[10]= {0xC0,0xcf,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x90 };//khai bao ma led int a,b,chuc, n,donvi;//Cac bien chu so void convert_bcd(int x) { chuc=(int)x%10; donvi=(int)x/10; donvi=(int)donvi%10; } void hienthi() // quet led { for(n=0;n<10;n++) { OUTPUT_D( ma_LED[chuc]); output_c(0b00000001); delay_ms(10); output_c(0b00000000); OUTPUT_D( ma_LED [donvi]); output_c(0b00000010); delay_ms(10); output_c(0b00000000); } } //CHUONG TRINH CHINH void main() { float nhietdo; { set_tris_a(0xff); SET_TRIS_c(0X00); //Port B là output(ngo ra) SET_TRIS_D(0x00); //port D la output(ngo ra) setup_ADC(ADC_clock_internal);//T/G lay mau bang xung clock setup_ADC_ports(AN0);//Lay Vref=5V set_ADC_channel(0);//chon chan A0 la chan dua tin hieu Analog vao delay_us(10);//tao khoang t/g de lay mau a=read_adc();//doc tin hieu vao nhietdo = (a)/2.048; b=nhietdo; convert_bcd((int8)b);//chuyen doi ADC delay_us(10); //Vong lap while(1) { a=read_adc(); nhietdo = (a)/2.048; convert_bcd((int8)b); hienthi(); } } } |