微机原理与接口实验报告大学论文Word文件下载.docx
- 文档编号:19479463
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:19
- 大小:312.96KB
微机原理与接口实验报告大学论文Word文件下载.docx
《微机原理与接口实验报告大学论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口实验报告大学论文Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
图4六位数码管显示实验主程序参考流程图
图5六位数码管显示实验显示子程序参考流程图
1.3完整的程序清单和相关注释。
.modelsmall
.386
datasegment
numdb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
dataends
codesegment
assumecs:
code,ds:
data
BEGIN:
movsi,0
movax,data
movds,ax
leabx,num
count:
movcx,6
movah,00000001b
scan:
moval,[bx+si];
字形处理
movdx,200h
outdx,al
moval,ah;
字位处理
movdx,201h
calldelay
shlah,1
loopscan
addsi,1
cmpsi,10
jnzcount
subsi,10
jmpcount
delayprocnear
pushcx
movcx,0
lop:
looplop
popcx
ret
delayendp
codeends
endBEGIN
1.4实验数据及结果分析
完成了0到9的八个数码管依次顺序显示,每次的显示都有一定的延迟,当显示完数字9以后就再次从0开始。
1.5实验过程中遇到的问题,以及解决办法
遇到的问题:
显示的时候一开始很难延迟。
解决的方案:
通过构造一个延迟函数来完成,在延迟函数中一直重复进行某一个动作,用计数器的倒计时来完成延迟的功能,由于需要调用新的函数,而且需要一个计数器的支持,所以需要将cx压入栈中。
1.6实验总结
熟悉了汇编语言的相关语言,也熟悉了软件与接线板的操作。
通过入栈压栈的方式,完成对于延迟操作的函数构造。
同时,也实践了moval,[bx+si]movdx,200houtdx,al的字形处理,和moval,ahmovdx,201houtdx,al的字为命令的语句熟悉。
实验2小键盘按键识别实验
掌握用软件方法识别行列式键盘按键的原理和方法。
当实验板上的小键盘有键按下时,将其对应的键号(16进制数0-F)显示在七段数码管上。
实验系统提供了一个16按键的小键盘,采用行列式4×
4键盘,形成矩阵结构,如图3-10所示。
通常,该键盘矩阵的行线和列线分别与8255并行接口的两个端口连接,通过程序的检测和判断来识别按键操作。
当需要检测某键按下时,依次给1、2、3、4行线输出低电平,某键按下时,相应的行和列上的两条线短路,即相应的列线被拉成低电平,其他列线维持高电平。
程序通过并口读回4根列线的值,根据行线列线为0的状态即可判断出该按键的键号(即位置)。
图64X4键盘原理图
实验接线图如图7所示,将8255端口A的PA0-PA3与4个行线KL0-KL3连接,将8255端口B的PB0-PB3与4个列线KR0-KR3连接,设置选择8255A组、B组端口为方式0(基本输入输出方式)工作,且端口A方向为输出,用来控制行线,端口B方向为输入,用来读入列线值。
编写汇编程序,根据送出的行线值和读入的列线值来判断出该按键的位置,并将其键号在数码管上显示出来。
图7小键盘按键识别实验接线图
图8小键盘按键识别实验程序流程图
.modelsmall
DATASEGMENT
rowportdw200h
colportdw201h
controlportdw203h;
控制字
led_csdw210h
chardb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h
tabledw0fefeh
dw0fefdh
dw0fefbh
dw0fef7h
dw0fdfeh
dw0fdfdh
dw0fdfbh
dw0fdf7h
dw0fbfeh
dw0fbfdh
dw0fbfbh
dw0fbf7h
dw0f7feh
dw0f7fdh
dw0f7fbh
dw0f7f7h
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
begin:
movax,data
movds,ax
movdx,controlport
moval,10000010b
outdx,al;
8255初始化
L1:
callkb1
movbh,ah
movbl,al
cmpbl,al
jnzbegin
cmpbh,ah
movax,bx
calldisp
jmpL1
kb1proc
movah,0feh
kb2:
moval,ah
movdx,rowport
输出数据
movdx,colport
inal,dx;
读入PB口内容
oral,0f0h
cmpal,0ffh
jnenum1
rolah,1
jmpkb2
num1:
ret
kb1endp
delayproc
pushcx
movcx,8000h
delay1:
loopdelay1
popcx
ret
delayendp
dispproc
pushbx
pushdx
kb3:
movsi,offsettable
movdi,offsetchar
movcx,16
kb4:
cmpax,[si]
jzkb5
incsi
incdi
loopkb4
kb5:
moval,[di]
movdx,led_cs
moval,01h
incdx
popdx
popbx
dispendp
CODEENDS
ENDSTART
完成了键盘按键在显示屏上的显示任务,可识别从0到F的各个数字及字母,做到了一一对应。
遇到的问题:
如何识别按键的位置
解决的方案:
用table来记录各个按键的位置,由于table内部的数据是dw的,而字符是db的,所以当字符的偏移地址加一的时候,table的偏移地址加二,从而就可以完成一一对应的操作。
熟悉了汇编语言和软件操作,也完成了键盘和显示屏的连接操作,完成了实验任务。
但是代码部分还可以做适当的简略,逻辑部分还需要一定的考虑。
实验38位A/D转换实验
掌握模/数信号转换的基本原理,掌握ADC0809芯片的查询方式使用方法。
从ADC0809通道0输入0--+5V可变电压,启动AD转换,使用查询方式读取转换数据,并以16进制显示在数码管上。
实验接线如图3-21。
图98位A/D转换实验接线图
图108位A/D转换实验参考流程图
.MODELsmall
AD_CSEQU200h
LED_CSEQU210h
LEDCODEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H;
数码管0到f的显示
ASSUMECS:
CODE,DS:
MOVAX,DATA
MOVDS,AX
RPT:
MOVDX,AD_CS
OUTDX,AL;
让ADC0809锁存地址,并启动转换
ADDDX,2;
此时DX指向202H处
INAL,DX;
读取ADC0809的EOC引脚状态并加以判断
TESTAL,01H;
EOI是否为1,判断转换是否完成
JZL1;
否,重复读入EOC状态并判断;
INCDX
INAL,DX
CALLDISP
JMPRPT
DISPPROC
MOVSI,OFFSETLEDCODE;
设置7段表首地址
MOVBX,SI
MOVCH,AL
MOVCL,4;
截取转换数据的高四位
RORAL,CL
ANDAL,0FH
MOVAH,0
ADDBX,AX
MOVAL,[BX];
获取LED显示编码
MOVDX,LED_CS
OUTDX,AL;
转换后显示
MOVAL,02H
INCDX
NOP
OUTDX,AL
CALLDELAY
MOVAL,CH
ADDSI,AX
MOVAL,[SI]
MOVAL,01H
RET
DISPENDP
DELAYPROC
PUSHCX
MOVCX,50H
X1:
LOOPX1
POPCX
DELAYENDP
完成了数模信号的转化任务,成功地将模拟量转化为数字量,范围为0到ff,完成了模拟量和显示屏的连接。
在模拟量改变的时候,显示屏的内容没有相应改变。
后查是在程序中,忘记将数据转入,少一个in操作所致。
熟悉了汇编语言的编写操作和软件与连接板的实际操作,也熟悉了模拟量和数字量之间的转换任务。
实验4步进电机实验
掌握步进电机的控制方法。
编写汇编程序,使用8255的A口控制步进电机的运转。
步进电机型号为20BY20H04,工作电压5V,每转一圈需48步,每步旋转7.5度。
48*7.5=360,刚好是一圈。
步进电机的励磁线圈及其励磁顺序如图3-24所示。
电机驱动电路使用了ULN2803芯片。
图11步进电机励磁顺序与步进代码
实验接线图如图12所示,8255的PA口的PA0-PA3分别连接步进电机的BJ_IN1-BJ_IN4,对应步进电机的A、B、/A、/B。
图12步进电机控制实验接线图
图13步进电机控制实验参考流程图
io_adequ200h
datasegment
speeddb2
codesegment
assumecs:
start:
movax,data
movdx,IO_AD
adddx,03
moval,80h
speedin:
a1:
向PA口写入一个数据
moval,03h
calldelay
moval,02h
moval,06h
moval,04h
moval,0Ch
moval,08h
moval,09h
jmpa1
pushax
movdh,speed
x1:
movcx,0f00h
x2:
loopx2
decdh
jnzx1
popax
codeends
endstart
完成了电动机顺时针旋转的任务。
如何使得电动机连续旋转。
连续输入3,2,6,4,c,8,9就可以完成此项功能。
本实验较为简单,熟悉了如何操作电动机的学习任务,提高了动手实践能力,同时熟悉了汇编语言和相关的软件操作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 实验 报告 大学 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)