单片机典型案例开发(三)
将程序设计为几个主要的模块,程序主流程见图4-1所示:
程序主流程图
4.2 子程序介绍
1、 诊断子程序
诊断程序主要进行温度采集并判断传感器是否良好,主要对2个温度传感器连续检测20次,若测到的数据不在范围内(温度范围:-10℃~160℃),则表明传感器短路或断路错误,数码显示"E",并禁止按键操作。
2、 键盘扫描子程序
程序每循环一次扫描一次键盘,如果扫描到有键按下,则暂存键值,如果连续5次扫描到的键值都一样,则认为是稳定的键值。
3、 系统共有5个按键,在不同的状态下,每个键只要轻按一次就有效。系统的五个键接于PA1 、PA3、PA2 、PA0、PA4,如果按键值有效则返回值的相应位为0,否则相应位为1。
4、 温度采集子程序
热敏电阻灵敏度高,为了防止干扰及其它原因导致测出的温度值变化太快,引起控制部件频繁动作,温度采集采用滑动平均值滤波方法。即在同一个通道上连续采集三个数据,取其中的中间值。
5、 显示子程序
系统共有2位七段数码管显示及10个发光二极管显示。数码管主要有6种状态需要显示:待机状态、出错显示、焖饭、保温、煮饭中及定时时间显示。发光二极管显示所选择的功能、开始及保温状态。功能显示需采用轮循方式,在按下开始键之前,开始灯闪烁。进入保温状态后,保温指示灯亮。LED显示程序由位码扫描子程序及数码显示状态选定子程序组成。
三、STC单片机自动下载系统设计
引言
STC单片机下载程序不需要编程器烧写,可以通过串口下载。美中不足的是,STC单片机下载时必须进行冷启动,即下载信号加到单片机串口以后必须对单片机断电再上电,这给用户带来了一些不便。尤其是反复调试程序需要多次下载时,显得更加繁琐。
为了解决这一问题,有必要研制一种STC单片机专用的自动下载系统,使系统接收到上位机发往单片机的下载信号后,自动冷启动STC单片机,完成下载任务。
1 原理分析
STC单片机下载时,需要使用宏晶公司提供的STCISP软件。下载开始时,上位机软件首先向单片机发出下载命令。自动下载系统收到上位机对单片机发出的下载命令后,实现对单片机的断电、上电冷启动操作。单片机经冷启动后,收到命令数据流后作出回应,开始下载程序。需要注意的是,单片机在正常工作中,串口有可能接收数据,由于自动下载系统与单片机串口连接,因而系统必须具有自动判断接收的数据流是否为下载命令的能力,保证及时冷启动目标单片机。
为了检测下载程序的命令数据流,可以采用如下方法:从PC的串口引出连接线,接至PC的另一个串口,用串口调试助手打开;用STC-ISP软件发送下载命令,可以检测到在波特率为9 600 bps的情况下,该软件持续向单片机发送十六进制的0x80;当自动下载系统连续接收到足够数量的0x80时,即可判定接收到了下载命令数据流,从而进入冷启动程序。
2 系统硬件设计
2.1 主控芯片STC15F104E简介
自动下载系统需要接收上位机发往目标单片机的下载命令程序流,并对目标单片机进行冷启动。STC15F104E是宏晶公司研发的一款单片机,具有省去一些外部电路而功能较全面的优点。
该单片机的特点有:
◆内部集成了可靠复位,省去了外部复位电路。
◆内部集成了R/C时钟(在常温下仅有5‰温漂),省去了外部晶振。
◆内部集成了2个16位可重装载定时器,与普通8051单片机兼容。
◆为DIP8/SOP8封装,体积较小,功耗较低。
◆增强型8051内核,单时钟周期,信号处理速度快,实时性较好。
由于STC15F104E可以省去传统单片机的复位电路、外部晶振电路,且采用贴片封装,因此占用电路板面积非常小,适合集成在电路板上,因而作为本系统的主控芯片。
2.2 主控电路
如图1所示,整个系统以STC15F104E为核心进行设计。STC15F104E的P3.0脚与目标单片机STC89C52RC的串口接收端相连,即将发往目标单片机的信号连接到自动下载系统,实现信号的获取和处理。由丁自动下载系统不需要发出任何信息,STC15F104E的P3.1引脚悬空,不与目标单片机相连。
对目标单片机进行冷启动,实现断电、再上电,可以用三极管作为电子开关实现。必须注意到的是,三极管的最大可通过电流不要小于单片机电路的所需电流。如果三极管仅作为单片机供电的开关,由于STC89系列单片机的正常丁作模式功耗为2~7 mA,90系列三极管通常情况下可以满足需求。但在某些情况下,单片机的串口上电后会给单片机供电,使单片机各引脚电平处于不确定的状态,因而必须对目标电路板整体进行冷启动,三极管必须满足目标
- 单片机典型案例开发(二)(03-13)
- 单片机学习知识点全攻略(二)(05-12)
- 单片机学习知识点全攻略(三)(05-15)
- 单片机学习知识点全攻略(完结篇)(05-21)
- 单片机学习知识点全攻略(一)(05-08)