温度采集及显示控制Word文档下载推荐.docx

上传人:b****6 文档编号:18827883 上传时间:2023-01-01 格式:DOCX 页数:16 大小:274.30KB
下载 相关 举报
温度采集及显示控制Word文档下载推荐.docx_第1页
第1页 / 共16页
温度采集及显示控制Word文档下载推荐.docx_第2页
第2页 / 共16页
温度采集及显示控制Word文档下载推荐.docx_第3页
第3页 / 共16页
温度采集及显示控制Word文档下载推荐.docx_第4页
第4页 / 共16页
温度采集及显示控制Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

温度采集及显示控制Word文档下载推荐.docx

《温度采集及显示控制Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《温度采集及显示控制Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

温度采集及显示控制Word文档下载推荐.docx

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。

用+5V单电源供电,能在以下三种方式下工作:

方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。

8255的内部结构及引脚如图6-4所示:

图3.18255内部结构及引脚

ADC0809主要功能

AD0809具有8个通道的模拟输入线(IN0~IN7),可在程序控制下对任意通道进行A/D转换,获得8位二进制数字量(D7~D0)。

模拟输入部分有8路多路开关,可由3位地址输入ADDA、ADDB、ADDC的不同组合来选择,ALE为地址锁存信号,高电平有效,锁存这三条地址输入信号。

主体部分是采用逐次逼近式的

A/D转换电路,由CLK控制的内部电路的工作,START为启动命令,高电平有效,启动ADC0809内部的A/D转换,当转换完成,输出信号EOC有效,OE为输出允许信号,高电平有效,打开输出三态缓冲器,把转换后的结果送DB。

ADC0809的内部结构和引脚如图3.3所示:

图3.3内部结构和引脚

七段LED显示器及其接口 

七段LED显示器:

由七个发光段构成,每段均为1个LED二极管。

通过控制不同段的点亮和熄灭,显示出16进制数字或字符。

 七段LED显示器有共阳极和共阴极两种结构,如图6-3所示的七段LED实际上包含8个LED(7段字形加上小数点DP)。

  1位LED显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。

图3.4七段LED显示

2.实验电路及连接

LED显示电路和键盘电路实验仪上已接好。

原理图见图1。

A/D变换电路只要接上模拟量输入和地址选择信号即可。

图1

连接孔1

连接孔2

1

AD_CS

CS2

2

IN0

电位器输出

3

8255_CS

CS0

4

PA0

L0

5

PA1

L1

6

KEY/LED_CS

CS1

四、实现方法

1.实验程序框图

A/D采样子程序框图

2.程序源代码

modeequ082h;

方式0,PA,PC输出,PB输入

PortAequ8000h;

PortA

PortBequ8001h;

PortB

PortCequ8002h;

PortC

CAddrequ8003h;

控制字地址

ADPortequ0a000h;

AD采样输入片选

CS273equ0a000h;

控制输出片选

UPequ16h;

Next

DOWNequ15h;

Last

LowLimitequ10

HighLimitequ30

LowTempequ-45;

A/D0

HighTempequ55;

A/D255

Heatequ1;

加热控制

Coolequ2;

致冷控制

OUTBITequ09002h;

位控制口

OUTSEGequ09004h;

段控制口

IN_KEYequ09001h;

键盘读入口

datasegment

LEDBufdb6dup(?

);

显示缓冲

