定时器时钟.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定时器和实时时钟实验一、实验目的数码管动态显示技术定时器的应用按键功能定义二、实验实现的功能开机12个二极管同色灯依次点亮,通过按键选择定时器功能或者实时时钟功能当选择实时时钟功能时,用12个LED显示小时,用数码管显示分和秒,时间都由按键设定,同时具备复位功能当选择定时器功能时,12个LED闪烁,然后通过按键设定分和秒的时间,启动定时器,当定时时间到,12个LED闪烁,同时具备复位功能。三、系统硬件设计四、系统软件设计#include stc10.h#define uchar unsigned char#define uint unsigned int#define N 10//0--F的共阴极字段码表uchar codevalue[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};//小时显示uchar tab[]={0x00,0x00,0xfe,0x3f,0xfc,0x3f,0xf8,0x3f,0xf0,0x3f,0xe0,0x3f,0xc0,0x3f,0x80,0x3f,0x00,0x3f,0x00,0x38,0x00,0x30,0x00,0x20};//待显示的4位缓冲uchar Num_Buffer[]={0,0,0,0};char sec=0,min=0,hour=0,time=0,count=0;void delay(uint x) //延时函数{uchar i;while(x--){for(i=0;i120;i++);}}void display() //显示函数{ Num_Buffer[3]=min/10; Num_Buffer[2]=min%10; Num_Buffer[1]=sec/10; Num_Buffer[0]=sec%10; P0=0XFE; P1=codevalue[Num_Buffer[3]]; delay(N); P0=0XFD; P1=codevalue[Num_Buffer[2]]; delay(N); P0=0XFB; P1=codevalue[Num_Buffer[1]]; delay(N); P0=0XF7; P1=codevalue[Num_Buffer[0]]; delay(N);}uchar scan_key()//按键扫描函数{ uchar a=0x40,i,ptr=0,m; for(i=0;i2;i++) { P3=~a; delay(N); m=P0; switch(m0xe0) { case 0xc0: ptr=i*3+1; return ptr; break; case 0xa0: ptr=i*3+2; return ptr; break; case 0x60: ptr=i*3+3; return ptr; break; default:break; } a=a1; }}void shan(){ P2=0XB6;P3=0X37;delay(8N);P2=0X6D;P3=0X2F;delay(8N);P2=0XDB;P3=0X1B;delay(8N);}main(){ uchar i,k; P1M0=0XFF; P1M1=0X00; TMOD=0X11; //选择定时器0,1,工作方式1 TH0=-50000/256;//定时器0赋初值 TL0=-50000%256; TH1=-50000/256;//定时器1赋初值 TL1=-50000%256; EA=1; //开总中断 ET0=1;//定时器0允许中断 ET1=1;//定时器1允许中断 while(1) { P0=0XFF;shan();k=scan_key();if(k==1) //按键1按下,实现时钟功能 { while(1) { P2=tab[2*hour]; //小时用LED显示 P3=tab[2*hour+1]; display(); k=scan_key(); if(k==1) //按下1键设定小时 { delay(40N); hour++; if(hour==12) { hour=0; P2=tab[0]; P3=tab[1]; }

文档评论(0)

企管文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档