单片机电子AT89C2051做的数字钟钟的源程序.doc

单片机电子AT89C2051做的数字钟钟的源程序.doc

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

采用AT89C2051的6位LED电子钟(计数器)电子制作散件 电子制作套件 产品2:采用AT89C2051的6位LED电子钟(计数器) 一、原理说明: 1、显示原理: ????显示部分主要器件为2位共阳红色数码管,驱动采用PNP型三极管驱动,各端口配有限流电阻,驱动方式为扫描,占用P1.0~P1.6端口。冒号部分采用4个Φ3.0的红色发光,驱动方式为独立端口驱动,占用P1.7端口。 2、键盘原理: ????按键S1~S3采用复用的方式与显示部分的P3.5、P3.4、P3.2口复用。其工作方式为,在相应端口输出高电平时读取按键的状态并由单片机支除抖动并赋予相应的键值。 3、迅响电路及输入、输出电路原理: ????迅响电路由有源蜂鸣器和PNP型三极管组成。其工作原理是当PNP型三极管导通后有源蜂鸣器立即发出定频声响。驱动方式为独立端口驱动,占用P3.7端口。 ????输出电路是与迅响电路复合作用的,其电路结构为有源蜂鸣器,5.1K定值电阻R6,排针J3并联。当有源蜂鸣器无迅响时J3输出低电平,当有源蜂鸣器发出声响时J3输出高电平,J3可接入数字电路等各种需要。驱动方式为迅响复合输出,不占端口。 ????输入电路是与迅响电路复合作用的,其电路结构是在迅响电路的PNP型三极管的基极电路中接入排针J2。引脚排针可改变单片机I/O口的电平状态,从而达到输入的目的。驱动方式为复合端口驱动,占用P3.7端口。 4、单片机系统: ????本产品采用AT89C2051为核心器件(AT89C2051烧写程序必须借助专用编程器,我们提供的单片机已经写入程序),并配合所有的必须的电路,只具有上电复位的功能,无手动复位功能。 二、使用说明: ????1、功能按键说明: S1为功能选择按键,S2为功能扩展按键,S3为数值加一按键。 ????2、功能及操作说明:操作时,连续短时间(小于1秒)按动S1,即可在以上的6个功能中连续循环。中途如果长按(大于2秒)S1,则立即回到时钟功能的状态。 ????1、时钟功能:上电后即显示10:10:00 ,寓意十全十美。 ????2、校时功能:短按一次S1,即当前时间和冒号为闪烁状态,按动S2则小时位加1,按动S3则分钟位加1,秒时不可调。 ????3、闹钟功能:短按二次S1,显示状态为22:10:00,冒号为长亮。按动S2刚小时位加1,按动S3则分钟位加1,秒时不可调。当按动小时位超过23时则会显示--:--:--,这个表示关闭闹钟功能。闹铃声为蜂鸣器长鸣3秒钟。 ????4、倒计时功能:短按三次S1,显示状态为 0,冒号为长灭。按动S2则从低位依此显示高位,按动S3则相应位加1,当S2按到第6次时会在所设定的时间状态下开始倒计时,再次按动S2将再次进入调整功能,并且停止倒计时。 ????5、秒表功能:短按四次S1,显示状态为00:00:00,冒号为长亮。按动S2则开始秒表计时,再次按动S2则停止计时,当停止计时的时候按动S3则秒表清零。 ????6、计数器功能:短按五次S1,显示状态为00:00:00,冒号为长灭,按动S2则计数器加1,按动S3则计数器清零。 采用AT89C2051的6位LED电子钟(计数器)散件每套28元 以下是部分C语言源程序,购买产品后可以向我们索要完整的单片机C语言源程序、烧写文件和说明书。 #includeREG2051.H code senen_seg[10]={0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0}; //P1.7(冒号)口高电平 bit key1_enter=0,key2_enter=0,key3_enter=0,countdown_mark=0,stopwatch_mark=0,count_mark=0,bell_mark=0; //状态标志 unsigned char program=0,program_variable=0,count_bit=0,count=0; unsigned char hour=10,minute=10,second=0; //时间变量 unsigned char delayed_hour=22,delayed_minute=10,delayed_second=0; //定时变量 unsigned char count_hour=0,count_minute=0,count_second=0; //计时计数变量 unsigned int count_time=0,count_count=0; void delay(unsigned int t) //延时子程序 { unsigned int i,j; for(i=0;it;i++) for(j=0;j10;j++)

文档评论(0)

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

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

1亿VIP精品文档

相关文档