微机原理接口实验与实践教程部分代码.docx
- 文档编号:4686768
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:42
- 大小:25.44KB
微机原理接口实验与实践教程部分代码.docx
《微机原理接口实验与实践教程部分代码.docx》由会员分享,可在线阅读,更多相关《微机原理接口实验与实践教程部分代码.docx(42页珍藏版)》请在冰豆网上搜索。
微机原理接口实验与实践教程部分代码
第6章硬件实验部分代码及提示
6.1.实验1接口基础及总线信号检测
注意:
熟练掌握Debug工具,了解寄存器间、寄存器与内存间传数的过程。
//参考程序
DATASEGMENT;数据段定义
TS1DB’程序开始运行,请注意观察总线信号状态。
’,0DH,0AH,’$’
TS2DB’程序运行结束。
请检查实验记录。
’,0DH,0AH,’$’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,TS1
MOVAH,9;9号功能
INT21H
MOVDX,203H;控制端口
MOVAL,01010110B
OUTDX,AL
MOVDX,201H
MOVAL,0FFH
OUTDX,AL
INAL,DX
MOVSI,1226H
MOVBX,[SI];读内存
MOV[DI],BX;写内存
LEADX,TS2
MOVAH,9
INT21H
MOVAH,4CH;返回DOS
INT21H
CODEENDS
ENDSTART
6.2.实验28253计时器/定时器
要求学生清楚:
1、在方式3下,初值设为偶数与奇数时,输出的波形变化。
有条件的用双踪示波器观察最好。
2、2方式和3方式的区别。
//参考程序清单
DATASEGMENT
TSDB’注意观察现象并记录输出波形关系’,OAH,ODH,’$’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,TS
MOVAH,9
INT21H
MOVDX,203H
MOVAL,36H;方式3
OUTDX,AL
MOVDX,200H
MOVAL,FFH
OUTDX,AL
OUTDX,AL
MOVDX,203H
MOVAL,56H;方式3
OUTDX,AL
MOVDX,201H
MOVAL,8;初值,完成8分频
OUTDX,AL;若改为9时结果怎样(注意脉冲的上升还是下降沿有效)
MOVDX,203H
MOVAL,94H;方式2
OUTDX,AL
MOVDX,202H
MOVAL,6;初值
OUTDX,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.3.实验3
(1)8255并行接口(小键盘控制)实验
可以试着让学生用行扫描法练习编程。
//参考程序清单(反转法)
DATASEGMENT
TABLEDW0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H
DW0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H;定义键值
CHARDB’89ABCDEF01234567’;定义键名
TSDB’按下小键盘上任意键,在CRT上显示,按F键,程序推出’,0DH,0AH,’$’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
START:
MOVAX,DATA
MOVDS,AX
LEADX,TS
MOVAH,9;dos的9号功能调用
INT21H
KY:
CALLKEY
CMPDL,’F’
JNZKY
MOVAH,4CH
INT21H
RET
MAINENDP
KEYPROCNEAR
INI:
MOVDX,21BH
MOVAL,82H;设置PA口输出,PB口输入
OUTDX,AL
WAIT1:
MOVDX,218H
MOVAL,0
OUTDX,AL
MOVDX,219H
INAL,DX
MOVAH,AL
ANDAL,03H;检测是否有列线键按下
CMPAL,03H
JZWAIT1
MOVAL,AH
MOVAH,0
PUSHAX
PUSHAX
MOVCX,1000H
DLY:
LOOPDLY
MOVDX,21BH
MOVAL,90H;重设置8255的A、B口输入和输出
OUTDX,AL
MOVDX,219H
POPAX
OUTDX,ALl
MOVDX,218H
INAL,DX;AL中存放行值
POPBX
MOVAH,BL;AH中存放列值
NOTAL
MOVSI,OFFSETTABLE
MOVDI,OFFSETCHAR
MOVCX,16;16个字符
SKIP:
CMPAX,[SI]
JZDISP
DECCX
JZINI
ADDSI,2
INCDI
JMPSKIP
DISP:
MOVDL,[DI]
MOVAH,2
INT21H
PUSHDX
MOVDX,21BH
MOVAL,82H
OUTDX,AL
WAIT2:
MOVDX,218H
MOVAL,0
OUTDX,AL
MOVDX,219H
INAL,DX
ANDAL,03H
CMPAL,03H
JNZWAIT2
POPDX
RET
KEYENDP
CODEENDS
ENDSTART
6.4.实验3
(2)8255并行接口(LED)实验
8255个子工作于方式0,此时PA、PB、PC均为可独立输入/输出的并行口。
8255的各寄存器对应的端口地址为:
PA口:
218H;PB口:
219H;PC口:
21AH;控制口:
21BH
//参考源程序
PC55EQU21AH
P55CTLEQU21BH
DATASEGMENT
MESS1DB’左循环按1’,0DH,0AH,’$’
DB’右循环按2’,0DH,0AH,’$’
DB’间隔闪烁按3’,0DH,0AH,’$’
DB’退出按4’,0DH,0AH,’$’
MESS2DB’按无效键继续选择’,0DH,0AH,’$’
MESS3DB’按任意键退回主菜单’,0DH,0AH,’$’
DATAENDS
STACKSEGMENT
STADB20DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS;CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA;初始化
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVSP,TOP
MOVSP,AX
MOVDX,P55CTL
MOVAL,80H
OUTDX,AL
BG:
LEADX,MESS1
MOVAH,09H
INT21H
MOVAH,08H;等待有键按下
INT21H
PUSHAX
LEADXMESS3
MOVAH,09H
INT21H
POPAX
MOVAH,AL
CMPAL,’1’
JZZXH;进入各种循环
MOVAL,AH
CMPAL,’2’
JZYXH
MOVAL,AH
CMPAL,’3’
JZJGS
MOVAL,AH
CMPAL,’4’
JNZWX
JMTQIT
WX:
LEADX,MESS2;无效按键提示信息
MOVAH,09H
INT21H
JMPBG
ZXH:
MOVDX,21AH;左循环
MOVAL,0FEH
BB:
OUTDX,AL
MOVCX,0FFFFH
L1:
LOOPL1
ROLAL,1
PUSHAX
PUSHDX
MOVDL,0FFH
MOVAH,06H
INT21H
JNZBG
POPDX
POPAX
JMPBB
YXH:
MOVDX,21AH;右循环
MOVAL,0FEH
EE:
OUTDX,AL
MOVCX,0FFFH
L2:
LOOPL2
RORAL,1
PUSHAX
PUSHDX
MOVDL,0FFH
MOVAH,06H
INT21H
JNZBG
POPDX
POPAX
JMPEE
JGS:
MOVDX,21AH;间隔闪烁
MOVAL,55H
HH:
OUTDX,AL
MOVCX,0FFFFH
L3:
LOOPL3
NOTAL
PUSHAX
PUSHDX
MOVDL,0FFH
MOVAH,06H
INT21H
JNZBG1
POPDX
POPAX
JMPHH
BG1:
JMPBG
QIT:
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
6.5.实验48259A中断控制器实验
//参考程序清单
DATASEGMENT
TS1DB’组合推键开关设置编码,按下单脉冲键,观察LED显示,注意上升沿或下降沿触发’,0DH,0AH,’$’
TS2DB’并行接口8255C口采集数据并显示,请观察、记录。
’,’$’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,CS
MOVDS,AX
LEADX,INTPROG
MOVAH,25H;25H功能,设置新中断向量
MOVAL,0AH
INT21H
CLI;关中断
MOVDX,21H
INAL,DX
ANDAL,11111011B;解屏蔽,OCW1相应位置0即可
OUTDX,AL
MOVCX,10
MOVSI,0041H
STI
MOVAX,DATA
MOVDS,AX
LEADX,TS1
MOVAH,9
INT21H
YY:
NOP
JMPYY
INTPROG:
PUSHDS
MOVAX,DATA
MOVDS,AX
LESDX,TS2
MOVAH,9
INT21H
MOVCX,05H
MOVDL,20H
MOVAH,2
XH0:
INT21H
LOOPXH0
MOVDX,SI
MOVAH,2
INT21H
MOVDL,0DH
INT21H
MOVDL,0AH
INT21H
MOVDX,21BH
MOVAL,88H
OUTDX,AL
MOVDX,21AH
INAL,DX
MOVCL,4
RORAL,CL
NOTAL
OUTDX,AL
MOVDX,20H
MOVAL,20H
OUTDX,AL
DECBX
JNZCONTINUE
MOVDX,21H
INAL,DX
CLI;恢复中断向量前关中断
ORAL,04;使相应为置1,屏蔽该位。
OUTDX,AL
STI;开中断
MOVAH,4CH
INT21H
CONTINUE:
INCSI
IRET
CODEENDS
ENDSTART
6.6.实验5存储器直接传送DMA
//参考程序清单
DATASEGMENT
TS1DB’按下DMA(HALT)键,请求将内存源数据区中32KB数据直接传送到外扩存储器62256(当作外设)中,观察LED显示的DREQ1、DACK1信号。
’,0DH,0AH,’$’
TS2DB’按下DMA(HALT)键,请求将外扩存储器62256(当作外设)中32KB数据直接传送到内存目标区中,观察LED显示的DREQ1、DACK1信号。
’,0DH,0AH,’$’
TS3DB’DMA直接传送完成,请进入DEBUG用D命令检查内存目标区中的32KB数据正确否。
’,0DH,0AH,’$’
DATAENDS
STACKSEGMENT
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS;CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVSP,TOP
MOVAL,5
OUT0AH,AL;设置通道1屏蔽字
OUT0CH,AL;清除先后触发器
MOVAL,01001001B
OUT0BH,AL;设方式字为单字节读传输
MOVBX,0000H
MOVAL,BL
OUT02H,AL
MOVAL,BH
OUT02H,AL
MOVAL,06H
OUT83H,AL;起始地址为6000H:
0
MOVAL,0FFH
OUT03H,AL
MOVAL,07FH
OUT03H,AL;传送字节数为7FFFH(32KB)
MOVAL,01H
OUT0AH,AL
LEADX,TS1
MOVAH,9
INT21H
PUSHAX
POPAX
WAIT0:
INAL,08H
ANDAL,02H
JZWAIT0
MOVAL,05H
OUT0AH,AL;设置通道1屏蔽字
OUT0CH,AL;清除先后触发器
MOVAL,01000101B
OUT0BH,AL;设置方式字为单字节写传输
MOVAL,BL
OUT02H,AL
OUT02H,AL
MOVAL,07H
OUT83H,AL;目的地址为内存7000H:
0
MOVAL,0FFH
OUT03H,AL
MOVAL,7FH
OUT03H,AL;传送字节为7FFFH(32KB)
MOVAL,01
OUT0AH,AL;除去通道1的屏蔽
LEADX,TS2
MOVAH,9
INT21H
PUSHAX
POPAX
WAIT1:
INAL,08H
ANDAL,02H
JZWAIT1
LEADX,TS3
MOVAH,9
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.7.实验68251可编程串行接口通信实验
//参考程序
DATASEGMENT
SBUFDB32DUP(?
)
TS1DB’请连续键入10个字符。
’,0DH,0AH,’$’
TS2DB’8251串行输出发送。
’,0DH,0AH,’$’
TS3DB’8251串行输入接收。
’0DH,0AH,’$’
TS4DB’连续显示传送数据。
’0DH,0AH,’$’
TS5DB’8251串行传送成功。
’0DH,0AH,’$’
DBUFDB32DUP(?
)
DATAENDS
STACKSEGMENTPARASTACK’STACK’
STADB500DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
MAINPROCFAR
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
LEADX,TS1
MOVAH,9
INT21H
LEASI,SBUF
MOVCX,10
SR:
MOVAH,1
INT21H
MOV[SI],AL
INCSI
LOOPSR
CALLINIT51
LEASI,SBUF
LEADI,DBUF
MOVCX,10
M0:
MOVDX,22AH;读控制口,判断状态
M1:
INAL,DX
TESTAL,01H;TXRDY=1?
JZM1
MOVDX,228H
MOVAL,[SI]
OUTDX,AL
INCSI
LEADX,TS2
MOVAH,9
INT21H
MOVDX,22AH
M2:
INAL,DX
TESTAL,02H;RXRDY=1?
JZM2
MOVDX,228H
INAL,DX
MOV[DI],AL
INCDI
MOVDL,AL
MOVAH,02H
INT21H
CALLKG
LEADX,TS3
MOVAH,9
INT21H
LOOPM0
LEADX,TS4
MOVAH,9
INT21H
LEADI,DBUF
MOVCX,10
M3:
MOVDL,[DI]
MOVAH,2
INT21H
INCDI
LOOPM3
LEADX,TS5
MOVAH,9
INT21H
MOVAH,4CH
INT21H
MAINENDP
INIT51PROCNEAR
MOVCX,3
M4:
MOVDX,22AH
MOVAL,0
OUTDX,AL
PUSHCX;延迟,因实验箱与PC机速度不匹配
MOVCX,100
LOOP$
POPCX
LOOPM4
MOVDX,22AH
MOVAL,40H
OUTDX,AL
PUSHCX
MOVCX,100
LOOP$
POPCX
MOVAL,4EH
OUTDX,AL
MOVAL,37H
OUTDX,AL
PUSHCX
MOVCX,100
LOOP$
POPCX
RET
INIT51ENDP
KGPROCNEAR
MOVDL,20H
MOVAH,2
INT21H
INT21H
RET
KGENDP
CODEENDS
ENDSTART
6.8.实验7A/D转换实验
结果近似线性关系
//参考程序
DATASEGMENT
TS1DB’A/D转换开始,注意观察、记录。
’,0DH,0AH,’$’
TS2DB’转换结束,计算分辨率,画出转换关系图,分析误差。
’,0DH,0AH,’$’
BUFDW300DUP(?
)
DATAENDS
STACKSEGMENT
STADW20DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK;设置堆栈
MOVSS,AX
MOVSP,TOP
LEADX,TS1
MOVAH,9
INT21H
MOVCX,300;设置采样次数
CONV:
MOVDX,220H;选择模拟信号输入端口IN0
MOVAL,0
OUTDX,AL
CALLADINT
MOVAX,SI
LEADI,BUF
MOV[DI],AL
ANDAL,0F0H
PUSHCX
MOVCL,4
SHRAL,CL
POPCX
ADDAL,30H;转换为ASCⅡ码
CMPAL,39H
JBEDISOL
ADDAL,07H
DISPL:
MOVDL,AL;转换为ASCⅡ码并显示低位数据
MOVAH,2
INT21H
MOVAL,[DI]
INCDI
ANDAL,0FH
ADDAL,30H
CMPAL,39H
JBEDISPH
ADDAL,07H
DISPH:
MOVDL,AL
MOVAH,2
INT21H
MOVDL,20H
MOVAH,2
INT21H
INT21H
LOOPCONV
LEADX,TS2
MOVAH,9
INT21H
MOVAH,4CH;返回DOS
INT21H
ADINTPROCNEAR
PUSHAX
PUSHBX
PUSHCX
MOVCX,0FFFFH
DELAY:
MOVBX,2FH
DELAY1:
DECBX
CMPBX,0
JNZDELAY1
LOOPDELAY
MOVDX,220H
INAL,DX
MOVSI,AX
POPCX
POPBX
POPAX
RET
ADINTENDP
CODEENDS
ENDSTART
6.9.实验8D/A转换实验
//参考程序
DATASEGMENT
TS2DB’锯齿波————按1。
’,0DH,0AH
DB’三角波————按2。
’,0DH,0AH
DB’方波————按3。
’,0DH,0AH
DB’正弦波————按4。
’,0DH,0AH
DB’退出————按5。
’,0DH,0AH,’$’
TS2DB’按下键无效,继续选择。
’,0DH,0AH,’$’
TS3DB’按任意键退回主菜单。
’,0DH,0AH,’$’
SINBUFDB80H,8CH,98H,0A5H,0B0H,0BCH,0C7H,0D1H;定义正弦数据表
DB0DAH,0E2H,0EAH,0F0H,0F6H,0FAH,0FDH,0FFH
DB0FFH,0FDH,0FAH,0F6H,0F0H,0EAH,0E2H,0DAH
DB0D1H,0C7H,0BCH,0B0H,0A5H,98H,8CH,80H
DB7FH,73H,67H,5AH,4FH,43H,38H,2EH
DB25H,1DH,15H,0FH,09H,05H,02H,00H
DB00H,02H,05H,09H,0FH,15H,1DH,25H
DB2EH,38H,43H,4FH,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 实验 实践 教程 部分 代码