单片机自动打铃系统设计毕业论文(编辑修改稿)内容摘要:

SOIC 150mil 图三 DS1302 单元电路的设计 时钟电路 设计 ( 2) 工作原理 DS1302 在任何数据传送时必须先初始化,把 RST 引脚置为高电平,然 后把 8位地址和命令装入移位寄存器,数据在 SCLK 的上升沿被输入,无论是读周期还是写周期开始 8 位指定 40 个寄存器中哪个将被访问到,在开始 8 个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,时钟脉冲的个数在单位字节下为 8 加 8,在多字节方式下为 8 加字节数,最大可达 248 字节数。 为了提高对 32 个地址的寻址能力,可以把时钟或 RAM 寄存器规定为多字节方自动打铃系统设计 11 式,在多字节方式中,读或写从地址 0 的位 0 开始,必须管按数据传送的次序电先的 8 个寄存器。 但是当以多个字节写 RAM 时,为了传 送数据不必写所有 31 字节,不管是否写了全部 31 字节,所写的每个字节都将传送至 RAM。 时钟暂停:秒寄存器的位 7 定义位时钟暂停位,当它为 1 时, DS1302 停止振荡,进入低功耗的备份方式,通常在对 DS1302 进行写操作时,停止振荡,当它为 0 时时钟将开始启动。 8051 通过串口向 DS1302 写数据的程序框图如图 ,其中 ,Px 可以是 8051 单片机的任何一位 I/O 口 ,注意因为 DS1302 的数据发送或接收时序和 8051 的串行口不完全一致 ,因此 ,需要在 TXD 的输出端加反相器 ,另外 ,接收数据时 ,不能以串行口的接收方式接 收 ,必须将串行口当作普通 I/O 口进行数据接收 . DS1302 的晶振选用 ,电容推荐值为 6PF,因为振荡频率较低,也可以不接电容, 对计时精度影响不大。 图 DS1302 写数据的程序框图 显示电路设计 显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数码管分别为十时,时,十分,分,十秒,秒显示,显示时采用串行口输出段码,用 74LS164 来驱动数码管扫描只需 7ms。 4LS164 内部位 8 个 D 触发器,用以实现数据的串行移位, 74LS164 位 TTL 单向 8 位移位寄存器,可实现串行输入并行输出, CPU 位时钟输入端,可接到串行口TXD 端。 每个时钟信号的上升沿加到 CP 端时,移位寄存器移一位, 8 个时钟脉冲过后, 8 为二进制数个部移入 74LS164 中, MR 为复位端,当该位为低电平时,移位寄存器各位复 O。 当它为高电平时时钟脉冲才起作用。 8051 PX TXD RXD Vcc1 Vcc2 DS1302 RST SCLK I/O X2 江苏信息职业技术学院毕业设计(论文) 12 图 四 显示电路 键盘接口电路设计 由于键盘只有四个,采用独立式按钮,分别与 8051 的 , , 相连 ,用普通按钮 10K 上拉电阻,用查询法完成读健功能。 图 五 按键电路 响铃电路设计 响铃电路用到了蜂鸣器、三极管、 1K 电阻。 蜂鸣器两端分别接地和三极管。 三极管一段电源另一端与电阻相连并接入 AT89C51 的 接口。 自动打铃系统设计 13 图 六 响铃电路 总体运行进程 首先实现 24 小时制电子钟,在 8 位数码 管显示,显示为时分秒,实现的格式为:235959。 到达预定时间启动蜂鸣器开始打铃,打铃的方式分为起床、熄灯和上下课铃两种。 系统使用了 4 个按键, 3 只按键用来调整时间,另一只为强制打铃按钮。 通过选择键选择调整位,选中位闪烁,按增加键为选中位加 1,按减少键为选中位减 1。 按强制打铃按钮是实现强制打铃或者强制关闭打铃。 第三章 软件电路设计及流程图 基本原理概述 主程序首先是初始化部分,主要是计时单元清零,中断初始化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。 主程序的起始存 储地址是 0000H 单江苏信息职业技术学院毕业设计(论文) 14 元,但由于本系统用了定时器 T0 的中断,中断服务程序入口地址为 000BH,因此从0000H 单元起存放一条短调转指令 AJMP,使真正的主程序从 0300H 单元开始存放。 中断服务程序设计 单片机内部的定时 /计数器 T0 定时 100ms,即 , 10 次中断即为 1 秒, 60 秒为 1 分, 60 分为 1 小时, 24 小时为一天,如此循环,从而实现计时功能。 编写中断服务程序关键要注意: ,本系统中是累加器 A 和程序状态字 PSW 值的保护。 ,因此时,分,秒单元加 1 后要进行十进制调整,即要执行 DAA 指令,还要注意的是时计到 24 就回零,分和秒计到60 就回零。 显示程序设计和按键判断与按键处理程序设计 显示采用的是动态显示,段控和位控都经过反相器,显示的字形代码是共阳的显示代码,位控信号输出时是高电平有效,在校时时,采用的是点亮小数点信位调节器标志,哪位小数点亮表示调整的是该为的值。 显示子程序的第一部分是拆字,显示缓冲区是 2FH—2AH;第二部分是查字型码,输出段控和位控信号,由于采用 的是动态显示,所以每出输出一位的段控和位控信号要延时一定的时间,使 LED 显示器显示的字符时稳定的。 按键判断程序有编写时应注意按键的去抖动,该系统采用的是延时去抖动的方法,延时是通过调用子程序来实现的,每个按键按下后都要等待释放后再返回。 按键处理程序中的按键式校时的,所以进入按键处理程序后就关闭定时中断,对于动能键注意设置显示标志。 自动打铃系统设计 15 流程图 系统主程序流程图 江苏信息职业技术学院毕业设计(论文) 16 系统定时中断流程图 自动打铃系统设计 17 第四章 系统程序设计 程序设计概要 程序名称: 51 单片机自动扫铃机控制系统 说 明:实现 24 小时制电子钟, 8 位数码管显示,显示时分秒显示格式: 235959(小时十位如果为 0 则不显示)。 到预定时问启动蜂鸣器模拟打铃,蜂鸣器 BEEP:。 打铃方式分起床、熄幻铃和上、下课铃两种。 系统使用 4 只按键, 3 只按键用来调整时间,另一只为闹钟按钮即定时扫铃。 键 SET_KFY: ;通过选择键选择调整位,选中位闪烁。 增加键 ADD_KEY: ;按一次使选中位加 1。 减少键 DEC_KEY: ;按一次使选中位位。 1 如果长按 ADD_KEY 或 DEC_KEY,识 别后则进行调时快进,此时停止闪烁。 如果选中位是秒,则按增加键或减少键都是将秒清零。 定时扫铃键 DALING_KEY: ;用来强制打铃或强制关闭铃声 PO 口输出数码管段选信号, P2 口输出数码管位选信号。 晶振 12M 江苏信息职业技术学院毕业设计(论文) 18 源程序清单 根据以上流程图思想,现设计系统程序思路描写如下系统的主程序如下所示: BEEP EQU ;定义蜂 l 鸣器(电铃)控制信号输出口 ORG 0000H ;程序入日地址 LJMP START ORG 000BH ;定时器 0 中断入日地址 LJMP TIMER_O ORG 0300H / * * * * *程序开始,初始化* * * * * / START : SETB BEEP ;关闭蜂鸣器(电铃) SETB 48H ;使用一个 bit 位用于调时闪烁标志 SETB 47H ;使用一个 bit 位用十产生脉冲用十调时快进时基 CLR 45H ;关闭响铃方式标志 MOV RI, 0 调整选择键功能标志: 0 正常走时、 1 调时、 2 调分、 3 调秒 MOV 20H, 00H;用于控制秒基准时钟源的产生 MOV 21H, 00H;清零秒寄存器 MOV 22H, 00H;清零分寄存器 MOV 23H, 00H;清零时寄存器 MOV 24H, 00H;用于控制调时闪烁的基准时钟的产生 MOV IP, 02H。 IP,IE 初始化 MOV IE, 82H MOV TMOD, olH;设定定时器 01 作方式 1 MOV THO, 3CH 自动打铃系统设计 19 MOV TLO, oBoH;赋定时初值,定时 50ms SETB TRO;启动定时器 0 MOV SP, 4OH;重设堆栈指针 / * * * * *主程序* * * * * / MAIN : CJNE R1, 00H, MAINl; 是否为正常走时状态 LCALL BIJIAO1;调用起床、熄灯打铃比较子程序 LCALL BIJIAO2;调用上、下课少打铃比较子程序 LCALL DALING ;调用响铃方式执行子程序 MAIN1 : LCALL DlSPLAY;调用显示子程序 LCALL KEY_SCAN;调用按键检测子程序 JZ MAIN;无键按下则返回重新循环 LCALL SET_KEY;调用选择键处理子程序 JB 46H, MAIN ;如果已进行长按调招(调时快进),则不再执行下面的单步调整 LCALL ADD_KEY;调用增加键 处理子程序 LCALL DEC_KEY; 躺用减少键处理子程序 LCALL DALING_KEY;处理强制打铃 /强制关闭铃声键 LJMP MAIN;重新循环 程序结束 (主程序中引用到的字程序如下) / * * * * *定时中断服务程序 * * * * * /。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。