STC10F08XE单片机温度计课程实训
2013-04-16济宁职业技术学院胡建波
济宁职业技术学院 胡建波
济宁市高级职业学校 胡延平
单片机实训可以采用多种形式:比如面包板、洞洞实验板、实训套件等。本文主要以DS18B20温度传感器为例交流单片机课程实训体会。为了使学生积极投入到单片机课程实训中,让每位学生独立设计一件较为实用的作品,并焊接做出产品,有条的送给他们做为鼓励,可大大调动学生学习单片机的热情和积极性。考虑到网上DS18B20温度计案例较多,为了避免学生抄袭,实训最好能选用较为新型单片机,并有利于学生对新器件的选择应用和学习;但也不能偏离太多而增加难度,不利于知识的巩固和理解。本案例选用的STC10F08XE为1T单片机,速度较普通89C51单片机快8-10倍,且兼容51指令和引脚排列。为了方便交流学习,本文中的仿真电路、PCB板图、51仿真测试程序和1T单片机STC10F08XE程序可在CSDN网站下载。
表1 P0口数码管LEFT1段码(0~2)计算方式
图1 电路原理
图2 时钟-温度计流程图
1.明确实训任务
上电直接进入温度显示,显示精度0.1度。运用温度传感器ds18b20测试环境温度,经单片机接收并对数据处理,用4位共阳数码管显示。上电前长按键则进入时钟显示。长按键1秒进入时钟调分功能,分数码管闪烁,每按一次键分+1,加到60回0;再长按键进入调时功能,时数码管闪烁,每按键一次时+1,加到24回0。时钟计时使用定时器T0,数码管闪烁计时使用定时器T1。拓展功能:设置上下限温度报警,上下限温度值自定义。
2.实训开发环境
现代电子产品,硬件产品从设计到制板周期较长,一般要外加工订做PCB板。为了能在产品焊接调试前验证硬件电路及软件设计缺陷,有经验的工程师一般要进行仿真测试。Proteus是一款比较实用的单片机程序仿真、硬件电路设计及PCB制板软件,具有较为丰富的元件库,并能创建元器件和封装,该软件简单易学且功能强大。keil软件提供视窗化的编辑、编译和调试窗口,可进行单步、断点调试,并可与Proteus仿真软件联接调试以便观察寄存器和RAM数据变化。
3.硬件电路
3.1 电路原理
电路采用数码管静态显示(图1),Proteus仿真电路中的单片机使用AT89C51,实际产品中使用STC10F08XE单片机,可直接驱动1英寸LED数码管,与0.56英寸LED数码管相比较,具有较好的视觉效果。为了方便制板中的布线,进一步加深学生对数码管段码的理解,数码管段码采用了非标准共阳段码格式,这在工程设计中是非常实用的,其中数码管LEFT1使用一种格式,其余三个数码管使用另一种格式。表1列举了P0口数码管LEFT1段码(0~2)计算方式。
3.2 创建元件封装
本例中用的数码管是1英寸共阳LED数码管,Proteus中没有对应的封装。另外按键和DC电源插座也需要创建对应的封装。元器件封装创建后应在原理图中添加指定的封装,将原理图中元器件的引脚序号与封装库中的引脚序号建立一一对应关系。若学生能独立完成,就能很容易的理解元器件引脚排列。
3.3 PCB制板
PCB制板主要任务是元件排列布局和布线,元器布局一般采用自动排列元器件和手动排列相结合的方式,布线通常也采用自动与手动相结合的方式。实训中为了锻练学生的动手能力,采用单面板手动布局和布线。
4.软件设计
项目设计的目的是巩固所学理论知识,因温度计项目包含的单片机知识点有限,为了让学生充分利用所做电路资源,加深对单片机定时计数器的应用,项目中增加了时钟功能。上电前长按键进入时钟功能,直接加电进入温度度功能。利用定时器0实现0.05毫秒时钟计时,计数20次1秒。为了让学生熟练使用独立式按键,增加时钟调整功能,且仅使用一个按键,长按0.5秒进入时、分调整或退出时钟调整,单击按键一次调整时、分+1。利用定时器1实现0.05毫秒时钟调整闪烁计时,计数6次0.3秒数码管亮灭状态取反。学生也可利用此独立按键编写温度计报警功能的上下限温度值调整程序。根据实训时间按排还可加入时钟芯片DS1302,这样可实现时钟显示和温度显示的随意切换,可避免由于使用了定时器中断影响时钟精度,如图2所示。
5.仿真测试
Proteus提供的代码调试窗口可全速、单步、进入子程序、退出子程序、执行到光标行和设置断点多种调试手段,通过查看仿真电路引脚电平、数码管数据显示、CPU寄存器、数据寄存器和SFR等内容变化,以便分析产生问题的原因,查找软硬件错误。
特征数据测试与调试技术是现代单片机应用开发工程师最基本的能力要求,这不仅指软件测试也包括硬件电路纠错,所以在实训过程中应特别强调该能力要素,通过实训养成学生独立思考的习惯,培养学生独立解决问题的能力。部分学生实训过程中不善于动脑,惰性较大。程序编辑输入完成输出结果就认为完成作业作务。其实学生们完成的仅是把书本的程序文档在PC机上录入一遍,有的同学甚至拷贝一份,其实质并没达到程序调试的目的。对于已经完成作业任务的同学,在实训过程中教师可尝试将某些指令或电路有针对性的改错,让他们通过学到的调试技术和方法重新调试查找软硬件错误。一般的编译提示错误学生可能比较好改正,但结构性或非语法类指令错误,编译系统不能提示,学生查错就相对因难,这就要求学生有耐心细致的工作态度,摆脱浮夸的学习作风。另外实训过程中应严格考评,将考评与实训成绩结合。
6.产品焊接调试
6.1 熟练掌握焊接技术
焊接技术是单片机课程设计、装配不可缺少的重要环节,焊接质量的好坏真接影响电子产品的质量性能。学习焊接知识、焊接方法,熟练掌握手工焊接的基本技能,练好焊接基本功也是单片机课程实训的重点内容之一。
6.2 产品焊接测试
焊接过程中可能会出现虚焊、断路、导线连接错误,或焊接时间过长损坏元器件,或程序软件错误,即出现的软硬件错误使产品不能实现所要求的预期功能,这时就需要调试查找错误。由于STC10F08XE单片机没有对应的硬件仿真器,产品焊接成功后不能进行在线实时跟踪调试,学生可利用keil软件的虚拟调试器查看CPU寄存器和RAM变量,或利用串口回显待测数据。另外随着STC最新型可仿真单片机IAP15F2K61S2的量产,在以后的实训中可选用该单片机让学生动态观察CPU寄存器、RAM或硬件显示数据变化,并利用电压表等工具测试电路引脚电平变化。单片机调试是一枯燥、繁琐的脑力劳动,需要有持之以恒的决心和耐心,能较好的锻炼学生的毅力。