哈工大单片机实验报告

2026/1/27 17:20:02

= ((R2)×28+(R3))×((R6)×28+(R7))

= (R2)×(R6)×216+(R2)×(R7)+(R3)×(R6)×28+(R3)*(R7)

将乘数与被乘数高低字节拆开分别相乘,然后再将每个高字节因子向前移动8位进行调整,进行加权求和。利用ADDC语句可实现带进位的加法运算。得到的最终结果存入R4、R5、R6、R7寄存器中。

五、实验结果及分析

寄存器R2、R3、R6、R7分别输入01、10、11、10,运行程序,即进行0110H×1110H的运算,得到结果为00122100H存放在R4、R5、R6、R7寄存器中,故R4、R6中的内容是00H和21H。

六、实验源程序

;无符号双字节快速乘法子程序

ORG 0970H

MAIN: MOV R2, #00H

MOV R3, #02H MOV R6, #00H MOV R7, #05H MOV A, R3 MOV B, R7 MUL AB XCH A, R7 MOV R5, B MOV B, R2 MUL AB ADD A, R5 MOV R4, A CLR A

ADDC A, B MOV R5, A MOV A, R6 MOV B, R3 MUL AB ADD A, R4 XCH A, R6

-9-

XCH A, B ADDC A, R5 MOV R5, A MOV F0, C MOV A, R2 MUL AB ADD A, R5 MOV R5, A CLR A

MOV ACC.0, C

MOV C, F0 ADDC A, B MOV R4, A SJMP $ END

实验八 多分支程序

一、实验目的

掌握汇编语言的编程。

二、实验内容

编写程序,根据送入的数据转移运行。

三、程序框图

四、实验过程

实验中利用散转指令JMP @A+DPTR实现程序的多分支跳转,这里A为变址寄存器,DPTR为基址寄存器。跳转到不同分支的运行结果由LED进行显示,每个分支对应的数码管上显示不同的数字。显示数字由数字七段码送至I/O口显示。在显示程序中利用循环左移加延时子程序调用,实现数字循环显示的效果。

编程中需要注意的是,A需乘以2即左移一位再作为变址寄存器,这是程序中由于分支跳转语句为2个字节所致。

五、实验结果及分析

实验中可以看到选择不同的数字进入不同分支,LED管上会出现不同数字的循环左移显示。

问题回答:如需将循环速度减慢,只要将延时子程序初值变大,或增加循环层数,或者再增加一段循环语句即可,如可进行以下修改:

改为DELAY:

-10-

MOV R3,#0FFHMOV R2,#0FFH

DL1:MOV R4,#0FFHDL1:MOV R3,#0FFH DL2:NOPDL2:MOV R4,#0FFH NOPDL3:NOP DJNZ R4,DL2NOP DJNZ R3,DL1DJNZ R4,DL3 RETDJNZ R3,DL2

ENDDJNZ R2,DL1

RET

END

若将0字循环改为4字循环只需同时将0字七段码0C0H改为4字七段码99H即可。

六、实验源程序

ORG 0000H LJMP MAIN ORG 0DA0H LJMP SOX0 ORG 0A10H

MAIN: MOV 20H, #03H ;每次实验,这里可以改为0、1、2和3 MOV A, 20H ;取预置数据 MOV DPTR, #LOOP ;散转表起始地址 RL A JMP @A+DPTR LOOP:AJMPLOOP1 AJMPLOOP2 AJMPLOOP3 AJMPLOOP4

LOOP1: MOV 21H, #0C0H ;\字的7段码 SJMPSOX0

LOOP2:MOV 21H, #0F9H SJMPSOX0

LOOP3: MOV 21H, #0A4H SJMPSOX0

LOOP4: MOV 21H, #0B0H SOX0:

;\字的7段码 ;循环显示程序 ;取来7段码 ;显示器段地址 ;显示器位地址 ;将7段码输出 ;\字的7段码 ;\字的7段码 ;A 乘以 2 ;散转指令

MOV A, 21H MOV R0, #0DCH MOV R1, #0DDH MOVX @R0, A

-11-

MOV A, #01H SOX1:

MOVX @R1, A MOV R2, #20H

;最\右\边的位发光

;准备延时

LCALL DELAY ;调用延时子程序 RL A SJMP SOX1 DELAY:

MOV R3,#0FFH DL1:MOV R4,#0FFH DL2:NOP NOP DJNZ R4,DL2 DJNZ R3,DL1 RET

END

;左移显示的位 ;无穷循环

实验十 电脑时钟(定时器、中断器综合实验)

一、实验目的

熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。

二、实验内容

编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。

三、程序框图

-12-


哈工大单片机实验报告.doc 将本文的Word文档下载到电脑
搜索更多关于: 哈工大单片机实验报告 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219