内容正文:
单片机应用技能实训(C语言)
项目10 温度测试电路制作
2
项目10 温度测试电路制作
任务2 温度测试电路硬件、软件设计
教学要求:
1、了解温度转换电路的工作原理 。
2、掌握A/D转换器的使用 。
3、掌握温度测试电路的整体构成 。
4、理解应用程序的编程思路 。
2
3
教学重点:
1、温度测试电路的整体构成 。
2、应用程序的编程思路 。
4
1、A/D转换器的作用是什么 ?
2、如何启动A/D转换器ADC0808 ?
3、应用单片机及温度传感器、A/D转换器、数码管等外围器件构成温度测试电路,要求用4位LED数码管来显示环境温度值,显示数值精确到小数点后一位。
问题导入:
5
新授
一、项目硬件电路设计
1、电路构成方案如下:
6
温度转换电路原理图
各组成部分电路原理图
7
AD转换电路原理图
8
数字显示电路原理图
9
2、电路设计
将温度转换电路、AD转换电路及数字显示电路,根据实际情况,合理的组合在一起,即可设计出温度测试电路的硬件电路。
3、元件选择
晶振电路元件及复位电路元件的选择。
数字显示电路的元件的选择。
温度转换电路的元件选择:LM35为温度传感器;LM358为集成运放,与R19(12K)、R20(3K)、R21(12K)、R22(3K)构成5倍放大器。
10
二、应用程序编写
1、应用程序流程图绘制
主程序流程图如右图所示 。
11
2、应用程序
#include <Display.h> //数码管温度显示软件包
#include <intrins.h> //含_nop_()函数
#include <reg51.h>
sbit ADC_EOC=P2^0;
sbit U3_2=P2^1;
sbit U3_3_5=P2^2;
sbit U3_6=P2^3;
unsigned int dxsj;
unsigned int zhjg;
void ADC_zh()
{
ADC_EOC=1; //为读EOC信号准备
U3_2=1; U3_3_5=1;U3_6=1; //为A/D转换准备
U3_3_5=0; U3_2=0; //使START、ALE端由0变1
_nop_(); _nop_();_nop_();//空操作等待ADC0808复位完成
U3_3_5=1; U3_2=1; //使START由1变0,启动AD转换
_nop_();
while(ADC_EOC==1);//等待转换开始
while(ADC_EOC==0);//等待转换结束
U3_3_5=0; U3_6=0; //使OE端为1
P0=0xff; //读转换结果准备
zhjg=P0;
U3_3_5=1;
U3_6=1;
}
12
void main()
{
while(1)
{
unsigned char i;
ADC_zh(); //调用AD转换子程序
dxsj=zhjg*200/51; //数据处理
for(i=0;i<50;i++) //循环调用显示子程序50次
{
display();
}
}
}
13
小结
1、温度测试电路设计。
2、程序流程图设计
3、应用程序设计。
14
作业
自我测评第4题、5题。
�
�
�
温度转换电路
单片机最小应用系统�
数字显示电路�
AD转换电路�
$