《单片机课程设计报告》.docx
《《单片机课程设计报告》.docx》由会员分享,可在线阅读,更多相关《《单片机课程设计报告》.docx(50页珍藏版)》请在冰豆网上搜索。
《单片机课程设计报告》
《微机原理与接口技术》
课程设计报告
题目温度控制器的设计
学院电气工程学院
班级 电气0802班
姓 名 杨洋
学号 08291058
指导老师 姜久春
小组成员 杨洋、徐国金
2011年 1 月 12 日
《微机原理与口技术》课程设计报告
——温度控制器的设计
【题目】
温度控制器
【要求】
1.采用1路模拟输入,电压范围为0——5V,控制温度变化范围为0——99.9。
C。
2.使用2个继电器分别控制加热器和风机,用来加热和降温。
3.目标温度保持在60度。
4.系统中加一个滞环,当温度低于50度,开始加热;当温度高于55度时,关加热器;
当温度高于70度时,开风机;当温度低于65度时,关风机。
5.使用3个数码管作为输出显示电压值或温度值。
【预习及准备】
1.课题背景
电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化。
在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。
而本次设计就是要通过以MCS-51系列单片机为控制核心,实现温度控制器的设计。
2.系统原理及流程图的初步设计
通过调整继电器,则可将需要设定的温度随所对应的电压值传输给单片机,再由单片机控制显示器,显示出设定的电压值(即对应的温度值),再通过温度传感器和AD转换将采集的温度与设定的温度进行比较,若一致,则不动作,若不一致,则驱动加热或降温设备,从而实现对被控对象的温度控制。
经设计,温度控制器主要由单片机AT89S51、温度采样电路、A/D转换电路、温度显示电路、温度输入电路、驱动电路等组成。
我自己绘制的系统框图和主程序流程图如下所示:
图1温度控制器系统框图
主程序流程图如下所示:
低于65度
低于50度
高于70度
高于55度
图2主程序流程图
3.元件资料及管脚图
预习部分:
(1)AT89S51单片机
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash制度程序存储器,器件采用ATMEL公司的高密度、非易失行存储技术生产,兼容标准8051指令系统及引脚。
其主要组成和功能为:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),2个数据指针,2个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个复位。
其管脚图及框图如下:
图3AT89S51管脚图图4AT89S51功能框图
(2)ADC0809(或ADC0804)
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
其内部逻辑结构为:
ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条。
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择为:
当CBA的值由000——111变化时,分别选择IN0——IN7通道。
数字量输出及控制线:
11条。
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
其管脚图及内部结构图如下:
图5ADC0809管脚图图6ADC0809内部结构图
因本设计只要1路模拟输入,所以用0809比较浪费。
可采用ADC0804,ADC0804与ADC0809基本相同,但只将输入模拟值转换为数字值输出到D0。
(3)74LS48译码器
74LS48七段显示译码器输出高电平有效,用以驱动共阴极显示器。
该集成显示译码器设有多个辅助控制端,以增强器件的功能。
它有3个辅助控制端LT、RBI、BI/RBO,现简要说明如下:
1.灭灯输入BI/RBO:
BI/RBO是特殊控制端,有时作为输入,有时作为输出。
当BI/RBO作输入使用且BI=0时,无论其它输入端是什么电平,所有各段输入a~g均为0,所以字形熄灭。
2.试灯输入LT:
当LT=0时,BI/RBO是输出端,且RBO=1,此时无论其它输入端是什么状态,所有各段输出a~g均为1,显示字形8。
该输入端常用于检查7488本身及显示器的好坏。
3.动态灭零输入RBI:
当LT=1,RBI=0且输入代码DCBA=0000时,各段输出a~g均为低电平,与BCD码相应的字形熄灭,故称“灭零”。
利用LT=1与RBI=0可以实现某一位的“消隐”。
此时BI/RBO是输出端,且RBO=0。
4.动态灭零输出RBO:
BI/RBO作为输出使用时,受控于LT和RBI。
当LT=1且RBI=0,输入代码DCBA=0000时,RBO=0;若LT=0或者LT=1且RBI=1,则RBO=1。
该端主要用于显示多位数字时,多个译码器之间的连接。
7448的功能表如下:
图774LS48译码器功能表
从功能表可看出,对输入码0000,译码条件是:
LT和RBI同时等于1,而对其它输入码则仅要求LT=1,这时候,译码器各段a~g输出的电平是由输入BCD码决定的,并且满足显示字形的要求。
其管脚图及与数码管的连接如下:
图874LS48管脚图图974LS48与数码管的连接
(4)共阴极LED数码显示管
在单片机系统中,通常用LED数码显示器来显示各种数字或符号。
由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
八段LED显示器由8个发光二极管组成。
基中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。
LED显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
共阴极和共阳级结构的LED显示器各笔划段名和安排位置是相同的。
当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。
8个笔划段hgfedcba对应于一个字节(8位)的D7D6D5D4D3D2D1D0,于是用8位二进制码就可以表示欲显示字符的字形代码。
例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为01110011(76H)时,显示器显示"P"字符,即对于共阴极LED显示器,“P”字符的字形码是73H。
如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。
其管脚图及内部结构图如下:
图10LED管脚图图11LED内部结构(共阳极)图12LED内部结构(共阴极)
实际使用部分:
(1)AT89S51单片机
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash制度程序存储器,器件采用ATMEL公司的高密度、非易失行存储技术生产,兼容标准8051指令系统及引脚。
其主要组成和功能为:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),2个数据指针,2个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个复位。
其管脚图及框图如下:
图13AT89S51管脚图图14AT89S51功能框图
(2)ADC0832
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
学习并使用ADC0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。
ADC0832具有以下特点:
·8位分辨率;
·双通道A/D转换;
·输入输出电平与TTL/CMOS相兼容;
·5V电源供电时输入电压在0~5V之间;
·工作频率为250KHZ,转换时间为32μS;
·一般功耗仅为15mW;
·8P、14P—DIP(双列直插)、PICC多种封装;
·商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;
芯片如下所示:
图15ADC0832管脚图
芯片接口说明:
·CS_片选使能,低电平芯片使能。
·CH0模拟输入通道0,或作为IN+/-使用。
·CH1模拟输入通道1,或作为IN+/-使用。
·GND芯片参考0电位(地)。
·DI数据信号输入,选择通道控制。
·DO数据信号输出,转换数据输出。
·CLK芯片时钟输入。
·Vcc/REF电源输入及参考电压输入(复用)。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
单片机对ADC0832的控制原理:
正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。
其功能项如下图所示:
图16ADC0832功能项表
如上表所示,当此2位数据为“1”、“0”时,只对CH0进行单通道转换。
当2位数据为“1”、“1”时,只对CH1进行单通道转换。
当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。
到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。
直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
其时序说明图如下所示:
图17ADC0832时序说明图
作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。
如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。
但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。
ADC0832芯片接口程序的编写:
为了高速有效的实现通信,我们采用汇编语言编写接口程序。
由于ADC0832的数据转换时间仅为32μS,所以A/D转换的数据采样频率可以很快,从而也保证的某些场合对A/D转换数据实时性的要求。
数据读取程序以子程序调用的形式出现,方便了程序的移植。
程序占用资源有累加器A,工作寄存器R7,通用寄存器B和特殊寄存器CY。
通道功能寄存器和转换值共用寄存器B。
在使用转换子程序之前必须确定通道功能寄存器B的值,其赋值语句为“MOVB,#data”(00H~03H)。
运行转换子程序后的转换数据值被放入B中。
子程序退出后即可以对B中数据处理。
ADC0832芯片接口程序[汇编]:
/*-------------------------------------------
子程序名:
ADC0832子程序
程序功能:
将模拟电压量转换成数字量
实现方法:
串行通信。
CPU说明:
MCS-51
植入说明:
占用A、B、CY、R7
-------------------------------------------*/
;以下接口定义根据硬件连线更改
ADCSBITP3.5;使能接口
ADCLKBITP3.4;时钟接口
ADDOBITP3.3;数据输出接口(复用)
ADDIBITP3.3;数据输入接口
;以下语句在调用转换程序前设定
MOVB,#00H;装入通道功能选择数据值
;以下为ADC0832读取数据子程序
;====ADC0832读数据子程序====
ADCONV:
SETBADDI;初始化通道选择
NOP
NOP
CLRADCS;拉低/CS端
NOP
NOP
SETBADCLK;拉高CLK端
NOP
NOP
CLRADCLK;拉低CLK端,形成下降沿
MOVA,B
MOVC,ACC.1;确定取值通道选择
MOVADDI,C
NOP
NOP
SETBADCLK;拉高CLK端
NOP
NOP
CLRADCLK;拉低CLK端,形成下降沿2
MOVA,B
MOVC,ACC.0;确定取值通道选择
MOVADDI,C
NOP
NOP
SETBADCLK;拉高CLK端
NOP
NOP
CLRADCLK;拉低CLK端,形成下降沿3
SETBADDI
NOP
NOP
MOVR7,#8;准备送下后8个时钟脉冲
AD_1:
MOVC,ADDO;接收数据
MOVACC.0,C
RLA;左移一次
SETBADCLK
NOP
NOP
CLRADCLK;形成一次时钟脉冲
NOP
NOP
DJNZR7,AD_1;循环8次
MOVC,ADDO;接收数据
MOVACC.0,C
MOVB,A
MOVR7,#8
AD_13:
MOVC,ADDO;接收数据
MOVACC.0,C
RRA;左移一次
SETBADCLK
NOP
NOP
CLRADCLK;形成一次时钟脉冲
NOP
NOP
DJNZR7,AD_13;循环8次
CJNEA,B,ADCONV;数据校验
SETBADCS;拉高/CS端
CLRADCLK;拉低CLK端
SETBADDO;拉高数据端,回到初始状态
RET
;====子程序结束====
(3)74HC573
74HC573是八进制3态非反转透明锁存器。
属于高性能硅门CMOS器件,SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。
当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
LE为锁存控制端。
图1774HC573管脚图图1874HC573与LED的连接
(4)74HC245
74HC245是总线驱动器,典型的TTL型三态缓冲门电路。
由于单片机等CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。
另外,也可以使用74HC244等其他电路,74HC244比74HC245多了锁存器。
图1974HC245内部电路及管脚图
引脚定义如下:
第1脚DIR:
输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。
第2~9脚“A”信号输入输出端,A1=B1、、、、、、A8=B8,A1与B1是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。
如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。
第11~18脚“B”信号输入输出端,功能与“A”端一样,不再描述。
第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。
第10脚GND,电源地。
第20脚VCC,电源正极。
(5)共阴极LED数码显示管
在单片机系统中,通常用LED数码显示器来显示各种数字或符号。
由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
八段LED显示器由8个发光二极管组成。
基中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。
LED显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
共阴极和共阳级结构的LED显示器各笔划段名和安排位置是相同的。
当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。
8个笔划段hgfedcba对应于一个字节(8位)的D7D6D5D4D3D2D1D0,于是用8位二进制码就可以表示欲显示字符的字形代码。
例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为01110011(76H)时,显示器显示"P"字符,即对于共阴极LED显示器,“P”字符的字形码是73H。
如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。
其管脚图及内部结构图如下:
图20LED管脚图图21LED内部结构(共阳极)图22LED内部结构(共阴极)
(6)运放OP07CP
OP07CP是运算放大器。
其特点为:
高质量数字音频放大102分贝动态范围(OP07CP设备)的THD+N<0.06%的电源效率为90%到8-Ω负载16-,20-,或24位输入32千赫,44.1kHz的,48千赫,88.2千赫兹,96赫兹,1.764-千赫,192千赫采样率经济48引脚TQFP封装下抖动内部PLL
OP07CP(绝对)最大额定值:
除了终止和EMC兼容性的要求,计算设备都必须为公共服务电子化敏感性测试。
这个测试是在IEC61000-4-2描述,并在已有的欧洲。
这个测试需要的设备,并继续容忍ESD事件,而无需用户干预的业务。
对于4比4英寸的敏感性前vious索尼由民政事务总署的超级CCD技术饱和信号电平通过产品分贝比以前增加了24英寸CCD的与以前的1/4的兼容性分贝增加光学系统的使用英寸CCD的水平保持寄存器和复位栅极驱动电压降低至3.0V(最小)。
其管脚图如下所示:
图23运放OP07CP管脚图
(7)继电器
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
继电器的继电特性:
继电器的输入信号x从零连续增加达到衔铁开始吸合时的动作值xx,继电器的输出信号立刻从y=0跳跃到y=ym,即常开触点从断到通。
一旦触点闭合,输入量x继续增大,输出信号y将不再起变化。
当输入量x从某一大于xx值下降到xf,继电器开始释放,常开触点断开。
我们把继电器的这种特性叫做继电特性,也叫继电器的输入-输出特性。
释放值xf与动作值xx的比值叫做反馈系数,即 Kf=xf/xx。
触点上输出的控制功率Pc与线圈吸收的最小功率P0之比叫做继电器的控制系数,即Kc=PC/P0。
其示意图如下所示:
图24继电器示意图
当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器。
可分为电气量(如电流、电压、频率、功率等)继电器及非电气量(如温度、压力、速度等)继电器两大类。
具有动作快、工作稳定、使用寿命长、体积小等优点。
广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。
其实质是一种传递信号的电器,它根据输入的信号达到不同的控制目的。
电磁继电器的工作原理和特性:
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。
只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。
当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。
这样吸合、释放,从而达到了在电路中的导通、切断的目的。
对于继电器的“常开、常闭”触点,可以这样来区分:
继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。
继电器的作用:
作为控制元件,概括起来,继电器有如下几种作用。
1)扩大控制范围。
例如,多触点继电器控制信号达到