微机原理实验程序中国石油大学(华东)_第1页
微机原理实验程序中国石油大学(华东)_第2页
微机原理实验程序中国石油大学(华东)_第3页
微机原理实验程序中国石油大学(华东)_第4页
微机原理实验程序中国石油大学(华东)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验3 循环程序设计实验内容:1. 数组X,Y,Z,。X=32,-43,76,95,-1;Y=-78,127,-128,-125,88。计算两数之和,送入数组S。DATA SEGMENTX DB 32,-43,76,95,-1Y DB -78,127,-128,-125,88S DB 5 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX ,DATAMOV DS,AXMOV CX,5MOV SI,0FOR:MOV AL,XSIADD AL,YSIMOV SSI,ALINC SILOOP FORCODE ENDSEND ST

2、ART2. 两个多位十进制数,X=1357902468,Y=5790123467。计算两数之和(BCD码)。DATA SEGMENTX DB 68H,24H,90H,57H,13HY DB 67H,34H,12H,90H,57HS DB 5 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX ,DATAMOV DS,AXMOV CX,5MOV SI,0CLCFOR:MOV AL,XSIADD AL,YSIDAAMOV SSI,ALINC SILOOP FORCODE ENDSEND START实验4 子程序调用变成设计实验

3、内容:用子程序调用方法,现有数组X=32,-43,76,95,-1,-78,127,-128,-125,88编程按递增顺序排序输出。DATA SEGMENTX DB 32,-43,76,95,-1,-78,127,-128,-125,88ENDS SEGMENTCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX ,DATAMOV DS,AXCALL SUB1MOV AH,4CHINT 21HSUB1 PROC NEARMOV CX,9LP1:MOV BX,0MOV DX,CXLP2;MOV AL,XBXCMP AL,XBX+1JLE NEXTXCHG

4、AL,XBX+1NEXT:INC BXDEC DXJNE LP2LOOP LP1RETSUB1 ENDPCODE ENDSEND START实验5 DOS功能调用实验内容:1. 从键盘连续输入五个单个字符,然后再反向输出这5个字符。输入:12345输出:54321CODE SEGMENTASSUME CS:CODESTART:MOV CX,5LP1:MOV AH,01INT 21HPUSH AXLOOP LP1MOV DL,0AHMOV AH,02INT 21HMOV DL,0DHMOV AH,02INT 21HMOV CX,5LP2:POP DXMOV AH,02INT 21HLOOP LP

5、2MOV AH,4CHINT 21HCODE ENDSEND START2. 从键盘输入一串字符“abcde”,然后输出3次。DATA SEGMENTMAX DB 10STR DB 10 DUP(S)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,MAXMOV AH,10INT 21HMOV CX,3LP:LEA DX,STRMOV AH,9INT 21HMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHMOV AH,2INT 21HLOOP LPMOV AH,4CH

6、INT 21HCODE ENDSEND START实验10 简单的输出接口实验实验内容;1. 利用74LS75设计一个接口电路,使4个LED同时亮,同时灭,中间间隔1秒,共循环5次。CODE SEGMENT ASSUME CS:CODESTART:MOV CX,5LP;MOV DX,280HMOV AL,0FHOUT DX,ALCALL DELAYMOV DX,280HMOV AL,0HOUT DX,ALCALL DELAYLOOP LPMOV AH,4CHINT 21HDELAY PROC NEARPUSH CXMOV BX,03FFHFOR1:MOV CX,0FFFFHFOR2;LOOP

7、FOR2DEC BXJNZ FOR1POP CXRET DELAY ENDPCODE ENDSEND START2. 利用74LS75设计一个接口电路,使8个LED循环点亮,中间间隔1秒,共循环3次CODE SEGMENTASSUME CS:CODESTART:MOV CX,3MOV SI,8LP1:MOV DX,280HMOV AL,01HLP2:OUT DX,ALCALL DELAYSHL AL,1DEC SIJNZ LP2LOOP LP1MOV AH,4CHINT 21HDELAY PROC NEARPUSH CXMOV BX,03FFHFOR1:MOV CX,0FFFFHFOR2;LO

