微机原理与接口实验报告
实验项目名 学院 汇编语言程序设计实验——数制的转换 班级 姓名 学号 一、 实验目的 1、进一步熟悉单片机开发系统及其操作 2、了解单片机的指令系统 3、通过简单程序,了解在单片机系统上程序的调试和执行程序过程 4、掌握简单的数值转换算法 二、实验原理 计算机中的数值有各种表达方式,这是计算机的基础。掌握各种数制之间的转换是一种基本功。本实验包含两个程序: 程序一:将给定的一个二进制数,转换成二-十进制(BCD)码。在主程序中存入一个二进制数A,将 A 拆为三个 BCD 码, 并存入 RESULT 开始的叁个单元。源程序:RESULT EQU 20H ORG 0 LJMP START ;进入主程序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 ;存入数123 CALL BINTOBCD LJMP $ END 给出要转换的二进制数 将数除以100,得百位数 保存百位数 将余数再除以10,得十位数 保存十位数 余数为个位数,将其保存 结束 程序二:给出一个数,将其转换成ASCII值。在主程序中存入一个数A,将 A 拆为两个 ASCII 码, 并存入 RESULT 开始的二个单元,请参照实验步骤完成要求。 RESULT EQU 20H ORG 0 LJMP START ASCIITAB: DB '0123456789ABCDEF' ; 定义数字对应的ASCII表 BINTOHEX: MOV DPTR, #ASCIITAB MOV A, #RESULT 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 BINTOHEX LJMP $ END 给出要转换数 取出数码高四位 三、实验器材 伟福Lab6000系列单片机仿真实验系统一套 四、实验步骤 1、确连接系统,设置好仿真器和编译选项 2、建立新程序和新项目,编译程序。 3、编译成功后进行单步调试,在观察窗口中添加RESULT观察项,并观察和记录 下DATA窗口和观察窗口的数据变化。 五.数据处理 单步调试过程 程序一:从单步调试结果可以看到存放结果的20H开始的三个地址分别存放01H,02H,03H。 程序二: SWAP A ;A原来为20H,现在高低四位互换 ANL A, #0FH ; 取高四位,A=02H MOVC A, @A+DPTR ;02H的ASCII为32H 同理,对于低四位 ANL A, #0FH ; 取低四位,A=00H MOVC A, @A+DPTR ; 查ASCII表,00H的ASCII码是30H 最后,把数据放到20H上 尝试用别的方法解决问题(提示:移位法)。 对程序二使用移位法 RESULT EQU 20H ORG 0 LJMP START ASCIITAB: DB '0123456789ABCDEF' ; 定义数字对应的ASCII表 BINTOHEX: MOV DPTR, #ASCIITAB MOV A, #RESULT MOV B, A ; 暂存 A L1 RR A ;将A向右移四位 DJNZ R2 ,L1 ; 取循环 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 R2,#06H MOV A, #1AH CALL BINTOHEX LJMP $ END
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库广州大学单片机原理与接口技术实验实验二 汇编语言程序设计实验在线全文阅读。
相关推荐: