ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:98.99KB ,
资源ID:16525243      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16525243.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多路温度采集系统编程设计课程设计报告Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

多路温度采集系统编程设计课程设计报告Word格式文档下载.docx

1、2.1实验目的为了实现计算机对生产过程及对象的控制,需要将对象的各种测量参数按照要求转换成数字信号送入计算机。经计算机运算处理后再再转换成适合于对生产过程进行控制的量。所以在微机和生产过程之间,必须设置信息的变换和传递通道。而我们所做的模拟输入通道,主要功能就是随时间变化的模拟输入信号变成数字信号送入计算机,主要有多路转换器,采样保持器和 A/D转换器等组成。本实验通过设计一个微机控制的温度采集系统,旨在使学生能做到以下几点:1了解微机控制的温度采集系统软硬件设计原理和方法。2进一步掌握定时/计数器、并行接口芯片和中断控制器的工作原理与使用方法。3学会利用A/D转换芯片实现信号的A/D转换。2

2、.2实验设备l80X86系列微机一台。 2微机硬件实验平台。 3定时/计数器8254 4ADC0809。2.3实验内容及要求 (1)、分别用C语言和汇编语言编程完成硬件接口功能设计;(2)、基于80x86微机接口的控制器硬件电路设计与调试;(3)、功能要求:具有报警功能(如:声、光、电形式),系统可实现6路温度信号的巡回采集检测、各路巡回检测的温度范围 01020 CO(温度信号用电位器可调电压模拟);4、指标要求4CO对应数字量为01H)、每隔2s检测一次,每一路连续检测5次,取其中值,当前温度用4位数显示在计算机显示屏幕上,6路同时显示,每2s刷新一次显示。显示方式为: 例:1号炉温度:0

3、800 CO 2号炉温度:1000CO 3号炉温度:0700CO 4号炉温度:0800CO 5号炉温度:0650CO 6号炉温度:0870C 在许多传统行业中,多路高温度采集系统是不可或缺的。电厂,石化行业及制药厂等企业生产过程中,普遍存在着需要进行温度测量的场合。因为温度是生产过程和科学实验中普遍且重要的物理参数。在工业生产中,为了高效生产,必须对生产过程的主要参数,如温度,压力,速度等进行有效的检测并控制。其中温度检测在生产过程中占有相当大的比例。 而我们所做的课题正是以8086cpu为核心设计一个温度巡回监测系统(A/D采用ADC0809).系统可实现温度信号的采集,在显示器上显示当前的

4、温度和通道号。模拟现场六路温度巡回检测,温度范围0-1020摄氏度。每隔两秒检测一次,每一次检测六路信号,每路信号连续检测五次,并取这五个数据的中值经标度变换后送显示器显示,6路同时显示,每次显示持续两秒。在采集完某一路信号时,将采集到的信号与给定值比较,如果超出给定范围则进行报警。 该系统主要用于温度检测,是一个状态反馈系统,并非动态控制系统。他可以利用放大器实现多个点的温度巡回检测,并在屏幕上显示当前的温度值和通道号。当温度信号改变时,显示的值也随之改变,并且实现当温度超出给定范围时进行报警的功能。3.2程序设计流程图 Y N N Y 第四章 硬件设计系统的主要功能是实现温度信号的采集,在

5、显示器上显示当前的温度和通道号。模拟现场六路温度的温度巡回检测,温度范围0-1020摄氏度。每隔两秒检测一次,经标度变换后送显示器显示,六路同时显示,每次显示持续两秒。实验步骤如下:(1)确认从PC机引出的两根扁平电缆已经连接在试验平台上。(2)编写程序然后编译连接。(3)参考接线图连接试验线路。(4)运行参考程序,观察显示器上的通道号和温度值。(5)改变温度的值观察是否实现报警功能。4.2 硬件接线图43 所用到的芯片及其各自功能说明4.3.1 芯片列表可编程定时器计数器8254,ADC0809 Intel8086CPU是16位微处理器,它采用N沟道,耗尽型负载的硅栈工艺制造,外型为双列直插

6、式,有40个引脚。8086CPU有16根数据线和20根地址线,直接寻址空间为1MB。能够完成微型计算机的基本操作数的读取,指令的执行,中断控制等基本功能。4.3.3 8254的功能简介1 8254的内部结构8254采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读写逻辑以及控制寄存器等4个部分。8254的外部引脚图3.3 8254引脚图A1、A0:地址输入线,用来址8254内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。CLK0、CL

