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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理实验1.docx

1、微机原理实验1实验一 两个多位十进制数相减实验一. 实验要求将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DATAI和DATA2为首的5个内存单元中(低位在前),结果送回DATAI处。二、实验目的1学习数据传送和算术运算指令的用法。2熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。DATA SEGMENTDATA1 DB 33H,39H,31H,37H,38H ;第一个数据(作为被减数)DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为减数)MES1 DB -,$MES2 DB =,$DATA ENDSSTACK SEGMEN

2、T ;堆栈段STA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1 MOV BX,05 CALL DISPL ;显示被减数 MOV AH,09H LEA DX,MES1 INT 21H MOV SI,OFFSET DATA2 MOV BX,05 ;显示减数 C

3、ALL DISPL MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2 CALL SUBA ;减法运算 MOV SI,OFFSET DATA1 MOV BX,05 ;显示结果 CALL DISPL MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H INT 21H MOV AX,4C00H INT 21HDISPL PROC NEAR ;显示子功能DSI: MOV AH,02 MOV DL,SI+BX-1 ;显示字符串中一字符 INT 2

4、1H DEC BX ;修改偏移量 JNZ DSI RETDISPL ENDPSUBA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05SU1: SUB BYTE PTRSI+BX-1,30H SUB BYTE PTRDI+BX-1,30H DEC BX ;将ASCII 码表示的数字串 JNZ SU1 ;转化为十六进制的数字串 MOV SI,DX MOV DI,BP MOV CX,05 ;包括进位,共5位 CLC ;清进单位SU2: MOV AL,SI MOV BL,DI SBB AL,BL ;带进位相减 AAS ;非组合BCD码的减法调整 MOV SI,AL ;结

5、果送被减数区 INC SI INC DI ;指向下一位 LOOP SU2 ;循环 MOV SI,DX MOV DI,BP MOV BX,05SU3: ADD BYTE PTR SI+BX-1,30H ADD BYTE PTR DI+BX-1,30H DEC BX ;十六进制的数字串转化ASCII码表示的数字串 JNZ SU3 RET SUBA ENDPCODE ENDS END START实验二 两个数相乘的实验一 实验要求实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,算式结果在屏幕上显示出来。二 实验目的掌握乘法指令和循环指令的用法。DATA SEGMENTDATA1 D

