单片机各种开发小程序
- 格式:doc
- 大小:194.86 KB
- 文档页数:24
LJMP $
END
五、思考题
如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。
实验二二进制与BCD码转换
一、实验目的
1.掌握简单的数值转换算法
2.基本了解数值的各种表达方法
二、实验说明
单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。我们将给定的一字节二进制数,转换成二十进制(BCD)码。将累加器A的值拆为三个BCD 码,并存入RESULT开始的三个单元,例程A赋值#123。
三、实验内容及步骤
1.启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加TH
2.ASM源程序进行编译,编译无误后,全速运行程序,打开View菜单中的Memory Window,在Address窗口输入D:30H后回车,点击运行按钮,观察地址30H、31H、32H的数据变化,30H内容将更新为01,31H更新为02,32H更新为03。修改源程序中给累加器A的赋值,重复实验,观察实验效果。
2.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序(见光盘中的程序文件夹)
1.源程序
RESULT EQU 30H
ORG 0000H
LJMP START
BINTOBCD:
MOV B,#100
DIV AB
MOV RESULT,A ;除以100得百位数
MOV A,B
MOV B,#10
DIV AB
MOV RESULT+1,A ;余数除以10得十位数
MOV RESULT+2,B ;余数为个位数
RET
START:
MOV SP,#40H
MOV A,#123
CALL BINTOBCD
LJMP $
END
2.流程图
实验三 BCD码与ASCII码转换
一、实验目的
1.了解BCD值和ASCII值的区别
2.掌握用查表的方法将BCD值转换成ASCII值
二、实验说明
此实验主要让学生了解数值的BCD码和ASCII码的区别,利用查表方法可以快速地进行数值转换。进一步掌握数值的各种表达方式。现在我们给出一个BCD数,将其转换成ASCII值。如下:将累加器A的值拆为二个ASCII码,并存入Result开始的二个单元,例程A赋值#1AH。
三、实验内容及步骤
1.启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加TH3.ASM源程序进行编译,编译无误后,打开View菜单中的Memory Window,在Address窗口输入D:30H后回车,点击运行按钮,观察地址30H、31H的数据变化,30H更新为31,31H更新为41。修改源程序中给累加器A的赋值,重复实验,观察实验效果。
2.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序(见光盘中的程序文件夹)
1.源程序
RESULT EQU 30H
ORG 0
LJMP START
ASCIITAB:
DB ‘0123456789ABCDEF' ;定义数字对应的ASCII表
BCDTOHEX:
MOV DPTR,#ASCIITAB
MOV B, A ;暂存A
SWAP A
ANL A,#0FH ;取高四位
MOVC A,@A+DPTR ;查ASCII表
MOV RESULT, A
MOV A,B ;恢复A
ANL A,#0FH ;取低四位
MOVC A,@A+DPTR ;查ASCII表
MOV RESULT+1,A
RET
START:
MOV SP,#40H
MOV A,#1AH
CALL BCDTOHEX
LJMP $ END
2.流程图
实验四程序跳转表
一、实验目的
1.了解程序的多分支结构
2.掌握多分支结构程序的编程方法
二、实验说明
多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
三、实验内容及步骤
1.启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加TH4.ASM源程序进行编译,编译无误后打开View菜单中的Memory Window,在Address窗口输入D:30H后回车,点击运行按钮,观察地址30H、31H、32H、33H的数据变化,30H更新为0,31H 更新为1,32H更新为2,33H更新为3。修改源程序中给30H~33H的赋值,重复实验,观察实验效果。
2.打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序(见光盘中的程序文件夹)
1.流程图
2.源程序
ORG 0
LJMP START
FUNC0: MOV 30H,#0 RET
FUNC1: MOV 31H,#1 RET