完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
2个4位一体共阳数码管组合做时钟,程序下载后不能显示。电路确保是正确的,望大师们指教~
单片机是STC89C52;时钟芯片DS1302。 程序: #include #include #define uint unsigned int #define uchar unsigned char ***it sck=P3^4; ***it io=P3^5; ***it rst=P3^6; uchar code table[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; uchar time_data[7]={10,6,4,17,11,58,30}; //年周日月时分秒 uchar write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; uchar read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81}; void write_ds1302_byte(uchar dat); void write_ds1302_(uchar add,uchar dat); uchar read_ds1302(uchar add); void set_rtc(void); void read_rtc(void); void time_pros(void); uchar disp[8]; void dispday(void); void delay_50us(uint t) { uint j; for(;t>0;t--) for(j=6245;j>0;j--); } void delay(uint z); void write_ds1302_byte(uchar dat) { uchar i; for(i=0;i<8;i++) { sck=0; io=dat&0x01; dat=dat>>1; sck=1; } } void write_ds1302_(uchar add,uchar dat) { rst=0; _nop_(); sck=0;_nop_(); rst=1; _nop_(); write_ds1302_byte(add); write_ds1302_byte(dat); rst=0; _nop_(); io=1; sck=1; } uchar read_ds1302(uchar add) { uchar i,value; rst=0; _nop_(); sck=0; _nop_(); rst=1; _nop_(); write_ds1302_byte(add); for(i=0;i<8;i++) { value=value>>1; sck=0; if(io) value=value|0x80; sck=1; } rst=0; _nop_(); sck=0; _nop_(); sck=1; io=1; return value; } void set_rtc(void) { uchar i,j; for(i=0;i<7;i++) { j=time_data[i]/10; time_data[i]=time_data[i]&10; time_data[i]=time_data[i]+j*16; } write_ds1302_(0x8e,0x00); for(i=0;i<7;i++) { write_ds1302_(write_add[i],time_data[i]); } write_ds1302_(0x8e,0x80);//写保护 } void read_rtc(void) { uchar i; for(i=0;i<7;i++) { time_data[i]=read_ds1302(read_add[i]); } } void time_pros(void) { disp[0]=time_data[6]&16; disp[1]=time_data[6]/16; disp[2]=17; disp[3]=time_data[5]&16; disp[4]=time_data[5]/16; disp[5]=17; disp[6]=time_data[4]&16; disp[7]=time_data[4]/16; } void dispday(void) { uchar i; for(i=0;i<8;i++) { P1=table[disp[i]]; P2=0; delay_50us(20); } } void main(void) { set_rtc(); while(1) { read_rtc(); time_pros(); display(); } } |
|
相关推荐
3个回答
|
|
看不懂
|
|
|
|
|
|
没看出个所以然来~~~
|
|
|
|
只有小组成员才能发言,加入小组>>
12133 浏览 2 评论
4468 浏览 3 评论
3702 浏览 5 评论
9530 浏览 47 评论
4505 浏览 9 评论
707浏览 0评论
508浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 19:13 , Processed in 0.496234 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号