基于单片机的多路温度采集与控制说明书.docx

上传人:b****8 文档编号:29760773 上传时间:2023-07-26 格式:DOCX 页数:24 大小:91.59KB
下载 相关 举报
基于单片机的多路温度采集与控制说明书.docx_第1页
第1页 / 共24页
基于单片机的多路温度采集与控制说明书.docx_第2页
第2页 / 共24页
基于单片机的多路温度采集与控制说明书.docx_第3页
第3页 / 共24页
基于单片机的多路温度采集与控制说明书.docx_第4页
第4页 / 共24页
基于单片机的多路温度采集与控制说明书.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于单片机的多路温度采集与控制说明书.docx

《基于单片机的多路温度采集与控制说明书.docx》由会员分享,可在线阅读,更多相关《基于单片机的多路温度采集与控制说明书.docx(24页珍藏版)》请在冰豆网上搜索。

基于单片机的多路温度采集与控制说明书.docx

基于单片机的多路温度采集与控制说明书

课程设计说明书

题目:

基于单片机的多路温度采集系统

专业:

班级:

姓名:

学号:

指导老师:

成绩:

 

3.1数码管驱动电路设计……………………………………..4

3.2单片机复位电路设计……………………………………..5

3.3振荡器电路模块设计……………………………………..7

3.4按键调整电路设计………………………………………..7

3.5温度报警电路设计………………………………………..8

3.6单片机I/O口功能说明…………………………………….9

第一章设计要求及目的

数据采集系统用于将模拟信号转换为计算机可以识别的数字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一.这次设计用到的集成芯片主要有8051单片机、ADC0808等.ADC0800主要作用是对八路模拟信号进行选择采集,并将其转化为八位数字信号,再送至主控制器(8051单片机);软件部分即为控制单片机的工作进程,程序由汇编语言完成并在PROTEUCE开发软件中进行的调试与仿真.

设计要求:

●以一定时间间隔对8个温度通道进行巡回采集,温度检测范围0℃~64℃;

●选择合适的方式对采集的值应进行数字滤波;

●可用键盘选择显示通道情况;

●数码管显示,同时显示通道号;

●具有超限报警功能;

●可通过键盘设置上、下限值。

第二章系统总体方案选择与说明

为了充分利用学校的有效资源,我们仅仅对本课题做一个简单的设计,并且在网上下载PROTUEUCE软件,运行后进行初步的仿真实验

八路模拟信号数值测量显示电路由A/D转换、数据处理及显示控制等组成。

A/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(23-25脚)可决定对哪一路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。

6脚为测试控制,当输入一个2μS宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。

9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。

单片机的P0、P3端口作四位LED数码管显示控制,P1端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制

第三章系统方框图与工作原理

根据设计要求的性能指标,本系统不仅要满足一定精度的温度采集的基本功能,而且由于测量的路数为8路,还存在多路信号的循环显示问题,还要考虑温度超限报警输出的功能,同时系统还具有显示当前各路的测量温度值的功能和键盘选择显示路数的功能。

根据本课题的设计目标以及硬件的特点,本系统的结构原理图如下图1所示:

S

T

C

8

9

C

5

1

4位数码管

报警指示灯

(高、低温)

4个键盘

蜂鸣器报警

ADC0808

模数转换器

温感元件

图1系统方框图

主控器通过串行传输线路对各路数据进行采集和显示。

采集方式包括循环采集(即1路、2路……7路、8路、1路……)和按键选择采集(任选一路)二种方式。

显示部分能同时显示地址和相应的数据。

在采集信号的同时主控器将寄存器中存储的上下限值与实际采集值进行比较,若超过限值,声光报警。

系统电路原理图:

图2系统原理图

硬件功能实现:

⑴键盘功能:

K00:

选择通道显示(1~8);K1.0:

升高温度上限;K1.1:

降低温度上限;K2.0、K2.1:

温度下限调节。

⑵报警功能:

上下限声光报警;

3.1数码管驱动电路设计

显示电路采用了5个LED数码管,单片机I/O的应用最典型的是通过I/O口与8段LED数码管构成显示电路。

8段LED数码管,则在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。

LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的。

因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。

数码管驱动电路在整个系统中的设计如下图10:

图3数码管驱动电路设计

其中DB0~DB7接单片机的P0.0~P0.7,LED3~LED7作为数码管的位选控制端,分别由P2.0~P2.3控制。

本设计的显示电路由四个数码管组成,各个数码管的含义分别如下(表1):

第一位(LED1):

显示温度值个位。

第二位(LED2):

显示温度值十位。

