实验室温湿度监控系统的设计(1)(8)
主程序的设计 主程序的内容一般包括:主程序的起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。主程序设计流程图如图4-3所示。
主程序 设置各中断服务 设置堆栈指针 相关寄存器清设置显示缓冲设计时间初值 设定0、定时器1 设置外部中断0/1 设置中断优先级开中断;启动T0/T1时 执行代码转换闹钟 N 报警30s
图4-2流程图
-16-
程序的起始地址:MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为各中断源的入口地址。所以,编程时应在000H处写一条跳转指令。当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。
主程序的初始化内容:所谓初始化,是对将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作状态设定。MCS-51系列单片机复位后,特殊功能寄存器IE、IP的内容均为00H,所以应对IE、IP进行初始化编程。在本设计中,使用了四个中断:
① T0中断:采用T0定时中断工作方式,完成LED动态扫描。 ② T1中断:采用T1定时中断方式,产生100ms(或50ms)的单位时间。 ③ INT0中断:采用外部中断工作方式,完成时间调整功能。 ④ INT1中断:采用外部中断工作方式,完成闹钟时间输入功能。
同时还要对一些存储单元进行初始化,这些内容都需要在初始化程序中来完成。
参看MAIN标号地址到LOP标号地址之间的内容。
代码转换程序:由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制数(即BCD码)或ASCⅡ码。因此,在程序设计中经常要进行代码转换。各种代码之间的转换十分有用,除了硬件逻辑转换之外,程序设计中常采用算法处理和查表方式。参看LOP标号地址到AA标号地址之间的内容。这段程序的功能是完成将当前时间的二进制数转换成BCD码,并送到显示缓冲区。
在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可以通过软件定时程序实现。软件延时程序占用CPU的时间,降低了CPU的利用率;硬件定时是利用单片机片内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU的时间,使CPU有较高的工作效率。
本设计中,采用硬件定时和软件定时并用的方式,即用T0溢出中断功能实现10ms定时,通过软件延时程序实现1ms的定时。 4.3 数据采集及处理子程序设计
该部分主要实现将来自传感器的模拟信号转换为数字信号的功能。由电路连接图可知,AM转换器工作于中断方式。当AM转换完毕时,STS由高电平变为低电平,通过IN而向8051请求中断。该程序主要有A/D转换器启动程序、中断等待转换结束、读取转换结果并存入RAM等几步。被测信号经过AM 转换后变为数字信号,必须通过数据处理后才能变为可直接显示的数值。 4.4 键盘/液晶显示程序设计
键盘接收子程序是由INTA和INTB两个子程序组成,两个子程序的功能是实现对当前时间的调整和输入定时(闹钟)时间。
①INTA子程序的功能是对当前时间进行调整。根据按键电路设计可知,当SET
-17-
键按下时,产生INT0中断请求,CPU响应中断请求时,便进入该中断服务程序。
②程序中,将时钟的各位分别进行调整。采用24h时间表示,因此4位时间值要分别加以限制。即小时十位,数的允许范围0~2;小时个位,数的范围有两种可能:当小时十位为0、1时,小时个位的允许范围是0~9,当小时十位为2时,小时个位的允许范围是0~3;分十位,数的允许范围是0~5;分个位,数的允许范围是0~9。
③+1键和RET键配合使用,每次对+1键的按下次数进行累加,当RET键按下时,调整值被确认,转去处理下一位。
④每次进入该程序后,对4位时间调整一次,从左到右排列顺序为1~4,不循环。 ⑤键盘接受的时间值为BCD码方式,将它们转化成二进制数后,存储在32H、33H单元。同时对计时单元进行修改,使当前时间得到调整。
⑥INTB子程序是定时(闹钟)时间设置程序,设计思路与当前时间调整程序基本相同。不同的是ALM按键与P3.3管脚连接,当ALM按下时,产生INT1中断并进入INTB中断服务程序。输入的定时(闹钟)时间存储在34H、35H单元。
在采用动态扫描显示方式时,要使得液晶显示得比较均匀,又有足够的亮度,需要设置适当的扫描频率。当扫描频率在70Hz左右时,能够产生足够的图形和较好的显示效果。一般可以采用间隔10ms对液晶进行动态扫描一次。每一位液晶的显示时间为1ms。程序流程如下图
-18-
T0中断服务程序 保护现场 关T0中断,开其他中断 设置段码缓冲区指针 设置位码缓冲区指针 设置显示位数 设置完否 将位码和段码值送P1端口 显示某位,延时1ms 修改显示缓冲区指针显示位数减显示完否 T0记数器初值 恢复现场,开中断 中断返回(RETI)
图4-3液晶显示流程图
-19-
结论与展望
通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。
毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一次综和性作业,从老师的角度来说,指导做毕业设计是老师对学生所做的最后一次执手训练。其次,毕业设计的指导是老师检验其教学效果,改进教学方法,提高教学质量的绝好机会。
毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。
总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
在此要感谢我们的指导老师张老师对我悉心的指导,感谢老师们给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重 …… 此处隐藏:1544字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [基础教育]2016-2022年中国钢芯铝绞线市场现状调
- [基础教育]语文部编版初一语文下册练习题 句式变
- [基础教育]南京继续教育参考答案--深入学习贯彻习
- [基础教育]国旗下讲话稿——珍惜时间好读书
- [基础教育]北师大版六年级数学下册圆锥的体积教学
- [基础教育]人教版-音乐-四年级下册-四年级下册音
- [基础教育]乔布斯2019年斯坦福大学毕业典礼致辞.d
- [基础教育]2015年加油站安全知识竞赛试题及答案
- [基础教育]2020年教师年度考核个人工作总结
- [基础教育]2019年中考历史试题-2019年大庆市初中
- [基础教育]初三仁爱英语第一轮总复习教案
- [基础教育]SG-A094电气配管安装工程隐蔽验收记录
- [基础教育]冀教版小学数学三年级下册第六单元教材
- [基础教育]青岛版(五制)小学科学二年级下册16《制
- [基础教育]2018-2019年初中科学初一中考真卷测试
- [基础教育]幼儿园大班期末简短评语精选
- [基础教育]2018云南临沧公务员考试申论技巧:这样
- [基础教育]学校食堂经营管理方案
- [基础教育]新中国砥砺奋进的七十年原文
- [基础教育]真空泵的选型及常用计算公式
- 高职田径课程教学现状与对策
- 全髋关节置换术在老年股骨颈骨折患者中
- 青人社厅函〔2016〕576号(附件)工资
- cp101-07砂子检验作业指导书 - secret
- 微观经济学 第八章 博弈论 习题
- 2014高考真题(词语运用)汇编及答案
- 2018年人教版七年级语文下册《第三单元
- 苏教版数学四年级上册第一单元试题 - M
- 四川大学新闻与传播考研2000-2010年真
- 浙江万里学院英语专业四年制本科教学计
- 最新2018马年事业祝福语-范文word版(2
- 最全模具行业术语英文翻译
- 皮亚杰的发展心理学理论
- 64篇高考情景式默写 练习题及答案
- 仿写(学生稿)
- 《SQL Server数据库技术》试卷A
- 第七章作业答案
- 江苏省赣榆县海头高级中学高中语文必修
- 浙江省2001年10月自考正常人体解剖学答
- 2012英语重点短语




