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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

简易数字钟设计.docx

1、简易数字钟设计信息与电气工程学院课程设计说明书(2014 /2015 学年第二学期)课程名称 : 单片机课程设计 题 目 : 简易数字钟设计 专业班级 : 学生姓名 : 学 号: 指导教师 : 设计周数 : 2周 设计成绩 : 2015年 6 月 25 日1、课程设计目的(1)综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验。(2)学习A T 8 9 C 5 1定时/计数器的原理及基本应用。(3)掌握多为数码管动态显示方法。(4)掌握KeiluVision2IDE的使用方法。【包括项目文件的建立,给项目添加程序件,编译、连接项目

2、,形成目标文件,运行调试观察结果,多文件的处理,仿真环境的设置。】(5)掌握KeilC51的调试技巧。【包括如何设置和删除断点,如何查看和修改寄存器的内容,如 何 观 察 和 修 改 变 量,如 何 观 察 存 储 器 区 域,并 行 口 的 使 用, 定 时 器 /计数器的使用,串行口的使用,外中断的使用。】(6)掌握PROTEUS软件使用过程。2、简易数字钟的要求及软硬件的分析2.1简易数字钟的设计要求 利 用电子电 路 构 成 一个简 易 数 字 钟 ,该 数字钟电路主要由C51单片机、4位共阳极数码管、时计数、分计数器、蜂鸣器、LED灯、NPN型和PNP型三极管、按键、若干电阻和导线组

3、成。其中电路系统的分计数器采用60进制,时计数器采用24进制,。译码器显示电路将时、分计数器的输出状态通过三个两位共阳数码管显示出来。整点报时电路根据计时系统的输出状态产生一个脉冲信号,用蜂鸣器输出。相 对 机 械 钟 而 言,数 字 钟 能 达 到 准 确 计 时 ,并 显 示 小 时 、分 钟,同 时 通 过 不 同 按 键 的 不 同 功 能 对 该 数 字 钟 进 行 小 时 和 分 钟 调 整 ,也 可 通 过 按 键 来 接 她 通 蜂 鸣 器 来 发 出 响 声 。2.2数字钟的软件分析2.1.1数字钟软件的系统分析 系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括

