1、设计内容与要求1、通过按键设置温度上、下限,基准温度20℃,AD信号的0V~5V对应-20℃~70℃。
2、读入A/D转换数据,若数据<=下限,则显示温度、温度调节范围并显示L,并使步进电机正转,若数据>上限,则显示温度、温度调节范围并显示H,并使步进电机反转,下限<若数据<=上限,则显示温度、温度调节范围并显示C,步进电机不转动。
3、本机地址为08H,当接到上位机发的08H(P1.0口接开关,高电平发送)时,则回发08H,且本机P1.4口输出高电平,上位机接受后P1.3口输出高电平。
当接到上位机发的AAH(P1.1口接开关,高电平发送)时,则将当前温度发给上位机,且本机P1.5口输出高电平,上位机数码管显示温度。
当收到上位机发的55H(P1.2口接开关,高电平发送)时,下位机修改设定上、下限,且本机P1.6口输出高电平,数码管全部显示0。
当收到上位机发送的信号不是上面三个时,本机P1.7口输出高电平,数码管全部显示0。
2、设计方案本设计采用AT89C51单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便,可以与PC机进行通信。
本设计利用单片机最小系统和ADC0809芯片、电位计设计温度采集系统。并设计一个人机接口电路:键盘采用独立式按键(功能是调节温度的上下限),同时设计了步进电机控制电路,显示器采用共阴极LED显示。系统的总体设计方案框图如图1所示:
图1
按照系统设计功能的要求,系统主要由单片机、ADC0809芯片、电位器、步进电机、LED数码显示管和PC机等组成,如图2所示:
图2
系统的硬件电路主要由复位电路、显示电路、AD转换电路、步进电路控制电路、晶振电路组成,系统总体结构方框图如图3所示:
图3
3、方案实现3.1系统的软件设计本系统的软件设计主要可分为主程序,AD转换程序,温度显示程序,步进电机控制程序,中断系统程序等几个模块。
1、主程序⑴功能
主程序的主要功能是负责读取当前温度,并进行判断,从而实时显示温度并根据判断结果控制步进电机的工作。
⑵程序流程图
如图4所示:
图4
2、AD转换程序⑴功能
AD转换程序分为AD采样程序和采样温度转换程序两部分。其中,AD采样程序的功能是启动AD转换并在100μs的延时后得到AD采样值;采样温度转换程序的功能是得到16次AD采样值,然后取平均值,得到平均AD采样值,并通过公式将平均AD采样值转换为实际温度。
⑵程序流程图
如图5所示:
图5
3、温度显示程序⑴功能
温度显示程序分为数码管温度显示程序和显示数据刷新程序。数码管温度显示程序的功能是将数码管需要显示的温度与温度上下限进行比较,并送入相应的段码,让数码管显示温度的正负(若为正显示0,若为负显示负号)、当前温度、温度状态(L、C、H)以及温度上下限的范围;显示数据刷新程序的功能是利用定时器T0,定时1ms,每隔1ms从右到左依次点亮数码管,并进行循环,数码管能够进行动态、平稳的显示。
⑵程序流程图
如图6所示:
图6
4、步进电机控制程序⑴功能
步进电机控制程序的功能是通过判断步进电机工作方式控制位,控制步进电机的正转以及反转。
⑵程序流程图
如图7所示:
图7
5、中断系统程序⑴功能
中断系统程序分为温度上下限设定程序和串口通信程序。温度上下设定程序的功能是通过两个外部中断程序,采用下降沿触发方式并设置两个按键来设定上下限;串口通信程序的功能是通过串口中断,并选择串行口方式2的工作方式,进行数据的接受和发送。
⑵程序流程图
如图8所示:
图8
3.2系统的硬件设计本系统的硬件设计主要可分为时钟电路、复位电路、AD转换、步进电机、数码显示及串口通信等几个模块。
1、时钟电路如图9:
图9
2、复位电路如图10:
图10
3、AD转换如图11:
图11
4、步进电机如图12:
图12
5、数码显示如图13:
图13
6、串口通信如图14:
图14
7、完整原理图如图15:
图15
4、系统调试系统的软件调试借助于Lab6000通用微控制器实验系统。在进行系统软件的连续调试之前要先进行软件的初调,就是要使各个子程序模块运行正确,程序的运行流程正确。软件调试主要分以下几个步骤进行:
1、功能子程序的调试功能子程序的调试包括AD转换、温度显示以及步进电机控制等子程序的调试。在调试功能子程序时,许多参数都是未知的,要根据其所需的条件,给出假定的数据,使其运行,如果能完成预定的处理功能或与手工计算的结果相符,就说明该子程序己调试通过。调试时由小到大,由里到外。例如,调试温度显示子程序时,先调通其需要的AD转换子程序和参数处理子程序,然后将它们连起来进行通调。通调时,也是假定一些数据、参数和初始条件,然后运行程序。当运算结果与手工计算的结果相同时,该算法子程序则调试完成,反之,就要进行相应的修改。其它子程序的调试同理。
2、程序流程的调试
程序流程的调试主要是查看程序运行的步骤是否正确,在某时刻程序运行所处的位置是否正确,是否能正确运行各个中断服务程序。在调试过程中,在各个中断服务子程序设置断点,然后运行程序,查看程序是否能运行到所有的断点,若所有断点都能运行到,则程序流程基本正确。
3、程序的通调
在完成整个程序流程的调试后,运行程序,进行程序的通调,通过器件的现象来判断程序的正确性。若不正确则设置断点检查错误。
如图16为上位机调试实物图:
图16
如图17为下位机调试实物图:
图17
5、结论本次测温系统设计主要由AT89C51和ADC0809来实现功能。因此需要通过查阅资料来了解这些器件的基本结构,主要功能和注意事项等等。
整个设计从确定题目,到寻找相关资料,再到选择合适的器件,接着对电路图的绘制,程序的编写,最终调试。一步步走过来,一点点的进步,花了大量的时间和精力,而成果也是喜人的。
通过这次设计,不仅锻炼自己分析问题、处理问题的能力,还提高了自己的动手能力。在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常的写与读的过程中才能提高,这是我在这次课程设计中的最大收获。但同时也发现了自己的不足,特别是在程序的编写方面,有些细节部分没有考虑到,比如开始没有考虑到双机通信时独立运行的问题,这样编出的程序运行起来效率会大大降低,没有实用性,但在不断的改进中,最终解决了这个问题;但在上位机实现对下位机的温度调控这一设计中,没有设计好,未能实现远距离温度控制,自己程序方面还有待加强。
总的来说,自己从此课程设计收获了很多,一个设计的完成需要团队间的密切合作,而且需要提升自己的自学能力,脚踏实地。通过这次设计,相信自己在未来的学习和生活中会继续努力,提升自己的知识水平,不断完善自我。
参考文献[1]《单片机原理与应用设计》第二版.张毅刚主编.电子工业出版社
[2]《Altium Designer电路设计标准教程》程晓鸽编著.科学出版社
附录上位机程序