微机原理课程设计 温度测控系统.docx

上传人:b****1 文档编号:14718306 上传时间:2023-06-26 格式:DOCX 页数:15 大小:135KB
下载 相关 举报
微机原理课程设计 温度测控系统.docx_第1页
第1页 / 共15页
微机原理课程设计 温度测控系统.docx_第2页
第2页 / 共15页
微机原理课程设计 温度测控系统.docx_第3页
第3页 / 共15页
微机原理课程设计 温度测控系统.docx_第4页
第4页 / 共15页
微机原理课程设计 温度测控系统.docx_第5页
第5页 / 共15页
微机原理课程设计 温度测控系统.docx_第6页
第6页 / 共15页
微机原理课程设计 温度测控系统.docx_第7页
第7页 / 共15页
微机原理课程设计 温度测控系统.docx_第8页
第8页 / 共15页
微机原理课程设计 温度测控系统.docx_第9页
第9页 / 共15页
微机原理课程设计 温度测控系统.docx_第10页
第10页 / 共15页
微机原理课程设计 温度测控系统.docx_第11页
第11页 / 共15页
微机原理课程设计 温度测控系统.docx_第12页
第12页 / 共15页
微机原理课程设计 温度测控系统.docx_第13页
第13页 / 共15页
微机原理课程设计 温度测控系统.docx_第14页
第14页 / 共15页
微机原理课程设计 温度测控系统.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计 温度测控系统.docx

《微机原理课程设计 温度测控系统.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计 温度测控系统.docx(15页珍藏版)》请在冰点文库上搜索。

微机原理课程设计 温度测控系统.docx

微机原理课程设计温度测控系统

 

微机原理课程设计

报告书

 

课题名温度测控系统

 

目录

1、设计目的--------------------------------------------3

二、设计内容和要求--------------------------------------3

三、设计原理--------------------------------------------3

四、程序代码--------------------------------------------6

五、硬件系统调试----------------------------------------10

六、设计总结与体会--------------------------------------13

七、参考文献--------------------------------------------14

 

Proteus是英国Labcenter公司开发的电路分析与实物仿真及印制电路板设计软件,它可以仿真、分析各种模拟电路与集成电路。

软件提供了大量模拟与数字元器件及外部设备,各种虚拟仪器,特别是它具有对单片机及其外围电路组成的综合系统的交互仿真功能。

Proteus7主要由ISIS和ARES两部分组成,ISIS的主要功能是原理图设计及与电路原理图的交互仿真,ARES主要用于印制电路板的设计。

 

一、设计目的

1.巩固和加深课堂所学知识;通过课程设计,熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

2.学习掌握一般的硬件的设计方法和查阅、运用资料的能力;真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。

3.熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法

4.通过温度测控系统仿真系统设计与制作,深入了解与掌握数模转换,数码管显示和电动机驱动的方法,熟悉proteus软件操作。

 

二、设计内容和要求

总体要求:

根据题意自行设计电路,在实验箱上连接线路并编写相关汇编程序,调试成功。

设计内容:

利用ADC0809采用中断方式设计一个温度测控系统,在七段数码管上显示温度值,并根据测试的温度进行控制。

当检测温度到达温度上限60℃时启动直流电动机,而温度低于下限30℃时停止电动机。

数码管上的显示内容为:

XXC(采用十进制显示)

 

三、设计原理

温度测试系统主要由温度传感器、A/D转换、显示及电动机块组成。

温度传感器将外部温度信号转换为电压信号,经放大电路,再经由ADC0808转化为数字信号进行处理,软件中对数字量进行判断,并作相应的跳转,由8255实现正常显示和启动电动机。

各个芯片由8086来进行整体的控制。

1.电路原理图

上图中ADC0808的INO输入端接温度传感的ANZ端,进行温度量的采集,CLOCK接1M;8255A中A、B口与数码管连接如上图,PA0接直流电机的OUTPUT,其中地址端口接40H。

 

2.系统功能框图

3.程序流程图

上图实现了本次实验所要要求的功能:

检测温度到达温度上限60℃时启动直流电动机,而温度低于下限30℃时停止电动机,并在数码管上显示所采集到的数字量和转换后的模拟量。

程序采用中断处理的方式。

四、程序代码

DATASEGMENT

tabdb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h

bufdb0

a8255equ40h;8255的A,B,C口及控制口地址

b8255equ42h

c8255equ44h

Q8255equ46h

adc0808equ20h;ADC0808端口地址

DATAENDS

CODESEGMENT'CODE'

ASSUMEDS:

DATA,CS:

CODE

START:

movax,data

movds,ax

cli;关中断

movdx,Q8255;8255A初始化设置。

8255A控制字,A口为输出,B口为输出,C口的高四位为输出

moval,80h

outdx,al

movax,0;设置中断向量,非屏蔽中断NMI

moves,ax

movsi,02H*4

movax,offsetint0

moves:

[si],ax

movax,segint0

moves:

[si+2],ax

moval,00010011b;设置ICW1

movdx,30H

outdx,al

moval,00010000b;ICW2

movdx,32h

outdx,al

moval,1bh;ICW4

outdx,al

moval,0feH;OCW1

outdx,al

moval,80H;OCW2

movdx,30H

outdx,al