第三位(LED3):

不显示

第四位(LED4):

显示通道选择位。

如下表:

表1数码管各位显示区域

4

通道选择位

3

不显示

2

温度值十位

1

温度值个位

3.2单片机复位电路设计

STC89C51单片机工作之后,只要在它的RST引线上加载10ms以上的高电平,单片机就能有效地复位。

51单片机通常采用上电自动复位和按键复位两种方式。

最简单的复位电路如下图4和图5:

图4单片机上电复位电路图

图5单片机按键复位电路图

如图4的上电复位电路与图5的按键复位电路,它们的原理相同。

而按键复电路的好处在于在单片机运行期间,可以通过按键来完成复位动作,无须从新上电。

为了方便程序调试及作品的使用,本设计采用按键复位电路,即图5.

它的原理如下:

上电或按键瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。

在应用系统中,有些外围芯片也需要复位。

如果这些芯片复位端的复位电平与单片机的复位电平的要求一致,则可以将复位信号与之相连。

3.3振荡器电路模块设计

STC89C51单片机内部没有振荡电路,需要外加振荡器提供标准时钟,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器,要形成时钟,外部还需要附加电路。

石英晶体振荡和陶瓷振荡均可采用。

输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

51单片机的时钟产生方式有两种,分别为:

内部时钟方式和外部时钟方式。

利用其内部的振荡电路XTAL1和XTAL2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟信号。

在STC89C51单片机一般常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激振荡器,晶体和电容决定了单片机的工作时间精度为1微秒。

晶体可在1.2-12MHz之间选择。

STC898C51单片机在通常应用情况下,使用振荡频率为6MHZ的石英晶体,而12MHZ频率的晶体主要是在高速串行通信情况下才使用,在这里我用的是12MHZ石英晶体。

对电容无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振荡速度有一点影响。

C1和C2可在20-100PF之间取值,一般情况取30PF。

外部时钟方式是把外部振荡信号源直接接入XTAL1或XTAL2。

由于XTAL2逻辑电平不是TTL的,所以还要接一个上拉电阻。

其原理图如图6.

图6振荡器设计电路

3.4按键调整电路设计

按键调整界面主要是由4个独立键盘和5位数码管构成,实现对温度的实时控制和显示。

5个独立键盘选用轻触按键,单片机检测按键的原理是:

单片机的I/O口既可作为输出也可以作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连,如图7所示,开始时先给该I/O口赋一高电平,然后让单片机不断地检测该I/O口是否变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下,然后执行相应的指令。

图7独立键盘电路

3.5温度报警电路设计

本设计采用了蜂鸣器和警示灯来构成整个报警系统。

对于采集到的两路温度进行判断,如果通道1的温度高于设定的温度,则蜂鸣器以“嘀”一声报警,同时,通道1的红色报警灯点亮;如果是通道2的温度低于设定的温度,则蜂鸣器发出“嘀嘀”两声的声音报警,同时,通道2的绿色报警指示灯点亮。

蜂鸣器的驱动原理是:

利用三极管的开关特性,当9012的b极出现低电平“0”时,三极管导通;当b极出现高电平“1”时,三极管截止。

通过三极管的导通与截止之间的时间差产生的脉冲,使蜂鸣器发出“滴答”的响声。

驱动电路如图8报警指示电路如图9。

图8蜂鸣器电路

图9温度报警指示灯电路

3.6单片机I/O口功能说明

此处所用的处理器也是40DIP的STC89C51芯片。

它主要完成的功能有:

1)对8段LED数码管的段码显示驱动(P0.0~P0.7);

2)对4个数码管的位选(P2.0、P2.1、P2.2、P2.3);

3)对0808模拟通道选择。

(P3.0、P3.1、P3.2);

4)对4个独立键盘扫描检测(P3.4、P1.1、P1.2、P1.3);

5)对两路报警LED指示灯的亮灭控制(P1.5,P1.6)。

通过该单片机即可实现人机交互界面的控制。

第四章器件说明

4.1单片机89C51说明

80C51是公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。

它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。

80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。

此外,80C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。

在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。

掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。

8051是典型的单片机,由CPU系统,外围功能单元和一体化的I/O端口3部分组成。

CPU系统:

包括CPU,时钟系统和总线控制逻辑3部分。

CPU包含运算器和控制器,专门为面向控制对象,嵌入式特点而设计,有突出控制功能的指令系统。

时钟系统:

包含振荡器,外接谐振元件,可关闭振荡器或CPU时钟。

总线控制逻辑:

