- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#includereg51.h#define uchar unsigned char#define uint unsigned intsbit p2_0=P2^0; //数码管位选控制端sbit p2_1=P2^1;sbit p2_2=P2^2;sbit p2_3=P2^3;sbit p2_4=P2^4;sbit p2_5=P2^5;sbit p2_6=P2^6;/******************p1_0设置时间,p1_1定时。p1_0,p1_1使用不自动弹起按键。p1_2时分秒选择,p1_3加数字,p1_4减数字。****************/sbit p1_0=P1^0; sbit p1_1=P1^1;sbit p1_2=P1^2;sbit p1_3=P1^3;sbit p1_4=P1^4;uchar count=0,sec,min,hour,ss=0;s=60,m=60,h=24;uchar code mum[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳数码管0-9编码void delayms(uint k) //延时函数{uinti,j;for(i=k;i0;i--)for(j=110;j0;j--);}/**********************************************通过count获得hour,min,sec变量值*************************************************/voidtimecontrol() { sec++;if(sec==60) {sec=0;min++;if(min==60) {min=0; hour++;if(hour==24)hour=0; } }}void display(ucharzs,ucharzm, ucharzh) //数码管显示函数{ p2_0=1; P0=mum[zh/10];delayms(5); p2_0=0; p2_1=1; P0=mum[zh%10]0x7f; // 时的个位加上小数点delayms(5); p2_1=0; p2_2=1; P0=mum[zm/10]; delayms(5); p2_2=0; p2_3=1; P0=mum[zm%10]0x7f; //分的个位加上小数点delayms(5); p2_3=0; p2_4=1; P0=mum[zs/10];delayms(5); p2_4=0; p2_5=1; P0=mum[zs%10]; //秒的个位delayms(5); p2_5=0; }void keyscan_settime() //时间设置模块{ucharst,mt,ht;if(p1_0==0) {delayms(10);if(p1_0==0) {st=sec,mt=min,ht=hour; TR0=0; //关闭定时器while(p1_0==0) //等待用户按键 {display(st,mt,ht); if(p1_1==0) {delayms(10);if(p1_1==0) {while(!p1_1);ss++;if(ss==3) ss=0; } }/*****************************************************通过ss选择时分秒设置*******************************************************/if(p1_2==0) //加数 {delayms(10);if(p1_2==0) {while(!p1_2);switch(ss
文档评论(0)