版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、多功能万年历设计目录内容提要2正文2一、题目的意义2二、系统的功能3三、设计步骤31、硬件电路设计及描述32、软件设计流程及描述4四、注意事项9五、心得与体会9六、参考文献10内容提要:1、 任务实现硬件:数字钟设计要求是用单片机及8位LED数码管显示时、分、秒及其之间的间隔符,以24时计时方式运行,通过两个按键可实现时、分调整等功能;通过按键来改变频率以实现锋鸣器发出不同的响声;软件:利用RTX-51Riny实时操作系统的多任务之间切换,实现在宏观上是多任务同时执行的。2、 技术指标显示方式:以扫描的方式通过八位数码管来显示;可用按键进行“时校”和“分校”以及“秒校”;时钟精度:30秒/大(
2、未测试);程序应该模块化,即分成显示任务、校时任务、时间计时任务、改变响声任务;小函数构成大程序,让各模块相互充分独立、任务单一,并且每个任务都是在死循环内完成的;各任务完成必须是完成任务,然后自动放弃CPU而不是使其他任务等待超时,因此各任务必须协调好,这是此次设计的难点,也是应该重点掌握的,否则就不需要用实时操作来设计了。3、 工作原理利用RTX-51Riny操作系统的定时器T0进行定时产生最小时间片,各任务通过各自等待的时间片个数不同来实现在宏观上是多任务同时执行的图1硬件系统的总体设计框图正又:一、题目的意义:本设计综合利用RTX-51Riny知识完成一个单片机应用系统设计。该设计的主
3、要任务是设计类似于电子手表,通过与无操作系统的对比可深入理解操作系统的优缺点;巩固和加深课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。二、系统的功能:利用单片机及8位LED数码管做成两位“时”显示,两位“分”显示,两位“秒”显示,以24时计时方式运行,并且可用按钮进行“时校”和“分校”以及“秒校”;通过按键可以改变频率来实现不同响声。三、设计步骤1、硬件电路设计及描述时钟计时器的硬件电路如下所示:FUW口HL1/A1FUWMHLAIOHgL-WAijiP
4、DSihSSRUAAraiNAtTz3T5?s&ALSEAKEeXH-=r.频率.IQ.,f3tl频跳20.o=:城率50目尊日力FZ*旧naAUIFS.AIZF2JHA13皂fF3了曲佰五口!1Z3BZ工,Bl25H#Zb踮Z7昨P1DT7FtirnP12POFl*PISFIP1J”WRX口P3d白迎FJIirgin谭1T.鼻inraP3fm门丽京ra.Tflir图2时钟计时器硬件原理图该电路采用AT89C52单片机最小化应用,采用共阴(1时此二极管亮)7段LED显示器,P2口作为位扫描输出,P0口输出段码数据,P1.0、P1.6口接2个按键来实现改变频率,P3.3、P3.4口接2个按钮开关
5、,用于调整时间,采用12Mhz晶振,可提高秒计时的精确度。器件分析为了实现LED显示器的数字显示,系统采用动态扫描法实现LED的显示共阴7段LED显示器显示原理:管脚X显不内容P0.7(DIP)P0.6(G)P0.5(F)P0.4(E)P0.3(D)P0.2(C)P0.1(B)P0.0(A)编码0001111113FH10000011006H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FH一0100000040H10pf电容作用:上电复位;7407作用
6、:同相缓冲器,驱动数码管;12M晶振和两个电容组成晶体振荡器。2、软件设计流程及描述RTX-51Riny操作系统的标准时间用定时器0产生一个中断,默认的是产生10,000脉冲,因此对于12Mhz晶振来说,最小时间片为10ms每个任务的等待时间都是10ms整数倍。(一)各模块功能描述:(1)显示模块:功能说明:显示模块是以扫描方式实现八个数码同时显示的,在P2口每次选中一个数码,送去相应编码(位码),然后在P1口送去显示数字内容的编码(段码),设置时间时要调用显示模块;设置顺序为闹钟、时间、年月日、闹钟工作日,由于设置显示响声频率。它们是相互独立的,不会相互干扰,每次循环都只执行其中某个部分流程
7、图:开始num=tt等待num=ft等待选中数码管的某一位来显示num+;延时选中数码管的某一位来显示num+;延时扫描扫描46(设置时间)10(每周的闹钟)20(频率大小)num=ftnum=ftnum=ft扫描扫描扫描将有闹钟的星期值存放在缓冲区中拆出闹钟时分秒各自的十位与个位拆出时间时分秒各自的十位与个位拆出年月日各自的十位与个位num=ft延时num=ft延时79(设置年月日)选中数码管的某一位来显示num+;延时选中数码管的某一位来显示num+;延时选中数码管的某一位来显示num+;延时选中数码管的某一位来显示num+;延时switch(menu_num)选中数码管的某一位来显示nu
8、m+;延时拆出ringx的百位与十位以及个位(2)时间计时模块:功能说明:采用24时式计时,此模块的时、分、秒,为了保证时分秒数字的有效性,都加入了判断,即使程序走乱了,也不会出现数字不对的情况;由于闹钟的工作是跟星期有关的,为了防止天数增加后和月份更替后以及年份更替后,导致闹钟失效,因为星期保留是更新前所设置的星期,因此为了闹钟能正常工作,应该在适当位置调用计算星期的任务。流程图:开始等待1秒(3)按键模块:功能说明:通过两个按键设置年月日时间及闹钟,这两个都有短按及长按功能,按键都是应该有消抖的,但长按时就没有消抖了菜单键要在显示闹钟时长按进入设置状态,否则不能进入设置状态,以达到保护已经
9、设置好的时间,在数码不停地闪烁时就表示已经进入设置状态,闪烁是因为程序不仅等着按键的松开,还要显示数码,而数码显示时间间隔正好稍微小于人眼对光暂留时,只要稍微耽误一会数码显示就会出现闪烁;短按两种情况:1、在设置状态下,短按则进入到设置下一位;2、在显示时间状态时短按则显示闹钟时间;加键只有在设置状态下长按才有效,长按能使设置位按相应数据不断加一直到松开按键才停止加一,加键短按也有有两种情况:1、在设置状态下,对相应位加一;2、在显示时间时短按则显示年月日星期。通过四个键来改变频率及退出声响,按三种递增方式改变频率,每次加5或10或20,这样就可以组合很多种频率了,从而可以发出更多不同的声音,
10、通过显示模块可以得知正在发出多少频率的声响。为了使按键灵敏,此模块应该尽量少的程序,只为能及时检测出按键,每当检测到按键按下时就发送信号到按键状态来进行按键判断是何种按键状态,然后再将判断出按键状态发送到显示模块,那么按键信息就能及时反应出来。流程图:(此模块的流程图待修改,由于时间仓促,不能及时修改,见谅!)加键长按?设置状态?设置时间?菜单=10且加键=17?switch(key)switch(menu_state)调用看门狗i长按后并当菜单短按时进入46(改变频率并发出声响)将设置好的时间赋值、并将相应变量赋初值1r给看门狗及显示模块发送信号消抖,按相应键加值;向RING发送信号将当前时
11、间赋给设置变量L不断增加L,显示年月日星期给看门狗发送信号f0显示闹钟及此期间内检测菜单、键是否是长按1(4)响铃模块:功能说明:当本模块接收设置频率模块发来的信号后开始发出相应频率的响声,此模块应用了os_wa计(K_IVL,ringx,0);函数,进一步了解到函数带参数后的方便性。流程图:(5)闹钟模块:功能说明:闹钟按工作日工作,即可设置成每周的周一到周五闹钟才会工作,当正常时分秒与闹钟时分秒相同时,ALARM闹钟模块就会发送信号到响铃模块,闹钟在响铃十秒钟后会自动关闭,也可以在通过按键关闭闹钟。流程图:(6)加数及设置闹钟的工作日模块:功能说明:当按键状态模块发来信号时,此模块对相应变
12、量加数或者将相应星期设置为闹钟日,然后再将这些变化发送信号到显示模块。流程图:(7)按年月日计算星期模块:功能说明:本模块采用蔡勒(zeller)公式,(只适合于1582年10月15日之后的情形):星期二年代+年代/4+世纪/4-2*世纪+13*(月份+1)/5+日-1然后再对上式所得星期求余,所得数即可表示为星期:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六其中的月份大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2005年1月1日要看作2004年的13月1日来计算)(流程图:(8)看门狗模块:功能说明:本模
13、块在一定时间timeout内将部分模块中的变量赋于初值,如menu_numadd_nummenu_state、add_state,在使进入设置状态时,若停止按键的话就会使显示恢复到时间计模块,以七继续显示时间;也可以在显示闹钟时间及年月日星期后返回显示时间计时模块。流程图:(二)各模块之间的关系(三)、程序清单如下:(四)、调试及性能分析:硬件调试:可先检查应制板及焊接的质量情况在检查无误后可通电检查LED显示器的电亮状况。若亮度不理想,可调节P0口电阻的大小,一般情况先取200Q电阻可获得满意的亮度效果。软件调试:在LCA51编译器下进行程序编译及仿真调试应分段成以子程序为单位逐个进行,最后
14、可结合硬件实时调试。性能分析:按设计程序分析,LED显示器动态到秒的频率约为167HZ,实际使用观察时完全没有闪烁,由于计时中断程序中加了中断延时误差处理,所以,实际设计时精度非常的高。四、注意事项1、在焊接的时候要注意正确的焊接方法,以免虚焊、漏焊、短路、断路等错误的出现。2、在编写程序的时候,注意指令的正确应用。3、调试编译时,注意印质板与电源及仿真机的正确连接,避免答错线对电源仿真机造成的损坏。软件方面:4、要注意RTX-51Riny实时操作系统的某些函数的取值范围,如os_wait(K_IVL,ringx,0)中ringx的取值,它是8位的无符号数,那么它取值范围是0至U255,超过的
15、都以对256取余数为有效值;在计算星期时,由于年份不能用8位无符号(0到255)数表示了,只能用16位无符号数(0到65535),但这会增加存储负担,为节省空间应该在闰年与非闰年数组之间应该去掉一个,(在为计算星期的定义时很有可能会导致错误)。5、在时间走动模块里,应当注意计算星期的插入,否则闹钟可能失效。6、在显示模块要特别注意num的初值,一定要确定从哪位数码管开始显示,否则将出现乱码。7、在闹钟模块里要注意c的初值,一定要在最后将c赋于0值,否则在闹钟下一次到来时就不会自动退出闹钟状态。8、在按键扫描模块里要注意判断是否在设置状态,若已经进入设置状态就应该等待按键松开,否则可能发送多次菜
16、单键短按下的信号,导致无法设置。9、在加数及设置闹钟的工作日的模块里,day的取值是与闰年和非闰年有差的;由于year无限制,并且year是16位无符号数(0到65535),因此得名万年历。10、在计算星期模块里,由于公式的关系要注意各变量的取值,注意算式能节省不少空间。五、心得与体会:这个设计使用RTX-51Tiny实时操作系统,C语言中主程序就是指main()函数。有人可能会认为RTX51Tiny没有主程序,其实这是一种误解,因为这个操作系统的main()函数放在了配置文件中(RTX51Tiny的主程序是以汇编代码的形式位于Rtx51tny.A51文件中)。这个操作系统要求每个任务都在死循
17、环里实现,否则全局变量可能会被重复性地清零。实时操作系统使得对时间的控制方便简单,这很好地解决了用C语言编程时难于达到时间精确的问题,同时对各任务的执行时间及其顺序都不需要人为控制,只要调用RTX-51Tiny中相应的函数就可以轻松达到要求了,各任务模块化,每个任务都是单一完成某件事,大大缩短了开发时间,到目前为止,RTX-51Tiny的缺点是每个任务之间的切换需要一定的时间,对于小于1ms内要做出响应的任务无法完成(系统的任务轮转时间等于每次定时器溢出时间与TIMESHARING的乘积。定时器溢出时间由INT_CLOCK决定,它的范围是1000到65535个周期,而TIMESHARING的范
18、围是1到5,0是单任务的,对于晶振为12MHz单片机来说,一个机器周期为1us,那么任务最小轮换时间为1ms),关于os_wait(K_TMO,3,0)函数CPU不会及时做出响应,因为在配置文件Conf_tny.A51中默认的最小任务轮换时间为50ms,但这个问题可以由os_wait(K_IVL,count,0)来解决,任务轮转时间片的长度设置得过大,则一些持续时间较短的事件无法响应。如果轮转时间设置得过小,则CPU的很大一部分功能被消耗在任务切换上了;如果任务多,处理时间长,无疑会无形中增加系统的负担。;个人感觉这个操作系统最难的就是os_wait(尚数中时间片的取值,虽然是不用计算应该等待多久就是程序所需的时间,但这对初学者来说是无章可循的,只能是一步步地调试程序,并且要细心观察才能选择出较理想的时间片。时间片对各任务关系重大,时间片大了,就显示模块来说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流运输效率优化制度
- 文娱行业内容审查制度
- 医疗领域医疗服务质量监管制度
- 制造企业安全生产标准化制度
- 全国小学英语语法专项练习试题
- 项目合作开发尽调合同
- 护理护理科研方法
- 护理工作与职业素养
- 院前护理人员药品理论考核试题(抢救车药品专项)
- 第二节 审阅修订文档教学设计初中信息技术中图版2016七年级下册-中图版2016
- NCCN临床实践指南:睾丸癌(2025.v2)解读
- 中国糖尿病防治指南(2024版)课件
- 2025年电力系统智能调度平台建设项目可行性研究报告
- 曹妃甸职业技术学院教师招聘考试试题及答案
- 医院内消毒液的浓度及配置方法
- 河南省2025年普通高中学业水平合格性考试历史试卷及答案
- 项目安全员安全生产责任制
- 酒店行业卫生管理标准手册
- 2025年新疆辅警笔试试题含答案
- T/CFCA 0058-2024零嘌呤低醇配制酒
- 水电站检修安全培训课件
评论
0/150
提交评论