资源描述:
《SOC单片机原理与应用 鲍可进 部分答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机应用课程设计19.5-20作业:2.2答:C8051F020单片机有5个独立的物理存储空间,分别是:(1)64K字节程序存贮器空间(地址范围0~0FFFFH);该部分空间一般仅能进行读操作,寻址方式是基址加变址寻址,指令操作码是MOVC,指令只有两条,是MOVCA,@A+PC或MOVCA,@A+DPTR;(2)256字节内部RAM空间(地址范围0~0FFH);该部分空间可以采用直接寻址也可以采用间接寻址访问;访问该空间数据的传送指令操作码是MOV;(3)128字节内部特殊功能寄存器空间(地址范围80—0F
2、FH);该部分空间只能采用直接寻址进行访问,一般用特殊功能寄存器名字代表该空间中的地址用在指令中;(4)256位寻址空间(位地址范围0—0FFH);该部分空间只能采用位寻址访问,访问该空间数据传送指令的操作码是MOV,指令中出现的地址是位地址;(5)64K字节外部数据存贮器(RAM/IO)空间(地址范围0~0FFFFH);该部分空间只能采用寄存器间接寻址,读操作的指令是:MOVXA,@DPTR或MOVXA,@Ri(i=0或1);写操作的指令是:MOVX@DPTR,A或MOVX@Ri(i=0或1)。2.11配置步
3、骤如下:(1).按UART0E=1(XBR0.2=1)、SMB0EN=1(XBR0.0=1)、SPI0E=1(XBR0.1=1)、CP0E=1(XBR0.7=1)、EMIFLE=1(XBR2.1=1)和XBARE=1(XBR2.6=1)设置XBR0、XBR1和XBR2,则有:XBR0=0x87,XBR1=0x00,XBR2=0x42;(2).将外部存储器接口配置为复用方式并使用低端口,有:PRTSEL=0(EMI0CF.5),EMD2(EMI0CF.4)=0;(3)将作为模拟输入的端口1引脚配置为模拟输入方式:
4、设置P1MDIN为0xE3(P1.4、P1.3和P1.2为模拟输入,所以它们的对应P1MDIN被设置为逻辑‘0’);(4).UART0有最高优先级,P0.0被分配给TX1,P0.1被分配给RX1。SPI的优先级次之,P0.2分配给SCK,P0.3分配给MISO,P0.4分配给MOSI,由于外部存储器接口选在低端口(EMIFLE=1),P0.5分配给ALE,P0.6分配给/RD,P0.7分配给/WR。(又因为外部存储器接口被配置为复用方式,所以在执行对片外操作的MOVX指令期间,外部存储器接口将驱动端口2(地址总
5、线高8位)和端口3(地址总线低8位和8位的数据总线分时复用)。将P1MDIN设置为0xE3,使P1.2、P1.3、P1.4被配置为模拟输入,导致交叉开关跳过这些引脚;)P1.0分配给NSS;分配SMBus需要的引脚,P1.1被分配给SDA,跳过P1.2、P1.3、P1.4,则接着P1.5被分配给SCL。接下来分配CP0的引脚,P1.6被分配给CP0。(5).将UART0的TX引脚(TX1,P0.0)、ALE、/RD、/WR(P0.[7:5])的输出设置为推挽方式,通过设置P0MDOUT=0xE1来实现。(6).
6、通过设置P2MDOUT=0xFF和P3MDOUT=0xFF将EMIF端口(P2、P3)的输出方式配置为推挽方式;(7).通过设置P1MDOUT=0x00(配置输出为漏极开路)和P1=0xFF(逻辑‘1’选择高阻态)禁止3个模拟输入引脚的输出驱动器。3.1ORG0000HLJMPMAINMAIN:MOVR4,#0MOVDPL,#0NEXT:MOVDPH,#10HMOVXA,@DPTRMOVDPH,#25HMOVX@DPTR,AINCDPTRDJNZR4,NEXTSJMP$3.2Clrcmova,31hsubba,
7、#0JcnegativeSjmpexitNegative:ClrcMova,30hCplaAdda,#1Mov30h,aMova,31hXrla,#7fhAddca,#0Mov31h,aExit:Sjmpexit3.4Xdata35hYdata36hOrg0000hSjmpmainOrg0100hMain:Mova,xCjnea,#0,not_equalMovy,#0SjmpexitNot_equal:JcnegativeMovy,#1SjmpexitNegative:Movy,#-1Exit:Sjmpexit
8、3.12C51语言有三种不同类型的存储区域(memoryareas):程序区、内部数据存储区和外部数据存储区。C51编译器允许8051微处理器使用各种类型的存储区域。可以在变量声明时使用存储器类型(memorytypes)来指定变量所希望占用的存储区域类型,具体如下表所示。存储器类型存储区域大小code程序存储区64KBdata直接寻址的内部数据存储区128Bidata间接寻址的内部数