当前位置:
文档之家› 哈工大电子信息工程学院单片机软件实验报告2016_张迎新版
哈工大电子信息工程学院单片机软件实验报告2016_张迎新版
;===============================================
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
ACALL SP1
MOV 30H,A
MOV A,#9FH
ANL A,#0FH
ACALL SP1
MOV 31H,A
SP1:
ADD A,#02H
MOVC A,A+PC
MOV R0,A
RET
TAB:
DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
;===============================================
2.将2040H地址开始的20个字节传送到以0030H开始的目的地址。
实验问答:
3.简述MOVX两组指令,并说明其作用及区别。
MOVX A,Ri将Ri指向的片外8位数据送入A
MOVX A,DPTR将DPTR指向的片外16位数据送入A
MOVX Ri,A将累加器数据送入片外8位地址
MOVX DPTR,A将累加器数据送入片外16位地址
ANL A,#0FH
MOV 31H,A
MOV A,40H
ANL A,#0FH
MOV 32H,A
MOV A,31H
SWAP A
MOV R6,A
MOV A,32H
ORL A,R6
MOV 30H,A
;===============================================
END
:
学号:
;===============================================
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
;===============================================
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV A,#9FH
SWAP A
ANL A,#0FH
;===============================================
; VARIABLES
;===============================================
;===============================================
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV R1,#0B0H
MOV R2,#10H
LP1:
MOV R1,#00H
INC R1
DJNZ R2,LP1
MOV R0,#0B9H
MOV R0,#01H
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV R1,#20H
MOV A,#55H
MOV R0,#90H
LP1:
MOV R0,A
INC R0
DJNZ R1,LP1
MOV R2,#10H
MOV A,#00H
Loop:
jmp Loop
;===============================================
END
:
学号:
班级:
同组人:
指导老师:
报告日期:
软件设计实验5:数据块传送实验
实验目的:
掌握外部扩展RAM中的数据操作。
实验容:
1.对2040H地址开始的100个字节进行赋值,值为#5AH;
ASCLL码是标准信息编码,由7位二进制表示,每个二进制数有唯一对应字符。
BCD码用10位编码来表示十进制数。
两种代码都是二进制码,通过一一对应的关系来实现查询功能。
2.简述MOVC两条指令,并说明其作用及区别。
MOVC A,A+DPTR:以数据指针为基址,A为增量来实现查表功能。
MOVC A,A+PC:以PC为基址,A为增量来实现查表功能。
END
:
学号:
班级:
同组人:
指导老师:
报告日期:
软件设计实验4:二进制转ASCII实验
实验目的:
熟悉ASCII的编码原理,学习其与二进制之间的转换。
实验容:
1.将#9FH转为相应的ASCII;
2.将结果存放到30H、31H地址;
3.查表的方式实现。
实验问答:
1.简述ASCII、BCD码与二进制之间的关系。
2.在B0H-BFH中查找有几个单元存放的容是#00H,把个数放在R7中。
实验问答:
1.如需使用第2组工作寄存器的R7,需如何修改程序?
只需更改起始地址即可,位操作指令RS0,RS1分别置为0,1
2.如需从B0H单元开始,查32个单元的容,需修改程序哪个语句,如何修改?
将数据块长度R1的值修改为#20H,及循环#20H次。
实验程序:
================================================
$NOMOD=============================================
; DEFINITIONS
;===============================================
;===============================================
;===============================================
; VARIABLES
;===============================================
实验程序:
================================================
$NOMOD51
$INCLUDE (80C52.MCU)
;===============================================
; DEFINITIONS
;===============================================
; RESET and INTERRUPT VECTORS
;===============================================
; Reset Vector
org 0000h
jmp Start
;===============================================
MOV R0,#0BBH
MOV R0,#01H
MOV R7,#00H
MOV R1,#0B0H
MOV R2,#10H
LP2:CJNE R1,#00H,L3
INC R7
L3:INC R1
DJNZ R2,LP2
Loop:
jmp Loop
;===============================================
只需将32H中的低位先交换后赋给R6,然后把31H的高位与之做或运算即可。
实验程序:
================================================
$NOMOD51
$INCLUDE (80C52.MCU)
;===============================================
;===============================================
; CODE SEGMENT
;===============================================
org 0100h
Start:
MOV 40H,#8AH
MOV A,40H
SWAP A
;===============================================
; VARIABLES
;===============================================
;===============================================
MOV R0,#90H
LP2:
MOV R0,A
INC R0
DJNZ R2,LP2
Loop:
jmp Loop
;===============================================