8、OP FOR2DEC BXJNZ FOR1POP CXRET DELAY ENDPCODE ENDSEND START实验11 简单的输入接口实验实验内容:1.设计一个接口电路,当开关来回搬动1次后,在屏幕上输出1,再来回搬动1次,输出2,共搬动5次。利用硬件消抖。(D1) CODE SEGMENTASSUME CS:CODESTART:MOV DL,31HMOV CX,5L1:PUSH DXMOV DX,280HIN AL,DXAND AL,01HMOV AH,ALL2:IN AL,DXAND AL,01HCMP AH,ALJZ L2L3:IN AL,DXAND AL,01HCMP AH,A

9、LJNZ L3POP DXMOV AH,02HINT 21HINC DLLOOP L1MOV AH,4CHINT 21HCODE ENDSEND START2.设计一个接口电路,当开关来回搬动1次后,在屏幕上输出1,再来回搬动1次,输出2,共搬动5次。利用软件消抖。(D1). CODE SEGMENTASSUME CS:CODESTART:MOV DL,31HMOV CX,5L1:PUSH DXMOV DX,280HIN AL,DXAND AL,01H MOV AH,AL L2:IN AL,DX AND AL,01H CMP AH,AL JZ L2CALL DELAY L3:IN AL,DX

10、AND AL,01H CMP AH,AL JNZ L3CALL DELAY POP DX MOV AH,02H INT 21H INC DLLOOP L1MOV AH,4CH INT 21HDELAY PROC NEARPUSH CXMOV BX,03FHFOR1:MOV CX,0FHFOR2:LOOP FOR2DEC BXJNZ FOR1POP CXRETDELAY ENDPCODE ENDS END START3. 设计一个接口电路,当开关搬动1次后,在屏幕上输出1,再搬动1次,输出2,共搬动5次。(D4)CODE SEGMENTASSUME CS:CODESTART:MOV DL,31H

11、MOV CX,5L1:PUSH DXMOV DX,284HIN AX,DXAND AX,10H MOV SI,AX L2:IN AX,DX AND AX,10H CMP SI,AX JZ L2 POP DX MOV AH,02H INT 21H INC DLLOOP L1MOV AH,4CH INT 21HCODE ENDS END START实验12 数码管显示实验1. 使2个七段显示管分别显示HP,字符保持5秒钟。CODE SEGMENTASSUME CS:CODESTART:MOV CX,03FFHL1:MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HM

12、OV AL,76H ;HOUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,73H;POUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L1MOV DX,280HMOV AL,00HOUT DX,ALMOV AH,4CHINT 21HDONG PROC NEARPUSH CXPUSH BXMOV BX,0100HFOR1:MOV CX,0100HFOR2:LOOP FOR2DEC BXJNZ FOR1

13、POP BXPOP CXRETDONG ENDPCODE ENDSEND START2. 使2个七段显示管分别显示01,23,45,67,89,每两个字符保持2秒钟。CODE SEGMENTASSUME CS:CODESTART:MOV CX,01FFHL1:MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,3FH ;0OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,06H;1OUT DX,ALMOV DX

14、,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L1MOV CX,01FFHL2:MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,5BH ;2OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,4FH;3OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L2MOV CX,010FHL3:MOV DX,280HMOV AL,00

15、HOUT DX,ALMOV DX,290HMOV AL,66H ;4OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,6DH;5OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L3MOV CX,010FHL4:MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,7DH ;6OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCA

16、LL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,07H;7OUT DX,ALMOV DX,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L4MOV CX,010FHL5:MOV DX,280HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,7FH ;8OUT DX,ALMOV DX,282HMOV AL,02HOUT DX,ALCALL DONGMOV DX,282HMOV AL,00HOUT DX,ALMOV DX,290HMOV AL,6FH;9OUT DX,ALMOV DX

17、,280HMOV AL,01HOUT DX,ALCALL DONGLOOP L5MOV DX,280HMOV AL,00HOUT DX,ALMOV AH,4CHINT 21HDONG PROC NEARPUSH CXPUSH BXMOV BX,0100HFOR1:MOV CX,0100HFOR2:LOOP FOR2DEC BXJNZ FOR1POP BXPOP CXRETDONG ENDPCODE ENDSEND START实验13 可编程并行接口8255A芯片实验实验内容:1. 由8255A方式0的A口输出数据,驱动2个LED,循环点亮5次,每个状态保留1秒。CODE SEGMENTASSU

