本科实验报告
课程名称: 单片机原理与接口技术
实验项目: BCD/十六进制码转换
实验地点: 电机馆跨越机房
专业班级: 学号:
学生姓名:
指导教师:
2015 年 4 月 14 日
1. 实验目的
(1) 熟悉编码转换程序
(2) 掌握编写和运行子程序的技巧 2、实验设备
计算机一台:KeilC51和Proteus 3、实验内容
将片内RAM 20H单元中两位BCD码转换成相应的十六进制码,转换结果保存于22H单元 4、实验原理提示
常用BCD码转十六进制码的方法为“乘十加数”法。例如,将BCD码10010010(表示十进制数92)转换成十六进制编码表示形式,算法为:HY=(09*0A+02)H =5CH。其中YH为转换后的十六进制数。再二进制运算中乘法可以用移位(左移)实现,*0A可以写成*08+*02,其中*08是将被乘数左移3为,*02是将被乘数左移1为。则(09*0A+02)
H=(09+08+09*02+02)D=(01001000+00010010+00000010)B=(01011100)B=5CH。
5.BCD码转换成十六进制码的实验程序流程图如图
(20H)低4位 B (20H)高4位 A 开始
A R7 (A)左移3位 R6 R7 A
6.实验程序 ORG 0000H
MOV 20H,#92H ;元中
MOV A,#0FH ;0FH ANL A,20H ; MOV B,A ; MOV A,#0F0H ;0F0H ANL A,20H ; SWAP A ; MOV R7,A ;(A)左移1位 R7 (R7)+(R6) R6 (R6)+(B) 22H 结束 把BCD码(1001 0010)放入20H地址单赋值到A
获得直接地址单元20H中的低4位 (A)赋值给B 赋值到A
获得直接地址单元20H的高4位赋值给A 把高4位交换到低4位 (A)赋值给R7
RL A ;A中值左移一位 RL A ;A中值左移一位 RL A ;A中值左移一位 MOV R6,A ;(A)赋值给R6 MOV A,R7 ;(R7)赋值给A RL A ;A中值左移一位 MOV R7,A ;(A)赋值给R7 ADD A,R6 ;(R6)+(R7)赋值给A ADD A,B ;(B)+(A)赋值给A MOV 22H,A ;(A)赋值给22H SJMP $ ;程序到此处死循环 END 7.实验结果
因篇幅问题不能全部显示,请点此查看更多更全内容