第一范文网 - 专业文章范例文档资料分享平台

单片机实验1-4

来源:用户分享 时间:2025/6/18 10:29:41 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

第四章 实验内容

实验一 数码转换程序

一.单字节十六进制到BCD码的转换

1.实验目的:

熟悉8051汇编语言的编制、调试。 2.编制说明:

将十六进制数除以一百得百位BCD码,余数除以十得十位BCD码,再得余数为个位BCD码。

3.操作说明:

将原文件在编辑器中进行编辑,编辑后回到主介面,建立工程文件,将原文件插入工程文件中,编译连接生成可执行文件。若编译连接成功,打开寄存器窗口,在R2中输入八位无符号十六进制数,单步或设断点运行程序,并检查运行结果。(运行结果在R6、R5中存放)

4.程序清单: NAME BCD1 CSEG AT 0000H

LJMP BCD1

CSEG AT 4100H

BCD1: MOV A,R2 MOV B,#64H DIV AB MOV R6,A MOV A,#0AH XCH A,B

DIV AB

SWAP A

ADD A,B

MOV R5,A NOP

END

5.实验步骤

①编辑源程序、建立工程文件、编译连接生成可执行程序 ②在R2中输入八位无符号十六进制整数

③单步执行程序,记录每条指令执行后有关寄存器和PSW中内容

④给R2中输入五组不同参数,改用设断点连续执行程序,自行设计表格记录程序执行后A、B、PSW、R5和R6中内容

二.双字节十六进制到BCD码的转换

1.编制说明: 因为:(a15 a14 ...a1 a0)2=(...(0*2+ a15)*2 +a14...)+ a0

所以,将十六进制数从最高位逐次左移入BCD码寄存器的最低位,并且每次都实现(...)*2+ai的运算,共循环十六次,由R7控制。

2.操作说明:

17

操作说明同上。

入口:R3、R2(为十六位无符号十六进制整数)。

出口:R6(万位)、R5(千位、百位)、R4(十位、个位)存放五位BCD码。 3.程序清单 NAME BCD2 CSEG AT 0000H

LJMP BCD2 CSEG AT 4100H BCD2: CLR A MOV R4,A

MOV R5,A MOV R6,A MOV R7,#10H LPO : CLR C MOV A, R2 RLC A MOV R2,A MOV A,R3 RLC A MOV R3,A MOV A,R4 ADDC A,R4 DA A

MOV R4,A MOV A,R5 ADDC A,R5 DA A

MOV R5,A MOV A,R6 ADDC A,R6 DA A

MOV R6,A DJNZ R7,LPO NOP

END 4.实验步骤

①编辑源程序、建立工程文件、编译连接生成可执行程序 ②在R3、R2中输入双字节无符号十六进制整数

③单步执行程序,每次在DA A指令前,检查和记录A内容和PSW中标志位(主要为Cy和AC标志)的状态;在DA A指令后仍检查和记录A内容和标志位的状态。从而深入了解DA A指令是根据什么调整和如何调整的,这样单步执行循环七次,然后连续执行。

④给R3、R2中输入五组不同参数,改用设断点连续执行程序,自行设计表格记录程序执行后R6、R5和R4中内容

5.思考题

18

DA A指令只对什么寄存器起作用?DA A指令安排在程序何处,才能得到正确结果? 三.双字节BCD码到十六进制的转换

1.编制说明: 因为:(d3 d2 d1 d0)BCD=(d3*10+ d2)*100 +(d1*10+d0) 所以,di+1*10+ di的运算可由子程序BCD2B完成。 2.操作说明: 操作说明同一。

入口:将BCD装入R5(千位、百位)、R4(十位、个位)。 出口:R5、R4(为四位无符号十六进制整数)。 3.程序清单 NAME BCD3 CSEG AT 0000H

LJMP BCD3 CSEG AT 4100H

BCD3: MOV A,R5 MOV R2,A

ACALL BCD2B MOV B,#64H MUL AB MOV R6,A XCH A,B

MOV R5,A MOV A,R4 MOV R2,A ACALL BCD2B ADD A,R6 MOV R4,A MOV A,R5 ADDC A,#00H MOV R5,A NOP RET

BCD2B: MOV A,R2

ANL A,#0F0H SWAP A

MOV B,#0AH MUL AB MOV R3,A MOV A,R2 ANL A,#0FH ADD A,R3 MOV R2,A RET END

19

4.实验步骤

①编辑源程序、建立工程文件、编译连接生成可执行程序 ②在R5、R4中输入BCD码

③断点设在第一个ACALL BCD2B,检查和记录在ACALL BCD2B指令执行前后,堆栈指针SP、堆栈中内容及程序计数器PC中内容。

④断点设在第二个ACALL BCD2B,检查和记录在ACALL BCD2B指令执行前后,堆栈指针SP、堆栈中内容及程序计数器PC中内容。

⑤给R5、R4中输入五组不同参数,改用设断点连续执行程序,自行设计表格记录程序执行后R5和R4中内容

5.思考题

SP表示什么,有几位,作用是什么?本实验系统复位后SP中内容是什么?

20

搜索更多关于: 单片机实验1-4 的文档
单片机实验1-4.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c146nu6y4bq17c183741r_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top