Đồng hồ số 89c52 với ds12c887 code C không hiểu sai ở đâu??
Collapse
X
-
-
bạn khởi tạo ds12c887 để có xung 2hz tại chân sqw rồi dùng ngắt ngoài đọc giá trị cho nó đơn giản.Nguyên văn bởi Mr.Lan Xem bài viếtSau lúc ngâm cứu lại thì có vẻ tiến bộ hơn, nhưng hiện giờ thì kết quả vẫn chưa được như ý, đọc rất chậm và loạn nữa.
Bác nào có kinh nghiệm làm cái này rồi thì giúp em với. Đây là link mà em đã sửa file này, các Bác xem hộ em cái nhé.
Thanks a lot!
test2.rar
chân sqw của ds12c887 nối với chân P3.2 nhé.Code://dung ngat ngoai doc ds12c887 #include <AT89X52.H> #include"absacc.h" #define dataport P2 #define port P1 sbit reset = port^0; sbit select = P3^0; sbit rs =port^1; sbit rw =port^2; sbit e = port^3; sbit dig_hr1=port^4; sbit dig_min1=port^5; sbit start=port^6; unsigned char tempmin=60,temphr=25,tempsec=60,tempday=7,tempdate=15,tempmonth=2,tempyear=10,day,date,month,year,hr,min,sec,num[60]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0X09,0X10,0X11,0X12,0X13,0X14,0X15,0X16,0X17,0X18,0X19,0X20,0X21,0X22,0X23,0X24,0X25,0X26,0X27,0X28,0X29,0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39,0X40,0X41,0X42,0X43,0X44,0X45,0X46,0X47,0X48,0X49,0X50,0X51,0X52,0X53,0X54,0X55,0X56,0X57,0X58,0X59}; //========================================================================== void delay(unsigned int msec ) { int i ,j ; for(i=0;i<msec;i++) for(j=0; j<1275; j++); } //========================================================================== void lcd_cmd(unsigned char item) { dataport = item; rs= 0; rw=0; e=1; delay(1); e=0; return; } //========================================================================== void lcd_data(unsigned char item) { dataport = item; rs= 1; rw=0; e=1; delay(1); e=0; return; } //========================================================================== void lcd_data_string(unsigned char *str) { int i=0; while(str[i]!='\0') { lcd_data(str[i]); i++; delay(1); } return; } //========================================================================== lcd_data_int(int time_val) { int int_amt; int_amt=time_val/10; lcd_data(int_amt+48); int_amt=time_val%10; lcd_data(int_amt+48); } //========================================================================== void lcd() { lcd_cmd(0x38); delay(5); lcd_cmd(0x0C); delay(5); lcd_cmd(0x80); delay(5); } //========================================================================== bcdconv(unsigned char mybyte) { unsigned char x,y; x= mybyte & 0x0F; x=x | 0x30; y= mybyte & 0xF0; y=y>>4; y=y | 0x30; lcd_data(y); lcd_data(x); } //========================================================================== void read_rtc_display() { } void int0_ISR (void) interrupt 0 { select = 1; select = 0; hr = XBYTE[4]; select = 1; select = 0; min = XBYTE[2]; select = 1; select = 0; sec = XBYTE[0]; select = 1; select = 0; day = XBYTE[6]; select = 1; select = 0; date = XBYTE[7]; select = 1; select = 0; month = XBYTE[8]; select = 1; select = 0; year = XBYTE[9]; lcd_cmd(0X87); bcdconv(hr); lcd_data(':'); lcd_cmd(0X8A); bcdconv(min); lcd_data(':'); lcd_cmd(0x8D); bcdconv(sec); lcd_data(':'); lcd_cmd(0xC0); bcdconv(day); lcd_data(':'); lcd_cmd(0xC3); bcdconv(date); lcd_data(':'); lcd_cmd(0xC6); bcdconv(month); lcd_data(':'); lcd_cmd(0xC9); bcdconv(year); } //========================================================================== void main() { reset=1; select=0; lcd(); XBYTE[10]=0x2f;//tao xung 2hz XBYTE[1]=0xFF; XBYTE[3]=0xFF; XBYTE[5]=0xFF; XBYTE[11]=0x58;//cho phep xung ra chan sqw lcd_cmd(0x01); lcd_cmd(0x80); lcd_data_string("TIME:"); EA = 1; // Global Interrupt Enable EX0=1; IT0=1; // int0 while(1) { } }|
Comment
-
Chào các Bác, ở mạch này em sử dụng ngắt trên chân /IRQ để đưa vào chân P3.2, em đã đọc kỹ datasheet mà làm không thấy chạy, em gửi tín hiệu lên PC qua UART. Sửa mãi mà chưa thay đổi gì nhiều, không biết có nhầm lẫn gì không,mong các cao thủ giúp đỡ. em gửi sơ đồ mạch và code lên.
Mach dong ho.rar
Comment
Bài viết mới nhất
Collapse
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
Hôm qua, 14:33 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
Hôm qua, 10:49 -
-
Trả lời cho Tìm VR 5 chânbởi dinhthuong80Cảm ơn bác bqviet . Nhưng hình như các VR 5 chân của linhkienchatluong là loại có 2 chân là công tắc đóng mở. Thấy trên Shopee có chỗ bán linh kiện đàn Organ, mà không biết đúng loại không, với lại sao ... mắc dữ dội luôn ấy!!!
...-
Channel: Hướng dẫn tìm thông tin linh kiện
19-10-2026, 11:30 -
-
Trả lời cho Tìm VR 5 chânbởi bqvietTrang sản phẩm này có loại 5 chân và 8 chân
https://linhkienchatluong.vn/chiet-a...doi_s1595.aspx
Ngoài ra một trang cùng cấp với nó có loại 6 chân nữa, chắc đủ cho người muốn tìm....-
Channel: Hướng dẫn tìm thông tin linh kiện
17-10-2026, 17:19 -
-
bởi dinhthuong80Chào cả nhà, chúc cuối tuần vui vẻ!
Hôm nay mình lên đây nhờ ai biết chỉ dùm biến trở 5 chân này tên gọi là gì, có thể mua ở đâu vậy? Xin cám ơn nhiều! ...-
Channel: Hướng dẫn tìm thông tin linh kiện
-

Comment