主要用于管理外部并行总线时序及系统的复位控制,外部引脚有RET、ALE、EA和PSEN。

外围功能单元包括ROM程序存储器,RAM数据存储器,I/O端口和SFR特殊功能寄存器4部分。

80C51基本功能单元包括定时/计数器、中断系统和串行接口3个基本功能单元。

4.2ADC0808说明

ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

ADC0808各脚功能如下:

D7-D0:

8位数字量输出引脚。

IN0-IN7:

8位模拟量输入引脚。

VCC:

+5V工作电压。

GND:

地。

REF(+):

参考电压正端。

REF(-):

参考电压负端。

START:

A/D转换启动信号输入端。

ALE:

地址锁存允许信号输入端。

(以上两种信号用于启动A/D转换).

EOC:

转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。

OE:

输出允许控制端,用以打开三态数据输出锁存器。

CLK:

时钟信号输入端(一般为500KHz)。

ADC0808的内部逻辑结构:

图10 ADC0808的内部逻辑结构

4.3ADC0809应用说明

(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

(2).初始化时,使ST和OE信号全为低电平。

(3).送要转换的哪一通道的地址到A,B,C端口上。

(4).在ST端给出一个至少有100ns宽的正脉冲信号。

(5).是否转换完毕,我们根据EOC信号来判断。

(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

软件设计完成后,可根据PRTEL99SE中的电路原理图进行引脚锁定,然后启动编译程序来编译项目。

编译器将进行错误检查、网表提取、逻辑综合和器件适配,然后进行行为仿真、功能仿真和时序仿真。

4.4LED显示器

本LED显示器可自动轮流显示8路输入模拟电压的数字值,最小分辨精度为0.02V,最大显示数值为255(输入为5V时),模拟输入最大值为5V。

表2LED数码显示器的字形(段)码

显示字形

字形码(共阳极)

字形码(共阴极)

0

C0H

3FH

1

F9H

06H

2

A4H

5BH

3

B0H

4FH

4

99H

66H

5

92H

6DH

6

82H

7DH

7

F8H

07H

8

80H

7FH

9

90H

6FH

A

88H

77H

B

83H

7CH

C

C6H

39H

D

A1H

5EH

E

86H

79H

F

8EH

71H

熄灭

FFH

00H

第五章软件设计与说明

系统软件主要功能是对整个计算机系统进行调度、管理、监视及服务等。

它能够使系统的各种资源得到合理的调度和高效的使用,并能监视系统的运行状态,一旦出现故障就能自动保护现场信息使之不受破坏,并诊断出故障部位。

它还可以帮助用户调试程序、查找程序中的错误等。

5.1程序设计流程图

主程序主要功能是控制调用子程序,实现温度的实时显示、读出并处理ADC0808的数据测量值(温度测量每1s进行一次)。

其程序流程图如图12所示。

开始

初始化

八通道循环参数设置

参数累加

通道选择

小于8

否则

采集数据

数码管显示

键盘扫描

通道选择显示

调节上下限

是否按键

NO

YES

图12程序设计流程图

总结

经过这此单片机课程设计,我学会了很多东西。

比如,对汇编语言的理解就已经有了一个更进一步的理解,同时也对那些我们已经学过的各种计算机语言进行了一个简单的对比。

在经过大一的语言课程设计和大三的电子电路课程设计以及此次单片机课程设计。

使我养成了模块化工程设计方法的习惯,在设计功能模块时候,得先确定是什么功能模块,并绐模块读取地址或数据和存储地址或传出变量。

只要这样,在需要时候进行调用或中断就可以了。

 单片机是很重要的一门课程,尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。

最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。

参考文献

[1]王守中.《51单片机开发入门与典型实例》.人民邮电出版社

[2]王迎旭.《单片机原理及应用》.机械工业出版社,北京:

2004

[3]楼然苗.《51系列单片机设计实例》.北航出版社

附录:

由于时间关系,本次课程设计的程序,调试中并没有实现课程设计中要求的按键控制功能,一直到课程设计结束,仍在调试中(调用的按键子函数为P_KEY)。

LED_0EQU30H

LED_1EQU31H

LED_2EQU32H

ADCEQU35H

TCNTAEQU36H

TCNTBEQU37H

H_TEMPEQU38H;温度上限

L_TEMPEQU39H;温度下限

H_TEEQU21H

L_TEEQU22H

K10EQUP3.3

K11EQUP3.4

K20EQUP3.5

K21EQUP3.6

FLAGBIT00H

H_ALMBITP3.5

L_ALMBITP3.6

SOUNDBITP3.7

CLOCKBITP2.4

STBITP2.5

EOCBITP2.6

OEBITP2.7

ORG00H

SJMPSTART

ORG0BH

LJMPINT_T0

ORG1BH

LJMPINT_T1

START:

MOVLED_0,#00H

MOVLED_1,#00H

MOVLED_2,#00H

MOVDPTR,#TABLE

MOVH_TEMP,#55

MOVL_TEMP,#10

MOVTMOD,#12H

MOVTH0,#99

MOVTL0,#0

MOVTH1,#(65536-1000)/256

MOVTL1,#(65536-1000)MOD256

MOVIE,#8aH

CLRC

SETBTR0;为ADC0808提供时钟

LOOP:

MOVR1,#11111111B;八通道循环起始

MOVR2,#00H

;**************************************************************************

WAIT:

SETBH_ALM

SETBL_ALM

CLRST

SETBST

CLRST;启动转换

JNBEOC,$

;-------------------------------------------------------------

;-------------------------------------------------------------------

MOVA,R1;信号采集循环

MOVP3,A

SUBBA,#11110111B

JZLOOP

DECR1

INCR2

;---------------------------------------------------------------------

MOVR0,#100;循环运行

LOOP1:

SETBOE

MOVADC,P1;读取AD转换结果

CLROE

MOVA,ADC

MOVL_TE,L_TEMP

SUBBA,L_TE;判断是否低于下限

JCLALM

MOVA,H_TEMP

MOVH_TE,ADC

SUBBA,H_TE;判断是否高于上限

JCHALM

CLRTR1

LJMPPROC

CLRTR1

LJMPPROC

LALM:

;低温报警

CLRL_ALM

CLRSOUND

SETBTR1

CLRFLAG

LJMPPROC

HALM:

;高温报警

CLRH_ALM

CLRSOUND

SETBTR1

SETBFLAG

LJMPPROC

;-----------------------------------------------------------------

PROC:

MOVA,ADC;数值转换

MOVLED_2,R2

MOVB,#10

DIVAB

MOVLED_1,A

MOVLED_0,B

LCALLDISP

DJNZR0,LOOP1

SJMPWAIT

INT_T0:

CPLCLOCK;提供ADC0808时钟

RETI

INT_T1:

MOVTH1,#(65536-1000)/256

MOVTL1,#(65536-1000)MOD256

CPLSOUND

INCTCNTA

MOVA,TCNTA

JBFLAG,I1;判断是高温警报还是低温警报

CJNEA,#30,RETUNE;低温警报声

SJMPI2

I1:

CJNEA,#10,RETUNE;高温警报声

I2:

MOVTCNTA,#0

INCTCNTB

MOVA,TCNTB

CJNEA,#25,RETUNE

MOVTCNTA,#0

MOVTCNTB,#0

LCALLDELAY2

RETUNE:

RETI

DISP:

MOVA,LED_0;数码显示子程序

MOVCA,@A+DPTR

CLRP2.3

MOVP0,A

LCALLDELAY

SETBP2.3

MOVA,LED_1

MOVCA,@A+DPTR

CLRP2.2

MOVP0,A

LCALLDELAY

SETBP2.2

MOVA,LED_2

MOVCA,@A+DPTR

CLRP2.0

MOVP0,A

LCALLDELAY

SETBP2.0

RET

;****************************************************************

P_KEY:

;按键扫描

JBK10,PK1

JNBK10,$

MOVA,H_TEMP

LCALLLOOK_ALARM

LCALLSET_ALARM

PK1:

JBK20,PK2

JNBK20,$

MOVA,H_TEMP

LCALLLOOK_ALARM

LCALLSET_ALARM

PK2:

JBK11,PK3

JNBK11,$

MOVA,L_TEMP

LCALLLOOK_ALARM

LCALLSET_ALARM

PK3:

JBK21,PK4

JNBK21,$

MOVA,L_TEMP

LCALLLOOK_ALARM

LCALLSET_ALARM

PK4:

LCALLDELAY

RET

SET_ALARM:

A0:

JBK10,A2;TH值增加

INCH_TEMP

MOVA,H_TEMP

CJNEA,#64,A1

MOVH_TEMP,#50

A1:

LCALLLOOK_ALARM

MOVR5,#10

LCALLDE

JMPA0

A2:

JBK20,A4;TL值增加

INCH_TEMP

MOVA,H_TEMP

CJNEA,#64,A3

MOVH_TEMP,#10

A3:

LCALLLOOK_ALARM

MOVR5,#10

LCALLDE

JMPA2

A4:

JBK11,A6

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1