资源描述:
《单片机原理与C51程序设计基础教程 教学课件 作者 978-7-302-23075-5第3章.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、答案1立即寻址寄存器寻址间接寻址直接寻址变址寻址相对寻址位寻址2累加器APCDPTR300H,0,0,0,04指令5一二三6转移指令的PC值加上它的字节数7DPH=3CH,DPL=5FH,SP=4FH选择题1C2C3A4D5 C问答题1(1)分析问题:首先必须明确求解问题的意义和任务。对项目背景和要完成的任务进行详细地了解和分析,将一个实际的问题转化为单片机可以处理的问题。(2)确定算法:根据实际问题的要求和指令系统的特点,决定所采用的计算公式和计算方法。这是正确编程的基础,比程序设计语言本身更为重要。(3)
2、绘制框图:根据所选定的算法,制定出运算步骤和顺序,把运算过程画成程序框图。这样使程序清晰,结构合理,便于调试。(4)分配资源:要根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。(5)编写程序:编写程序就是采用汇编语言来实现上面已确定的算法,也即是将由人类自然语言组织的程序框图转化为计算机语言组织的源代码。(6)仿真调试:利用单片机各种开发工具对所编写的程序进行测试,检验程序是否完成了指定的功能。测试过程要尽可能仔细,保证程序中的各条支路都得
3、到了检验。(7)软件优化:在完成指定功能的基础上,进行程序优化,以进一步缩短程序量、减少运算时间和节省工作单元。(8)状态固化:完成前期工作之后,将程序烧录到EEPROM等程序存储器上,保证单片机系统每次上电后都能正确运行程序。(9)文档说明:将程序的功能和使用方法,程序的基本结构和所采用的主要算法以及程序必要说明和注意事项等问题整理成一个文档,不仅便于用户使用,而且便于对程序的维护和扩充。2.(1)bit位标量:利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,
4、类似一些高级语言中的Boolean类型中的True和False。(2)sbit可寻址位:利用它能定义内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。(3)sfr特殊功能寄存器:利用它能定义8051系列单片机内部的所有特殊功能寄存器,(4)sfr16特殊功能寄存器:sfr16和sfr一样用于操作特殊功能寄存器,所不一样的是它用于操作占两个字节的寄存器,如定时器T0和T1。3.变址寻址变址寻址是以某个寄存器的内容为基础,然后在这个基础上再加上地址偏移量,形成真正的操作数地址,需要特别指出的是用来作为基础的寄存
5、器可以是PC或是DPTR,地址偏移量存储在累加器A中。相对录址相对寻址主要是针对跳转指令而言的。对于跳转指令,跳转去的目标指令的地址是通过正在执行的指令地址来确定的,一般是采用正在执行的指令地址加上偏移量的方式。即:转移目的地址=当前PC值+相对偏移量rel。偏移量可以是正也可以是负,偏移量是采用有符号数的存储形式即补码的形式来存储的。位寻址位寻址方式是指将要访问的数据是一个单独的位,指定位数据的方式有:通过位地址、通过字节地址加点及位数、通过寄存器名加点及位数、通过位的名称。4.1)SP=SP+1=61H(
6、61H)=PC的低字节=03HSP=SP+1=62H(62H)=PC的高字节=20H2)PC=3456H3)可以4)2KB=2048Byte5.62H,30H,70H6.0CBH7.交换A、B的内容编程题1.MOVA,45HANLA,#0FHORLA,#0FHMOV45H,A2.START:MOVR0,#30HMOVR2,#20HLOOP:MOVA,@R0CJNEA,#0AAH,NEXTMOV51H,#01HLJMPEXITNEXT:INCR0DJNZR2,LOOPMOV51H,#00HEXIT:RET3.O
7、RG0000HLJMPMAIN;跳转到主程序中MAIN:MOVA,30HADDA,40HMOV40H,A;最低字节加法并送结果MOVA,31HADDCA,41HMOV41H,A;第二字节加法并送结果MOVA,32HADDCA,42HMOV42H,A;第三字节加法并送结果MOVA,33HADDCA,43HMOV43H,A;第四字节加法并送结果,进位位在Cy中END