微机原理及其应用 微型计算机温度控制系统设计课程设计报告
《微机原理及其应用》课程设计报告
3月2日
课程设计题目及系统功能介绍
微型计算机温度控制系统设计,假设工业现场温度范围为0~75℃,温度值经传感器检测后,经变送器变成0~5V范围内的电压信号。电压信号送A/D转换器ADC0809转换成对应的数字量。数字量经数字滤波后送入CPU作为本次采样值。在LED数码显示器上显示温度值(
采取工作方式0,输入控制字 88h,即A口输出,C口高四位输入,C口低四位输出
PA0—PA6对应接七段数码管a b c d e f g接口,PC0 PC1对应七段数码管的位码接口
PC2 PC3对应黄红LED灯,PC4接8253计数器2的OUT2端口
可编程定时器/计数器(8253)
分别对8253的计数器1和计数器2初始化采用方式3和方式0,使计数器2产生每隔0 .1秒的高电平
3、ADC0809模/数转换器
如图虚线接线即可
3、DAC0832数/模转换器
DAC0832是用于蜂鸣器报警的
三、软件设计
先对硬件8255 8253进行初始化且用ADC0809第一次采样,通过8255的PC4端口查询8253的定时时间是否已到,若到则对8253接口2重新初始化且用ADC0809模/数转换器采样,不到则继续七段数码管显示与LED灯和蜂鸣器的过程,最后若有键按下则返回DOS,否则返回继续查询PC4端口、循环。
主程序流程图:
七段数码管流程图 红黄灯及蜂鸣器程序如下:
mov cl,[shuju]
cmp cl,60 ;采样得来的数据与30和60进行比较,不在它们之间的红黄灯、蜂鸣器报警
jnc li
cmp cl,30
jc xiong
jmp exit
li: or al,08h
call beep
jmp exit
xiong: or al,04h
call beep
exit: mov dx,io8255a ;通过8255C端口输出到LED灯
out dx,al
采样子程序
mov bx,0
mov cx,3
xun: mov dx,io0809
out dx,al
push cx
mov cx,0FFH ;延时
delay1: loop delay1
pop cx
in al,dx
mov ah,0
mov dl,5 ;将采样数据转化为0-75之间的温度值
mul dl
mov dl,17
div dl
mov ah,0
add bx,ax ;循环三次取样
loop xun
mov ax,bx
mov cl,3
div cl;取三次数据后平均值
mov [shuju],al
mov ah,0
mov cl,10
div cl
mov di,offset buffer1 ;将采样三次得出的均值的个位与十位分别存在buffer与buffer+1中
mov [di],ah
mov [di+1],al
四、讨论和感想
首先感受最深的的是汇编的基础一定要扎实,否则很容易出现低级错误,比如说一些死循环之类的东西。
我们这组最开始的时候连硬件检测都没做就直接执行程序,当然做不出什么来的。后来又入入续续发现了一些低级错误,不过都一步步改正了。还有就是主程序一定要简洁易读,最好事先画好流程图。硬件不要频繁初始化,最好是在程序开头就全部初始化完毕,像8255 8253一类。
为保证程序易读、便于添加和修改,必要的注释是很好的,子程序中最好开头和结尾对子程序中用到的寄存器都进行入出栈操作,这能有效的防止一些低级错误。
以上是我碰到的问题及其解决方法、心得体会。
五、源程序的清单:
data segment
ioportequ 0c400h-0280h
io8255aequ ioport+28ah ;8255C口地址
io8255bequ ioport+28bh ;8255控制寄存器地址
io8255c equ ioport+288h;8255A口地址
微型计算机温度控制系统课程设计 微机原理及其应用 微型计算机温度控制系统设计课程设计报告.doc...