【毕业设计】-基于STC89C52的数字电子钟的设计与开发.docVIP

【毕业设计】-基于STC89C52的数字电子钟的设计与开发.doc

  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文档。上传文档
查看更多
制作和调试(50分) 设计报告(50分) 评 定 等 级 指 导 教 师 湖州师范学院求真学院 信息与工程系 单片机应用系统设计总结报告 题目:基于STC89C52的数字电子钟设计 专 业 电子科学与技术 班 级 092835 班 姓 名 姚宇飞 学 号 指导教师 吴小红 万东辉 信息与工程系 2011年4月14日 设计任务: 采用STC单片机和键盘,设置4位LED数码管显示的电子时钟; 上电时,显示12:00并且“:”间隔500ms闪烁,其中“:”代表秒功能; 具有闹钟设定,闹铃功能; 通过键盘可修改时间。 发挥功能: 实现时钟整点“嘟”声提示功能; 实现秒表功能。秒表具有计时开始,计时结束,及时复位等功能。 总体设计: 原理图中应该包括8052芯片,晶振复位系统,按键大概4个,蜂鸣器,数码管 首先分析数码管,此次课程设计的数码管为共阳极,所以低电平有效。且管脚分别为P1^4,P1^5,P1^6,P1^7; 蜂鸣器P3^2必须接低电平有效; 按键是一个矩阵按键,一定要进行键盘扫描,4*3型的~~管脚分别是P2^7,P2^6,P2^5,P2^4,P2^3,P2^2,P2^1,P2^0,在扫描的时候必须另P2^4接低电平有效。 晶振是12MHZ;还有电阻阻值详细见电路图 设计流程图: 走时——时钟分修改——时钟时修改——闹钟分修改——闹钟时修改——走时 说明:状态的修改由按键1的按下的次数决定,时钟,闹钟的调时用按键2和按键3,按键2调上,按键3调下,按键4用了返回走时状态。 原理图: 程序 #includereg51.h #includeintrins.h #define uint unsigned int #define uchar unsigned char //按键端口定义 sbit key1=P2^0; //定义按键--功能键 sbit key2=P2^1;//按键定义--增加键 sbit key3=P2^2; //按键定义--减少键 sbit key4=P2^3; //按键定义--确定键 sbit beep=P2^4; //蜂鸣器端口 sbit speaker=P3^2; //数码管端口 sbit com1=P1^4; sbit com2=P1^5; sbit com3=P1^6; sbit com4=P1^7; //全局变量定义 uint z=0; uchar flag=1; uchar temp=0; uchar num1=0,num4=0;//设置按键按下次数 uchar speaker_num; uchar second_miao_ting; uchar second_min_ting; uchar second_miao=0; uchar second_min=0; uchar clk_hour=12,clk_min=0,clk_miao=0; uchar alm_hour=0,alm_min=0; uchar count=0,count1=0; uchar T0_int_nums;//T0中断次数 uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f};//数码管正码 uchar code table1[]={0xc0,0xcf,0xa4,0x86,0x8b,0x92,0x90,0xc7,0x80,0x82,0x7f};//数码管倒码 //void jinwei(); void zhengdian(); //延时程序 void delayms(uint xms) { uint i,j; for(i=xms;i0;i--); for(j=1060;j0;j--); } //显示子程序 void display() { if(num1==0num4==0) { if(count 50) { com4=0;com3=1;com2=1;com1=1;//显示时钟时的十位 P0=table[clk_hour/10]; delayms(1); com4=1;com3=0;com2=1;com1=1;//显示时钟时的个位 P0=table[clk_hour%10]; delayms(1); com4=1;com3=1;com2=0;com1=1;//显示时钟分的十位 P0=

您可能关注的文档

文档评论(0)

hong8910aiyan + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档