计算机硬件技术报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机硬件技术实践报告
题目温度测量系统设计
姓名
专业测控技术与仪器
班级
学号
上海电力学院自动化工程学院
目录:
(1) 设计题目
(2)开发目的
(3)小组成员分工及成果
(4)设计方案以及论证
(5)硬件原理图(包括芯片的选型介绍)
(6)程序流程图(包括各个子系统和子过程的程序流程)
(7)程序清单,要有适当的注释
(8)程序运行结果分析与预测
(9)结果评述或总结(对实验结果进行分析,对实验过程进行总结,系统改进升级建议或者提出新的方案等。
)
一、 设计题目:
温度测量系统的设计 二、 开发目的:
利用8086微机设计出符合下面要求的系统:
1)利用热敏电阻和电桥电路测量温度变化信号; 2)经过放大后送到ADC0809转换成数字信号; 3)计算后在LED 数码管显示其温度值;
4)采用红绿灯指示温度范围,温度在给定范围内绿灯亮,温度超过指定范围时红灯显示警告。
扩展功能:实现上位机显示。
三、小组分工及成果: 小组成员:何睿钦 20112559 叶序 20112554 刘卿材 20112556
成员:何睿钦 主要负责:报警电路设计,温度测量电路设计。
叶序 主要负责:ADC0809与8255的连接以及8086与8255的连接。
刘卿材 主要负责:查阅资料,8086内置程序设计,协助完成实验运行 四、设计方案:
温度信息由温度传感器测量并转换成微安级的电流信号,经过
温度传感器
A/D 转换器
微处理器
译码 红绿灯报警
显示
运算放大电路将温度传感器输出的小信号进行跟随放大,输入到A/D转换器(ADC0809)转换成数字信号输入主机。
数据经过标度转换后,通过数码管将温度显示出来。
五、硬件原理图(包括芯片的选型介绍)
系统器件选择
1 系统扩展接口的选择
本次设计采用的是8086微处理器,选择8255A可编程并行接口作为系统的扩展接口,8255A的通用性强,适应灵活,通过它CPU可直接与外设相连接。
2温度传感器与A\D转换器的选择
系统选用温度传感器AD590构成测温系统。
AD590是一种电压输入、电流输出型集成温度传感器,测温范围为-55℃~150℃,非线性误差在±0。
30℃,其输出电流与温度成正比,温度没升高1K (K为开尔文温度),输出电流就增加1uA。
其输出电流I=(273+T)uA。
设计中串联电阻的阻值选用2KΩ,所以输出电压V+=(2730 + 10T)MV.另外,为满足系统输入模拟量进行处理的功能,对其再扩展一片ADC0809,以进行模拟—数字量转化。
但是在proteus中AD590无法选取,所以通过使用滑动变阻器来实现。
3显示接口芯片
为满足本次设计温度显示的需要,我们选择了8279芯片,INTEL8279芯片是一种通用的可编程的键盘、显示接口器件,单个芯片就能完成键盘键入和LED显示控制两种功能。
备注:系统硬件接线应尽量以插接形式连接,这样便于多用途使用和故障的检查和排除。
8086微处理器及其体系结构
8086CPU的编程结构
编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。
从功能上来看,8086CPU可分为两部分,即总线接口
部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。
8086CPU的内部功能结构如图2-1所示:
图2-1 8086/8088CPU内部功能结构图
执行部件(EU)
功能:负责指令的执行。
组成:包括①ALU(算术逻辑单元)、②通用寄存器组和③标志寄存器等,主要进行8位及16位的各种运算。
总线接口部件(BIU)
功能:负责与存储器及I/O接口之间的数据传送操作。
具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。
组成:它由①段寄存器(DS、CS、ES、SS)、②16位指令指针寄存器IP(指向下一条要取出的指令代码)、③20位地址加法器(用来产生20位地址)和④6字节(8088为4字节)指令队列缓冲器组成。
系统各部分功能模块介绍
温度测量电路设计
温度测量电路要实现的目标是:将0~120度通过传感器测量,运算放大器放大的0~5V的电压信号。
ADC0809与8255的连接
模拟输入通道地址A,B,C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换。
为了减少输入噪声其他通道直接接地。
ADC0809的数据线D0-D7与8255的PB0-PB7相连接。
其片选CS与8086的地址/数据总线AD14相连接。
图 3-3 ADC0809与8255的连接图
8086的可编程外设接口电路
8255的数据口D0-D7与CPU的6根控制线相连接,控制8255A 内部的各种操作。
控制线RESET用来使8255A复位。
CS和地址线A1及A0用于芯片选择和通道寻址。
8086的可编程外设接口电路图
LED显示电路设计
LED显示电路
报警电路设计
当温度低于80度时,绿灯亮;当温度高于80度时,红灯亮。
报警电路
系统整体硬件电路设计
软件设计
设计的目的是以8086微处理器为控制器,将温度传感器输出的
小信号经过放大和低通滤波后,送至A/D转换器;微控制器实时采集、显示温度值(要求以摄氏度显示).
六、程序清单
CASD EQU 209H
Z827 EQU 212H
D8279 EQU 210H
LEMDMOD EQU 00H ;左边输入,8位显示外部译码8位显示LEDFEQ EQU 38H ;扫描频率
LEDCLS EQU 0C1H ;清除显示RAM
Z8255 EQU 21BH
Z8255A EQU 218H
Z8255C EQU 21AH
COUNT EQU 8
DATA SEGMENT
DATA1 DB 4 DUP(?)
MESS1 DB ‘ENTED ANY KEY TO BEGIN !’,0DH ,0AH,’$’
MESS2 DB 10,13,’ENTER ANY KEY CAN EXIT TO DOS!’, 0DH ,0AH,’$’MESS3 DB 10,13,’INPUT THE TEMPERATURE VALUE :’, ’$’
MESS4 DB 10,13,’INPUT VALUE ERROR !’0DH ,0AH,’$’
MESS5 DB 10,13,’INPUT A NEW TEMPERATURE VALUE :’,’$’
MESS6 DB 10,13,’*** LET PA0=0 TO ADJUST THE TEMPERATURE VALUE !***’, 0DH ,0AH,’$’
MESS7 DB 10,13, ‘*** LET PA0=1 TO INPUT A NEW TEMPERATURE VALUE !***’, 0DH ,0AH,’$’
LED DB 3FH ,06H,5BH ,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H
DATA ENDS
STACK SEGMENT SRACK
STA DW 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START :MOV AX ,DATA
MOV DS ,AX
MOV ES ,AX
MOV AH ,09H ;显示提示信息1
MOV DX, OFFSET MESS1
INT 21H
MOV AH,09H ;显示提示信息6
MOV DX,OFFSET MESS6
INT 21H
MOV AH,09H ;显示提示信息7
MOV DX,OFFSET MESS7
INT 21H
MOV AH,08H
INT 21H
MOV AH,09H ;显示提示信息3
MOV DX,OFFSET MESS3
INT 21H
CALL INPUT ;输入设置的温度值存DATA1 OK:MOV DX,Z8255 ;设置A口为输入,C口为输出MOV AL ,92H
OUT DX, AL
MOV DX ,Z8255C
MOV AL,00H
OUT DX,AL
CALL DELAY
CALL DELAY
MOV DX, Z8279 ;初始化8279
MOV AL, LEDMOD
OUT DX,AL
MOV AH, 09H
MOV DX,OFFSET MESS2 ;显示提示信息2
INT 21H
BEGIN:MOV BX,0
MOV CL,COUNT
MOV CH,0
BB:MOV DX,CSAD ;启动AD
MOV AX,0
OUT DX,AL
CALL DELAY
IN AL ,DX ;采样AD值
ADC BX,AX ;求平均值
LOOP BB
MOV AX,BX
RCR AX,1
RCR AX,
RCR AX,1
CALL CHANGTOBCD ;转化为十进制的温度值
MOV DI,OFFSET DATA1
MOV [DI+3],AL
CALL DIS
MOV DI,OFFSET DATA1
MOV BL,[DI+2]
MOV AL,[DI+3]
CMP AL,BL
JB UP
MOV DX,Z8255A
IN AL,DX
AND AL,01H
JZ DOWN
MOV AH,09H
MOV DX,OFFSET MESS5
INT 21H
CALL INPUT
JMP BEGIN
UP: MOV AL,40H
JMP AA
DOWN:MOV AL,00H
AA: MOV DX,Z8255C
OUT DX,AL
MOV AH,0BH
INT 21H
CMP AL,0
JZ CC
MOV AX,4C00H
INT 21H
CC: JMP BEGIN
DELAY PROC NEAR
PUSH CX
MOV CX,0F00H
LOOP S
POP CX
RET
DELAY ENDP
INPUT PROC MEAR ;温度值的设置子程序 MOV AH,1H
INT 21H
MOV DI,OFFSET DATA1
MOV [DI],AL
MOV BH,AL
MOV AL,1L
INT 21H
MOV [DI+1],AL
MOV BL,AL
AND BH,0FH
RCL BH,1
RCL BH,1
RCL BH,1
RCL BH,1
AND BH,0FH
OR BL,BH
MOV AL,BL
CMP AL,76H ;输入温度大于76H则显示错误提示信息 JA ERR
MOV [DI+2],AL
RET
INPUT ENDP
ERR:MOV AH,09H ;显示错误提示信息
MOV DX,OFFSET MESS4
INT 21H
MOV AX,4C00H
INT 21H
CHANGE TOBCD PROC NEAR ;BCD码转换子程序
MOV BL,3
MUL BL
MOV BL,10
DIV BL
AAM ;非压缩BCD码乘法调整指令
MOV BL,AL
MOV AL,AH
MOV CL,04H
ROR AL,CL
XOR AL,BL
RET
CHANGE TOBCD ENDP
DIS PROC NEAR ;显示子程序
MOV BL,AL
MOV AL,0FH
PUSH AX
MOV DX,Z8279
MOV AL,90H
OUT DX,AL
POP AX
PUSH BX
LEA BX,LED
XLAT
POP BX
MOV DX,D8279
OUT DX,AL
CALL DELAY
MOV AL,BL
MOV CL,04H
ROR AL,CL
AND AL,0FH
LEA BX,LED
XLAT
MOV DX,D8279
OUT DX,AL
CALL DELAY
CALL DELAY
RET
DIS ENDP
CODE ENDS
END START
七、运行结果
给温度传感器设置10度时,电压表显示值为0.43V,绿灯亮,仍符合要求。
LED显示值为022。
以此类推当给温度传感器输入20,30,40度时;
当改变温度传感器温度值,使LED 显示为080时,绿灯亮。
当LED 显示大于80度时,红灯亮,此时报警指示电路工作正常。
结果分析
根据仿真结果可以看出,温度测量电路和A/D 转换电路以及报警灯电路均显示正常,只有LED 显示结果与理论值有误差,正常情况下LED 上显示值和温度传感器输入值是一样的,然而仿真时,0度对应的是002,1度对应的是004,10度对应的是022,显示数以2为基
准跳变。
因此我首先想到的是程序问题,在程序中加一个除2的语句,但LED显示仍无大变化。
因此造成LED显示错误可能有其他原因
汇编语言程序
CS BIT P1.7
CLK BIT P1.0
DO BIT P1.1
AD_TMP EQU 30H
AD_TMP_1 EQU 31H
AD_TMP_2 EQU 32H
AD_TMP_3 EQU 33H
AD_TMP1 EQU 34H
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: CLR P2.0
START: LCALL AD_CONV
LCALL DISPLAY
LJMP START
AD_CONV: SETB CS
CLR CLK
NOP
NOP
CLR CS
NOP
NOP
SETB CLK
NOP
NOP
CLR CLK
NOP
NOP
SETB CLK
NOP
NOP
MOV R0, #08H
AD_READ: CLR CLK
MOV C, DO
RLC A
SETB CLK
NOP
NOP
DJNZ R0, AD_READ
SETB CS
MOV AD_TMP, A
RET
DISPLAY: MOV A, AD_TMP
MOV DPTR, #TAB1
MOVC A, @A+DPTR
CJNE A, #80, S1
SJMP S3
S1: JNC S2
SJMP S4
S2: CLR P3.0
SJMP S4
S3: SETB P3.0
S4: MOV B, #100
DIV AB
MOV AD_TMP_1, A
MOV A, B
MOV B, #10
DIV AB
MOV AD_TMP_2, A
MOV AD_TMP_3, B
MOV DPTR, #TAB
MOV A, AD_TMP_1
MOVC A, @A+DPTR
MOV P0, A
SETB P2.1
LCALL DLY
CLR P2.1
MOV A, AD_TMP_2
MOVC A, @A+DPTR
MOV P0, A
SETB P2.2
LCALL DLY
CLR P2.2
MOV A, AD_TMP_3
MOVC A, @A+DPTR
MOV P0, A
SETB P2.3
LCALL DLY
CLR P2.3
RET
TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H
DB 80H, 90H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH
TAB1:DB 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 DB 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ,30, 31, 32, 33, 34
DB 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49
DB 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66 DB 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80
DB 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93
DB 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106
DB 107, 108, 109, 110, 111, 112, 113, 114, 115, 116
DB 117, 118, 119, 120
DLY: MOV R4, #2
D1: MOV R3, #248
DJNZ R3, $
DJNZ R4, D1
RET
END
八、结论
本设计采用的单片机是作为现代工业中最常用的集成芯片。
具有体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好、易于推广应用等显著优点,通过软件逻辑控制实现对温度的控制和调节。
本文的温度控制系统,只是单片机广泛应用于各行各业中的一例。
本设计中应用了许多单片机芯片和单片机常用的外部设,单片机芯片如:ADC0809,8255,8086等。
单片机外部设备如:温度检测元件AD590,键盘和显示系统中的LED显示器等。
该系统的主要优点如下:
一、本系统本着简单可靠的原则完成了设计要求,尽量做到线路简单,充分利用软件编程,安装比较灵活而且价格较低。
二、在系统的硬件和软件设计中,都加有安全设计部分,避免加热过高造成设备的损坏。
同时,该系统在测量过程中会带来系统误差。
参考文献
[1] 戴梅蕚《微型计算机技术及应用》2007 清华大学出版社
[2] 武锋《单片机应用系统设计---系统配置与接口技术》1998.8 北京航空航天大学出版社
[3] 何克忠《计算机控制系统》 2002 清华大学出版社
[4] 朱善君《汇编语言程序设计》 1998.3 清华大学出版社
[5] 颜永军《protel99电路设计与应用》2001.1 国防工业出版社。