sti;开中断

movsi,offsetbuf

MAIN:

movdx,adc0808;启动ADC0808转换

moval,0

outdx,al

moval,80H;OCW2

movdx,30H

outdx,al

MOVCX,5

MON:

moval,[si]

movah,0

movbl,20

divbl

movbx,offsettab

xlat;换码指令,换成对应的段码

movdx,b8255;显示十位

outdx,al

moval,11101111b;位码选通

movdx,c8255

outdx,al

callDELAY_1S

moval,0ffh;不选中任何位选

outdx,al

moval,ah

movah,0

movbl,2

divbl

movbx,offsettab

xlat;换码指令

oral,80h;个位带小数点

movdx,b8255

outdx,al;显示个位及小数点

moval,11011111b;位码选通

movdx,c8255

outdx,al

callDELAY_1S;调用延时

moval,0ffh;不选中任何位选

outdx,al

moval,ah;小数位显示

movbx,offsettab

xlat

movdx,b8255

outdx,al

moval,10111111b

movdx,c8255

outdx,al

callDELAY_1S

moval,0ffh

outdx,al

moval,01111111b

outdx,al

moval,00111001b;显示最后字母”C”

movdx,b8255

outdx,al

callDELAY_1S

movdx,c8255

moval,0ffh

outdx,al

callDELAY_1S

moval,[si]

shral,1;逻辑右移一位,减小位扩展时的误差

cmpal,30;温度低于30时,跳到down

jbdown

cmpal,60;温度高于60度时,跳到up

jaup

jmpMAIN

LOOPMON

down:

movdx,a8255

moval,00h;PA0输出0,低电平不启动电机

outdx,al

jmpMAIN

up:

movdx,a8255

moval,01h;PA0输出1,高电平启动电机

outdx,al

jmpMAIN

int0procnear;中断程序

pushax

pushbx

PUSHSI

pushf

CLI

movdx,adc0808;读取转换好的数据

inal,dx

mov[si],al

moval,80H;OCW2

movdx,30H

outdx,al

sti

popf

POPSI

popbx

popax

iret

int0endp

DELAY_1Sproc;延时子程序

Pushbx

Pushcx

pushsi

movbx,1

LP2:

movcx,10

LP1:

LOOPLP1

DECbx

JNZLP2

Popsi

Popcx

Popbx

ret

DELAY_1SENDP

CODEENDS

ENDSTART

 

五、硬件系统调试

译码电路:

 

显示电路:

 

模数转化电路:

 

中断电路:

 

电动机电路:

 

调试过程中遇到的主要问题和解决办法

(1)仿真过程中,不能启动模数转换电路

仿真运行中,改变模拟信号时,系统并不能做出相应的显示。

解决办法:

利用debug下8086\SourceCode单步运行调试程序后,发现程序返回点过了0809启动的程序段,所以将程序中返回点由MON改至MAIM启动处,进而实现程序启动。

(2)当压力超出30~60范围,程序里只调用电机停止模块,而不调用数码管显示模块。

单步调试发现,此时数码管显示模块被跳过。

解决办法:

在电机控制程序段结束后,跳转到数码管显示部分。

 

六、设计总结与体会

这次微机原理的课程设计历时一个星期,我们组做的是一个温度测控系统,同时采用了中断控制,用到了ADC0809、8255A和8259A等芯片。

通过上网进行了相关内容的查询,了解了实验的基本原理,设计出了本系统的基本思想,然后按照实验的要求由简单到难,逐步实现了在七段数码管上显示出采集过来的数字量部分,在此基础之上实现了当检测温度到数字量上限60时启动直流电动机,而温度低于下限30时停止电动机这个功能。

以前对编程工具的使用还处于一知半解的状态,但是经过了一段上机的实践,对于怎么排错,差错,怎么看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

由于实验采集到的数字量不是很直观,最后我们将三位的数字量转换为了温度并和数字量一并在数码管上显示出来,进一步完善了本系统。

在实现各个功能的过程中遇到的主要问题:

(1)中断程序不执行,0809不能启动,这个问题经过单步调试才发现是跳转的程序段不正确。

(2)第二个问题是经老师提醒才发现,设计电路在采集。

相当于把所学的接口知识又复习了一遍,同时将平时实验中存在的一些疑问都解决掉了。

对于8255数码管的显示和0809A/D转换器基本工作原理有了更深入的了解,对两者结合起来实现比较复杂的功能(本实验中实现了在数码管上显示温度值,并用温度值来控制直流电机的运行情况的功能)也有了一定的了解。

通过这次课程设计使我懂得了理论和实践相结合起来是很重要的,从理论中知识是远远不够的,只有把所学的理论知识和实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

 

七、参考文献

[1]顾晖,梁惺彦.微机原理与接口技术—基于8086和Proteus仿真[M].北京:

电子工业出版社,2011,262-293

[2]徐晨,陈继红.微机原理及应用[M].北京:

高等教育出版社,2004

[3]康华光.电子技术基础(数电部分)[M].北京:

高等教育出版社,2006,143-151

[4]沈美明,温冬婵.IBM-PC汇编程序设计[M].北京:

清华大学出版社,2001

[5]周润景,张丽娜.Proteus入门实用教程[M].北京:

机械工业出版社,2007

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2