课程设计论文-基于单片机的多功能电子表设计内容摘要:
改方法参见程序优化)。 当不响铃并且生日标志 BS 有效时显示 HAPPY 其单列开来。 本程序由生日标志 BS控制,当到达生日时间时,T0 中断程序会将 BS 置 1 使之有效在显示主程序中通过判断 BS 的置来控制是否执行本模块 标 志 BS 有效时显示 HAPPY 其单列开来。 本程序由生日标志 BS控制,当到达生日时间时, T0 中断程序会将 BS 置 1 使之有效在显示主程序中通过判断 BS 的置来控制是否执行本模块⑤ 闹铃及整点报时判断程序( EIGHT) 在显示主程序中每隔一段时间调用一次本程序来实现闹铃及报时功能。 符合闹铃条件时,每调用一次本程序对 取反一次,调节调用的时间间隔便可以调节报时的输出频率。 在主程序中设置每完成对一个数码管的显示变调用一次本程序,显示一个数码管的时间大约为 1ms,因此响铃频率高音约为 500Hz,低音约为 250Hz。 程序判断闹铃使能 RE后分成两个分支,当 RE=A1时判断闹铃条件是否满足,满足则对 取反一次,否则跳转判断整点报时条件是否满足。 当 RE=0 时,直接怕暖整点报时条件是否满足。 判断整点报时条件时当当前时间满足: ( MIN=59) ∩ ( SECOND=59) ∩ ( COUNT10) 时报高音;当满足: (MIN=59)∩(SECOND=51/53/55/57) ∩(COUNT10) 时报低音。 利用位寻址区来存储 SECOND 的方法, (SECOND50)∩(=1) 时便满足报低音的秒条件。 利用 TO 中断次数存储器 COUNT 的大小可以判断是否到了后半秒( T0 每 50ms 中断一次,中断 20 次到达一秒)。 通过增加一个标志位 FC来时下对高低音的区分,高音不受 FC 的影响,低音只有当 FC=0 的时候才对 取反一次。 1 并且每调用一次本程序便对 FC取反一次,便达到每调用两次取反一次 的效果。 本程序的执行时间小于 40us,因此多次调用不过分影响执行。 ⑥ 中断( TO)计时程序( NINE) 中断计时程序的流程比较简单。 程序除实现正常走时外还需要判断是否到达生日时间置生日标志位有效。 程序的输出均为 BCD 码,方便了显示程 序对高低位的分离并查表显示。 程序比较复杂的地方在于对平闰年及大小月的判断。 把月 MONTH 存储在位寻址区,当 MONTH=02H 时判断是否是平闰年,先将年由 BCD 码转化为二进制码,此时当年的后两位为全零的时候为闰年(由于只显示年的个位和十位,由 2020 年开始,00年、 04 年 „ 为闰年,其共同特点就是二进制后两位为零),否则为平年。 当 MONTH≠2时判断是否为大小月, MOUTH7 时单月(即 =1 的月)为大月,否则为小月;当 MONTH7 时双月为大月。 ⑦ 中断( T1)预置程序( TEN) T1通过中断 INT0 控制开启或关闭,每次定时 50 毫秒,存储地址 COUNTS 计数 15次执行一次中断程序。 由开关( K0,K1)控制预置项目,通过开关 K2/K3/K4 来分别控制 LED12/LED34/LED56 的预置,当两个开关都是有效时,具有优先级的区分,确保无论按几个开关都最多只有一个项目被预置。 判断预置的优先级顺序是: LED34LED12LED56 这样安排的原因是由于根据生活经验 LED34 所对应的 4个项目(小时、闹铃分、月、生日日)被预置的可能性最大。 在预置日期和生日是要注意对大小月及平闰年进行判断(判断方法与中 断计时程序中说明的方法类似,但不需要考虑进位)且月和日在溢出后应置一而不是 归零。 ⑧ 中断( INT0)设定程序( ELEVEN) 中断 INT0 设置是否进行预置以及对生日标志的清除。 且有如下设置顺序:清除预置信号并关 T1清除生日标志 设定预置信号并开 T1。 每按一次中断都只执行其中一个项目 1 总结 在 赵宇红 老师耐心的指导下,我顺利完成了这次单片机课程设计课题中的多功能电子表的 设计, 通过这次的设计使我认识到 本人 对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用, 尤其是对程序设计语句的理解 和运用,不能够充分理解每个语句的具体含义,导致编程的程序过于复杂,使得需要的存储空间增大。 损耗了过多的内存资源。 本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。 在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的 多功能电子版表 设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争 ,同时 在查找资料的过程中 我也 学到了许多 新的知识 ,在 和同学 协作过程中增进同学间的友谊 ,使我对团队 精神的积极性和重要性有了更加充分的理解。 2 致谢 最后,感谢尹进田老师对我的细心的指导,正是由于尹老师的细心的辅导和他提供给我们的参考资料,使得我的课程设计能够顺利的完成,同时 感谢所以 在课程设计过程中 给于我帮助过的老师和同学 , 非常感谢。 张婷 2020 年 6月 30 日 3 参考文献: [1] 谢自美 . 电子线路设计实验测试 [M]. 武汉:华中理工大学出版社, 1992. [2] 何立民 . 单片机应用系统设计 [M]. 北京:北京航空航天大学出版社, 1993. [3] 楼然笛 . 单片机开发 [M]. 北京 : 人民邮电出版社 , 1994. [4] 付家才 . 单片机控制工程实践技术 [M]. 北京 : 化学工业出版社 . [5] 李光才 . 单片机课程设计 实例指导 [M]. 北京 : 北京航空航天大学出版社 2020. [6] 朱定华 . 单片机原理及接口技术实验 [M]. 北京 : 北方交通大学出版社 . [7] 刘湘涛.江世明.单片机原理与应用 [M]. 北京 :电子工业出版社 ,2020. 4 附录 A 5 附录 B:。 *************************************************************ONE 初始化 ORG 0 SJMP ONE ORG 0003H LJMP ELEVEN ORG 000BH LJMP NINE ORG 001BH LJMP TEN ONE:LED12 EQU 30H。 数码管 12显示缓存 LED34 EQU 31H。 数码管 34显示缓存 LED56 EQU 32H。 数码管 56显示缓存 COUNT EQU 33H。 定时器 T0(用来走时)计数值存储器(计数中断 20 次到 1秒) COUNTS EQU 34H。 定时器 T1(用来预置)计数值存储器(计数中断 15 次到预置值加1) HOUR EQU 40H。 以下为时间,日期,闹铃时间,生日的存储地址 MIN EQU 41H SECOND EQU 22H YEAR EQU 50H MONTH EQU 23H DAY EQU 52H RH EQU 60H。 闹铃小时 RM EQU 61H。 闹铃分 RE EQU 62H。 闹铃使能 BM EQU 71H。 生日-月份 BD EQU 72H。 生日-天 MOV LED12,0 MOV LED34,0 6 MOV LED56,0 MOV COUNT,0 MOV COUNTS,0 MOV HOUR,0 MOV MIN,0 MOV SECOND,0 MOV YEAR,0 MOV MONTH,1 MOV DAY,1 MOV RH,0 MOV RM,0 MOV RE,0 MOV BM,6 MOV BD,1 BS BIT 00H。 birthday symbol 生日标志(到生日那天就为 1) SS BIT 01H。 set symbol 预置信号(按下中断预置为 1,便开始闪烁和预置) GS BIT 02H。 glisten symbol 闪烁标志 FC BIT 03H。 frequency control 频率控制 NB BIT 04H。 neglect bitrhday symbol 忽略生日标志 CLR BS CLR SS CLR GS CLR FC CLR NB SETB 05H。 生日显示有效标志位 MOV IP,02H。 中断优先级: T0INT0T1 MOV TMOD,11H MOV IE,8BH SETB IT0 MOV TH0,3CH。 50ms 7 MOV TL0,0B0H SE。课程设计论文-基于单片机的多功能电子表设计
相关推荐
③ 存储器操作命令 Write Scratchpad(写暂存存储器) [4Eh] 这个命令向 DS18B20 的暂存器中写入数据,开始位置在地址 2。 接下来写入的两个字节将被存到暂存器中的地址位置 2和 3。 可以在任何时刻发出复位命令来中止写入。 Read Scratchpad(读暂存存储器) [BEh] 这个命令读取暂存器的内容。 读取将从字节 0开始,一直进行下去,直到第 9(字节 8,
ms,就可以实现自动上电复位。 除了上电复位外,有时还需要按键手动复位。 本设计就是用的按键手动复位。 按键手动复位有电平方式和脉冲方式两种。 其中电平复位是通过 RST(9)端与电源 Vcc接通而实现的。 按键手动复位电路见图 4。 时钟频率用 时 C 取 10uF,R取 10kΩ。 R110kC110uFS4V C C9 图 STC89C51复位电路 ( 3) STC89C51 中断技术概述
电压检测装置 电压检测装置是为了保护系统的稳定运行,采用 WB 系列电压越限报警传感器WB 系列电压越限报警传感器以电压隔离传感器为基础,增配比较器电路、基准电压设定电路、输出驱动电路组成,用来隔离监测主回路中的交流或直流电压,当被监测的电压超过预先设定的上限值,或低于预先设定的下限值时,给出开关量控制信号。 功能按键 图 按键电路 因本系统使用的按键数目少,故按键采用硬件去抖。
;该键值为 1 LJMP NDK1 ; 跳到 NDK1 执行相应的功能程序 KK2: CJNE A,0BH,KK3 ;相等说明该行第三列有键按下,不等则转移 MOV BUFF,2 ;该键值为 2 LJMP NDK1 ;跳到 NDK1 执行相应的功能程序 KK3: CJNE A,07H,KK4 ;相等说明该行第四列有键按下,不等则转移 MOV BUFF,3 ;该键值为 2 LJMP NDK1
y 的返回数据 如: system(“ echo \” mute 0\” /tmp/fifo” )。 //写命令 fgets(buf,1000,mp)。 //读取 mplay 返回数据 而 Qt 给我们提供了更方便的实现方法。 通过定义一个 QProcess 对象调用已编译好的 Mplayer。 QProcess *process = new QProcess()。
size 数字( KB) 最大返回数据,可限制用户下载的数据大小 reference_age 数字 LRU 算法中指定 LRU 时间 quick_abort_min 数字 (KB) 断点续传最小值 quick_abort_max 数字 (KB) 断点续传最大值 quick_abort_pct 数字 (percent) 超过值认为续传成功 negative_ttl 数字