实验室温湿度监控系统的设计(1)(5)

2019-09-02 00:18

主程序的设计 主程序的内容一般包括:主程序的起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。主程序设计流程图如图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-

结论与展望

通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。

毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一次综和性作业,从老师的角度来说,指导做毕业设计是老师对学生所做的最后一次执手训练。其次,毕业设计的指导是老师检验其教学效果,改进教学方法,提高教学质量的绝好机会。

毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

在此要感谢我们的指导老师张老师对我悉心的指导,感谢老师们给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。

-20-


实验室温湿度监控系统的设计(1)(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:涵洞力学计算书很全面

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: