微机原理实验程序中国石油大学华东.docx

上传人:b****7 文档编号:11054791 上传时间:2023-02-24 格式:DOCX 页数:25 大小:29.79KB
下载 相关 举报
微机原理实验程序中国石油大学华东.docx_第1页
第1页 / 共25页
微机原理实验程序中国石油大学华东.docx_第2页
第2页 / 共25页
微机原理实验程序中国石油大学华东.docx_第3页
第3页 / 共25页
微机原理实验程序中国石油大学华东.docx_第4页
第4页 / 共25页
微机原理实验程序中国石油大学华东.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

微机原理实验程序中国石油大学华东.docx

《微机原理实验程序中国石油大学华东.docx》由会员分享,可在线阅读,更多相关《微机原理实验程序中国石油大学华东.docx(25页珍藏版)》请在冰豆网上搜索。

微机原理实验程序中国石油大学华东.docx

微机原理实验程序中国石油大学华东

实验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控制电路

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1