3415|5

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎样把设定的时间存入eeprom中,重新上电后直接调取 [复制链接]

#include
sbit kh=P3^7;//时
sbit km=P3^6;//分
sbit ks=P3^5;//秒
sbit st=P3^4;//开始
sbit b=P2^0;//指示
unsigned char  table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char i=0,hour=0,minute=0,second=0;
void delayms(unsigned int x)
{
        unsigned char a=160;
        while(x--)
        {
                while(a--);
                a=160;
        }
}

main()
{
                TH0=(65536-50000)/256;
                TL0=(65536-50000)%256;
                TMOD=1;
                TR0=0;
                ET0=1;
                EA=1;
                while(1)
                {
                                P0=table[hour/10];
                                P1=~32;
                                delayms(1);
                                P1=0xff;
                       
                                P0=table[hour%10];
                                P1=~16;
                                delayms(1);
                                P1=0xff;
                       
                                P0=table[minute/10];
                                P1=~1;
                                delayms(1);
                                P1=0xff;
                       
                                P0=table[minute%10];
                                P1=~2;
                                delayms(1);
                                P1=0xff;
                       
                                P0=table[second/10];
                                P1=~4;
                                delayms(1);
                                P1=0xff;
                               
                                P0=table[second%10];
                                P1=~8;
                                delayms(1);
                                P1=0xff;
                               
                                if(!kh)
                                {
                                                delayms(200);
                                                hour++;
                                                if(hour>23)
                                                        hour=23;
                                }
                                else if(!km)
                                {
                                                delayms(200);
                                                minute++;
                                                if(minute>59)
                                                        minute=59;
                                               
                                }
                                else if(!ks)
                                {
                                                delayms(200);
                                                second++;
                                                if(second>59)
                                                        second=59;
                                               
                                }
                                if(!st)
                                {
                                                delayms(200);
                                                TR0=1;
                                }
                                if(TR0==1&&hour==0&&minute==0&&second<3)
                                                b=!b;
                                delayms(1);
                }
}

void   t0() interrupt 1  
{
                        TH0=(65536-50000)/256;
                        TL0=(65536-50000)%256;
                        i++;
                        if(i>=20)
                        {
                                        i=0;
                                        second--;
                                        if(second>59)
                                        {
                                                        second=59;
                                                        minute--;
                                                        if(minute>59)
                                                        {
                                                                        minute=59;
                                                                        hour--;
                                                                        if(hour>23)
                                                                        {
                                                                                        hour=0;
                                                                                        minute=0;
                                                                                        second=0;
                                                                                        TR0=0;
                                                                        }
                                                        }
                                        }
                        }
                       
}

此帖出自51单片机论坛

最新回复

去STC官网找示例,里面的资料很全的。  详情 回复 发表于 2016-5-1 23:41
点赞 关注
 

回复
举报

1234

帖子

4

TA的资源

纯净的硅(高级)

沙发
 
看了头文件是51,建议楼主可以去官网下载相应单片机的技术手册,他们都把相应的功能程序都做好了,

我记得51的EEPROM有个规定,预想写入必须先写一。我在电脑里找找EEPROM的程序,等会
此帖出自51单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

板凳
 
找到了 我这两份是stc单片机的EEPROM的程序
先给一份官方的程序,从资料里直接复制的
IAPeraseOrWrite.c (3.52 KB, 下载次数: 30)
然后是我自己调试用在了自己的东西上的程序,好怀念大学的日子
51内核单片机闪存的用法.c (4.29 KB, 下载次数: 40)

此帖出自51单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

4
 
ywlzh 发表于 2016-4-29 16:41
找到了 我这两份是stc单片机的EEPROM的程序
先给一份官方的程序,从资料里直接复制的

然后是我自己调试 ...

我才开始学,谢谢了
此帖出自51单片机论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

5
 
哪位能帮忙写一下不胜感激
此帖出自51单片机论坛
 
 
 

回复

927

帖子

0

TA的资源

纯净的硅(中级)

6
 
去STC官网找示例,里面的资料很全的。
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表