电子时钟设计论文_第1页
电子时钟设计论文_第2页
电子时钟设计论文_第3页
电子时钟设计论文_第4页
电子时钟设计论文_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计毕业设计 作息时间控制系统作息时间控制系统 系 别 专 业 班 级 姓 名 学 号 指导老师 2010 2011 学年第一学期 1 课程设计题目 课程设计题目 作息时间控制系统 2 课程设计任务与要求 课程设计任务与要求 1 作息时间能控制电铃 2 作息时间能启动和关闭电铃 单片机作息时间控制的功能如下 使用 6 位七段显示器来显示现在的时间 精确到时 分 秒 可以在时钟开启前设置现在的时间 可以在设置的时段内 分上下午和上下课 响铃 3 规定 每节课的开始和结束都要打铃 10 秒 中午有午休 3 设计过程设计过程 机关 企业特别是学校都要求对作息时间加以控制 要按时打铃 以保证 学习和工作的正常进行 一般大学大学的作息时间如下 1 控制电铃通断的控制信号 可用 P1 1 作控制信号 2 系统主程序是电脑时钟程序 但要增加一段打铃的子程序 将当前时间去打 铃特征时间对比 如符合条件则打铃 否则将铃关闭 4 系统总体方案及硬件设计系统总体方案及硬件设计 2 12 1 系统总体方案系统总体方案 1 系统分析 基于单片机系统的作息时间控制器的基本结构框图如图 1 1 所示 该系统 主要包含输入控制电路 晶振复位电路 LED 显示电路等外围电路组成 晶振 复位 电路 图 2 1 作息时间控制系统的功能模块 2 系统的功能划分 硬件功能 按键输入控制电路 晶振 复位电路 LED 显示器段码驱动电路 LED 显示器位码驱动电路 4 位 LED 显示电路 蜂鸣器电路都是有硬件功能来 实现 软件功能 LED 动态显示 时钟计时 按键判断和处理都是有软件功能来实 现 3 机型器件选择 单片机采用 AT89S52 型号 轻触按键 发光二极管 4 位七段 LED 数码管 共阴极 蜂鸣器 2 22 2 硬件设计硬件设计 基于单片机的作息时间控制器其硬件电路方框图如图 2 2 所示 有图可知 硬件电路有 8 个部分组成 即单片机按键输入电路 单片机时钟电路 复位 电路 LED 显示器段码驱动电路 LED 显示器位码驱动电路 4 位 LED 显示电路 蜂鸣器电路 单片机 LED 显示 输入控制 蜂鸣器报警 单片机 4 个按键 输入电路 时钟电路 复位电路 蜂鸣器电路 LED 显示器段 码驱动电路 LED 显示器位 码驱动电路 4 位 LED 显示电 路 图 2 2 作息时间控制器硬件方框图 2 2 12 2 1 单片机及程序存储器选择单片机及程序存储器选择 由于完成该系统功能的程序不会超过 8KB 而 AT89S52 内部有 8KB 的 FLASH 存储器 因而不需外扩程序存储器和数据存储器 AT89S52 的引脚排列与功能 见图 2 3 所示 89S52 引脚功能介绍 VCC 5V GND 地 ALE 地址锁存允许 PSEN 程序存储器允许 EA VPP为 0 访问外部程序存储器为 1 访问内部程序存储器 RST复位信号输入 XTAL1 XTAL2 外部晶振 P0 0 P0 7 I O 端口 P0 口 P1 0 P1 7 I O 端口 P1 口 P2 0 P2 7 I O 端口 P2 口 P3 0 P3 7 I O 端口 P3 口 2 2 22 2 2 时钟与复位电路的设计时钟与复位电路的设计 单片机工作的时间基准是有时钟电路提供的 在单片机的 XTAL1 和 XTAL2 两个引脚 接一只晶振及两只电容就构成了单片机的时钟电路 如原理图所示 电路中 电容 C4 和 C5 对晶振频率有微调作用 通常的取值范围为 3010 pF 石英晶体选择 12MHz 选择不同的石英晶体 其结果只是机器周期不同 影响计数器的计数初值 单片机的复位方式有上电自动复位和手动复位两种 本设计系统采用上电 自动复位和手动复位组合电路 如原理图中单片机的 RST 引脚连接 R1 10K C3 10 按键 S2 可以选择专门的复位按键 也可以选择轻触开关 只F 要 Vcc 上升时间不超过 1ms 它们都能很好的工作 2 2 32 2 3LEDLED 显示电路设计显示电路设计 单片机应用系统中 通常都需要进行人机对话 这包括人对应用系统的状 态干预与数据输入 以及应用系统向人们显示运行状态与运行结果等 LED 显示电路由段驱动电路和位驱动电路组成 由于单片机的并行口不能驱 动 LED 显示器 必须采用专门的驱动电路芯片 使之产生足够大的电流 显示 器才能正常工作 如果驱动电路能力差 即负载能力不够 显示器亮度就低 而且驱动电路长期在超负荷下运行容易损坏 LED 显示器的显示控制方式分为静态显示和动态显示两种 若选择静态显示 则 LED 驱动器的选择较为简单 只要驱动器的驱动能力与显示器的电流相匹 配即可 而且一般只需考虑断的驱动 动态显示则不同 由于一位数据的显示 是由段和位选信号共同配合完成的 因此 要同时考虑段和位的驱动能力 而 且段的驱动能力决定位的驱动能力 本系统采用并行驱动动态显示 采用单片机 P2 口的低 4 位作为 LED 的位码 输出信号 P0 口作为段码输出信号 该驱动电路如原理图所示 P0 口作为段码 输出信号需外接上拉电阻 图 2 3 为 4 位共阴极数码管带时钟的引脚图 图 2 3 4 位共阴极数码管带时钟的引脚分布 4 位共阴极数码管带时钟的引脚分布 正面逆时针方向依次为 1 12 段码引脚连线为 A 11 B 7 C 4 D 2 E 1 F 10 G 5 D5 3 D6 3 位码引脚连线为 DIG 1 12 DIG 2 9 DIG 3 8 DIG 4 6 按键电路设计按键电路设计 作息时间控制器系统在工作时应具备两项基本功能 一是随时改变定时 作息时间 时间 二是随时对当前时间进行调整 要实现这一功能 可以接入 键盘输入电路 键盘结构可以分为独立式键盘和行列式键盘 矩阵式 两类 本系统只需 4 个按键 因此选择独立式按键 如原理图所示 电路有 4 按键组成 按键采 用轻触开关 分别命名为 KEY1 KEY2 KEY3 KEY4 KEY1 和 KEY2 配合完成对 时间的调整 KEY3 实现功能切换 KEY4 实现查看作息时间 2 2 42 2 4蜂鸣器电路设计蜂鸣器电路设计 设计要求定时时间到 要有到时提示 可以选择一只蜂鸣器 HA 作为三 极管 VT1 的集电极负载 当 VT1 导通时 蜂鸣器发出呜叫声 VT1 截止时 蜂 鸣器不发声 R5 是限流电阻 图 2 4 为蜂鸣器驱动电路 图 2 4 蜂鸣器驱动电路 蜂鸣器用三极管 VT1 的基极接到单片机的 P1 7 管脚 当 P1 7 0 时 VT1 导 通 使蜂鸣器的两个管脚间获得将近 5V 的直流电压 蜂鸣器中有电流通过 而 产生蜂鸣声 当 P1 7 1 时 VT1 截止 蜂鸣器的两个管脚间的直流电压接近 于 0 蜂鸣器不发生 5 软件主要模块流程图及源程序和程序注释 软件主要模块流程图及源程序和程序注释 1 主程序主程序 本设计计时采用定时器 T0 中断完成 其余状态循环调用显示子程序 2 显示子程序显示子程序 数码管显示的数据存放在内存单元 3E 3D 3C 3B 3A 中 其中 3A 39 存放秒 的十位和个位 3C 3B 存放分钟的十位和个位 3E 3D 存放小时的十位和个位 每一个地址的单元内均为十进制 BCD 码 由于采用软件动态扫描实现数据显 示功能 显示用十进制 BCD 码对应码段存放在 ROM 表中 显示时 取出 39 3E 某一地址中的数据 然后查得对应的显示码段输出显示 3 定时器定时器 T0 中断服务程序中断服务程序 定时器 T0 用于时间计时 定时溢出中断周期为 50ms 中断累计 20 次 即 1s 时对秒计数单元进行加 1 操作 秒满 60 进位清零 分满 60 进位清零 时满 24 清零 4 打铃控制子程序打铃控制子程序 采用特征比较的方法 步骤 1 先将小时数扫描对比 若大于等于 8 小于等于 11 大于等于 14 小 于等于 17 则进行步骤 2 否则关闭电铃 步骤 2 再将分钟数扫描对比 若为 00 或 50 则转入步骤 3 否则关闭电铃 步骤 3 再将分钟数扫描对比 若大于等于 00 且小于等于 10 则向 P1 1 输出 低电平 打铃 否则关闭电铃 具体流程图如图 图三 图三 打铃子程序流程图 源程序及注释 作息时间控制器作息时间控制器 SIGN BIT 2AH 设置按键输入完毕标志位为 设置按键输入完毕标志位为 SIGN ORG 0000H LJMP START ORG 000BH LJMP TIME0 设置定时器 设置定时器 0 的中断程序入口的中断程序入口 ORG 0013H LJMP IINT1 设置中断 设置中断 1 的中断程序入口的中断程序入口 START MOV SP 60H 设置指针 设置指针 MOV 31H 250 MOV 32H 16 MOV TMOD 02H 设置定时器为方式 设置定时器为方式 2 工作 自动载入工作 自动载入 初值初值 MOV TH0 06H MOV TL0 06H MOV IE 86H 允许 允许 CPU 中断 外部中断 外部 1 中断和定时器中断和定时器 的中断的中断 CLR IT1 开外部中断 开外部中断 1 CLR SIGN 清标志位 清标志位 MOV DPTR 5FFFH MOV A 0DCH 将显示 将显示 RAM 全部置全部置 1 MOVX DPTR A WAIT MOVX A DPTR JB ACC 7 WAIT 清除完毕 清除完毕 MOV A 00H 设置为 设置为 8 8 左边输入左边输入 MOVX DPTR A MOV A 34H 20 分频分频 MOVX DPTR A MOV R2 6 输入是 输入是 6 位数位数 MOV R1 39H 显示数据存放首地址 显示数据存放首地址 CLEAR MOV R1 00H INC R1 DJNZ R2 CLEAR 全部清零 全部清零 LCALL DISP MOV R3 06H KEYIN JNB SIGN KEYIN CLR SIGN LCALL DISP 扫描到键盘输入了一个新字符则调 扫描到键盘输入了一个新字符则调 用显示用显示 DJNZ R3 KEYIN CLR EX1 SETB TR0 时钟 时钟 0 启用启用 LOOP JNB 00H NEXT 00H 作作 1 秒到标志秒到标志 CLR 00H ACALL T0SERVE 调用时间步进子程序 调用时间步进子程序 LCALL RING 调用铃声时间对比子程序 调用铃声时间对比子程序 LCALL DISP 调用显示子程序 调用显示子程序 NEXT SJMP LOOP TIME0 DJNZ 31H CCC MOV 31H 250 DJNZ 32H CCC MOV 32H 16 SETB 00H CCC RETI T0SERVE MOV A 39H ADD A 01H 秒数加一 秒数加一 MOV 39H A CJNE A 0AH EXIT MOV 39H 00H 秒的个位逢十进一 秒的个位逢十进一 MOV A 3AH ADD A 01H MOV 3AH A CJNE A 06H EXIT MOV 3AH 00H 秒的十位逢六进一 秒的十位逢六进一 MOV A 3BH ADD A 01H MOV 3BH A CJNE A 0AH EXIT MOV 3BH 00H 分钟的个位逢十进一 分钟的个位逢十进一 MOV A 3CH ADD A 01H MOV 3CH A CJNE A 06H EXIT MOV 3CH 00H 分钟的个位逢六进一 分钟的个位逢六进一 MOV A 3EH SWAP A ADD A 3DH 合并小时数 合并小时数 ADD A 01H DA A MOV R7 A ANL A 0FH MOV 3DH A MOV A R7 SWAP A ANL A 0FH MOV 3EH A MOV A R7 CJNE A 24H EXIT 小时数逢二十四清零 小时数逢二十四清零 MOV 3DH 00H MOV 3EH 00H EXIT RET RING MOV A 3EH SWAP A ADD A 3DH 将小时的显示值合并载入 将小时的显示值合并载入 A 中中 MOV R7 A 将小时数装入 将小时数装入 R7 寄存寄存 SUBB A 08H 小时数与 小时数与 8 比较比较 JC OFF MOV A R7 将小时的显示值合并载入 将小时的显示值合并载入 A 中中 SUBB A 11H 小时数与 小时数与 11 比较比较 JC N1 JZ N1 MOV A R7 将小时的显示值合并载入 将小时的显示值合并载入 A 中中 SUBB A 14H 小时数与 小时数与 14 比较比较 JC OFF MOV A R7 将小时的显示值合并载入 将小时的显示值合并载入 A 中中 SUBB A 17H 小时数与 小时数与 17 比较比较 JC N1 小时条件符合则继续 小时条件符合则继续 JZ N1 小时条件符合则继续 小时条件符合则继续 AJMP OFF N1 MOV A 3CH SWAP A ADD A 3BH 将分钟的显示值合并载入 将分钟的显示值合并载入 A 中中 SUBB A 00H 分钟数与 分钟数与 00 比较比较 JZ N2 分钟条件符合则继续 分钟条件符合则继续 MOV A 3CH SWAP A ADD A 3BH 将分钟的显示值合并载入 将分钟的显示值合并载入 A 中中 SUBB A 50H 分钟数与 分钟数与 50 比较比较 JZ N2 分钟条件符合则继续 分钟条件符合则继续 AJMP OFF N2 MOV A 3AH SWAP A ADD A 39H 将秒的显示值合并载入 将秒的显示值合并载入 A 中中 SUBB A 10H 秒数与 秒数与 10 比较比较 JZ RRR JC RRR 小时 分钟 秒都符合则启动打铃 小时 分钟 秒都符合则启动打铃 AJMP OFF RRR CLR P1 0 启动铃 启动铃 AJMP EXT OFF SETB P1 0 关闭铃 关闭铃 EXT RET IINT1 PUSH ACC PUSH PSW PUSH DPH PUSH DPL 保护断点 保护断点 CLR EA 关 关 CPU 中断中断 MOV A 40H MOV DPTR 5FFFH MOVX DPTR A MOV DPTR 5EFFH MOVX A DPTR MOV 35H A 取键盘输入值进入内存 取键盘输入值进入内存 MOV B 10 SUBB A B JC DDD CLR A AJMP EEE DDD MOV A 35H 输入值小于 输入值小于 10 则存入则存入 EEE MOV 3EH 3DH MOV 3DH 3CH MOV 3CH 3BH MOV 3BH 3AH MOV 3AH 39H MOV 39H A 前五位全班前移一位 将 前五位全班前移一位 将 A 内的值显示内的值显示 在最后一位在最后一位 SETB SIGN 将按键输入结束标志位置 将按键输入结束标志位置 1 SETB EA POP DPL POP DPH POP PSW POP ACC 弹出断点 弹出断点 RETI DISPLAY DISP MOV 55H DPH MOV 56H DPL 保护断点 保护断点 MOV A 92H CPU 将要写入显示的将要写入显示的 RAM 的的 地址为地址为 2 MOV DPTR 5FFFH MOVX DPTR A MOV R4 06H MOV R0 39H BBB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论