实验一、查表程序(MOVC A,@A+DPTR)
单片机原理与应用第四章作业答案

4-9 试计算片内RAM区40H~47H单元中8个数据的平均值,结果存放在4Ah中;说明:先对8个数求和,结果放在30h,31h;然后用右移3次求平均。
ORG 0000HSJMP MAINORG 0030HMIAN: MOV R0,#40HMOV R1,#30HMOV 30H,#00HMOV 31H,#00HMOV R2,#8CLR CL1: MOV A,@R1ADDC A,@R0MOV @R1,AINC R0INC R1MOV A,@R1ADDC A,#00HMOV @R1,ADEC R1DJNZ R2,L1INC R1L2: MOV R2,#03HMOV A,@R1RRC AMOV @R1,AINC R1MOV A,@R1RRC AMOV @R1,ADEC R1DJNZ R2,L2DEC R1MOV 4AH,@R1SJMP $4-10 在起始地址为2100H,长度为64H的数表中查找ASCII码’F’,如果有,将其值送到1000H单元,如果没有,将0FFH送1000H单元.ORG 0000HSJMP MAINORG 0030HMAIN: MOV R2,#64MOV DPTR,#2100HL2: MOVX A,@DPTRCJNE A,#’F’,L1MOV DPTR,#1000HMOV A,#00HMOVX @DPTR,ASJMP LASTL1: INC DPTRDJNZ R2,L2MOV A,#0FFHMOVX @DPTR,ALAST: SJMP $4-11 试编写将片内40H~60H 单元中的内容传送到外部RAM以2000h为首地址的存放区域中,并将原数据全部清零。
ORG 0000HSJMP MAINORG 0030HMIAN: MOV R0,#40HMOV DPTR,#2000HMOV R1,#20HL1: MOV A,@R0MOVX @DPTR,AMOV @R0,#00HINC R0INC DPTRDJNZ R1,L1SJMP $4-12 编写,内部RAM50H‐59H 10个单元内容的平均值,并存放在5AH单元。
作业习题 寻址方式和指令