6、B 32H,39H,30H,35H,34HDATA2 DB 34HMES1 DB *,$MES2 DB =,$RESULT DB 6 DUP (00H)DATA ENDSSTACK SEGMENTSTA DB 20 DUP (?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV SP,TOP LEA SI,DATA1 MOV BX,05H L1: MOV AH,02H MOV

7、DL,SI+BX-1 INT 21H DEC BX JNZ L1 MOV AH,09H LEA DX,MES1 INT 21H LEA SI,DATA2 MOV AH,02H MOV DL,SI INT 21H MOV AH,09H LEA DX,MES2 INT 21H MOV SI,OFFSET DATA2 ;显示算式 MOV BL,SI ;乘数DATA2BL AND BL,00001111B ;屏蔽高4位,ASCII码转化为十六进制数 MOV SI,OFFSET DATA1 MOV DI,OFFSET RESULT MOV CX,05LOOP1: MOV AL,SI AND AL,000

8、01111B ;取被乘数DATA1,ASCII变十六进制数 INC SI ;指向被乘数1的下一字符单元 MUL BL ;相乘 AAM ;AAM调整 ADD AL,DI ;结果低位与前次计算的进位相加 AAA ;AAA调整 MOV DI,AL INC DI ;结果送存到下一单元 MOV DI,AH LOOP LOOP1 ;计算结果高位进位送存 MOV CX,06 MOV SI,DI DISPL: MOV AH,02 MOV DL,SI ADD DL,30H INT 21H DEC SI LOOP DISPL ;显示结果 MOV AX,4C00H INT 21H ;结束CODE ENDS END

9、START实验三 BCD码相乘的实验一 实验要求实现BCD码的乘法,要求被乘数和乘数以组合的BCD码形式存放,各占一个内存单元,乘积存入在另外两个内存单元中,由于没有组合的BCD码乘法指令,程序中采用将乘数1作为计算器,累加另一个乘数的方法得到计算结果。二 实验目的掌握用组合的BCD码表示数据,并熟悉怎样实现组合BCD码乘法运算。DATA SEGMENTFIRST DB 99HSECOND DB 25HTHIRD DB 2 DUP(?)MES1 DB *,$MES2 DB =,$DATA ENDSSTACK SEGMENT PARA STACK STACKSTAPN DB 100 DUP(?)

10、TOP EQU LENGTH STAPNSTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV BL,FIRST ;被乘数送BL MOV CL,SECOND ;乘数送CL MOV DX,0 ;部分积清0 MOV AL,BLAGAIN: OR AL,AL JZ DONE ;被乘数减到0则转结果显示 MOV AL,DL ADD AL,CL DAA ;乘数于部分积低位相加后调整 MOV DL,AL

11、MOV AL,DH ADC AL,0 DAA ;往部分积高位送进位后调整 MOV DH,AL MOV AL,BL DEC AL DAS ;组合BCD码减法调整 MOV BL,AL JMP AGAINDONE: LEA BX,THIRD MOV BX,DX LEA SI,FIRST CALL DIS XOR AX,AX MOV AH,09H LEA DX,MES1 ;* INT 21H LEA SI,SECOND CALL DIS XOR AX,AX LEA DX,MES2 ;= MOV AH,09H INT 21H LEA SI,THIRD INC SI CALL DIS DEC SI CAL

12、L DIS MOV AX,4C00H ;返回DOS INT 21HDIS PROC NEAR ;显示子程序 MOV AL,SI MOV CL,04H SHR AL,CL ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,SI AND AL,0FH ADD AL,30H MOV DL,AL MOV AH,02H INT 21H RET DIS ENDPCODE ENDS END START实验一 双色灯实验一、实验要求编写程序,以8255为输出口,控制四个双色灯按要求发光。二、实验目的1学习单板方式下扩展简单I/O接口的方法以双色灯的使用。2进一步学习

13、微处理器的编程技术。三、实验电路连线8255的CS片选接至适配板上138译码处的200H207H插孔。四、实验说明1、 因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态,东西绿灯通车,南北灯灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。2、 双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮

14、;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。;实验一 双色灯实验D1 EQU 10HD2 EQU 200HDATA SEGMENTPB DB ?DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH CS POP DS MOV DX,203H ;设置为全输出 MOV AL,80H OUT DX,AL MOV DX,200H MOV AL,0ffh OUT DX,AL ;清LED MOV

15、DX,200H MOV AL,0F0H OUT DX,AL ;全红 MOV BX,7fH CALL DLYBG: MOV AL,01011010B ;南北绿,东西红 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03HXH1: AND AL,0F5H ;绿灭黄亮 OUT DX,AL MOV BX,D1 CALL DLY OR AL,0aH ;绿亮 OUT DX,AL MOV BX,D1 CALL DLY LOOP XH1 OR AL,0a0H ;南北黄 OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY MOV AL,101

16、00101B ;南北红,东西绿 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03XH2: AND AL,0FaH OUT DX,AL MOV BX,D1 CALL DLY OR AL,05H OUT DX,AL MOV BX,D1 CALL DLY LOOP XH2 OR AL,50H OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY JMP BGDLY PROC NEAR PUSH CXDDD: MOV CX,2ffHCCC: LOOP CCC DEC BX CMP BX,0 JNE DDD POP CX RET DL

17、Y ENDP CODE ENDSEND START实验二 开关状态显示实验一、实验要求编写程序,设定8255的PA口为开关量输入,PB口为开关量输出,要求能随时将PA口的开关状态通过PB口的发光二极管显示出来。二、实验目的学习使用8255各个口的不同工作方式三、实验电路连接将K1K8用连接至8255的PB0PB7,将DL1DL8用连线连至8255的PC0PC7,8255CS连至译码处的200207插孔。四、实验说明本实验要求8255工作方式0,PB口设置为输入,PC口设置为输出,输入量为开关量,通过8255可实时显示在LED灯上。按下HALT或RST键则返回监控。;实验二 开关状态显示实验ST

18、ACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART: MOV DX,203H ;设置为b口输入,c口输出 MOV AL,92H OUT DX,AL BG: MOV DX,201H ;将b口状态从c口输出 IN AL,DX MOV DX,202h OUT DX,AL JMP BG CODE ENDSEND START实验五 A/D转换实验一、实验要求编程用查询方式采样电位器输入电压,并将采样到的结果实时地通过8279显示在数码管上。(只须显示一位

19、即可。用0F表示0+5V电压)。二实验目的1掌握A/D芯片AD0809的转换性能及编程方法。2学习A/D芯片与其他芯片(如8279)接口的方法,初步建立系统的概念。三实验电路及连线CS79接译码处210217这个插孔。A/D的CS插译码处20820F这个插孔,0809的IN0接至电位器W1的中心抽头插孔。注意:电位器W1两边的两个插孔已经分别接好电源+5V和地,请不要再接,以防接错,出现短路。四、实验说明本实验中所用A/D转换芯片为逐次逼近型,精度为8位每转换一次约100微钞,所以程序若为查询式,则在启动后要加适应延时。另外,0809芯片提供转换完成信号(EOC),利用此信号可实现中断采集。有

20、兴趣者可自行编制程序。Z8279 EQU 212HD8279 EQU 210HLEDMOD EQU 00 ;左边输入,八位显示外部译码八位显示LEDFEQ EQU 38H ;扫描频率CODE SEGMENTASSUME CS:CODE,DS:codeSTART: push cs pop ds call delay MOV DX,Z8279 MOV AL,LEDMOD OUT DX,AL MOV AL,LEDFEQ OUT DX,AL MOV CX,06HXZ: MOV DX,D8279 MOV AL,00H OUT DX,AL LOOP XZ MOV DX,D8279 MOV AL,5eH O

21、UT DX,AL MOV DX,D8279 MOV AL,77H OUT DX,AL ;以上为写(AD ) NOPbg: mov dx,208h mov al,0 out dx,al call delay in al,dx mov cl,04h ror al,cl and al,0fh push ax mov dx,z8279 mov al,81h out dx,al pop ax LEA BX,LED XLAT MOV DX,D8279 ;将AL中内容写到数码管上 OUT DX,AL call delay jmp bg LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,0

22、7H,7FH,6FH,77H,7CH,39H DB 5EH,79H,71Hdelay proc near push cx mov cx,01f00h loop $ pop cx ret delay endp CODE ENDSEND START 实验六 D/A转换实验一、实验要求编写程序,使D/A转换模块循环输出三角波和锯齿波。二、实验目的1掌握DAC0832芯片的性能、使用方法及对应硬件电路。2了解D/A转换的基本原理。三、实验电路连线DAC0832的片选CS孔接译码处208-20F插孔(注:0832旁的短路帽应下插,做51实验时应上插)。四、实验说明D/A转换是量转化成模拟量的过程,本实验

23、输出为模拟电压信号,本次实验生成的波形较为简单,有兴趣者可试编程序生成各种波形,如方波,正弦波等,也可与键盘显示模块结合起来,构成一个简单的波形发生器,通过键盘输入各种参数,如频率,振幅(小于+5V),方波的占空比等。CODE SEGMENTASSUME CS:CODE,DS:code,SS:codeSTART: push cs pop dsBG: NOP MOV DX,208H ;锯齿波 MOV AL,00H MOV CX,07ffHBB: OUT DX,AL ADD AL,01 CMP AL,00H JNZ BB LOOP BB NOP MOV AL,00H MOV CX,07ffHEE:

24、 OUT DX,AL ADD AL,01H CMP AL,0FFH JNE EEFF: OUT DX,AL SUB AL,01H CMP AL,00H JNE FF LOOP EE JMP BG CODE ENDSEND START 实验九 步进电机驱动实验一、实验要求利用8255的PC口PC-PC3轮流输出脉冲序列,小键盘控制步进电机的转速和转动方向。二、实验目的1、 了解控制步进电机的基本原理。2、 掌握控制步进电机转动的编程的方法。三、实验连线 用硬导线将8255选信号CS接至200-207,PC0-PC3接至SMA-SMD。将8279的片选信号CS接至208-20F。在运行过程中,可按

25、动小键盘的“0-9”数码键,控制步进电机的转速,按“+或-”键控制步进电机的方向,按“REG”键退出。 C8279 EQU 20AH D8279 EQU 208H C8255 EQU 203H P8255C EQU 202HCODE SEGMENT ASSUME CS:CODE,DS:CODE START:PUSH CS POP DS INI:MOV DX,C8255 MOV AL,90H OUT DX,AL ;8255初始化 MOV DX,C8279 MOV AL,00H OUT DX,AL MOV AL,2AH OUT DX,AL ;8279初始化 MOV AL,0D1H OUT DX,A

26、L ;关显示 WAIT1:IN AL,DX MOV AH,AL AND AL,80H JNZ WAIT1 ;FIFO正在清除期间则跳转等待 MOV AL,AH AND AL,0FH CMP AL,00H JE WAIT1 ;无键按下则跳转等待 LEA BX,STEP RUN:CALL CHKKEY CALL DISPLAY MOV CX,08H ;步进电机控制 LOOP3:MOV DX,P8255C MOV AL,SI OUT DX,AL INC SI CALL DELAY LOOP LOOP3 JMP RUN CHKKEY PROC NEAR RDKEY:MOV DX,C8279 IN AL

27、,DX MOV AH,AL AND AL,80H CMP AL,80H JE RDKEY MOV AL,AH AND AL,0FH CMP AL,00H JE RTN MOV AL,40H OUT DX,AL ;读FIFO/传感器RAM命令 MOV DX,D8279 IN AL,DX CHK:CMP AL,38H JE QUIT ;RST 退出 CMP AL,30H ;键值大于30H,为方向控制键 JNC DIRE MOV DELAYTIME,AL JMP RTN DIRE:CMP AL,32H ;HERE 顺时针 JNE NEXT MOV DIRDSP,40H LEA BX,STEP JMP

28、 RTN NEXT:CMP AL,33H ;EXEC 逆时针 JNE RTN MOV DIRDSP,46H LEA BX,STEP ADD BX,08H ;逆时针控制表地址 RTN: MOV SI,BX RETCHKKEY ENDP QUIT:MOV DX,C8279 MOV AL,0D2H OUT DX,AL jmp $DELAY PROC NEAR PUSH CX ;判断键值,获得相应延时循环值 MOV AL,20H ;9? SUB AL,DELAYTIME JNZ L1 MOV CX,04H L1: MOV AL,08H ;8? SUB AL,DELAYTIME JNZ L2 MOV CX,05H L2: MOV AL,00H ;7? SUB AL,DELAYTIME JNZ L3 L3: MOV AL,21H ;6? SUB AL,DELAYTIME MOV CX,07H JNZ L4 MOV CX,08H L4: MOV AL,09H ;5? SUB AL,DELAYTIME JNZ L5 MOV CX,09H L5: MOV AL,01H ;4? SUB AL,DELAYTIME JNZ L6 MO

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

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