网站大量收购闲置独家精品文档,联系QQ:2885784924

99秒表程序--基于单片机at89c51.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
99秒表程序--基于单片机at89c51

/******99 秒表*******/、 /**---------------------------------必威体育精装版文件信息--------------------------------------------------- 功能:99 秒表 作 者: 单 位: 时 间: 描 述:晶振11.0952MHz;数码管采用共阴; **------------------------------------------------------------------------------------------------- ******************************************************************************/ #includereg52.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; /******单片机接口***********/ 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 出口参数:无 *****************************/ void delay_ms(uint t) { uint a,b,c; for(c=t;c0;c--) { for(b=102;b0;b--) for(a=3;a0;a--); } } /********秒显示函数*** 功能:实现秒的显示 入口参数:无 出口参数:无 *****************************/ void miao_display() { if(flag=20) { flag=0;//清零 miao++;//秒累加 if(miao99) 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))//等待按键释放 { key_flag=0;//按键标志清零 keynum++;//按键次数累加 if(keynum3)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;//不满足条件返回 } } } /*******主函数************** 功能: 入口参数:无 出口参数:无 *****************************/ void main(void) { InitTimer0();//定时器初始化 while(1) { scankey();//按键扫描 miao_display();//秒显示 } } /**********定时器0 中断函数******** 功能:实现秒中间变量flag 的累加 入口参数:无 出口参数:无 ***************

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档