7、K1、CLK2:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。GATE0、GATE1、GATE3:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。OUT0、OUT1、OUT2:计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。8254的工作方式方式0:减1计数到0,产生中断请求信号。方式1:减1计数到0,产生可重

8、复触发的单稳态负脉冲信号。方式2:减1计数到1,分频器(速率信号发生器)。方式3:减1计数到初值的12,方波发生器。方式4:减1计数到0,软件触发产生选通负脉冲信号。方式5:减1计数到0,硬件触发产生选通负脉冲信号。8254方式控制字格式D7 D6D5 D4D3 D2 D1D000 选计数器001 选计数器110 选计数器200 计数器锁存01 只读写低8位10 先读写高8位11 先读写低8位 再读写高8位000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式50 二进制计数1 BCD计数4.3.4ADC0809的功能简介ADC0809包括一个8位的逐次逼近型的AD

9、C部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,用它可直接输入8个单端的模拟信号,分别进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛,ADC的主要技术指标为分辨率: 8位 单电源:+5V总的不可调误差:1LSB 转换时间:取决于时钟频率模拟输入范围:单极性05V 时钟频率范围:10KHZ1280KHZADC0809的外部管脚如下图所示ADC0809的外部管脚图1haoluwendu 1020 degree2haoluwendu3haoluwendu 0720 degree4haoluwendu 0608 degree5haoluwendu 0248 degree6hao

10、luwendu六路温度都在指定的温度范围内,不产生报警时的结果显示 0000 degree The temperature is below than 60 degree程序设计为当温度低于60摄氏度时蜂鸣器报警,并且在屏幕上产生相应的提示3号炉和4号炉温度低于60摄氏度报警5.2 C语言程序结果1haoluwendu:1020degree2haoluwendu:3haoluwendu:688degree4haoluwendu:592degree5haoluwendu:248degree6haoluwendu:804degree676degree12degree The tempeture i

11、s below than 60 degree6.1汇编语言程序;*根据CHECK配置信息修改下列符号值* IOY0 EQU 0E400H ;片选IOY0对应的端口始地址 IOY1 EQU 0E440H ;片选IOY1对应的端口始地址* MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址 MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址 MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址 MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址 AD0809 EQU

12、IOY1+00H ;AD0809的端口地址 AD0809_MODE EQU IOY1+08H*4 ;AD0809的状态口地址 DATA SEGMENT ;数据段 DBUF DB 100 DUP(?) ;数据区 STR1 DB haoluwendu: $ ;显示的字符串 STR2 DB The temperature is below than 60 degree $ ;显示提示信息 STR3 DB degree $ FREQ_LIST DW 556,495,556,624,495,416,416,371,495,0 ;频率表 TIME_LIST DB 6, 2, 4, 4, 6, 2, 4,

13、4, 12 ;时间表 DATA ENDS STACK1 SEGMENT STACK STACK堆栈段 ST1 DB 100 DUP(?) STACK1 ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,STACK1 MOV SS,AX MOV AX,DATA MOV DS,AX ;DS指向数据区段址 CLD ;清方向标志 MOV AX,0000H MOV ES,AX MOV AL,50H ;保存原中断向量入口地址 MOV AH,35H INT 21H PUSH ES PUSH BX PUSH DS MOV

14、 AX,SEG ADINT ;设置中断向量入口地址 MOV DS,AX MOV DX,OFFSET ADINT MOV AL,50H MOV AH,25H POP DS WAIT1: INT 50H ;中断调用 PUSH CX ;延时 PUSH AXPUSH DXPUSH BX MOV CX,0FFFFH D1: MOV AX,0FFFFH D2: DEC AX JNZ D2 LOOP D1MOV AH,6 :清屏MOV AL,0MOV CX,0MOV DH,24MOV DL,79MOV BH,7INT 10HMOV AH,2 ;置光标到页面左上角MOV DH,0MOV DL,0MOV BH,