寻址方式和指令习题一、选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是()(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2、ORG 0003HLJMP 2000HORG 000BHLJMP 3000H当CPU响应外部中断0后,PC的值是()(A)0003H (B)2000H (C)000BH (D)3000H3、执行PUSH ACC指令,MCS-51完成的操作是()(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=()(A)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的哪一位被置位()(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区()(A)MOV PSW,#13H (B)MOV PSW,#18H(C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.47、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是()(A)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是()(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完上面的程序后,PC的值是()(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用()(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令二、判断题1、MCS-51的相对转移指令最大负跳距是127B。
()2、当MCS-51上电复位时,堆栈指针SP=00H。
《单片微型计算机与接口技术》思考题与习题解答01

《单片微型计算机与接口技术》思考题与习题解答第0章基础知识0.1 将下列十进制数转换为十六进制数:64,98,80,100,125,255。
0.1 40H,62H,50H,64H,7DH,FFH0.2 将下列十六进制无符号数转换为十进制数:32CH,68H,I)5H,100H,B78H,3ADH。
O.2 812,104,213,256,2936,9410.3 写出下列十进制数的原码和补码,用8位或16位数填人表1中(要求用十六进制数表示)。
表10.3,9350H,CF42H。
O.4 机器数的真值分别为:27,233,-128,-8,14717,31467,-27824,-124780.5 用补码运算完成下列算式,并指出溢出OV和进位CY:(1) 33H+5AH (2) -29H-5DH (3) 65H-3EH (4) 4CH-68HO.5 (1) 33H+5AH=8DH,OV=1,CY=O (2) -29H-5DH=7AH,OV=0,CY=1(3) 65H-3EH=27H,OV=0,CY=1 (4) 4CH-68H=E4H,0V=O,CY=O0.6 将表2中的十进制数按要求转换,用十六进制数填入。
表2O.60.7 写出下列ASCII码表示的十六进制数(如313035H为105H):374341H,32303030H,3841353DH。
0.7 ASCIl码表示的十六进制数分别为:105H,7CAH,200¨。
H,8A50H第1章 MCS-51单片机1.1 什么是嵌入式系统?其控制核心有哪几种类型?1.1 见绪论1.2 单片微型计算机与微处理器在结构上和使用中有什么差异?单片机和DSP在使用上有什么差别?1.2 单片微型计算机是包含CPU、存储器和I/O接口的大规模集成芯片,即它本身包含了除外部设备以外构成微机系统的各个部分,只需接外设即可构成独立的微机应用系统。
微机处理器仅为CPU,CPU是构不成独立的微机系统的。
MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令、45条双字节指令和17条三字节指令。

XCH A,Rn ;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换
XCH A,@Ri ;(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换
XCH A,data ;(A)←→(data)累加器与直接地址单元中的内容互换
[8]. 十进制调整指令(1条)
在进行BCD码运算时,这条指令总是跟在ADD或ADDC指令之后,其功能是将执行加法运算后存于累加器A中的结果进行调整和修正。
DA A
XCHD A,@Ri ;(A 3-0 )←→((Ri) 3-0 )累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换
SWAP A ;(A 3-0 )←→(A 7-4 )累加器中的内容高低半字节互换
[9]. 16位数据传送指令(1条)
这条指令的功能是把16位常数送入数据指针寄存器。
PUSH data ;(SP)+1→(SP),(data)→(SP) 堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中
POP data ;(SP)→(data)(SP)-1→(SP), 堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作
[8]. 交换指令(5条)
MOV Rn,data ;(data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中
MOV Rn,#data ;#data→(Rn) 立即数直接送到寄存器Rn中
MOV Rn,A ;(A)→(Rn) 累加器A中的内容送到寄存器Rn中
[3]. 以直接地址为目的操作数的指令(5条)
这组指令的功能是把源操作数指定的内容送到由直接地址data所选定的片内RAM中。有直接、立即、寄存器和寄存器间接4种寻址方式:
单片机原理及应用练习题及参考答案

单片机原理及应用练习题及参考答案1、关于MCS-51的堆栈操作,正确的说法是( )A、先入栈,再修改栈指针B、先修改栈指针,再出栈C、先修改栈指针,在入栈D、以上都不对答案:C2、已知(A)=59H,(R0)=30H,(30H)=6CH,执行指令XCHD A,@R0后,R0的内容为():A、59HB、30HC、6CHD、5CH答案:D3、当RS1RS0=10时,Rn的地址是():A、08H~0FHB、00H~07HC、18H~1FHD、10H~17H答案:D4、单片机应用程序一般存放在()。
A、RAMB、ROMC、CPUD、寄存器答案:B5、OV(PSW.2)的定义是()A、溢出标志位B、用户标志位C、进位标志位D、寄存器组选择位E、辅助进位标志位F、奇偶标志位答案:A6、RST引脚功能是()A、外部程序存储器读选通信号B、访问程序存储控制信号C、+5 V电源D、复位信号答案:D7、汇编结束指令是():A、ENDB、EQUC、ORGD、BIT答案:A8、执行下面一段程序; MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A PUSH B POP A POP B A , B的内容是:(A)= (B)=A、(A)=00H (B)=10HB、(A)=01H (B)=10HC、(A)=01H (B)=12HD、(A)=00H (B)=13H答案:B9、INTEL 8051 CPU是()位的单片机.A、16B、4C、8D、32答案:C10、ANL C, bit 是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令答案:E11、下列指令能使累加器A低4位不变,高4位置F的是()A、ANL A,#OFHB、ANL A,#OFOHC、ORL A,#OFHD、ORL A,#OF0H答案:D12、指令MOVC A,@A+DPTR 源操作数的寻址方式是():A、寄存器寻址B、直接寻址C、立即数寻址D、寄存器间接寻址E、变址寻址F、相对寻址G、位寻址答案:E13、8031单片机的内部主要组成部分不包含():A、CPUB、I/O接口C、ROMD、定时计数器答案:C14、已知(A)=50H,(R0)=30H,(30H)=6CH,执行指令MOV A,@R0后,A的内容为():A、50HB、30HC、6CHD、00H答案:C15、一个具有4K字节的程序放在首地址为5000H的存贮区,则末地址为():A、5F00HB、5FFFHC、6000HD、6FFFH答案:B16、INC direct 是()A、数据传送指令B、算术运算指令C、逻辑运算指令D、控制转移指令E、位操作指令答案:B17、已知(A)=88H,(PSW)=80H,执行指令SUBB A,#66H后PSW的内容为():A、C4HB、04HC、C0HD、00H答案:B18、哪个不是常用的晶振频率():A、11.0592MHzB、12MHzC、3MHzD、6MHz答案:C19、( )指令是MCS-51指令系统中执行时间最长且长达8 us的。
单片机实验

实验一数据传送指令的使用及编程方法1.片内RAM的数据传送【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV R0,#40H R0MOV R1,#41H R1MOV A,R0 AMOV 30H,A 30HMOV 20H,30H 20HMOV A,#30H AMOV @R0,A 40HMOV A,30H AMOV R7, A R7MOV A,@R0 AMOV R7,A R7MOV DPTR,#0A702H DPTRMOV 30H,R7 30HMOV 20H,@R0 20HMOV 21H,#10H 21HMOV @R0,21H 10HMOV @R1,#01H 41HSJMP $END【实验要求】(1)理解源程序中每条数据传送指令的操作含义,将结果填入每个单元的相应“内容”中。
(2)单步运行源程序,逐条检查“内容”是否正确。
2.外部RAM的数据传送。
【实验程序】源程序单元内容ORG 0000HLJMP MAINORG 0030HMAIN:MOV DPTR,#1A33H DPTRMOV A,#80H AMOVX @DPTR,A 1A33HMOV A,#00H AMOV P2,#1AH P2MOV R0,#34H R0MOV R1,#35H R1MOVX @R0,A 1A34HMOVX A,@DPTR AMOVX @R1,A 1A35HMOVX A,@R0 AMOVX A,@R1 ASJMP $END【实验要求】(1)理解源程序指令含义,指出各存储单元的内容,写在右边的“内容”中。
(2)单步运行源程序,逐条验证分析结果。
3.片内特殊功能寄存器(SFR)的数据传送【实验程序】源程序ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H ;设栈指针MOV R0,#30H ;#30H送R0(0区)MOV P1,#0EFH ;#EFH送P1口(直接地址为90H)MOV @R0,P1 ;将P1内容送R0所指单元MOV C,P1. 1 ;将P1口的D1位内容送CMOV P1. 7,C ;将CY的内容送P1. 7PUSH PSW ;保护0区寄存器MOV PSW,#08H ;选择1区寄存器MOV R0,#40H ;#40H送1区寄存器R0(08H)MOV @R0,P1 ;P1口内容送1区R0所指单元POP PSW ;恢复0区寄存器SJMP $END【实验要求】(1)理解源程序指令含义,并参照注释写出结果。
单片机数码管静态显示实验程序(汇编)_共2页

单片机数码管静态显示实验程序org 00hnum equ p0;p0口连接数码管clr p2.0;mov dptr ,#tabclr amov r2,#0loop:movc a,@a+dptrmov num ,aacall delay_200msinc r2mov a,r2cjne r2,#15, loopmov r2,#0clr aajmp looptab :DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHdelay_200ms:mov r3,#20delay:acall delay_10msdjnz r3,delayret;;;;;;;;;;;;;;;;非中断精确delay_1ms:MOV R7 ,#249signed:nopnopdjnz R7 ,signed 1MS定时程序;循环部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4机器周期ret;2+249*4+2=1000us;返回指令2机器周期可以精确定时1MS,假设外部晶振是12M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;非中断精确10MS 定时程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov r6,#9;2个机器周期用2usdelay_10ms_sined: ;9次循环共用 9(1ms+4us)=9036us acalldelay_1msdjnz r6,delay_10ms_sinedMOV r6 ,#240;2个机器中期用 2ussigned_10ms :;循环部分 4机器周期共240次nopnopdjnz r6 ,signed_10msret;返回指令要2us;2us+9036us+240*4us+2us = 10ms 即可精确定时10ms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;非中断精确定时 1s;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;delay_1s:mov r5,#99delay_1s_signed:acall delay_10msdjnz r5,delay_1s_signed mov r5 ,#9signed_1s:acall delay_1msdjnz r5 ,signed_1smov r5 ,# 140signed_1s_:nopnopdjnz r5,signed_1s_;两个机器周期2us;循环指令周期为4us,加上延时10ms;(10ms+4us)*99 = 990.396ms;两个机器周期2us;循环指令周期为4us,加上延时1ms;(1ms+4us)*9 = 9ms+36us;机器周期2us;一次循环4us共有140次。
《单片机应用技术》答案

《单片机应用技术》习题答案第一章1-1选择1.计算机中最常用的字符信息编码是( A )A ASCIIB BCD码C 余3码D 循环码2.要MCS-51系统中,若晶振频率屡8MHz,一个机器周期等于(A ) μsA 1.5B 3 C3.MCS-51的时钟最高频率是( A ).A 12MHzB 6 MHzC 8 MHzD 10 MHz4.以下不是构成的控制器部件(D ):A 程序计数器、B指令寄存器、C指令译码器、D存储器5.以下不是构成单片机的部件(D )A 微处理器(CPU)、B存储器C接口适配器(I\O接口电路) D 打印机6.下列不是单片机总线是(D )A 地址总线B 控制总线C 数据总线D 输出总线7.-49D的二进制补码为.( B )A 11101111B 11101101C 0001000D 111011008.十进制29的二进制表示为原码(C )A 11100010B 10101111C 00011101D 000011119. 十进制0.625转换成二进制数是( A )A 0.101B 0.111 C10 选出不是计算机中常作的码制是( D )A 原码B 反码C补码 D ASCII1-2填空题原码、反码和补码000111013.十进制数-29的8位补码表示为.11100011CPU、存储器和I\O接口三部分组成.EA必须接地.6.输入输出设备是计算机与外部世界交换信息的载体..110100018.-49D的二进制补码为.11101101ASCII10.计算机中的数称为机器数,它的实际值叫真值。
1-3判断题1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。
(√)2.MCS-51上电复位时,SBUF=00H。
(×)。
SBUF不定。
3.使用可编程接口必须处始化。
(√)。
4.8155的复位引脚可与89C51的复位引脚直接相连。
(√)5.MCS-51是微处理器。
(×)不是。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:一、查表程序日期:2011.4.24得分:
同组人:(不填)指导教师:马惠兰
一、实验目的
1.熟悉Keil uvision3单片机仿真软件的使用方法。
2.熟练掌握单片机实验操作步骤。
3.熟练掌握用MOVC A , @A+DPTR和MOVC A , @A+PC进行查表的程序设计方
法和编程技巧。
4.掌握Keil uvision3对寄存器和SFR赋值和查看数据的命令和方法。
二、实验设备
PC机一台
三、实验内容
根据累加器A中的自变量,查表求1~20的平方数,平方高位数存放在寄存器R6中,平方低位数存放在寄存器R7中。
四、实验原理
本次实验采用查表指令MOVC A , @A+DPTR实现上述字数据查表。
因为最大的自变量20的平方数是400,为了查表后验证方便,自变量1~20对应的平方数用伪指令DW定义,并且定义为压缩BCD码。
查表指令MOVC A , @A+DPTR只能进行字节查表,要查找一个字数据,必须进行两次查表。
利用指令MOVC A , @A+DPTR查表,表可以存放在任何位置,查表前只需要将表的首地址用MOV指令送DPTR、累加器A中必须是要查找数据在表中的偏移地址即可,查找到的数据存放在累加器A中。
编程时,首先将表的首地址送DPTR,累加器A中的自变量减1形成要查找数据在表中的序号,序号乘2得到表内偏移地址,将该偏移地址暂存到寄存器R6中,用MOVC A , @A+DPTR指令进行第一次查表,得到该自变量的平方高8位在累加器A 中,并与R6进行交换,这样查找的平方高位数存放在寄存器R6中,累加器A中是第一次查表时的表内偏移地址;累加器A再加1,得到要查找的平方低位数在表内的偏移地址,再用MOVC A , @A+DPTR指令进行第二次查表,累加器A得到该自变量的平方低8位,送寄存器R7。
据此实验原理编写的实验源程序清单见附页。
五、实验步骤
1.在F盘下为工程建立文件夹张三1;
2.新建工程项目文件张三1.uv2,保存在文件夹张三1中,并为工程选择目标器件为
AT89S52;
3.编辑源程序,建立源文件张三1.ASM,保存在文件夹张三1中;
4.将源文件张三1.ASM添加到工程项目组中;
5.设置调试环境,选择调试模式为软件模拟;
6.加载运行程序,根据预先设计的数据记录表格记录实验数据;
7.实验数据经过实验指导教师检查正确后,实验结束。
实验数据记录见附页。
六、实验结果分析
记录的实验数据经过验证,全部正确,说明源程序设计正确、实验步骤正确。
七、心得体会
1.。
2.。
3.。
4.。
5.。