Đồ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 domar123Giải pháp cho dàn PC cao cấp chơi game và làm việc
Khi xây dựng một bộ máy tính cao cấp, việc chọn đúng vi xử lý và card đồ họa sẽ quyết định trực tiếp đến trải nghiệm thực tế của bạn. Dòng chip AMD trang bị công nghệ...-
Channel: Đánh giá sản phẩm DTVN
18-08-2026, 08:55 -
-
bởi domar123Giải pháp toàn diện cho người dùng đa nhiệm
Nếu bạn đang cần một bộ máy vừa phục vụ công việc chuyên môn nặng vừa đáp ứng nhu cầu giải trí cao cấp, sự kết hợp giữa Ryzen 9 9950X TRAY và Radeon RX 9070 XT 16GB là lựa chọn...-
Channel: Đánh giá sản phẩm DTVN
17-08-2026, 17:12 -
-
bởi lvhnKhác nhau là đi lái thuê hoặc chạy dịch vụ được
...
-
Channel: Tâm tình dân kỹ thuật
17-08-2026, 15:50 -
-
bởi ittcHic, sao nhiều anh em khuyên là đàn ông đã học thì học luôn số sàn chứ đừng học số tự động anh....-
Channel: Tâm tình dân kỹ thuật
16-08-2026, 17:46 -
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
14-08-2026, 16:34 -

Comment