18、ME CS:CODESTART:MOV AL,80H MOV DX,283H OUT DX,AL MOV CX,5 MOV DX,281H MOV AL,00L1: MOV AL,01 OUT DX,ALCALL DELAY MOV AL,02 OUT DX,ALCALL DELAY LOOP L1 MOV AH,4CH INT 21HDELAY PROC NEAR PUSH CX MOV BX,400FOR1:MOV CX,0FFFFHFOR2:LOOP FOR2 DEC BX JNZ FOR1 POP CXRETDELAY ENDPCODE ENDSEND START2.用8255A方式1

19、,将两位开关量设置的二进制数,由B口选通输入CPU,三秒钟后,由A口选通输出送LED显示,要求通过对状态字IBFB和OBFA#的测试来控制程序运行。STB#和ACK#由消抖电路产生。CODE SEGMENTASSUME CS:CODESTART:MOV AL,10100110B MOV DX,283H OUT DX,ALL1: MOV DX,282H IN AL,DX AND AL,02H JZ L1 MOV DX,281H IN AL,DX CALL DELAY MOV DX,280H OUT DX,ALL2: MOV DX,282H IN AL,DX AND AL,80H JZ L2 JM

20、P L3 LOOP START L3:MOV AL,00 MOV DX,280H OUT DX,AL MOV AH,4CH INT 21HDELAY PROC NEAR PUSH CX MOV BX,3FFHFOR1:MOV CX,0FFFFHFOR2:LOOP FOR2 DEC BX JNZ FOR1 POP CXRETDELAY ENDPCODE ENDSEND START 3.由8255A的A接口输出数据,驱动4个LED,使其顺序显示0-F的二进制状态,每个状态保持1秒钟。CODE SEGMENTASSUME CS:CODESTART:MOV DX,283HMOV AL,80HOUT D

21、X,ALMOV CX,16MOV AL,00HL1:MOV DX,280HOUT DX,ALCALL DELAYINC ALLOOP L1MOV AH,4CHINT 21HDELAY PROC NEARPUSH CXMOV BX,299HFOR1:MOV CX,0FFFFHFOR2:LOOP FOR2DEC BXJNZ FOR1POP CXRETDELAY ENDPCODE ENDSEND START实验14 8253编程测试实验实验内容:8253方式0测试,用消抖电路产生的脉冲作为CLK0输入信号,OUT0接LED。运行程序5秒将计数器的显示在屏幕上,分析读取的计数常数与CLK0信号的关系。

22、 方式0波形图CODE SEGMENTASSUME CS:CODESTART:MOV AL,90HMOV DX,283HOUT DX,ALMOV AL,05HMOV DX,282HOUT DX,ALCALL DELAYMOV AL,00HMOV DX,283HOUT DX,ALMOV DX,282HIN AL,DXMOV CH,ALMOV CL,4AND AL,0F0HROL AL,CLMOV DL,ALADD DL,30HMOV AH,02HINT 21HAND CH,0FHMOV DL,CHADD DL,30HMOV AH,02HINT 21HMOV AH,4CHINT 21HDELAY

23、PROC NEARPUSH CXMOV BX,999HFOR1:MOV CX,0FFFFHFOR2:LOOP FOR2DEC BXJNZ FOR1POP CXRETDELAY ENDPCODE ENDSEND START2.8253方式1测试。编程使计数器1工作在方式1 ,CLK1和GATE1信号由消抖电路产生,OUT1接LED,验证CLK1,GATE1,OUT1三者关系。 方式1波形图CODE SEGMENT ASSUME CS:CODESTART:MOV AL,52H MOV DX,283H OUT DX,AL MOV AL,05H MOV DX,281H OUT DX,AL MOV AH,4CH INT 21HCODE ENDS END START 实验15 8259A可编程中断控制器 设计中断过程,连续输出 “ARE YOU READY?”产生中断时,执行中断服务程序,中断服务程序是使两个LED灯亮灭3次,间隔一秒。中断结束后,继续执行主程序,等待下次中断。DATA SEGMENT ABC DB ARE YOU READY?,0DH,0AH,$

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论