完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想把中断产生的秒数实时写进AT24C02以实现掉电存储,程序如下,烧录后发现,复位之后数码管依然从初始数据开始跑,试了很多次都找不到问题在哪....求高手帮忙看下
#include #define uchar unsigned char #define uint unsigned int unsigned char code aa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77}; uchar sec,num=0; bit write=0; ***it dula=P2^6; ***it wela=P2^7; ***it clock=P2^1; ***it date=P2^0; void delay() {;;} void delayms(int num) { int x,y; for(x=num;x>0;x--) for(y=112;y>0;y--); } void start() { date=1; delay(); clock=1; delay(); date=0; delay(); } void stop() { date=0; delay(); clock=1; delay(); date=1; delay(); } void init() { clock=1; delay(); date=1; delay(); } void response() { char i; clock=1; delay(); while((date==1)&&(i<255)) i++; clock=0; delay(); } void write_byte(unsigned char date) { uchar i,temp; temp=date; for(i=0;i<8;i++) { temp=temp<<1; clock=0; delay(); date=CY; delay(); clock=1; delay(); } clock=0; delay(); date=1; delay(); } uchar read_byte() { char k=0,i; clock=0; delay(); date=1; delay(); for(i=0;i<8;i++) { clock=1; delay(); k=(k<<1)|date; clock=0; delay(); } return k; } void write_add(uchar address,uchar date) { EA=0; start(); write_byte(0xa0); response(); write_byte(address); response(); write_byte(date); response(); stop(); EA=1; delayms(5); } uchar read_add(uchar address) { uchar date; start(); write_byte(0xa0); response(); write_byte(address); response(); start(); write_byte(0xa1); response(); date=read_byte(); stop(); return date; } void display(int a,int b) { dula=1; P0=aa[a]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delayms(2); dula=1; P0=aa[b]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delayms(2); } void main() { unsigned char i; TMOD=0x01; EA=1; ET0=1; TR0=1; init(); sec=read_add(2); TH0=(65536-45872)/256; TL0=(65536-45872)%256; TR0=1; while(1) { i=10; while(i--) //避免数码管闪烁 { display(sec/10,sec%10); } if(write==1) { write=0; write_add(2,sec); } } } void time0() interrupt 1 using 0 { TH0=(65536-45872)/256; TL0=(65536-45872)%256; num++; if(num==20) { num=0; sec++; write=1; if(sec>=100) sec=0; } } |
|
相关推荐
1个回答
|
|
能不能发下烧录软件的显示情况,不一定是程序的问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
522 浏览 0 评论
656 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
978 浏览 0 评论
1042 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
735 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12048 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 16:24 , Processed in 0.755558 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号