单片机实验报告(二).doc
文本预览下载声明
单片机实验报告(二)
毛刚 200800120141 集成
实验目的:1、学习算术运算指令的用法;
2、学习不同数制的数码转换的方法与编程练习。
实验内容: 1、多个字节的加法运算:将两个16进制数放在以DATA1和DATA2为首的内存单元中(低位在前),结果送回DATA3;
2、二进制数到十进制数的转换。
3、把0~9的ASCII码转换成对应的十进制数。
4、设计一个秒表。
实验结果:
两个16进制数的加法运算
源程序
ORG 0000H
AJMP START
ORG 0030H
START: DATA1 EQU 40H
DATA2 EQU 50H
DATA3 EQU 30H ;给DATA1,DATA2,DATA3初始地址
MOV 40H,#19H
MOV 41H,#88H ;DATA1=1988H
MOV R0,40H ;R0=19H
MOV 50H,#10H
MOV 51H,#21H ;DATA2=1021
MOV R1,50H ;R1=10H
MOV 30H,#00H
PUSH 30H
MOV A,R0
ADDC A,R1 ;(A)=(R0)+(R1)
MOV 30H,A ;(30H)((A)
INC R0 ;RO+1
INC R1 ;R1+1
MOV A,R0
ADDC A,R1
MOV 31H,A ;(31H)((R0)+(R1)
MOV A,#00H
ADDC A,#00H
MOV 32H,A ;进位放入32H
END
二进制数到十进制数的转换
源程序
ORG 0000H
SJMP START
ORG 0030H
START:MOV 40H,#11H
MOV 41H,#22H
MOV 42H,#33H
MOV 43H,#4DH
MOV 44H,#0EH
MOV 45H,#66H
MOV 46H,#0A7H
MOV 47H,#28H
MOV 48H,#0B9H
MOV 49H,#6FH ;在40H单元开始的空间里放置十个二进制数
MOV R0,#50H
MOV R1,#40H
MOV R2,#0AH ;R0放目的目的数据区首地址,R1放源数据区首地址,
R2放转换个数
LOP: MOV A,@R1
MOV B,#0AH
DIV AB
MOV @R0,B
MOV B,#0AH
DIV AB
INC R0
MOV @R0,B
INC R0
MOV @R0,A ;除十取余
INC R0
MOV @R0,#00H ;每转换完一个插入一个00H的单元
INC R0
INC R1
DEC R2
MOV A,R2
JNZ LOP ;跳转
END
3.0~9的ASCII码转换成对应的十进制数
源程序
ORG 0000H
AJMP START
ORG 0030H
DATA1 EQU 40H
DATA2 EQU 50H
START:
MOV R0,#DATA1
MOV 60H,#DATA2
MOV R1,#0AH
MOV 40H,#30H
MOV 41H,#31H
MOV 42H,#32H
MOV 43H,#33H
MOV 44H,#34H
MOV 45H,#35H
MOV 46H,#36H
MOV 47H,#37H
MOV 48H,#38H
MOV 49H,#39H ;在40H~49H存入相应的值
LOOP:MOV A,@R0
ANL A,#0FH ;ASCII转换
MOV 61H,R0
MOV R0,60H
MOV @R0,A
INC R0
MOV,60H,R0
MOV R0,61H
INC R0
DJNZ R1,LOOP
END
3、设计一个秒表
要求显示0.1s、s、min。单片机的晶振是12Mhz,机器周期为1us。采用定时计数器0,方式1。最大计时时间为65.536ms,让定时计数器定时为50ms,定时计数器的初值为:3BE8H。
源程序
ORG 0000H
AJMP MAIN
ORG 000BH T0中断入口地址,跳转到中断程序。
AJMP T0I
显示全部