Numdb1dup(?

显示的数据

DelayTdb1dup(?

CurTempdb1dup(?

SetTempdb1dup(?

PortABufdb1dup(?

LEDMAP:

;

八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

KeyTable:

键码定义

db16h,15h,14h,0ffh

db13h,12h,11h,10h

db0dh,0ch,0bh,0ah

db0eh,03h,06h,09h

db0fh,02h,05h,08h

db00h,01h,04h,07h

dataends

codesegment

assumecs:

code,ds:

data

Delayprocnear

pushax;

延时子程序

pushcx

moval,0

movcx,ax

loop$

popcx

popax

ret

Delayendp

DisplayLEDprocnear

movbx,offsetLEDBuf

movcl,6;

共6个八段管

movah,00100000b;

从左边开始显示

DLoop:

movdx,OUTBIT

outdx,al;

关所有八段管

moval,[bx]

movdx,OUTSEG

outdx,al

moval,ah

outdx,al;

显示一位八段管

pushax

movah,1

callDelay

shrah,1

incbx

deccl

jnzDLoop

DisplayLEDendp

TestKeyprocnear

输出线置为0

movdx,IN_KEY

inal,dx;

读入键状态

notal

andal,0fh;

高四位不用

TestKeyendp

GetKeyprocnear

movch,00100000b

movcl,6

KLoop:

moval,ch;

找出键所在列

outdx,al

shrch,1

inal,dx

andal,0fh

jneGoon_;

该列有键入

jnzKLoop

movcl,0ffh;

没有键按下,返回0ffh

jmpExit1

Goon_:

deccl

shlcl,2;

键值=列X4+行

movch,4

LoopC:

testal,1

jnzExit1

shral,1

inccl

decch

jnzLoopC

Exit1:

movch,0

movbx,offsetKeyTable

addbx,cx

moval,[bx];

取出键码

movbl,al

WaitRelease:

等键释放

movah,10

callTestKey

jneWaitRelease

moval,bl

GetKeyendp

;

===================================

DisplayResultprocnear

moval,CurTemp

testal,80h

jzGE0

movLEDBuf,40h;

'

-'

decal

jmpGoon

GE0:

movLEDBuf,0;

Goon:

movcl,10

movah,0

divcl

movbh,0

addbx,offsetLEDMAP

movLEDBuf+1,al

movbl,ah

movLEDBuf+2,al

movLEDBuf+3,0;

moval,SetTemp

movLEDBuf+4,al

movLEDBuf+5,al

DisplayResultendp

ReadADprocnear

movdx,ADPort

moval,60

rr:

decal;

delay

jnzrr

ReadADendp

ReadTempprocnear

movbx,0

movcl,16

RLoop:

callReadAD

addbx,ax

jnzRLoop

shrbx,4

movax,bx

movcl,HighTemp-LowTemp

mulcl

moval,ah;

/256

addal,LowTemp

movCurTemp,al

ReadTempendp

Startprocnear

movax,data

movds,ax

moval,mode

movdx,CAddr

输出控制字

movSetTemp,20

MLoop:

jneKeyPressed

callDisplayResult

callDisplayLED

callReadTemp

cmpCurTemp,al

jgeGN2

orPortABuf,Heat

andPortABuf,notCool

jmpGN4

GN2:

incal

jleGN3

orPortABuf,Cool

andPortABuf,notHeat

GN3:

andPortABuf,not(Cool+Heat)

GN4:

movdx,PortA

moval,PortABuf

jmpMLoop

KeyPressed:

callGetKey

cmpal,DOWN

jneKey0

cmpSetTemp,LowLimit

jeKey1

decSetTemp

jmpKey1

Key0:

cmpal,UP

jneKey1

cmpSetTemp,HighLimit

incSetTemp

Key1:

startendp

codeends

endstart

五、实施结果

1操作步骤

1).按照电路图链接电路,完成电路链接。

2).打开计算机电源,执行WAVE集成调试程序源代码。

3).执行程序源代码,改变电位器,进行实验并记录实验结果。

2运行结果

调整电位器,LED显示温度范围在-39℃到49℃,分辨率为

2℃。

当采集的温度值超过设定温度时,能点亮发光二极管。

小于设定温度-2℃时显示绿色;

温度超过设定温度+2℃,显示红色灯;

温度在设定温度-/+2℃以内显示灯熄灭,表示温度。

按键盘向上键,LED显示设定温度+1℃,按向下键LED显示设定温度-1℃。

六、改进意见及建议

这次设计基本的完成了课程设计的要求,实现了温度的采集及显控制示。

通过测试表明系统的设计是正确的,可行的。

但是由于设计经验和知识水平有限,系统还存在许多不足和缺陷。

改进意见:

在原有的设计中可以加入了报警,如果所设计的系统是监控某一设备,当设备的温度达到我们所设定的温度值时,系统会产生报警.。

报警时驱动扬声器发出声音,

以便操作员来维护,从而达到报警的目的。

七、设计体会

在此次课程设计过程中,我经历了失败的痛苦,也尝到了成功的喜悦。

同时也检查了自己的知识水平,使我对自己有一个全新的认识。

而且我在巩固了平时所学习的知识的同时,也通过不断查阅相关资料,学习新的知识。

通过此次课设,我明白了很多,理论指导实践,但是理论也需要实践给予证明,凡事都要通过自己的思考推敲,否则自己不会取的大的进步。

而且在平时的学习生活中,应该多和周围的同学相互学习,交流经验。

遇到不会的问题时,切忌焦躁!

首先要经过自己的独立思考,有了一定想法后,可以去查找相关的资料书刊或者找同学讨论。

在遇到问题,解决问题的过程中,不断加强自我的动手,动脑能力,也只有这样,在思路清晰,条理顺畅的时候,再去进行软件编写和硬件操作工作,才有可能起到事半功倍的效果。

这次课程设计,不仅锻炼我的分析问题、处理问题的能力,还提高了自己的动手能力以及沟通协作的能力。

也让我更加明确了日后的学习目标,那就是学东西一定要扎实,绝不能一知半解。

这次课程设计使我受益匪浅,在课程设计中,培养的能力和锻炼对于我今后的学习和生活来说,是很重要的经历与经验,它将积极地影响我。

(注:

可编辑下载,若有不当之处,请指正,谢谢!

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

当前位置:首页 > 初中教育 > 政史地

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

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