99秒表程序--基于单片机at89c51
更新时间:2023-05-24 12:38:01 阅读量: 实用文档 文档下载
99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。计时误差小于0.5秒,显示稳定。
/******99 秒表*******/、
/**---------------------------------最新文件信息---------------------------------------------------
功能:99 秒表
作 者:
单 位:
时 间:
描 述:晶振11.0952MHz;数码管采用共阴;
**-------------------------------------------------------------------------------------------------
******************************************************************************/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table_duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示0~9;
/******单片机接口***********/
99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。计时误差小于0.5秒,显示稳定。
sbit key=P3^5;//按键
#define duanma P0//段码
#define weima P2//位码
/******全局变量************/
uchar miao=0;//秒
uchar flag=0;//秒中间变量
uchar keynum=0;//按键次数
bit key_flag=0;//按键标志
/*****中断初始化**********/
void InitTimer0()
{
TMOD = 0x01;//工作方式
TH0 = 0x4C;//高8 位
TL0 = 0x00;//低8 位
EA = 1;//总中断
ET0 = 1;//允许定时器0 中断
TR0 = 0;//启动定时器0
}
/**********延时函数**********
功能:延时若干ms
入口参数:t
出口参数:无
99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。计时误差小于0.5秒,显示稳定。
*****************************/
void delay_ms(uint t)
{
uint a,b,c;
for(c=t;c>0;c--)
{
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
}
/********秒显示函数***
功能:实现秒的显示
入口参数:无
出口参数:无
*****************************/
void miao_display()
{
if(flag>=20)
{
flag=0;//清零
miao++;//秒累加
99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。计时误差小于0.5秒,显示稳定。
if(miao>99) miao=0;//秒大于99 清零
}
weima=0xfe;//选择第1 位
duanma=table_duanma[miao%10];
delay_ms(1);//延时1ms
weima=0xfd;//选择第2 位
duanma=table_duanma[miao/10];
delay_ms(1);//延时1ms
}
/**********按键扫描及处理函数**********
功能:实现按键输入及处理
入口参数:无
出口参数:无
*****************************/
void scankey()
{
if((key==0)&&(key_flag==0))//判断是否有按键按键且按键标志是否为0
{
key_flag=1;//按键标志为1
}
if((key==1)&&(key_flag==1))//等待按键释放
99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。计时误差小于0.5秒,显示稳定。
{
key_flag=0;//按键标志清零
keynum++;//按键次数累加
if(keynum>3)keynum=1;//按键次数大于3 置1 switch(keynum)
{
case 1: TR0 = 1;//启动定时器0
break;
case 2: TR0 = 0;//关闭定时器0
break;
case 3: miao=0;//秒清零
break;
default:break;//不满足条件返回
}
}
}
/*******主函数**************
功能:
入口参数:无
出口参数:无
*****************************/
99秒表程序--使99秒秒表在上电后,具有:开始时显示“00”;利用CPU15脚外接按键作控制;第一次按下按键后启动计时;第二次按下按键后停止计时;第三次按下按键后计时归零;最大计时为99秒。计时误差小于0.5秒,显示稳定。
void main(void)
{
InitTimer0();//定时器初始化
while(1)
{
scankey();//按键扫描
miao_display();//秒显示
}
}
/**********定时器0 中断函数******** 功能:实现秒中间变量flag 的累加 入口参数:无
出口参数:无
*****************************/ void Timer0Interrupt(void) interrupt 1 {
TH0 = 0x4C;//高8 位
TL0 = 0x00;//低8 位
flag++;//flag 累加
}
正在阅读:
99秒表程序--基于单片机at89c5105-24
对孤独症儿童的情绪行为的个案研究12-24
《计算机网络程》课程自评报告01-08
语言学11-23
新人教版语文七年级下册文言文专项练习05-13
中职英语 试讲教案大全09-30
公共基础知识题库(单项选择题)07-11
甲基丙烯酸缩水甘油酯10-09
2022年中考鼓励语简短霸气03-30
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 秒表
- 单片机
- 基于
- at89c51
- 程序
- 24小时香港游,遇见最真实的自己
- 北京市人民政府第183号令
- 国内外硕博论文的查询
- 教育学原理-理论与实践课后练习答案(第一章-不全)陈理宣
- Web应用系统设计(.NET)ch01
- 中华人民共和国刑法(节录) (1997.03.14修订)
- 咨询项目总结:绩效考核打分失真现象的分析和应对措施
- 现代教育技术期末考试-知识整理_西华师大
- 2015年南宁中小学教师招聘考试报名时间
- 爬墙机器人研究与制作
- 2021年中考数学小题专项训练(7)
- 00458中小学教育管理
- 第四章 信息与信息化管理
- Android面试题大全精心整理
- “新中式”景观设计初探——以南京夫子庙街巷景观整治为例
- 成本会计第4章 辅助生产费用的核算
- 合肥市城乡居民社会养老保险政策问答
- 如何实现中等职业学校体育教学目标
- 2018在新提拔处级干部“六个一”廉洁从业教育活动上的讲话
- 中国古代名人爱树拾趣