![]() |
![]() |
#3 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
đây là đoạn code đề đọcthanh ghi giây ![]() #include <16F877A.h> #include <def_877a.h> #include <DEFS_16F877A.h> #device *=16 //su dung het ram trong pic # fuses NOWDT, XT, NOPROTECT, NOLVP, PUT # use delay (clock = 4000000) int DATA_W,ADDRESS_W,DATA_R ,ADDRESS_R ; #define CS RC5 #define AS RC4 #define RW RC3 #define DS RC1 #define RE_SET RC0 #define DATAPORT PORTB #define LEDPORT PORTD void read_12C887(void);//khai bao chuong trinh con void write_12C887(void);//khai bao chuong trinh con void main() { TRISB=0; TRISC=0x04; TRISD=0; TRISE=0; ADCON1=0x06; RE_SET=1; CS =1; delay_ms(1000); DATA_W= 0x2F;//b'00101111' //dua gia tri vao thanh ghi "register A" //BIT 5=1 THOI GIAN THUC BIT 0...3=1 TAO F=2HZ TAI CHAN SQW ADDRESS_W=10;//THANH GHI A write_12C887(); DATA_W= 0x5E;//'01011110' ; dua gia tri vao thanh ghi "register B" //BIT 3=1 CHO PHEP TAO SONG VUONG TAI CHAN SQW // BIT 1=1 dang du lieu 24 gio //BIT 2=1 dang du lieu Binary ADDRESS_W=11;//THANH GHI B write_12C887(); //DOC TRANG THAI CUA DS12C887 XEM DA SAN SANG DOC DU LIEU HAY CHUA LAP:; ADDRESS_R=10;//THANH GHI A read_12C887(); while(DATA_R,7==1)// { ADDRESS_R=10;//THANH GHI A read_12C887(); } //DATA_R,7=0 DA CHO PHEP DOC DU LIEU ADDRESS_R=00;//D/C THANH GHI giay read_12C887(); LEDPORT=DATA_R; GOTO LAP; }//DAU KET THUC CHUONG TRINH CHINH //**********write_12C887*************** //**********write_12C887*************** void write_12C887(void) { TRISB=0; DATAPORT=ADDRESS_W; AS=0; DS=1; RW=1; #ASM; nop; #ENDASM; AS=1; CS=0; #ASM; nop; #ENDASM; AS=0; #ASM; nop; #ENDASM; DATAPORT=DATA_W; RW=0; #ASM; nop; #ENDASM; AS=1; RW=1; CS=1; } void read_12C887(void) { TRISB=0; DATAPORT=ADDRESS_R; DS=1; RW=1; #ASM; nop; #ENDASM; AS=1; CS=0; #ASM; nop; #ENDASM; AS=0; #ASM; nop; #ENDASM; DS=0; #ASM; nop; #ENDASM; TRISB=0xFF; DATA_R=DATAPORT; AS=1; CS=1; }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
![]() |
![]() |
|
|