logo资料库

用51单片机设计的时钟电路(毕业论文).pdf

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
www.gogodiy.net 青少年科技制作网 毕业论文 Shaoguan University 作者:kesion 目 录 任 务 书 摘 要 前 言 说 明 书 第 一章 电路原理分析 1-1 显示原理 1-2 数码管结构及代码显示 1-3 键盘及读数原理 1-4 连击功能的实现 第 二 章 程序设计思想和相关指令介绍 2-1 数据与代码转换 2-2 计时功能的实现与中断服务程序 2-3 时间控制功能与比较指令 2-4 时钟误差的分析 附录 A 电路图 附录 B 存储单元地址表 附录 C 输入输出口功能分配表 附录 D 定时中断程序流程图 附录 F 调时功能流程图 附录 G 程序清单 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
www.gogodiy.net 青少年科技制作网 摘要 单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是 集 CPU ,RAM ,ROM , 定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产 品和工业自动化上。而 51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设 计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 前言 本文通过用对一个能实现定时,时钟,日历显示功能的时间系统的设计学习,详细介绍了 51 单片机应用中的数据转换显示,数码管显示原理,动态扫描显示原理,单片机的定时中 断原理、从而达到学习,了解单片机相关指令在各方面的应用。系统由 AT89C51、LED 数码管、 按键、二极管等部分构成,能实现时钟日历的功能:能进行时、分、秒的显示。也具有日历计算、 显示和时钟,日历的校准、定时时间的设定,实现三路开关定时输出等功能。文章后附有电路图 ,程序清单,各数据存储单元的所在地址,输入输出口对应表。以供读者参考。因作者本人也是个 初学者,水平有限,难免有疏落不足之处,敬请老师和同学能给与批评正。 说明书 系统由 AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定 时时间的设定,输出等功能。系统的功能选择由 SB0、SB1、SB2、SB3、SB4 完成。其中 SB0 为时间校对,定时器调整功能键,按 SB 0 进入调整状态。SB1 为功能切换键。第一轮按动 SB1 依次进入一路、二路、三路定时时间设置提示程序,按 SB3 进入各路定时调整状态。定 时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按 SB1 键,依次进入时间 ¡ 年¡ 位校对、¡ 月¡ 位校对、 ¡ 日¡ 位校对、¡ 时¡ 位校对、¡ 分¡ 位校对、¡ 秒¡ 位 校对状态。不管是进入那种状态,按动 SB2 皆可以使被调整位进行不进位增量加 1 变化。各 预置量设置完成后,系统将所有的设置存入 RAM 中,按 SB1 退出调整状态。上电后,系统自 动进入计时状态,起始于¡ 00¡ 时¡ 00¡ 分。SB4 为年月日显示转换键,可使原来显示时分 秒转换显示年月日。 二、电路原理分析 1. 显示原理 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
www.gogodiy.net 青少年科技制作网 电原理图见附图 1。由 6 个共阴极的数码管组成时、分、秒的显示。P0 口的 8 条数据线 P0.0 至 P0.7 分别与两个 CD4511 译码的 ABCD 口相接,P2 口的 P2.0 至 P2.2 分别通过电阻 R10 至 R13 与 VT1 至 VT3 的基极相连接。这样通过 P0 口送出一个存储单元的高位、低位 BCD 显示代码,通过 P2 口送出扫描选通代码轮流点亮 LED1 至 LED6,就会将要显示的数据在数 码管中显示出来。从 P0 口输出的代码是 BCD 码,从 P2 口输出的就是位选码。这是扫描显示 原理。 2. 数码管结构及代码显示 共阴 LED 数码管结构、字段及引脚排列见图 2 图 2 共阴 LED 数码管由 8 只发光二极管 VD1 至 VD8 共阴连接并按¡ 8¡ 字形结构排列而成。 这样,我们将这些二极管的正极接高低不同的电位,把所有的负极接地,当正极为高电位时 相应的二极管就会导通而发光,从而使数码管呈现不同的字符。而只有 P2 相应呈现高电位, VT 个管导通,LED1 的 GND 与地相接,LED 位被选中才具备发光的使能条件;可见,在利用 P2 口送出位选码,使各位轮流得到发光使能条件的同时,通过 P0 口分别送出不同的段选码, 就会在 LED1 至 LED4 中显示出不同的数字来。 3 键盘及读数原理 键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去 抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电 平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里 采用软件延时的方法来避开抖动,延时时间 20ms. 4 连击功能的实现 按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应 的功能会反复执行,好象连续执行,在这里我们采用软件延时 250ms,当按键没释放则 执行下一条对应程序。利用连击功能,能实现快速调时操作。 三、程序设计思想和相关指令介绍 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
www.gogodiy.net 青少年科技制作网 本系统的主程序主要完成时间显示和定时输出判断功能。而年月日显示和各时间单元进 位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。 1.数据与代码转换。 由前述可知,从 P2 口输出位选码,从 P0 口输出段选码,LED 就会显示出数字来。但 P0 口的输出的数据是要 BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达 的含义是不一致的。可见,将要显示的存储单元的数据直接送到 P0 口去驱动 LED 数码管显 示是不能正确表达的,必须在系统内部将要显示的数据经过 BCD 码行转换后,将各个单元数 据的段选代码送入 P0 口,给 CD4511 译码后去驱动数码管显示。 具体转换过程如下: 我们先将要显示的数据装入累加器 A 中,再将 A 中的数据转换成高低两位的 BCD 码, 再放回 A 中,然后将 A 中的值输出。如:有一个单元存储了 45 这样一位数,则需转换成四 位的 BCD 码:(0100)(0101)然后放入 A 中。 A 中 BCD 码,高位四位代表¡4¡低四位代 表¡5¡同时送给两个译码器中,译码后¡ 45¡ 字就在两个 LED 中显示出来。 2.计时功能的实现与中断服务程序 时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器 T0 打开后, 进入计时,满 100 毫秒后,重装定时。中断一次,满一秒后秒进位,满 60 秒后即为 1 分钟, 分钟单元进位,60 分到了后,时单元进位,24 小时满后,天单元进位。这样然后根据进率, 得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送 LED 中显示出来, 实现时钟计时功能。累加是用指令 INC 来实现的。 进入中断服务程序以后,执行 PUSH PSW 和 PUSH A 将程序状态寄存器 PSW 的内容和累 加器 A 中的数据保存起来,这便是所谓的¡ 保护现场¡ . 以保护现场和恢复现场时存取关键 数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内 RAM 中的任一区间设定,而堆栈 的数据存取与一般的 RAM 存取又有区别,对它的操作,要遵循¡ 后进先出¡ 的原则。 3 时钟误差分析 开启定时器/计数器 0,使之开始计时,中断后进入中断程序。自停止计数到、计数又 开始,中间执行了 7 条指令,也就是延迟了 13 个单周期共用时间 26us,这样,每个中断的 总时间应为为 100.026sm,而原来定时是 100ms,,所以,也就是说每次中断定时多了 26um. 这样,可改变计数重装值,使每次中断定时时间为 99.974sm,加上原来的 7 条指令所用的 时间,正好 100sm.计数 10 次得 1s.这样就可得到较精确的计时秒数,然后根据进率,得到 时、分的值。 4 时间控制功能与比较指令 系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先 将执行设备开启的时间和关闭时间置入 RAM 某一单元,在计时主程序当中执行几条比较指 令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条 CLR 指令,将对应的 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
www.gogodiy.net 青少年科技制作网 那路 P3 置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行 SETB 对应的 P3 置低电位,二极管截止,。实现此控制功能用到的比较指令为 CJNE A,#direct, rel,其转移条件是累加器 A 中的值与立即数不等则转移。 参考文献 1、 谢自美,《电子线路设计、实验、测试 》武汉:华中理工大学出版社,2000 2、 何书森、何华斌《实用数字电路原理与设计速成》福州:福建科学技术出版社,2000.6 3、 白驹衍, 《单片计算机及应用》北京:电子工业出版社, 1999.2 DPY a g d b c dp DPY a g d b c dp 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 f e DS? a b c d e f g dp RES2 DS? a b c d e f g dp RES2 e f f e DS? a b c d e f g dp RES2 DS? a b c d e f g dp RES2 e f DPY a g d b c dp DPY a g d b c dp 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 f e DS? a b c d e f g dp RES2 DS? a b c d e f g dp RES2 e f U? CAP U? CAP U? CAP DPY a g d b c dp DPY a g d b c dp 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 7 1 2 6 3 4 5 U? A B C D LT BI LE 4511 A B C D E F G 13 12 11 10 9 15 14 +5 7 1 2 6 3 4 5 U? A B C D LT BI LE 4511 13 12 11 10 9 15 14 A B C D E F G 2k CAP 2k CAP 2k CAP P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 RXD TXD ALE/P PSEN 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 30 29 U? U? CAP U? CAP CAP 500 RES2 500 RES2 500 RES2 U? CAP CAP U? CAP U? U? CAPU? CAP +5 U? CAP 30p RES2 30p RES2 C? RES2 R? RES2 +5 1 2 3 4 5 6 7 8 13 12 15 14 31 19 18 9 17 16 U? P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR 8031 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
www.gogodiy.net 青少年科技制作网 进入定时中断 程序(最高级) 中断 T0 秒分时日月年 进位 主程序 开始 显 示 / 定 时 判 断 / 开 定 时 中 断 调 用 程 序条件 与 设 定 时同? 按 SB4? 按 SB0? 中断 0 中断 1 对 P0.3\P0.4\P0.5 应 输出 转换 显示年月日 (3S 返回) 调整时间 (改变时间存储 值) 设定定时(三 路定时) 返回主程序 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
www.gogodiy.net 青少年科技制作网 定时中断程序流程图 定时中断 重装定时常数 加 100ms 整秒 调整秒单元 整分 调整分单元 整时 调整时单元 整日 调整日单元 整月 月判断 调整月单元 整年 调整年单元 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
中断开始(SB0) www.gogodiy.net 青少年科技制作网 调时功能流程图 按 键 扫 描开始 按 SB1 按 SB3 进入 1 路调 调整 2 路 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 调整 3 路 单元加 1 单元加 1 年单元 月单元 日单元 单元加 1 单元加 1 单 元 加 关定时 调整年单元 时单元 分单元 调 整 月 单 调整时单元 调整日单元 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB3 按 SB2 按 SB1 按 SB1 调整秒单元 调整分单元 中断返回 开 www.gogodiy.net 青少年科技制作网 C r e a t e d w i t h n o v a P D F P r i n t e r ( w w w . n o v a P D F . c o m )
分享到:
收藏