标题:
数码管显示时钟可设置断电记忆(定时器中断+矩阵键盘+数码管扫描+24c02)
[打印本页]
作者:
werjufour
时间:
2018-11-13 21:57
标题:
数码管显示时钟可设置断电记忆(定时器中断+矩阵键盘+数码管扫描+24c02)
数码管显示时钟,用矩阵键盘来设置时间,断电时的时间会存储在EEPROM中,来电时恢复断电时刻的时间
单片机源程序如下:
/*实验效果每加一秒钟显示会跳动,并在8位数码管上以时间的形式显示*/
/*使用矩阵键盘的S1、S2、S3按键分别对秒、分、时进行设置加1操作。*/
/*设备断电时EEPROM记忆断电时刻的时间,重新上电时设备显示断电时刻的时间开始走时*/
/********注意事项:往EEPROM 24c2写入数据时与下一次写数据时适当延时2ms左右*****/
/****************不然写入数据的速度跟不上程序执行时间以至于数据写不进24c02中**/
#include<reg51.h>
#include"init.h"
#include"key.h"
#include"i2c.h"
#include"delay.h"
//sbit K1=P3^0;
//sbit K2=P3^1;
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char disp[8]={0x3f,0x3f,0x40,0x3f,0x3f,0x40,0x3f,0x3f};
unsigned char hour=12,minit=0,second=0, Time=0;
bit write=0,KeyState;
main()
{
unsigned char keyvalue;
hour=At24c02Read(0x02); //读出24c02地址0保存的数据赋于小时中
minit=At24c02Read(0x01); //读出24c02地址1保存的数据赋于分中
second=At24c02Read(0x00); //读出24c02地址2保存的数据赋于秒中
Timer1configuration();
Timer0configuration();
Int0Configuration();
while(1)
{
keyvalue=readkey();
if(TR0==0)
{
if(KeyState==1) //按键状态为1时代表有按键按下
{
if(keyvalue==1) // 按键1按下时
{
second++; //秒加1
write=1; //向24c02写数据允许
if(second==60)
second=0;
}
else if(keyvalue==2)// 按键2按下时
{
minit++; // 分加1
write=1;//向24c02写数据允许
if(minit==60)
minit=0;
}
if(keyvalue==3) // 按键3按下时
{
hour++; // 小时加1
write=1;//向24c02写数据允许
if(hour==24)
hour=0;
}
KeyState=0; //清除按键按下状态标志
}
}
disp[7]=DIG_CODE[hour/10];
disp[6]=DIG_CODE[hour%10];
disp[4]=DIG_CODE[minit/10];
disp[3]=DIG_CODE[minit%10];
disp[1]=DIG_CODE[second/10];
disp[0]=DIG_CODE[second%10];
if(write==1) //当write为1时向24c02写入数据
{
write=0;//清除写保护标记
At24c02Write(0x02,hour); //在24c02的地址0中写入数据"小时"
Delay1ms(2);/*作适当的延时,程序运行太快以至于数据还没有写入24c02就开始执行下一条语句*/
At24c02Write(0x01,minit); //在24c02的地址1中写入数据"分"
Delay1ms(2);/*作适当的延时,程序运行太快以至于数据还没有写入24c02就开始执行下一条语句*/
At24c02Write(0x00,second); //在24c02的地址2中写入数据"秒"
}
}
}
复制代码
所有资料51hei提供下载:
时钟断电记忆 矩阵键盘设置时间.zip
(57.47 KB, 下载次数: 72)
2018-11-13 21:56 上传
点击文件名下载附件
黑
下载积分: 黑币 -5
作者:
admin
时间:
2018-11-14 04:05
补全原理图或者详细说明一下电路连接即可获得100+黑币
作者:
ptlantu
时间:
2018-11-14 09:04
感谢分享
作者:
JUNJUNlin
时间:
2019-11-26 19:07
可是这个代码少了两个库函数的编辑,没有库是用不了的
作者:
20170682
时间:
2019-12-9 23:09
这个代码有原理图么?
作者:
20170682
时间:
2019-12-9 23:09
JUNJUNlin 发表于 2019-11-26 19:07
可是这个代码少了两个库函数的编辑,没有库是用不了的
大佬,要用哪两个函数库?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1