微机原理实验程序中国石油大学华东.docx
- 文档编号:11054791
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:25
- 大小:29.79KB
微机原理实验程序中国石油大学华东.docx
《微机原理实验程序中国石油大学华东.docx》由会员分享,可在线阅读,更多相关《微机原理实验程序中国石油大学华东.docx(25页珍藏版)》请在冰豆网上搜索。
微机原理实验程序中国石油大学华东
实验3循环程序设计
实验容:
1.数组*,Y,Z,。
*=32,-43,76,95,-1;Y=-78,127,-128,-125,88。
计算两数之和,送入数组S。
DATASEGMENT
*DB32,-43,76,95,-1
YDB-78,127,-128,-125,88
SDB5DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVA*,DATA
MOVDS,A*
MOVC*,5
MOVSI,0
FOR:
MOVAL,*[SI]
ADDAL,Y[SI]
MOVS[SI],AL
INCSI
LOOPFOR
CODEENDS
ENDSTART
2.两个多位十进制数,*=1357902468,Y=5790123467。
计算两数之和〔BCD码〕。
DATASEGMENT
*DB68H,24H,90H,57H,13H
YDB67H,34H,12H,90H,57H
SDB5DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVA*,DATA
MOVDS,A*
MOVC*,5
MOVSI,0
CLC
FOR:
MOVAL,*[SI]
ADDAL,Y[SI]
DAA
MOVS[SI],AL
INCSI
LOOPFOR
CODEENDS
ENDSTART
实验4子程序调用变成设计
实验容:
用子程序调用方法,现有数组*=32,-43,76,95,-1,-78,127,-128,-125,88
编程按递增顺序排序输出。
DATASEGMENT
*DB32,-43,76,95,-1,-78,127,-128,-125,88
ENDSSEGMENT
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVA*,DATA
MOVDS,A*
CALLSUB1
MOVAH,4CH
INT21H
SUB1PROCNEAR
MOVC*,9
LP1:
MOVB*,0
MOVD*,C*
LP2;MOVAL,*[B*]
CMPAL,*[B*+1]
JLENE*T
*CHGAL,*[B*+1]
NE*T:
INCB*
DECD*
JNELP2
LOOPLP1
RET
SUB1ENDP
CODEENDS
ENDSTART
实验5DOS功能调用
实验容:
1.从键盘连续输入五个单个字符,然后再反向输出这5个字符。
输入:
12345
输出:
54321
CODESEGMENT
ASSUMECS:
CODE
START:
MOVC*,5
LP1:
MOVAH,01
INT21H
PUSHA*
LOOPLP1
MOVDL,0AH
MOVAH,02
INT21H
MOVDL,0DH
MOVAH,02
INT21H
MOVC*,5
LP2:
POPD*
MOVAH,02
INT21H
LOOPLP2
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2.从键盘输入一串字符"abcde〞,然后输出3次。
DATASEGMENT
MA*DB10
STRDB10DUP(‘S’)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVA*,DATA
MOVDS,A*
LEAD*,MA*
MOVAH,10
INT21H
MOVC*,3
LP:
LEAD*,STR
MOVAH,9
INT21H
MOVDL,0DH
MOVAH,02H
INT21H
MOVDL,0AH
MOVAH,2
INT21H
LOOPLP
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验10简单的输出接口实验
实验容;
1.利用74LS75设计一个接口电路,使4个LED同时亮,同时灭,中间间隔1秒,共循环5次。
CODESEGMENT
ASSUMECS:
CODE
START:
MOVC*,5
LP;MOVD*,280H
MOVAL,0FH
OUTD*,AL
CALLDELAY
MOVD*,280H
MOVAL,0H
OUTD*,AL
CALLDELAY
LOOPLP
MOVAH,4CH
INT21H
DELAYPROCNEAR
PUSHC*
MOVB*,03FFH
FOR1:
MOVC*,0FFFFH
FOR2;LOOPFOR2
DECB*
JNZFOR1
POPC*
RET
DELAYENDP
CODEENDS
ENDSTART
2.利用74LS75设计一个接口电路,使8个LED循环点亮,中间间隔1秒,共循环3次
CODESEGMENT
ASSUMECS:
CODE
START:
MOVC*,3
MOVSI,8
LP1:
MOVD*,280H
MOVAL,01H
LP2:
OUTD*,AL
CALLDELAY
SHLAL,1
DECSI
JNZLP2
LOOPLP1
MOVAH,4CH
INT21H
DELAYPROCNEAR
PUSHC*
MOVB*,03FFH
FOR1:
MOVC*,0FFFFH
FOR2;LOOPFOR2
DECB*
JNZFOR1
POPC*
RET
DELAYENDP
CODEENDS
ENDSTART
实验11简单的输入接口实验实验容:
1.设计一个接口电路,当开关来回搬动1次后,在屏幕上输出‘1’,再来回搬动1次,输出‘2’,共搬动5次。
利用硬件消抖。
(D1)
CODESEGMENTASSUMECS:
CODESTART:
MOVDL,31HMOVC*,5L1:
PUSHD*MOVD*,280HINAL,D*ANDAL,01HMOVAH,ALL2:
INAL,D*ANDAL,01HCMPAH,ALJZL2L3:
INAL,D*ANDAL,01HCMPAH,ALJNZL3POPD*MOVAH,02HINT21HINCDLLOOPL1MOVAH,4CHINT21HCODEENDSENDSTART
2.设计一个接口电路,当开关来回搬动1次后,在屏幕上输出‘1’,再来回搬动1次,输出‘2’,共搬动5次。
利用软件消抖。
(D1).
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDL,31H
MOVC*,5
L1:
PUSHD*
MOVD*,280H
INAL,D*
ANDAL,01H
MOVAH,AL
L2:
INAL,D*
ANDAL,01H
CMPAH,AL
JZL2
CALLDELAY
L3:
INAL,D*
ANDAL,01H
CMPAH,AL
JNZL3
CALLDELAY
POPD*
MOVAH,02H
INT21H
INCDL
LOOPL1
MOVAH,4CH
INT21H
DELAYPROCNEAR
PUSHC*
MOVB*,03FH
FOR1:
MOVC*,0FH
FOR2:
LOOPFOR2
DECB*
JNZFOR1
POPC*
RET
DELAYENDP
CODEENDS
ENDSTART
3.设计一个接口电路,当开关搬动1次后,在屏幕上输出‘1’,再搬动1次,输出‘2’,共搬动5次。
(D4)
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDL,31H
MOVC*,5
L1:
PUSHD*
MOVD*,284H
INA*,D*
ANDA*,10H
MOVSI,A*
L2:
INA*,D*
ANDA*,10H
CMPSI,A*
JZL2
POPD*
MOVAH,02H
INT21H
INCDL
LOOPL1
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验12数码管显示实验
1.使2个七段显示管分别显示HP,字符保持5秒钟。
CODESEGMENT
ASSUMECS:
CODE
START:
MOVC*,03FFH
L1:
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,76H;H
OUTD*,AL
MOVD*,282H
MOVAL,02H
OUTD*,AL
CALLDONG
MOVD*,282H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,73H;P
OUTD*,AL
MOVD*,280H
MOVAL,01H
OUTD*,AL
CALLDONG
LOOPL1
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVAH,4CH
INT21H
DONGPROCNEAR
PUSHC*
PUSHB*
MOVB*,0100H
FOR1:
MOVC*,0100H
FOR2:
LOOPFOR2
DECB*
JNZFOR1
POPB*
POPC*
RET
DONGENDP
CODEENDS
ENDSTART
2.使2个七段显示管分别显示01,23,45,67,89,每两个字符保持2秒钟。
CODESEGMENT
ASSUMECS:
CODE
START:
MOVC*,01FFH
L1:
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,3FH;0
OUTD*,AL
MOVD*,282H
MOVAL,02H
OUTD*,AL
CALLDONG
MOVD*,282H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,06H;1
OUTD*,AL
MOVD*,280H
MOVAL,01H
OUTD*,AL
CALLDONG
LOOPL1
MOVC*,01FFH
L2:
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,5BH;2
OUTD*,AL
MOVD*,282H
MOVAL,02H
OUTD*,AL
CALLDONG
MOVD*,282H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,4FH;3
OUTD*,AL
MOVD*,280H
MOVAL,01H
OUTD*,AL
CALLDONG
LOOPL2
MOVC*,010FH
L3:
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,66H;4
OUTD*,AL
MOVD*,282H
MOVAL,02H
OUTD*,AL
CALLDONG
MOVD*,282H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,6DH;5
OUTD*,AL
MOVD*,280H
MOVAL,01H
OUTD*,AL
CALLDONG
LOOPL3
MOVC*,010FH
L4:
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,7DH;6
OUTD*,AL
MOVD*,282H
MOVAL,02H
OUTD*,AL
CALLDONG
MOVD*,282H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,07H;7
OUTD*,AL
MOVD*,280H
MOVAL,01H
OUTD*,AL
CALLDONG
LOOPL4
MOVC*,010FH
L5:
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,7FH;8
OUTD*,AL
MOVD*,282H
MOVAL,02H
OUTD*,AL
CALLDONG
MOVD*,282H
MOVAL,00H
OUTD*,AL
MOVD*,290H
MOVAL,6FH;9
OUTD*,AL
MOVD*,280H
MOVAL,01H
OUTD*,AL
CALLDONG
LOOPL5
MOVD*,280H
MOVAL,00H
OUTD*,AL
MOVAH,4CH
INT21H
DONGPROCNEAR
PUSHC*
PUSHB*
MOVB*,0100H
FOR1:
MOVC*,0100H
FOR2:
LOOPFOR2
DECB*
JNZFOR1
POPB*
POPC*
RET
DONGENDP
CODEENDS
ENDSTART
实验13可编程并行接口8255A芯片实验
实验容:
1.由8255A方式0的A口输出数据,驱动2个LED,循环点亮5次,每个状态保存1秒。
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAL,80H
MOVD*,283H
OUTD*,AL
MOVC*,5
MOVD*,281H
MOVAL,00
L1:
MOVAL,01
OUTD*,AL
CALLDELAY
MOVAL,02
OUTD*,AL
CALLDELAY
LOOPL1
MOVAH,4CH
INT21H
DELAYPROCNEAR
PUSHC*
MOVB*,400
FOR1:
MOVC*,0FFFFH
FOR2:
LOOPFOR2
DECB*
JNZFOR1
POPC*
RET
DELAYENDP
CODEENDS
ENDSTART
2.用8255A方式1,将两位开关量设置的二进制数,由B口选通输入CPU,三秒钟后,由A口选通输出送LED显示,要求通过对状态字IBFB和OBFA#的测试来控制程序运行。
STB#和ACK#由消抖电路产生。
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAL,10100110B
MOVD*,283H
OUTD*,AL
L1:
MOVD*,282H
INAL,D*
ANDAL,02H
JZL1
MOVD*,281H
INAL,D*
CALLDELAY
MOVD*,280H
OUTD*,AL
L2:
MOVD*,282H
INAL,D*
ANDAL,80H
JZL2
JMPL3
LOOPSTART
L3:
MOVAL,00
MOVD*,280H
OUTD*,AL
MOVAH,4CH
INT21H
DELAYPROCNEAR
PUSHC*
MOVB*,3FFH
FOR1:
MOVC*,0FFFFH
FOR2:
LOOPFOR2
DECB*
JNZFOR1
POPC*
RET
DELAYENDP
CODEENDS
ENDSTART
3.由8255A的A接口输出数据,驱动4个LED,使其顺序显示0--F的二进制状态,每个状态保持1秒钟。
CODESEGMENTASSUMECS:
CODESTART:
MOVD*,283HMOVAL,80HOUTD*,ALMOVC*,16MOVAL,00HL1:
MOVD*,280HOUTD*,ALCALLDELAYINCALLOOPL1MOVAH,4CHINT21HDELAYPROCNEARPUSHC*MOVB*,299HFOR1:
MOVC*,0FFFFHFOR2:
LOOPFOR2DECB*JNZFOR1POPC*RETDELAYENDPCODEENDSENDSTART
实验148253编程测试实验实验容:
8253方式0测试,用消抖电路产生的脉冲作为CLK0输入信号,OUT0接LED。
运行程序5秒将计数器的显示在屏幕上,分析读取的计数常数与CLK0信号的关系。
方式0波形图
CODESEGMENTASSUMECS:
CODESTART:
MOVAL,90HMOVD*,283HOUTD*,ALMOVAL,05HMOVD*,282HOUTD*,ALCALLDELAYMOVAL,00HMOVD*,283HOUTD*,ALMOVD*,282HINAL,D*MOVCH,ALMOVCL,4ANDAL,0F0HROLAL,CLMOVDL,ALADDDL,30HMOVAH,02HINT21HANDCH,0FHMOVDL,CHADDDL,30HMOVAH,02HINT21HMOVAH,4CHINT21HDELAYPROCNEARPUSHC*MOVB*,999HFOR1:
MOVC*,0FFFFHFOR2:
LOOPFOR2DECB*JNZFOR1POPC*RETDELAYENDPCODEENDSENDSTART
2.8253方式1测试。
编程使计数器1工作在方式1,CLK1和GATE1信号由消抖电路产生,OUT1接LED,验证CLK1,GATE1,OUT1三者关系。
方式1波形图
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAL,52H
MOVD*,283H
OUTD*,AL
MOVAL,05H
MOVD*,281H
OUTD*,AL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验158259A可编程中断控制器
设计中断过程,连续输出"AREYOUREADY"〞产生中断时,执行中断效劳程序,中断效劳程序是使两个LED灯亮灭3次,间隔一秒。
中断完毕后,继续执行主程序,等待下次中断。
DATASEGMENT
ABCDB'AREYOUREADY"',0DH,0AH,'$'DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVA*,CS
MOVDS,A*
MOVD*,OFFSETZD10
MOVA*,2572H
INT21H
CLI
INAL,21H
ANDAL,0FBH
OUT21H,AL
INAL,0A1H
ANDAL,0FBH
OUT0A1H,AL
STI
MOVC*,20
LOOP1:
PUSHC*
MOVA*,DATA
MOVDS,A*
LEAD*,ABC
MOVAH,9
INT21H
CALLDELAY
POPC*
LOOPLOOP1
MOVD*,21H
INAL,D*
ORAL,4
OUT21H,AL
MOVD*,0A1H
INAL,D*
ORAL,4
OUT0A1H,AL
MOVAH,4CH
INT21H
ZD10PROCNEAR
PUSHA*
PUSHB*
PUSHC*
PUSHD*
MOVC*,3
AGAIN:
PUSHC*
MOVD*,280H
MOVAL,0FH
OUTD*,AL
CALLDELAY
MOVD*,280H
MOVAL,00H
OUTD*,AL
CALLDELAY
POPC*
LOOPAGAIN
POPD*
POPC*
POPB*
POPA*
MOVAL,20H
OUT20H,AL
MOVAL,20H
OUT0A0H,AL
IRET
ZD10ENDP
DELAYPROCNEAR
MOVB*,02FFH
FOR1:
MOVC*,0FFFFH
FOR2:
LOOPFOR2
DECB*
JNZFOR1
RET
DELAYENDP
CODEENDS
ENDSTART
74LS75控制电路
74LS273控制电路
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 程序 中国 石油大学 华东