ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:610.02KB ,
资源ID:6385074      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6385074.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机实验报告.docx

1、微机实验报告实验一 多位十进制数相加1、实验目的学习数据传送和算术运算指令的用法。2、实验内容将两个多位十进制数28056、47193相加,并显示加数、被加数、和。要求两个加数均以ASCII码形式各自顺序存放在DATA1和DATA2内存单元中,结果送回DATA1处(低位在前,高位在后)。3、实验程序SHOW MACRO B MOV DL, B MOV AH, 02H INT 21H ENDMDATA SEGMENTDATA1 DB 33H, 39H, 31H, 37H, 34HDATA2 DB 36H, 35H, 30H, 38H, 32HDATA3 DB _, 0DH, 0AH, $DATA

2、 ENDSSTACK SEGMENTSTA DB 20 DUP (?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATASTART: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV AX, TOP MOV SP, AX MOV SI, OFFSET DATA2 MOV BX, 05 SHOW 20H CALL DISPL SHOW 0DH SHOW 0AH MOV SI, OFFSET DATA1 MOV BX, 05 S

3、HOW 2BH CALL DISPL SHOW 0DH SHOW 0AH MOV CL, 7S1: SHOW 2DH LOOP S1 SHOW 0DH SHOW 0AH MOV SI, OFFSET DATA1 MOV DI, OFFSET DATA2 CALL ADDA MOV SI, OFFSET DATA1 MOV BX, 5 SHOW 20H CALL DISPL MOV AX, 4C00H INT 21DISPL PROC NEARDS1: SHOW SI+BX-1 DEC BX JNZ DS1 RETDISPL ENDPADDA PROC NEAR MOV DX, SI MOV B

4、P, DI MOV BX, 05AD1: SUB BYTE PTR SI+BX-1, 30H SUB BYTE PTR DI+BX-1, 30H DEC BX JNZ AD1 MOV SI, DX MOV DI, BP MOV CX, 05 CLCAD2: MOV AL, SI MOV BL, DI ADC AL, BL AAA MOV SI, AL INC SI INC DI LOOP AD2 MOV SI, DX MOV DI, BP MOV BX, 05AD3: ADD BYTE PTR SI+BX-1, 30H ADD BYTE PTR DI+BX-1, 30H DEC BX JNZ

5、AD3 RETADDA ENDPCODE ENDSEND START 四、实验结果五、思考题不改变数据段DATA1和DATA2的内容,如何将加数和被加数分别由28056和47193变成65082和39174,并且相加。修改程序为:DISPL PROC NEARDS1: SHOW SI+BX INC BX CMP BX, 5 JNE DS1 RETDISPL ENDPMOV CX, 05 CLC add si, 4 add di, 4AD2: MOV AL, SI MOV BL, DI ADC AL, BL AAA MOV SI, AL dec si dec di LOOP AD2实验二 统计数

6、据个数1、实验目的掌握将多位十六进制数转换成多位十进制数ASCII码的方法。2、实验内容统计内存数组中大于0和小于0的元素个数,并将统计结果分别存放在LRESULT和HRESULT变量中,并显示个数。3、实验程序DATA SEGMENTARY DB 1,3,-1,2,6,-9,-5,7,8,1,3,8,-6,8,-9,-7,2,4,-3,-3 DB -4,7,7,8,3,1,3,6,8,5,5,6,4,5,7,-4,2,4,5,-7,5,4 DB 2,5,7,8,8,8,7,6,-5,4,3,2,1,-1,2,2,3,-4,5,6,7 N=$-ARYLRESULT DW 0HRESULT DW

7、 0TJJG DB STATISTICS RESULT: , 0DH, 0AH, $DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AXSHOW MACRO B PUSH DX PUSH AX MOV DX,B MOV AH,02H INT 21H POP AX POP DX ENDM XOR CX,CX MOV CX,N LEA SI,ARYLOP: MOV AL,SI CMP AL,0 JNS PLUS INC LRESULT JMP CONTPLUS: INC HRESULTC

8、ONT: INC SI LOOP LOP LEA DX,TJJG MOV AH,09H INT 21H SHOW + MOV AX,HRESULT CALL DISPL SHOW 0DH SHOW 0AH SHOW - MOV AX,LRESULT CALL DISPL MOV AX,4C00H INT 21HDISPL PROC PUSH DX PUSH AX MOV CX,10 MOV DX,00H MOV BX,00H DIV CX MOV BX,DX ADD AL,30HDISPL1: MOV DL,AL MOV AH,02H INT 21H MOV DL,BL ADD DL,30H

9、MOV AH,02H INT 21H POP AX POP DX RETDISPL ENDPCODE ENDS END START四、实验结果五、思考题试分析程序中语句“MOV CX,N”执行后,赋给CX寄存器的值是多少?答:CX中的值是3FH。实验三 十字路口红绿灯闪烁试验1、实验目的通过对红、绿、黄灯的控制,熟练掌握8255A接口芯片的编程方法。2、实验内容对8255A接口芯片进行编程,使红、黄、绿发光二极管按照十字路口交通灯的形式点亮或熄灭。3、线路连接发光二极管共8个,其中两组绿、黄、红灯用6个,L2、L3、L4为一组,L5、L6、L7为一组:实验台连接如图43所示。高电平“1”时,点

10、亮。四、编程提示(1)红、黄、绿灯变化规律设有一个十字路口,两组灯分别代表东西和南北两个方向,其红黄绿灯变化规律为:两个路口红灯全亮;南北路口绿灯亮,东西路口红灯亮:南北路口绿灯灭,东西路口红灯亮;两个路口黄灯闪烁;两个路口红灯全亮;东西路口绿灯亮,南北路口红灯亮;东西路口绿灯灭,南北路口红灯亮;两个路口黄灯闪烁;转向循环执行。(2)设置8255A方式控制字设置8255A的端口C工作在方式0,为输出。D0、D1控制绿灯,D2、D3控制黄灯,D4、D5控制红灯。需要点亮哪一位指示灯时,8255A相应端口对应位就输出“1”。五、实验程序DATA SEGMENTIOPORT EQU 0D88OH-2

11、80HIO8255C EQU IPORT+282HIO8255T EQU IPORT+283HPB DB ?MESS DB ENTER ANY KEY CAN EXIT TO DOS!, 0DH, 0AH, $DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP (?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACKSTART: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AH, 09H MOV DX, OFFSE

12、T MESS INT 21H MOV DX, IO8255T MOV AL, 81H OUT DX, AL MOV DX, IO8255C IN AL, DX MOV PB, AL MOV DX, IO8255T MOV AL, 80H OUT DX, AL MOV DX, IO8255C MOV AL, PB OR AL, 0CH OUT DX, AL MOV AL, 30H OUT DX, AL CALL DELAY10LLL: MOV DX, IO8255C MOV AL, 12H OUT DX, AL CALL DELAY1 CALL DELAY1 MOV AL, 18H OUT DX

13、, AL MOV CX, 0004HTTT: MOV AL, C3H OUT DX, AL PUSH CX MOV CX, 80HLOP1: CALL DELAY1 LOOP LOP1 MOV AL, 3CH OUT DX, AL MOV CX, 80HLOP2: CALL DELAU1 LOOP LOP2 POP CX LOOP TTT MOV AL, FFH OUT DX, AL CALL DELAY2 MOV AL, C3H OUT DX, AL CALL DELAY1 CALL DELAY1 MOV AL, 00H OUT DX, AL MOV CX, 0007HGGG: MOV AL

14、, 99H OUT DX, AL PUSH CX MOV CX, 80HLOP3: CALL DELAY2 LOOP LOP3 MOV AL, 66H OUT DX, AL MOV CX, 80HLOP4: CALL DELAY2 LOOP LOP4 POP CX LOOP GGG MOV AL, FFH OUT DX, AL CALL DELAY2 MOV AH, 06H MOV DL, 0FFH INT 21H JNZ PPP JMP LLLPPP: MOV AX, 4C00H INT 21HDELAY1 PROC NEAR PUSH CX MOV CX, 0FFFFHCCC: LOOP

15、CCC POP CX RETDELAY1 ENDPDELAY3 PROC NEAR PUSH AX PUSH CX MOV CX, 0F00HUUU: CALL DELAY1 LOOP UUU POP CX POP AX RETDELAY3 ENDPCODE ENDS END START六、实验结果7、思考题程序中红、绿、黄灯点亮和熄灭的延时时间是如何设定的?答:CALL指令调用子程序DELAY10,DELAY10的功能是通过执行循环执行压入堆栈和弹出堆栈来实现延时,改变循环次数即CX的设定值即可改变延时时间。实验四、直流电机测速实验一、实验目的(1)学握8254的作原理和偏程方法;(2)了解

16、光电开关,掌握用光电传感器测量电机转速的方法。二、实验内容光电测速的基本电路由光电传感器、计数器/定时器组成。被测电机主轴上固定一个圆盘,圆盘的边缘上有小孔。传感器的红外发射端和接收端在圆盘的两侧,电机帶动圆盘转到有孔的位置时,红外光通过,接收管导通,输出低电平。红外光被挡住时,接收截止,输出高电平。用计数器/定时器记录在一定时间内传感器发出的脉冲个数,就可以计算出电机的转速。三、线路连接线路连接如图4.5所示,3254计数器/定时器0和2作为定时器,确定测速时间,定时器0的CLK0连1MHz脉冲频率,OUT0作为定时器2的输入,与CLK2相连,输出OUT2与8255的PA0端相连。GATE0

17、利GATE2均接+5V,8254计数器/定时器1作为计数器,输入CLK1与直流电机计数端连接, GATE1与8255的PC0相连。电机DJ端与+5V0V模拟开关SW1相连。4、编程提示8254计数器/定时器1作为计数器,记录脉冲个数,计数器/定时器0和2作为定时器,组成1060秒定时器,测量脉冲个数,算出电机每分钟的转速并显示在屏幕上。8255的PA0根据OUT2的开始和结束时间,通过PC0向8254计数器/定时器1发出开始和停止计数信号。五、实验程序DATASEGMENTIOPORT EQU 0D880H-0280HIO8255K EQU IOPORT+283HIO8255A EQU IOP

18、ORT+280HIO8255C EQU IOPORT+282HIO8254K EQU IOPORT+28BHIO82542 EQU IOPORT+28AHIO82541 EQU IOPORT+289HIO82540 EQU IOPORT+288HMESS DB STRIKEANYKEY,RETURNTODOS!,0AH,0DH,$COU DB 0COU1 DB 0COUNT1 DB 0COUNT2 DB 0COUNT3 DB 0COUNT4 DB 0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX

19、,OFFSETMESSMOV AH,09HINT 21HMOV DX,IO8254KMOV AL,36HOUT DX,ALMOV DX,IO82540MOV AX,50000OUT DX,ALNOPNOPMOV AL,AHOUT DX,ALMOV DX,IO8255KMOV AL,90HOUT DX,ALMOV DX,IO8255CMOV AL,00OUT DX,ALLL: MOV AH,01HINT 16HJNZ QUIT1MOV DX,IO8254KMOV AL,70HOUT DX,ALMOV DX,IO82541MOV AL,0FFHOUT DX,ALNOPNOPOUT DX,ALMOV

20、 DX,IO8254KMOV AL,90HOUT DX,ALMOV DX,IO82542MOV AL,100OUT DX,ALMOV DX,IO8255CMOV AL,01HOUT DX,ALJMP A0QUIT1: JMP QUITA0: MOV DX,IO8255AA1: IN AL,DXAND AL,01HJZ A1MOV DX,IO8255CMOV AL,00HOUT DX,ALMOV DX,IO8254KMOV AL,70HOUT DX,ALMOV DX,IO82541IN AL,DXMOV BL,ALIN AL,DXMOV BH,ALMOV AX,0FFFFHSUB AX,BXCA

21、LL DISPMOV DL,0DHMOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HJMP LLDISPPROCNEARMOV DX,0000HMOV CX,03E8HDIV CXMOV COUNT1,ALMOV AX,DXMOV CL,64HDIV CLMOV COUNT2,ALMOV AL,AHMOV AH,00HMOV CL,10DIV CLMOV COUNT3,ALMOV COUNT4,AHMOV AL,COUNT1CALL DISP1MOV AL,COUNT2CALL DISP1MOV AL,COUNT3CALL DISP1MOV AL,COUNT4CALL DISP1RETDISPENDPDISP1PROCNEARAND AL,0FHCMP AL,09HJLE NUMADD AL,07HNUM: ADD AL,30HMOV DL,ALMOV AH,02INT 21HRETDISP1ENDPQUIT: MOV AH,4CHINT 21HCODE ENDSEND START 六、实验结果七、思考题关闭电机后,为什么8254计数不为零?答:由于之前计数值即电机转速已经存储在锁存器中,关闭电机后,程序还是将之前的数值显示在屏幕上,所以不为零。

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

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