15、0POP BXPOP DX POP AX POP CX MOV AH,1 ;判断是否有按键按下 INT 16H JZ WAIT1 ;无按键则跳回继续等待,有则退出 QUIT: POP DX ;退出 MOV AX,4C00H ;返回到DOS中断服务程序,对每个通道均采集一个数据,存进DBUF ADINT PROC NEAR ;调用子程序 STARTA: MOV CX,0006H ;设置通道计数器初值 MOV DX,AD0809 ; DX指向ADC通道 TRANS2: CALL NEXT ;调用转换子程序 LOOP TRANS2 ;循环采集六路信号 IRET ;自中断返回 ADINT ENDP D

16、ALLY1 PROC NEAR ;软件延时子程序,用于ADC转换时延时保证转换完成 PUSH CX MOV CX,4000H D5: MOV AX,0600H D6: JNZ D6 LOOP D5 RET DALLY1 ENDP DALLY2 PROC ;延时子程序,用于8254产生方波时延时,为扬声器发生报警提供信号延时 E0: MOV CX,10H E1: E2: JNZ E2 LOOP E1 DEC DL JNZ E0 DALLY2 ENDP ALARM PROC ;报警子程序 MOV DX,OFFSET STR2 ;显示温度低于某一值 MOV AH,9 PUSH DX PUSH SI

17、PUSH DI MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;定时器0、方式3 OUT DX,AL BEGIN: MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址 MOV DI,OFFSET TIME_LIST ;装入时间表起始地址 PLAY: MOV DX,0FH ;输入时钟为1.0416667MHz,1.0416667M = 0FE502H MOV AX,0E502H DIV WORD PTR SI ;取出频率值计算计数初值,0F4240H / 输出频率 MOV DX,MY8254_COUNT0 OUT DX,AL ;装入计数初

18、值 MOV AL,AH MOV DL,DI ;取出演奏相对时间,调用延时子程序 CALL DALLY2 ADD SI,2 INC DI CMP WORD PTR SI,0 ;判断是否到曲末? JNE PLAY退出时设置8254为方式2,OUT0置0 MOV AL,10H POP DI POP SI POP DX ALARM ENDP NEXT PROC ;信号巡回采集子程序 NEXT1: MOV SI,OFFSET DBUF ;SI指向WENDU偏移地址 MOV BL,05H ;为采集提供计数依据 NEXT2: MOV AH,0000H启动一次转换 CALL DALLY1 ;延时保证转换完成

19、IN AL,DX ;读取结果 TRANS: MOV SI,AL 将采集的5个数据保存 INC SI DEC BL JNZ NEXT2选中值 MOV CL,04H ;选出五个数中的最大值 MOV BX,SI C1: MOV AL,BX CMP AL,SI JA F1 F1: LOOP C1MOV AL,00H ;将最大值置零 MOV BX,AL MOV CX,04H ;再一次选择五个数的最大值 C2: JA F2 F2: LOOP C2 MOV AL,00H ;将新的最大值置零 MOV BX,AL第三次选择最大值 C3: JA F3 F3: LOOP C3 MOV AL,BX ;第三次选出的最大

20、值即为原数据的中值 POP CX SUB AH,AH MOV SI,AX ;将中值保存到SI寄存器 PUSH DX ;保存通道号 MOV DL,07H ;显示炉号数 SUB DL,CL ADD DL,30H MOV AH,02H MOV DX,OFFSET STR1 ;显示字符串号炉温度POP AX POP DX MOV BL,04H ; 将采集的数据进行数值转换 MUL BL SUB DX,DX MOV CX,1000 ;分离出千位数并显示 DIV CX XCHG AX,DX MOV CL,100 ;分离出百位数并显示 DIV CL ADD AL,30H MOV DL,AL XCHG AL,

21、AH MOV CL,10 ;分离出十位数并显示 ADD AH,30H ;显示个位数 MOV DL,AH MOV DX,OFFSET STR3 ;显示degree CMP SI,0FH ;与60摄氏度比较 JA S ; 若在指定范围内则继续转换 CALL ALARM ;若不在指定范围则报警 S: MOV DL,0AH ;换行 MOV DL,0DH ;将光标置行首 ADD DL,04H ;DX指向下一个通道 NEXT ENDP CODE ENDS END START6.2 C语言源程序#include stdlib.hconio.hbios.hctype.hprocess.hvoid key(void); /判断是否右键按下,有则退出void delay1(int time); /延时函数void alarm(void); /报警函数void delay2(int time);/*根据查看配置信息修改下列符号值*#define IOY0 0xE400 /8254端口地址#define IOY1 0xE440 / ADC0809端口地址/*

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

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