基于单片机设计调试的数字式指针温度计
本文主要叙述利用Proteus软件实现的数字式指针温度计的一种调试方法,采用MCS51单片机作为指针温度计的数字信号处理器,其中,温度采集传感器选用Dallas公司的Ds1820单总线式数字温度传感器,该温度计的温度值通过四个数码管显示,同时还可以通过刻盘指针指示。
硬件设计
硬件设计包括温度采集模块、单片系统及温度显示模块等模块,其中,刻度盘上指针的控制是设计中的一个重点。在设计数字电路的角位移控制时,一般选用步进电机或伺服电机,选用步进电机时,其步进角固定,同时,对于角位移的控制,会产生控制角度的动作位置不够精确的问题;选用伺服电机也就是舵机时,其控制原理是通过MCS51单片机产生脉宽调制(PWM)信号的占空比来改变舵机摇臂旋转的位置,以达到控制伺服电机的目的,最后在刻度盘上指示温度值。
系统硬件电路原理图如图1所示。
1.舵机的工作原理
系统中指针的驱动由舵机实现,为使指针在刻度盘上的初始指示精确,文中采用4个独立按键实现指针刻盘上的粗、微调节。
舵机是一个简单的闭环系统,其内部硬件电路、微型电机及减速器封装在一个部件内,实物图如图2所示,输出轴可在一90°~90°范围内旋转到任意角度。
舵机包含控制信号线、电源线和地线3根引线,其反馈元件为一个与输出轴同轴的精密电位器,通过电位器的反馈信号得到舵机输出轴转动的位置,然后将相应的电压值反馈回控制芯片,最后将反馈的输出轴位置与控制引线设定的位置进行比较,得到输出轴位置的偏差,从而驱动微型电机转动,使输出轴转到预定控制的角度。
舵机的控制信号为一列PWM波,周期为18~20ms,舵机输出轴转动的角度位置与PWM信号占空比呈线性关系,当控制信号的高电平宽度为0.5ms时,舵机输出轴位置为-90°;当信号高电平宽度为2.5ms时,输出轴位置为+90°。
软件设计
单片机软件的设计包括DSl820的读写、模拟PWM输出、单片机温度取值、按键扫描、数码管显示等程序设计。
1.DS1820的读写
DS1820采用单总线协议,能够实现数据的双向传输,在进行DS1820读写操作前应先对DS1820进行复位,同时,必须严格遵守DS1820的读写时序,尽量精简中断程序,以减少对DS1820的读写时序的影响,提高温度采集的准确性。
DS1820读、写子程序如下:
2.PWM的输出
利用MCS51单片机的定时器中断产生PWM信号,TO每产生一次中断,PWM输出逻辑电平翻转一次,PWM控制信号的输出周期为20ms。
定时器中断服务程序如下:
其中,int_m为中断计数的中间变量。
3.按键扫描程序
文中采用4个独立按键完成指针刻度盘上的粗、微调节,按键扫描程序如下:
Proteus软件调试
Proteus软件可以对常用的单片机进行实时仿真,具有全速、单步、设置断点等调试功能,可以观察各个变量、寄存器等当前状态,同时支持第三方软件编译和调试环境。
在Proteus软件中系统的调试界面如图3所示,其中,逻辑分析仪用于测量等当前状态,同时支持第三方软件编译和调试环境。
在Proteus软件中系统的调试界面如图3所示,其中,逻辑分析仪用于测量单片机产生的PWM信号,其中通道A3为测量PWM信号的基准,通道A5为单片机产生的PWM信号:示波器用于观察产生的PWM信号。
在Proteus 6.9软件中调试的某一调试状态的界面图如图4所示,系统27℃、43.1℃时指针刻盘的显示效果图分别如图5、图6所示。
- 基于PROTEUS技术的ARM7显示系统设计与仿真实现(11-22)
- 单片机虚拟试验箱设计与研究(03-08)
- 基于PROTEUS软件的数字电压表印刷电路板设计(05-01)
- 基于51单片机的数字电压表仿真设计(05-29)
- Proteus在单片机教学和科技制作中的应用与实践(03-02)
- Proteus软件仿真与Keil的单片机系统设计(09-08)