4、执行软件(完成 各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的 问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体 结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调 试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。 系统软件设计流程图 这次的数字电子钟设计用到很多子程序,它们

5、的流程图如下所示。 主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加 1,如果没有按下,就检 测分按键是否按下,分按键如果按下,分就加1,如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1,如果没有按下,就把时间显示出来。2.2.2 简易数字钟程序 #include #define uchar unsigned char #define uint unsigned int sbit k1 = P35; /按键1 sbit k2 = P34; /按键2 sbit k3 = P33; /按键3 s

6、bit k4 = P32; /按键4 sbit LED = P10; /LED显示 sbit beep = P36; /蜂鸣器 int m1 = 0, m2 = 0, m3 = 0, m4 = 0; /数码管要显示的数字 int time_n = 0; /1s时间到标志位 int smg_n = 0; /位选控制哪个数码管闪 int xz_flg = 0; /选择键是否被按下 int shi = 0, fen = 0; miao = 0; int zd_flg = 0; /整点标志 char duan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0

7、x90,0xff;/段选编码09null; /- /本文件函数 void System_Init();/初始化函数 void Smg_Scan(); /数码管动态扫描 void Delay_1ms(uint z); /延时函数 void Blink(uint wei); /数码管闪烁函数 void Key_Scan(); /按键扫描函数 void Bao_Shi(); /整点报时/*/ void main() System_Init(); while(1) Smg_Scan(); Key_Scan(); Bao_Shi(); /*初始化子函数 void System_Init() /初始化函数

8、 TMOD = 0X01; /定时器0 工作方式1 TH0 = 0X4C; /定时50000us TL0 = 0X00; EA = 1; ET0 = 1; TR0 = 1; /*延时子函数 void Delay_1ms(uint z) /1ms延时函数 uint x,y; for(x = z;x 0;x-) for(y = 110;y 0;y-); /*数码管扫描子函数 void Smg_Scan() P2_0= 0; /数码管1位选通 P0 = duanm1; /送段选 Delay_1ms(1); /延时1ms P2_0=1; /数码管1位关断 P2_1=0; /数码管2位选通 P0 = (

9、duanm2& 0x7f); /送段选 Delay_1ms(1); /延时1ms P2_1=1; P2_2=0; /数码管3位选通 P0 = duanm3; /送段选 Delay_1ms(1); /延时1ms P2_2=1; P2_3= 0; /数码管4位选通 P0 = duanm4; /送段选 Delay_1ms(1); /延时1ms P2_3=1; /*中断子函数 void time0() interrupt 1 /yanshi zi chengxu TH0 = 0X4C; /定时50000us TL0 = 0X00; time_n+; if(time_n = 10) /0.5s 到了吗?

10、 LED = LED; if(xz_flg = 1) switch(smg_n) /到了0.5s 对应位的数码管灭 case 0 : m1 = 10;Delay_1ms(500); break; case 1 : m2 = 10; Delay_1ms(500); break; case 2 : m3 = 10; Delay_1ms(500);break; case 3 : m4 = 10;Delay_1ms(500); break; if(time_n = 20) /1s 到了 time_n = 0; miao+; if(miao = 60) miao = 0; fen+; if(fen =6

11、0) zd_flg = 1; /整点标志 shi+; if(shi = 24) shi = 0; m4 = fen % 10; /数码管4显示分钟的低位 m3 = fen / 10; /数码管3显示分钟的高位 m2 = shi % 10; /数码管2显示小时的低位 m1 = shi / 10; /数码管1显示小时的高位 /*键盘扫描子函数 void Key_Scan() if(k1 = 0) /选择键 Delay_1ms(21); /延时20ms if(k1 = 0) /按键1确实被按下 xz_flg = 1; /选择键按下 EA = 0; smg_n+; /改变选择的数码管 if(smg_n

12、 = 4) smg_n = 0; while(!k1) /松手检测 Smg_Scan(); /使按下键时所有数码管都亮 Delay_1ms(21); while(!k1); if(xz_flg = 1) if(k2 = 0) /加1键 Delay_1ms(21); if(k2 = 0)switch(smg_n)case 0 : m1+;if(m1 = 2)m1 = 0;break;case 1 : m2+;if(m2 = 10)m2 = 0;break;case 2 : m3+;if(m3 = 6)m3 = 0;break;case 3 : m4+;if(m4 = 10)m4 = 0;brea

13、k;while(!k2) /松手检测Smg_Scan(); Delay_1ms(21); while(!k2); if(k3 = 0) /减1键 Delay_1ms(21); if(k3 = 0) switch(smg_n) case 0 : m1-; if(m1 = -1) m1 = 2; break; case 1 : m2-; if(m2 = -1) m2 = 9; break; case 2 : m3-; if(m3 = -1) m3 = 5; break; case 3 : m4-; if(m4 = -1) m4 = 9; break; while(!k3) Smg_Scan();

14、Delay_1ms(21); while(!k3); if(k4 = 0) /确定键 Delay_1ms(21); if(k4 = 0) xz_flg = 0; EA = 1; while(!k4) Smg_Scan(); Delay_1ms(21); while(!k4); /*/ void Bao_Shi() uint i,j; /定义循环变量 if(zd_flg = 1) for(j=0;j3;j+) for(i=0;im1;i+) beep=!beep; /蜂鸣器开关 Delay_1ms(80); /延时80ms Delay_1ms(1000); zd_flg = 0; 2.3 简易数

15、字钟硬件分析2.3.1 数字钟的总电路图2.3.2数字钟的硬件单元电路分析(1)最小系统设计图1 单片机最小系统的结构图(2)晶体 (3)常用的复位电路如下图所示: 图3 常用复位电路图(4)最常用的显示器数码管,如下图所示。图4 显示器的符号图(5)显示电路显示模块需要实时显示当前的时间,即时、分,因此需要 4个数码管。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位 分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,显示器的显示 控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位显示器,通常 都是采用动态扫描的方法进行显示,其硬件连接方

16、式如下图所示。图5 数码管的硬件连接示意图(6) 键盘控制电路该设计需要校对时间,所以用三个按键来实现。按 k1 来调节小时的时间,按k2来调节分针的时间。下图是按键硬件连接图。图6 按键控制电路的硬件连接图2.2.3 系统调试各功能模块均调整通过后,进行整机调试,其过程如下:将调好的各功能模块连接在一起,用函数信号发生器模拟交流电压信号,先用仿真机代AT89C2051 单片机进行模拟调试,对每一芯片的片选、启动进行检测,并对数据线和地址线也进行检测。调试成功后再将程序写到单片机中进行调试。3 、课程设计总结 设计之初没有一点信心,感觉设计复杂没有一丝头绪,但是后来结合所学的数字电子技术知识,

17、并且与同学进行交流开始逐步构想、设计、运行检测。现将心得体会总结如下:(1)开始设计之前必须有一个整体的构想,考虑周到,由于接线较多一旦出现错误较难发现和改正,这样可以避免后期调试时出现较少的问题。(2)列出几个方案进行比较选出最简单易行的方案,并进行理论上的排检(3)在设计某些模块的时候无法把握住整体,这时可以先进行小部分功能的实现,在此基础上进行改进,虽然可能会多花一些时间,但这比空想要有效的多。(4)电路连接尽量整洁有序,使各项功能的连接一目了然,方便查看及排查故障(5)很多难点的突破都来自于与同学的交流,交流使自己获得更多信息,开拓了思路,因此要重视与别人的交流。(6)应该有较好的理论

18、基础,整个实验都是在理论的指导下完成了,设计过程中使用了许多理论课上学的内容,如真值表、卡诺图等。本次设计把理论应用到了实践中,同时通过设计,也加深了自己对理论知识的理解和掌握。总体来说,本 设 计 要 求 有 耐 心 和 细 心,有 效 合 了 理 论 与 实 践,将 我 们 所 学 的 书 本 知 识 运 用 于 实 践,培养了我 们 发 现 和 解 决 问 题 的 能 力。参考文献:1康华光主编.电子技术基础-数字部分(第五版).高等教育出版社,2006,5(2):32-342数字电子技术实验指导书3杨素行主编.模拟电子技术简明教程(第三版).高等教育出版社,20054 谢自美.电子线路设计、实验、测试.华中理工大学出版社,20005黄继昌,数字集成电路应用300例人民邮电出版社,2002.16 凌肇元编著,集成电路应用实例集锦。 人民邮电出版社,1998.8课程设计评 语课程设计成 绩指导教师(签字) 年 月 日

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

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