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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

多路温度采集系统编程设计课程设计报告.docx

1、多路温度采集系统编程设计课程设计报告中南大学微机应用系统设计与综合实验设计报告设计题目 多路温度采集系统编程设计指导老师 设计者 学 号 专业班级 设计日期 目 录第一章 微机应用系统课程设计的目的意义1.1 设计目的1.2 课程在教学计划中的地位和作用第二章 温度采集系统软硬件设计任务2.1 设计内容及要求2.2 实验设备2.3 课程设计的内容及要求第三章 总体设计方案3.1 设计思想 3.2 总体设计流程图第四章 硬件设计 4.1 硬件设计概要4.2硬件设计接线图4.3 所用到的芯片及其各自功能说明 4.3.1 芯片列表4.3.2 8086的功能简介 4.3.3 8254的功能简介 4.3

2、.4 AD0809的功能简介第五章 实验结果5.1 汇编程序结果5.2 C语言程序结果第六章 源程序代码6.1 汇编程序代码6.2 C语言程序代码第七章 系统的调试与使用第八章 收获、体会参考文献第一章 微机应用系统课程设计的目的意义1.1设计目的微机原理与接口技术是一门实践性和实用性都很强的课程,学习的目的在于应用。本课程设计是配合课堂教学的一个重要的实践教学环节,它能起到巩固课堂和书本上的知识,加强综合能力,提高系统设计水平,启发创新思想的效果。通过本课程设计希望达到以下目地:培养资料搜集和汇总的能力。培养总体设计和方案论证的意识。提高硬件,软件设计与开发的综合能力。提高软件和硬件联合调试

3、的能力。熟练掌握相关测量仪器的使用方法。 掌握相关开发软件,仿真软件的使用方法。1.2课程在教学计划中的地位和作用 现在计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧跟实际连接。掌握这方面的知识更重要强调解决实际问题的能力。该课程设计给我们提供了一个很好的机会,它要求我们结合课堂上和书本中学到的知识去独立设计一个硬件系统,它是我们迈向实践和应用的桥梁,我们学习书本上的知识是一个不断积累的过程,而该课程设计却使得我们能够尽情发挥他们,让我们更了解计算机的结构,工作原理以及软硬件的结合使用,虽然课程设计的时间比较短,但它却在整个教学计划中占据了及其重要的位置。 第二章 温度采集系统软

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

5、/D转换。 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刷新一次显示。显示方式为: 例:

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

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

8、 Y 第四章 硬件设计4.1 硬件设计概要系统的主要功能是实现温度信号的采集,在显示器上显示当前的温度和通道号。模拟现场六路温度的温度巡回检测,温度范围0-1020摄氏度。每隔两秒检测一次,经标度变换后送显示器显示,六路同时显示,每次显示持续两秒。实验步骤如下:(1)确认从PC机引出的两根扁平电缆已经连接在试验平台上。(2)编写程序然后编译连接。(3)参考接线图连接试验线路。(4)运行参考程序,观察显示器上的通道号和温度值。(5)改变温度的值观察是否实现报警功能。 4.2 硬件接线图43 所用到的芯片及其各自功能说明4.3.1 芯片列表可编程定时器计数器8254,ADC08094.3.2 80

9、86的功能简介 Intel8086CPU是16位微处理器,它采用N沟道,耗尽型负载的硅栈工艺制造,外型为双列直插式,有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

10、:地址输入线,用来址8254内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。CLK0、CLK1、CLK2:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。GATE0、GATE1、GATE3:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。OUT0、OUT1、OUT2:计数输出,当计数器从初值开始完成计数操作进,O

11、UT引脚输出相应的信号。8254的工作方式方式0:减1计数到0,产生中断请求信号。方式1:减1计数到0,产生可重复触发的单稳态负脉冲信号。方式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

12、方式50 二进制计数1 BCD计数4.3.4ADC0809的功能简介ADC0809包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,用它可直接输入8个单端的模拟信号,分别进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛,ADC的主要技术指标为分辨率: 8位 单电源:+5V总的不可调误差:1LSB 转换时间:取决于时钟频率模拟输入范围:单极性05V 时钟频率范围:10KHZ1280KHZADC0809的外部管脚如下图所示ADC0809的外部管脚图第五章 实验结果5.1 汇编程序结果1haoluwendu 1020 degree2haoluwend

13、u 1020 degree3haoluwendu 0720 degree4haoluwendu 0608 degree5haoluwendu 0248 degree6haoluwendu 0248 degree六路温度都在指定的温度范围内,不产生报警时的结果显示1haoluwendu 1020 degree2haoluwendu 1020 degree3haoluwendu 0000 degree The temperature is below than 60 degree4haoluwendu 0000 degree The temperature is below than 60 deg

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

15、:1020degree3haoluwendu:804degree4haoluwendu:676degree5haoluwendu:12degree The tempeture is below than 60 degree6haoluwendu:12degree The tempeture is below than 60 degree程序设计为当温度低于60摄氏度时蜂鸣器报警,并且在屏幕上产生相应的提示3号炉和4号炉温度低于60摄氏度报警第六章 源程序代码6.1汇编语言程序;*根据CHECK配置信息修改下列符号值* IOY0 EQU 0E400H ;片选IOY0对应的端口始地址 IOY1 E

16、QU 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 IOY1+00H ;AD0809的端口地址 AD0809_MODE EQU IOY1+08H*4 ;AD0809的状态口地址 DATA SEGMENT ;数据段 DBUF DB 1

17、00 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, 4, 12 ;时间表 DATA ENDS STACK1 SEGMENT STACK STACK ;堆栈段 ST1 DB 100 DUP(?) STACK1 ENDS CODE SE

