ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:164.58KB ,
资源ID:9970914      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9970914.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机电子时钟课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机电子时钟课程设计.docx

1、单片机电子时钟课程设计郑州航空工业管理学院单片机课程设计说明书 2008届 电子信息工程 专业 0813081班级题 目 基于单片机的数字时钟设计 学 号 081308125 姓 名 魏国俊 指导教师 程琤 二一 0 年 12 月 26日一、数字时钟的基本原理数字时钟是用数字集成电路组成,用数码管显示的一种现代化计数器。数字时钟实际上是一个对标准频率(1Hz)进行计数的计数电路。振荡器产生的时钟信号经过分频器形成秒脉冲信号,秒脉冲信号输入计数器进行计数,并把累计结果“时”、“分”、“秒”的数字显示出来。秒计数器电路计满60后触发分计数器电路,分计数器电路计满60后触发时计数器电路,当计满24小

2、时后又开始下一轮的循环计数。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需在电路上加一个校时电路可以对分和时进行校时。二、数字时钟的硬件设计1、数字时钟的电路原理图2、原器件清单序号器件名称参数数量1USB座无12USB线无13双排针(2)无14跳帽无35电容0.1uF76LED灯无17电阻2K1840针座无19STC89C51无110晶振12MHZ111电容20pF212复位键无113电阻10K114蜂鸣器无115三极管9015无916电阻33091716针座无118MAX232无119单排针(5)无120按键无421单排针(3)无1224位LED无223电阻4.7K8三、数字时

3、钟的软件设计1、程序流程图开始 清显示缓冲区 初始化定时计数器 赋时钟初值开定时器调整时间数码管显示当前时钟值2、源程序#include /定义按键端口sbit key_1=P30;/用于小时增加sbit key_2=P31;/用于分钟增加sbit key_3=P32;/用于分钟减少sbit key_4=P33;/用于秒钟增加/定义所需变量unsigned char shi=12,fen=00, miao=00;/定义十分秒并初始化为12:00:00code unsigned char tab=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90

4、;/定义共阳极数码管编码表unsigned char sbuff8;/定义数据缓冲数组void init() /定义初始化函数对定时器0和定时器1进行初始化 TMOD=0x11; /定时器0和1均为模式1 ET0=1;/开定时器0中断 ET1=1;/开定时器1中断 TH0=0xd8; TL0=0xf0; /定时10ms TH1=0xfc; TL1=0x18;/定时0.1ms TR1=1;/T1开始计时 TR0=1;/T0开始计时 EA=1;/开总中断 /显示数值写入缓冲区函数void displayset() sbuff7=tab(shi/10);/显示小时的十位 sbuff6=tab(shi

5、%10);/显示小时的个位 sbuff5=0xbf;/ 显示-号 sbuff4=tab(fen/10);/显示分钟十位 sbuff3=tab(fen%10);/显示分钟个位 sbuff2=0xbf;/显示-号 sbuff1=tab(miao/10);/显示秒钟十位 sbuff0=tab(miao%10);/显示秒钟个位/延时子函数void delay(unsigned char z) while(z-) unsigned char j; for(j=0;j123;j+); void key_scan() if(!key_1) /按键1去抖以及动作 delay(100); if(!key_1)

6、shi+; if(shi=24) shi=0; /正常时间 小时 加1 displayset(); if(!key_2) /按键2去抖以及动作 delay(100); if(!key_2) fen+; if(fen=60) fen=0; /分增加1 displayset(); if(!key_3) /按键去抖以及动作 delay(100); if(!key_3) fen-; if(fen=255) fen=59;/分减1 displayset(); if(!key_4) /按键去抖以及动作 delay(100); if(!key_4) miao+; if(miao=60) miao=0; /秒

7、增加1 displayset(); /主函数void main() init();/调用初始化定时器函数 displayset();/调用显示设置函数 while(1)/主循环用于不断检测按键是否被按下 key_scan(); /调用按键检测函数 /以下是中断程序/T0中断用于计时void timer(void) interrupt 1 using 0 static unsigned char counter;/用于计进中断次数,即 走过了多少个10毫秒 TH0=0xd8; TL0=0xf0;/重新装入初值 counter+; switch(counter) case 0: case 20:

8、case 40: case 60: case 80:displayset(); break; default:break;/在一秒内隔一段时间送一次时分秒到缓冲区 if(counter=100) counter=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; /定时器1服务程序用于扫描显示void scan() interrupt 3 using 1 static unsigned char number; TH1=0xfc; TL1=0x18;/重新装入初值 switch(number

9、) case 0:P0=0xff;P2=0xfe;P0=sbuffnumber;break; case 1:P0=0xff;P2=0xfd;P0=sbuffnumber;break; case 2:P0=0xff;P2=0xfb;P0=sbuffnumber;break; case 3:P0=0xff;P2=0xf7;P0=sbuffnumber;break; case 4:P0=0xff;P2=0xef;P0=sbuffnumber;break; case 5:P0=0xff;P2=0xdf;P0=sbuffnumber;break; case 6:P0=0xff;P2=0xbf;P0=sb

10、uffnumber;break; case 7:P0=0xff;P2=0x7f;P0=sbuffnumber;break;/轮流选中数码管并赋值显示 default:break; number+; if(number=8)/扫描8次依次点亮8个数码管 number=0;四、 课程设计总结本次课程设计是用8052单片机CPU及接口电路设计一个数字时钟,经过近一个星期的调试,结果满足设计要求,验证无误。设计主要用到了多种芯片,程序也比较长比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。关于显示模块,在以前的实验中做过,所以问题很容易解决。通过本次设计,系统的了解了实时时钟的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了定时器的使用和中断处理器程序的编程方法。开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的。五、 指导教师评语成绩 指导教师签名

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1