#include <REGX52.H>
#include "Timer0.h"
#include "Key.h"
#include "Nixie.h"
#include "Delay.h"
#include "AT24C02.h"
unsigned char KeyNum;
unsigned char Min,Sec,MiniSec;
unsigned char RunFlag;
void main()
{
Timer0_Init();
while(1)
{
KeyNum=Key();
if(KeyNum==1) //K1按键按下
{
RunFlag=!RunFlag; //启动标志位翻转
}
if(KeyNum==2) //K2按键按下
{
Min=0; //分秒清0
Sec=0;
MiniSec=0;
}
if(KeyNum==3) //K3按键按下
{
AT24C02_WriteByte(0,Min); //将分秒写入AT24C02
Delay(5);
AT24C02_WriteByte(1,Sec);
Delay(5);
AT24C02_WriteByte(2,MiniSec);
Delay(5);
}
if(KeyNum==4) //K4按键按下
{
Min=AT24C02_ReadByte(0); //读出AT24C02数据
Sec=AT24C02_ReadByte(1);
MiniSec=AT24C02_ReadByte(2);
}
Nixie_SetBuf(1,Min/10); //设置显示缓存,显示数据
Nixie_SetBuf(2,Min%10);
Nixie_SetBuf(3,11);
Nixie_SetBuf(4,Sec/10);
Nixie_SetBuf(5,Sec%10);
Nixie_SetBuf(6,11);
Nixie_SetBuf(7,MiniSec/10);
Nixie_SetBuf(8,MiniSec%10);
}
}
/**
* @brief 秒表驱动函数,在中断中调用
* @param 无
* @retval 无
*/
void Sec_Loop(void)
{
if(RunFlag)
{
MiniSec++;
if(MiniSec>=100)
{
MiniSec=0;
Sec++;
if(Sec>=60)
{
Sec=0;
Min++;
if(Min>=60)
{
Min=0;
}
}
}
}
}
void Timer0_Routine() interrupt 1
{
static unsigned int T0Count1,T0Count2,T0Count3;
TL0 = 0x18; //设置定时初值
TH0 = 0xFC; //设置定时初值
T0Count1++;
if(T0Count1>=20)
{
T0Count1=0;
Key_Loop(); //20ms调用一次按键驱动函数
}
T0Count2++;
if(T0Count2>=2)
{
T0Count2=0;
Nixie_Loop();//2ms调用一次数码管驱动函数
}
T0Count3++;
if(T0Count3>=10)
{
T0Count3=0;
Sec_Loop(); //10ms调用一次数秒表驱动函数
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
12-2 秒表(定时器扫描按键数码管).zip
共43个文件
obj:7个
c:7个
lst:7个
需积分: 0 0 下载量 76 浏览量
2023-02-27
15:58:34
上传
评论
收藏 66KB ZIP 举报
温馨提示
12-2 秒表(定时器扫描按键数码管).zip
资源推荐
资源详情
资源评论
收起资源包目录
12-2 秒表(定时器扫描按键数码管).zip (43个子文件)
12-2 秒表(定时器扫描按键数码管)
Project.uvopt 10KB
Nixie.c 1KB
Key.c 1KB
Objects
Delay.obj 880B
Timer0.obj 3KB
I2C.obj 4KB
Project.build_log.htm 1023B
Key.obj 4KB
Timer0.__i 113B
Nixie.__i 110B
Project.hex 3KB
AT24C02.__i 116B
Project 26KB
Delay.__i 110B
I2C.__i 104B
Key.__i 104B
main.obj 8KB
Nixie.obj 4KB
Project.lnp 260B
AT24C02.obj 5KB
Key.h 98B
Project.uvgui.86139 92KB
I2C.c 1KB
Project.uvgui.Admin 86KB
Listings
Project.m51 20KB
I2C.lst 4KB
Nixie.lst 2KB
main.lst 5KB
Timer0.lst 2KB
AT24C02.lst 3KB
Key.lst 3KB
Delay.lst 1KB
Timer0.c 638B
Delay.h 85B
Project.uvgui.lenovo 89KB
Nixie.h 178B
Delay.c 153B
AT24C02.c 944B
main.c 2KB
Project.uvproj 16KB
Timer0.h 81B
AT24C02.h 177B
I2C.h 253B
共 43 条
- 1
资源评论
宜简864
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功