18、GMENT ;代码段 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 AX,SEG ADINT ;设置中断向量入口地址 MOV DS,AX MOV DX,OFFSET ADINT MOV AL,50H MOV AH,25H INT 21H PO

19、P 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,0INT 10HPOP BXPOP DX POP AX POP CX MOV AH,1 ;判断是否有按键按下 INT 16H JZ WAIT1 ;无按键则跳回继

20、续等待,有则退出 QUIT: POP DX ;退出 POP DS MOV AL,50H MOV AH,25H INT 21H MOV AX,4C00H ;返回到DOS INT 21H;中断服务程序,对每个通道均采集一个数据,存进DBUF ADINT PROC NEAR ;调用子程序 STARTA: MOV CX,0006H ;设置通道计数器初值 MOV DX,AD0809 ; DX指向ADC通道 TRANS2: CALL NEXT ;调用转换子程序 LOOP TRANS2 ;循环采集六路信号 IRET ;自中断返回 ADINT ENDP DALLY1 PROC NEAR ;软件延时子程序,用于

21、ADC转换时延时保证转换完成 PUSH CX PUSH AX MOV CX,4000H D5: MOV AX,0600H D6: DEC AX JNZ D6 LOOP D5 POP AX POP CX RET DALLY1 ENDP DALLY2 PROC ;延时子程序,用于8254产生方波时延时,为扬声器发生报警提供信号延时 PUSH CX PUSH AX E0: MOV CX,10H E1: MOV AX,0FFFFH E2: DEC AX JNZ E2 LOOP E1 DEC DL JNZ E0 POP AX POP CX RET DALLY2 ENDP ALARM PROC ;报警子程

22、序PUSH DX MOV DX,OFFSET STR2 ;显示温度低于某一值 MOV AH,9 INT 21H POP DX PUSH DX PUSH AX PUSH SI 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,0

23、E502H DIV WORD PTR SI ;取出频率值计算计数初值,0F4240H / 输出频率 MOV DX,MY8254_COUNT0 OUT DX,AL ;装入计数初值 MOV AL,AH OUT DX,AL MOV DL,DI ;取出演奏相对时间,调用延时子程序 CALL DALLY2 ADD SI,2 INC DI CMP WORD PTR SI,0 ;判断是否到曲末? JNE PLAY MOV DX,MY8254_MODE ;退出时设置8254为方式2,OUT0置0 MOV AL,10H OUT DX,AL POP DI POP SI POP AX POP DX RET ALAR

24、M ENDP NEXT PROC ;信号巡回采集子程序 NEXT1: MOV SI,OFFSET DBUF ;SI指向WENDU偏移地址 MOV BL,05H ;为采集提供计数依据 NEXT2: MOV AH,0000H OUT DX,AL ;启动一次转换 CALL DALLY1 ;延时保证转换完成 IN AL,DX ;读取结果 TRANS: MOV SI,AL 将采集的5个数据保存 INC SI DEC BL JNZ NEXT2 PUSH CX ;选中值 MOV CL,04H ;选出五个数中的最大值 MOV SI,OFFSET DBUF ;SI指向WENDU偏移地址 MOV BX,SI C1

25、: MOV AL,BX INC SI CMP AL,SI JA F1 MOV BX,SI F1: LOOP C1MOV AL,00H ;将最大值置零 MOV BX,AL MOV CX,04H ;再一次选择五个数的最大值 MOV SI,OFFSET DBUF ;SI指向WENDU偏移地址 MOV BX,SI C2: MOV AL,BX INC SI CMP AL,SI JA F2 MOV BX,SI F2: LOOP C2 MOV AL,00H ;将新的最大值置零 MOV BX,AL MOV CX,04H ;第三次选择最大值 MOV SI,OFFSET DBUF ;SI指向WENDU偏移地址 M

26、OV BX,SI C3: MOV AL,BX INC SI CMP AL,SI JA F3 MOV BX,SI F3: LOOP C3 MOV AL,BX ;第三次选出的最大值即为原数据的中值 POP CX SUB AH,AH MOV SI,AX ;将中值保存到SI寄存器 PUSH DX ;保存通道号 PUSH AX MOV DL,07H ;显示炉号数 SUB DL,CL ADD DL,30H MOV AH,02H INT 21H MOV DX,OFFSET STR1 ;显示字符串号炉温度 MOV AH,9 INT 21HPOP AX POP DX MOV BL,04H ; 将采集的数据进行数

27、值转换 MUL BL PUSH CX PUSH DX SUB DX,DX MOV CX,1000 ;分离出千位数并显示 DIV CX XCHG AX,DX PUSH AX ADD DL,30H MOV AH,02H INT 21H POP AX MOV CL,100 ;分离出百位数并显示 DIV CL PUSH AX ADD AL,30H MOV DL,AL MOV AH,02H INT 21H POP AX XCHG AL,AH SUB AH,AH MOV CL,10 ;分离出十位数并显示 DIV CL PUSH AX ADD AL,30H MOV DL,AL MOV AH,02H INT

28、21H POP AX ADD AH,30H ;显示个位数 MOV DL,AH MOV AH,02H INT 21H MOV DX,OFFSET STR3 ;显示degree MOV AH,9 INT 21H CMP SI,0FH ;与60摄氏度比较 JA S ; 若在指定范围内则继续转换 CALL ALARM ;若不在指定范围则报警 S: MOV DL,0AH ;换行 MOV AH,02H INT 21H MOV DL,0DH ;将光标置行首 MOV AH,02H INT 21H POP DX POP CX ADD DL,04H ;DX指向下一个通道 RET NEXT ENDP CODE ENDS END START6.2 C语言源程序#include #include #include #include #include #include void 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