微机与单片机实验实验二福州大学版
实验二 8051单片机的数据传送实验
一.实验内容与要求
项目内容:利用程序在ROM中设置40个固定数值在41~80的BCD码数据,程序运行时,把该数据块读到片内ROM的20H~47H区间,然后把该数据块变换为BIN码(二进制制)存于48H ~6FH区间,再把BIN数据变换为ASCII码存于片外RAM 0100H ~ 013FH区间。
要求:传送ASCII码数据时, BCD 码变换BIN 码用子程序。 BIN码变换ASCII 码用子程序。
(1) 程序
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP,#07H
MOV R1,#20H
MOV DPTR,#1000H
ONE: CLR A
MOVC A,@A+DPTR
MOV @R1,A
INC DPTR
INC R1
CJNE R1,#48H, ONE
MOV R0,#20H
TWO: LCALL BCD_TO_BIN
INC R0
INC R1
CJNE R1,#70H,TWO
MOV DPTR,#0100H
THREE: LCALL BIN_TO_ASCII
MOVX @DPTR,A
INC DPTR
INC R0
CJNE R0,#70H,THREE
ORG 0800H
BCD_TO_BIN:
MOV A, #0F0H
ANL A ,@R0
RR A
MOV B ,A
RR A
RR A
ADD A ,B
MOV B ,A
MOV A ,#0FH
ANL A ,@R0
ADD A ,B
MOV @R1,A
RET
BIN_TO_ASCII:
MOV A,@R0
ADD A,#30H
RET
TAB: DB 41H,42H,43H,44H,45H,46H,47H,48H,49H,50H
DB 51H,52H,53H,54H,55H,56H,57H,58H,59H,60H
DB 61H,62H,63H,64H,65H,66H,67H,68H,69H,70H
DB 71H,72H,73H,74H,75H,76H,77H,78H,79H,80H
(2) 预期结果
在片内RAM从20H~47H的区间内分别存着41~80,在片内RAM从48H~6FH 的区间内分别存着29H~50H,在片外RAM从 0100H ~ 013FH区间分别存着29H~50H的ASCII码。
(3) 运行结果
片内RAM的20H~47H,48H~6FH区间
片外RAM 0100H ~ 013FH区间
(5)总结
编程过程中对一些常用命令还是不熟悉,经常出现一些小错误,对课本有很大的依赖性。
调试过程中分为三部分调试,各个部分都调试好了之后,在适当位置设置断点运行程序,结果和预期的情况相符。
收获: 本次实验我学会对一般的传送指令的运用,学会了如何利用断点更好的调试,从中我也加深了对一些常用指令的理解。