200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 单片机原理与应用实验二 拆字程序(c语言版)

单片机原理与应用实验二 拆字程序(c语言版)

时间:2023-09-17 07:30:47

相关推荐

单片机原理与应用实验二 拆字程序(c语言版)

单片机原理与应用实验二拆字程序

(设计性实验)

一、实验目的

掌握汇编语言设计和调试方法。

二、实验原理

本程序一般用于把数据送显示缓冲区。设计思路是:利用DPTR寄存器做为地址指针,采用寄存器间接寻址的方式访问外部RAM。利用与操作指令从一个字节中取出需要的数据。

三、主要仪器及耗材

星研SUN ES59PA单片机实验仪和PC机。

四、实验内容与步骤

实验内容:编程实现把外部RAM 0000H单元的内容拆开,高4位送外部RAM 0001H单元的低4位,低4位送外部RAM 0002H单元的低4位,0001H、0002H高4位清零。

实验步骤:① 在星研集成环境下新建项目文件,然后新建源程序文件,注意源程序文件的扩展名应该是ASM。输入源程序并存盘;② 对源程序进行编译、链接形成目标代码,同时排除源程序中的错误;③ 将编译、链接形成的调试文件(.DOB)下载到单片机实验仪中;④ 利用单步、运行到光标所在行等方式进行程序调试;⑤ 检查程序运行结果并进行分析。

五、实验注意事项

在调试过程中,一旦出现单片机实验仪死机的情况,可以在星研集成环境中点击“复位”图标对实验仪进行复位。然后重新将调试文件下载到实验仪中,继续调试。

六、思考题

1、如果将内部RAM 30H单元的内容拆开,拆分的结果也存储在内部RAM中,应该如何做?

2、如果要求拆分后数据的高4位全为“1”如何实现?

七、参考文献

本课程理论课的授课教材。

八、代码

1.用指针

#include<reg51.h>#define uchar unsigned charvoid main(){uchar xdata *a;a=0x0000;*(a+1)=*(a)/16;*(a+2)=*(a)%16;}

2.用数组

#include<reg51.h>unsigned char xdata address[3]_at_0x0000;void main(){address[1]=address[0]/16;address[2]=address[0]%16;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。