王晶晶.docx
- 文档编号:5622384
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:12
- 大小:50.95KB
王晶晶.docx
《王晶晶.docx》由会员分享,可在线阅读,更多相关《王晶晶.docx(12页珍藏版)》请在冰豆网上搜索。
王晶晶
接口实验报告
计算机0203班王晶晶(012002015805)
课程设计目的及要求:
Ø掌握接口硬件开发平台的使用方法,利用现有的实验平台和PC机,组成一个微机模拟应用系统;
Ø掌握基本接口电路的综合应用
Ø掌握接口电路的驱动程序和界面软件的设计与编制,学会调试与测试接口软件的一般方法
Ø微机接口技术及接口芯片的综合应
一、课程设计题:
病人监控系统
时刻监视病人心率,响应床位病人心率过高或过低时在主机报警并显示.主机处理后停止报警,心率处理正常后显示正常.
二、设计任务:
结合实际应用,模拟设计一微机应用系统,要求该系统综合应用并行接口、串行接口,定时器接口、模拟接口等等(根据具体体题目确定具体接口),实现主控中心微机与下位机实现远距离传送,以及远程控制、监测功能。
三、设计内容
根据以上任务,系统总体结构如下图:
主控机
下位机N
下位机2
下位机1
执行部件N
执行部件2
执行部件1
1.系统硬件由主控机(其中一台微机)、下位机(仅要求实现一台下位机,另一台位微机)和执行部件组成。
主控机与下位机通过串行通信线连接。
2.执行部件:
由接口电路等组成,将接收的数据送入到下位机或将下位机输出的数据送到执行部件。
3.下位机:
与主控机通信,控制执行部件。
4.主控机:
与所有下位机进行数据交换,必要时需建数据库,进行数据处理或画面等。
5.主控机程序:
串行(RS232/RS485)通信程序,数据处理程序等。
6.下位机程序:
串行(RS232/RS485)通信程序,执行部件控制程序。
a>绪论,概述
我们选做的题目是“病人监控系统”,下位机负责实时采集病人的心率,并发送给主机。
主机对接受的数据处理:
判断是否正常(50-80),若出现不正常,就会有警报声,且警报灯会闪烁。
并且,显示屏上有“normal”、“abnormal”的显示。
实验用到双工串行通信,A/D转换,并行通信。
实验用到的接口芯片有:
8251、8253、8255、ADC0809
b>实施计划及分工
我们把任务大体分成四个部分:
界面、串行通信、声光报警、AD转换。
每个人对负责的模块承担主要任务,同时我们也探讨疑难问题。
C>按照功能模块编程调试
1、界面调试程序:
playmacroA,B;定义宏,该宏的功能是在指定光标处显示输出设定属性的字符
movdx,A;运用宏可以简化代码
movah,2
int10h
movah,15
int10h
moval,03h
movbl,0ch
movcx,B
movah,9
int10h
endm
datasegment
h1db0ah,0dh
db0ah,0dh,'PATIENTMONITORSYSTEM'
db0ah,0dh,'Thisisapatientmonitorsystem,monitoring',03h,03h,03h,03h
db0ah,0dh,'Iftherateismorethen120orlessthen50,'
db0ah,0dh,'display"abnormal"andalarm.'
db0ah,0dh,'Elsedisplay"normal".'
db0ah,0dh
db0ah,0dh,'MadebyPengFangWangJingjingHuHuanLeiLiuYing.'
db0ah,0dh,'',01h,01h,01h,01h,'2005.9.5HUSTCS0203$'
h2db0ah,0dh
db0ah,0dh,11h,'pressanykeytostart'
db0ah,0dh,11h,'pressESCtoquit$'
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movah,0
moval,3
int10h;设置成80×25彩色文本方式
play0000h,80;输出第一行边框
movdx,0314h;设置光标位置
movah,2
int21h
leadx,h1;输出提示信息
movah,9
int21h
play0307h,3;输出用红心符号排列组成的红十字标志
play0407h,3
play0505h,7
play0605h,7
play0707h,3
play0807h,3
play0b00h,80
leadx,h2;提示用户输入信息
movah,9
int21h
movah,8;8号中断调用,停住界面
int21h
movah,6;清屏
moval,0
movbh,10
movcx,0
movdh,24
movdl,79
int10h
movah,15;设置光标位置
int10h
movah,2
movdx,0
int10h
movax,4c00h;程序退出
int21h
codeends
endstart
2、二进制转换成十进制显示
功能分析:
下位机采集的数据在机器内是二进制表示的,为能及时给用户反映信息,必须在显示器上显示出来。
而屏幕上是以字符串的方式显示的。
因此,必须把二进制值转换成十进制字符串所对应的ASCII码。
调试程序:
输出bufb中的值
stacksegment
db200dup(0)
stackends
datasegment
pdb10
bufadb8dup(0)
bufbdb20,30,139,134,60
resultdb?
dataends
codesegment
assumecs:
code,ss:
stack,ds:
data
start:
movax,data
movds,ax
movcx,5;送要转换的个数
leadi,bufb;待转换的二进制的存储区首址给di
lopa:
moval,[di];待转换字符送al
leasi,bufa;转换后字符区首地址给si
callf2t10;调用f2t10进行二十进制转换
mov[si],byteptr0dh;在末尾加回车换行
mov[si+1],byteptr0ah
mov[si+2],byteptr'$'
leadx,bufa;显示转换后的十进制数
movah,9
int21h
incdi;指向下一个待转换的二进制数
looplopa;若cx不为0,则转lopa继续转换
movah,1
int21h
movah,4ch
int21h
;*********f2t10子程序********************
f2t10proc
pushcx
pushdx
movcx,0
lop1:
movah,0;除以10,所得的商存al,余数入栈,并记录余数的个数
divp
movresult,al
moval,ah
movah,0
pushax
inccx
moval,result
oral,al;若商不为0则转lop1继续循环
jnelop1
lop2:
popax;从栈中弹出一位十进制
addal,30h;转换成对应的ASCII码
mov[si],al;存入转换后字符存储区
incsi;指针后移
deccx
jnelop2;未转换完则继续循环
popdx;恢复现场
popcx
ret
f2t10endp
codeends
endstart
3、AD转换
芯片ADC0809引脚功能介绍:
D0-D7:
数字量输出信号线
IN0-IN7:
8路模拟量输入信号线
ALE:
地址锁存允许信号,用于锁存通道号。
START:
启动转换信号,正脉冲有效。
EOC:
转换结束状态信号,高电平有效,转换结束时为高电平。
OE:
允许输出信号,高电平有效。
部分代码:
input:
movtemp,al;保存通道号
jmpbegin
begin:
movdx,30eh;送通道号
moval,temp
outdx,al
movcx,0f00h
lop:
looplop
movdx,30ch;启动A/D转换
moval,00
outdx,al
movcx,0f00h;delay
lop1:
looplop1
movah,0ch;检测是否有ESC键按下
int21h
incal
jnzwait1;若无键按下,则查转换结束
movah,8;若有ESC键按下,则程序退出
int21h
cmpal,1bh
jzquit
wait1:
movdx,30ch;查转换结束EOC(EOC=D7)
inal,dx
andal,80h
jzwait1;若未结束(D7=0),则等待
read:
movdx,30eh;若已结束,则读数据
inal,dx
pushax;存数据
4、双工通信:
下位机与主机间的通信
主机的接收代码:
receiv:
movdx,ctr151;接收数据
inal,dx
testal,02;接收数据准备好?
RXRDY=1?
jzreceiv;未准备好,即无数据接收,则转按键发送
movdx,data51;已准备好,即有数据传送过来,则接收1个字符
inal,dx
movc,al
calltranslate
callcomp
calldelay
movah,0bh
int21h
cmpal,0
jzreceiv
movah,08h
int21h
cmpal,1bh;是ESC?
jeover;是,则退出,返回DOS
jmpreceiv;不是,则接收1个字符后,再转按键发送
over:
moval,0ch;置PC6=0,关闭8253-5的GATE2,停止输出方波
movdx,303h
outdx,al
movah,1
int21h
movax,4c00h;程序退出
int21h
下位机的发送代码:
transm:
movdx,ctrl151;
inal,dx
testal,01
jztransm
calladpo
movdx,data51
moval,a
outdx,al
movdl,al
movah,2
int21h
cmpal,00h
jetransm
movah,08h
int21h
cmpal,1bh
jeover
jmptransm
体会:
此次接口实验是每4人完成一道题,在此次实验中我感受最深的是团结合作的精神。
首先,我们讨论出了‘病人监控系统’的功能。
然后,进行分工。
分给我的模块是界面部分,我当时想着一定要把界面部分做好点。
因为界面还是挺重要的。
开发一个系统,用户不必要了解内部如何实现的,用户只要知道如何去用,界面的信息是什么意思就可以了。
所以界面部分还是挺重要的。
可等待我做的时候,我才发现用汇编编写界面的程序太难了。
不是编程很难,而是要做出漂亮的界面实在太难。
我只能尽量做好点了。
我们做的是“病人监控系统”,我联想到“红十字会”。
因此,我在界面上用红心排出了一个红十字的标志。
当然,我很快就完成了。
然后,我没有闲着。
我去给partner当打杂的了。
下位机采集的数据在机内是二进制的,主机接收到的数据也是二进制的,为显示出来,必须进行转换。
我编写了二十进制转换的程序。
由于上个学期我们做过双工通信的实验,这次在通信上遇到的问题还不是太大。
因此,很快我们的实验基本功能都已经完成。
可老师检查不通过。
原因是我们没有用到AD转换。
啊,看来我们要返工了。
因为我们原来采取的方法是从键盘输入数据,现在要改成AD转换,那么通信部分就要改动了。
这个时候已经是星期三了,时间紧迫。
唉,后悔当初没有好好听讲,这就要付出代价了。
于是,我们集中力量攻AD转换的程序,真是“团结就是力量”。
虽然以前也没有用过ADC0809芯片,但通过我们自己的琢磨,从零开始,我们还是把它拿下了。
这就是团结的力量。
当然,我从这次的实验中也看出自己存在的不足:
实践能力太差,还很需要努力。
同时,我也在此处感谢同组成员给我的帮助,从她们哪儿我学到了很多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 王晶晶