电子闹钟_毕业设计(编辑修改稿)内容摘要:

上电自动复位,也能手动复位,一般复位时 RESET 应保持 20 毫秒以上高电平,此复位时间由接地电容控制。 图 复位电路 键盘电路 如图 ,各设置及转换信号由此电路输入,实验板提供了 16 个按键,由 P1口经 SN74F244(驱动芯片)输出扩展成 4 4的阵列按键,~ 为行线, ~ 为列线。 SN74F244有一片选信号线 G ,当此口线为低电平时, A1~ A4与 Y1~ Y4 接通,反之, A1~ A4 与 Y1~ Y4断开。 此键盘用扫描工作方式,若有键按下,则相应位端口被拉低为低电平,由于本系统只用了 4个按键,所以只需对 4 个按键进行扫描。 扫描时,先置 口为高电平,向 P1 口送 0EFH( MOV P1, 0EFH),再置 口为低电平,读 P1口( MOV A, P1),最后判断 P1口低 4 位哪位是低电平,若某位为低电平,则相应按键被按下,如 为低电平( =0),则 K1 键被按下。 7 图 阵列按键 数码显示电路 如图 所示为数码显示电路,实验板使用了 6 个共阳数码管, P0 口为段码信号线, B1~ B6为位控线,是 P1 口经 SN74F573(反向驱动芯片,即输入为高电平,则输出为低电平,反之则输出为高电平,该芯片也有一片选信号 C,当此信号为高电平时有效)反向得到,再由 B1~ B6控制晶体管 Q1~ Q6,以达到控制每位数码管的目的。 系统采用动态显示,先向 P0口送第一位数码管需要显示的段码值,再给 P1口送 0FEH,延时 1毫秒使第一位数码管显示,又向 P0 口送第二位数码管需要显示的段码值, P1 口送 0FDH,延时 1 毫 秒,使第二位数码管显示。 依次递推,直到最后一位数码管,然后再循环。 改变延时时长可以调节数码管显示的亮度,由于单片机执行速度很快(微秒级),所以看上去数码管一直亮着。 图 数码显示电路 8 第三章 系统 软件 设计 数据单元分配 数据存储单元分配如表 所示: 表 数据存储单元分配 项目 秒 分 时 日 月 年 存储单元 30H 31H 32H 33H 34H 35H 项目 定时 1:开关 定时 1:分 定时 1:时 定时 2:开关 定时 2:分 定时 2:时 存储单元 36H 37H 38H 39H 3AH 3BH 项目 定时 3:开关 定时 3:分 定时 3:时 存显示首地址 堆栈起始单元 存储单元 3CH 3DH 3EH 3FH 50H 标志位单元( 20H)分配如 表 : 表 标志位单元( 20H)分配 位单元 项目 位单元 项目 01H 2位数码管闪烁标志位 08H 定时 1 显示标志位 02H 09H 定时 2 显示标志位 03H 4位数码管闪烁标志位 0AH 定时 3 显示标志位 04H 0BH 定时 1 响铃标志位 05H 6位数码管显示标志位 0CH 定时 2 响铃标志位 06H 0DH 定时 3 响铃标志位 07H 日期显示标志位 0EH 总响铃标志位 时钟程序设计步骤 系统采用模块化结构,主程序只需调用各个子程序模块即可实现相应功能。 其模块结构图如图。 9 图 模块结构图 计时子程序模块的实现 当 T0 中断时,执行本程序,因 T0 设为 50毫秒中断,故中断 20 次为 1秒。 中断程序分别有 20 次计数( 1秒), 60 次计数( 1分), 60 次计数( 1小时), 24次计数( 1 天), 2 2 31 次计数( 1 个月), 12 次计数( 1 年)。 当前位到设定数值时写 0 或 1,下一位加 1。 由于本世纪是 21 世纪,年位前两位是 4的倍数,故判断闰年时只需对年的后两位进行计算,能被 4 整除为闰年,否则为平年,年位只进行加 1,大于 99时又重新开始。 计时中断流程图如图 所示。 10 图 计时子程序流程图 图 显示子程序流程图 时钟设定子程序模块的实现 当设定时间时,断开 T0 中断,秒单元清 0,进入时、分单元设定。 设定好后重装 T0 初值,开 T0中断。 流程图如图 所示。 11 图 时钟设定子程序 流程图 程序说明 定时器初值计算 因定时器工作于方式 1,需要 50ms 的中断,所以计数初值 : χ =216 t fosc/ 12=65536 50 103 106/ 12=19456 表示成十六进制为χ =4C00H,故( TH0) =4CH,( TL0) =00H。 程序初始化 程序初始化时,清相应内存单元( 20H~ 4FH 共 48 个单元),送时间( 00 时00分 00 秒)、日期( 07年 10月 01 日)初值,送定时器 T0、 T1 初值, TH0= TH1=4CH,TL0= TL1=00H,特殊寄存器( SP=50H、 TMOD=11H)值等。 误差分析及校正 当 T0 中断时,需重装定时初值,且要加上从断开 T0 中断到允许 T0 中断共有 13 个周期,以减小误差,故理论重装定时初值为( TH0) =4CH,( TL0) =13H。 但该外接晶振电路的晶振频率可调,可能出现误差,所以实际不是这个值。 经调试,当定时初值为( TH0) =4CH,( TL0) =06H 时,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。