
复习恩及答案 一,填空: 【,S-51内部程序存储器(M)容量4,地址从00开始,用于存放程序和表格 常数。 2、CS51籍入/输出口线且条,它们都是1/0到口. 3、℃S5,有互个中断说,分为2个优先级, 4,寸址方式速丛如可找创在位起作数的地上,把湖作数迷米的力法。 6、复位方式有上中自动复位和按健于动复放, 6,与定时/计数路控制有关的寄存塔C巡。DD.2· 7、CS-1单片机的CU包括了运算墨和控制墨两部分电路. 8、CS-51单片机有兰个15位定时器/计数器。 9、-51外部激景存钴器寻址空问6超。 10、K5-51常用的寻址方式有立即子址、直接子兰、省任器、资仔器他楼子兰、坐址 子址 1山、KS-51单片机的PSK引脚是外部程子花依器选通信号. 12,嫩$-51共有生个兰位的并行10口,分别记作四、里、丝、坠,它们都是双向瑞 口,每个端口有生条但线. 【3、寸址威是找州令中搅作数或振作数历任址® 14、CS-51外部数据寻址空间4里 15、以助记符形式表示的计算机指令就是它的汇丝语言, I6、在变址寻址方式中,以冕加竖作变址寄有器,以巴或少T亚作基础寄存器。 二、商答题: 1、5-51单片机的A信号有刊功能?在使用031时以信号引脚夜如何处理? 容:(1)是访问外部程序存储器0的控制信号。 当为低电平(接地)封,刊只执行外部程序存储器中的程序。 当为高电平且℃作小于H《张)时,CU快行内部程序存储器的程序,但当C 的值龊h4张时〔对8518751/551)将白动转上执行片外程序存结器内的程序。 031单片机无片内型,必须外接程序存饰器,因此,031的必须接电(侯电平)。 2、什么叫振满周期:
复习题及答案 一、填空: 1、MCS-51 内部程序存储器(ROM)容量 4KB,地址从 0000H 开始,用于存放程序和表格 常数。 2、MCS-51 输入/输出口线 8 条,它们都是 I/O 端口。 3、MCS-51,有 5 个中断源,分为 2 个优先级。 4、寻址方式就是如何找到存放操作数的地址,把操作数提出来的方法。 5、复位方式有上电自动复位和按键手动复位。 6、与定时/计数器控制有关的寄存器 TCON,TMOD,IE 。 7、MCS-51 单片机的 CPU 包括了运算器和控制器两部分电路。 8、MCS-51 单片机有 2 个 16 位定时器/计数器。 9、MCS-51 外部数据存储器寻址空间 64KB。 10、MCS-51 常用的寻址方式有立即寻址、直接寻址、寄存器、寄存器间接寻址、变址 寻址。 11、MCS-51 单片机的 PSEN 引脚是外部程序存储器选通信号。 12、MCS-51 共有 4 个 8 位的并行 I/O 口,分别记作 P0、P1、P2、P3,它们都是双向端 口,每个端口有 8 条 I/0 线。 13、寻址就是寻找指令中操作数或操作数所在地址。 14、MCS-51 外部数据寻址空间 64KB。 15、以助记符形式表示的计算机指令就是它的汇编语言。 16、在变址寻址方式中,以累加器作变址寄存器,以 PC 或 DPTR 作基础寄存器。 二、简答题: 1、MCS-51 单片机的 EA 信号有何功能?在使用 8031 时 EA 信号引脚应如何处理? 答:(1) 是访问外部程序存储器 ROM 的控制信号。 当 为低电平(接地)时,CPU 只执行外部程序存储器中的程序。 当 为高电平且 PC 值小于 0FFFH(4K)时,CPU 执行内部程序存储器的程序,但当 PC 的值超出 4K 时(对 8051/8751/8951)将自动转去执行片外程序存储器内的程序。 8031 单片机无片内 ROM,必须外接程序存储器,因此,8031 的 必须接地(低电平)。 2、什么叫振荡周期?

容:晶体振荡器直接产生的振荡信号的周期。 3、什么叫外部中断?有几个外部中断源?请求信号由什么引脚引入了 容,当C刊执行主程序时,外设向C强行发出的一个中断请求,C接到信号,中断 主程序的执行并保存斯点地址,燃后转去响应中斯, 有2个外部中断源:请求信号有T0和T1引脚引入。 4,请说明CS-51单片机内RM低128字背和高128字节的用途? 容:单片机内部低128位字节是内部数据存储图。此存他器分为3部分:工作寄存区, 位寻址区、数据缓冲区。 80一FP用是高128字节做为特殊功能寄存器使用。 5、什么叫通信?有几种通信方式?其方式特点是什么: 答:设各之间进行的数据交换,如C阳与外设之进行的数据交换,计算机之间结构进行 的数据交换等。称为数据通信, 有两种通信方式:(1)并行通讯是多位数据同时通过多根数据传送,其优点是传送速 度快:缺点是数据有多少位,就需用多少根传送线。适用于近距离。 (2)串行通调是数据通过一根数据线。一位一位的传送。其优点是只需一对传输线: 缺点是传输速度慢,串行通信适用于运更离通信。 6,什么叫中断?中断的作用是什么? 答:当C正在处理某事件时,外界发生了更为紧急的请求,要求C刊智停当翰的工作, 转而去处理这个紧急事件,处理完坪,C刊再回到原来被中断的地方,继续原来的工作,这 样的过程称为中断。 中断作用:(1)分时操作(2)实封处理 (3)腹障处理 7、中断优先级的顺序?5个中斯源的入口地址目 容:顺序:外部中断0→定时器0中断一外部中断1一定时器!中断→串行接口中断。 5个中新源的入口地址: 中断源 中断矢量地址 中断源中断矢量地址 外部中断0(IWT0)0O03定时器T1中断001B 定时器T0中断000图串行口中断0023划 外部中断1(1NT1)0013H 三、分析结果 1,己知(A)=06,(3)=08图
答:晶体振荡器直接产生的振荡信号的周期。 3、什么叫外部中断?有几个外部中断源?请求信号由什么引脚引入? 答:当 CPU 执行主程序时,外设向 CPU 强行发出的一个中断请求,CPU 接到信号,中断 主程序的执行并保存断点地址,然后转去响应中断。 有 2 个外部中断源;请求信号有 INT0 和 INT1 引脚引入。 4、请说明 MCS-51 单片机内 RAM 低 128 字节和高 128 字节的用途? 答:单片机内部低 128 位字节是内部数据存储器,此存储器分为 3 部分:工作寄存区、 位寻址区、数据缓冲区。 80H—FFH 是高 128 字节做为特殊功能寄存器使用。 5、什么叫通信?有几种通信方式?其方式特点是什么? 答:设备之间进行的数据交换,如 CPU 与外设之进行的数据交换,计算机之间结构进行 的数据交换等,称为数据通信。 有两种通信方式:(1)并行通讯是多位数据同时通过多根数据传送,其优点是传送速 度快;缺点是数据有多少位,就需用多少根传送线。适用于近距离。 (2)串行通讯是数据通过一根数据线,一位一位的传送。其优点是只需一对传输线; 缺点是传输速度慢,串行通信适用于远距离通信。 6、什么叫中断?中断的作用是什么? 答:当 CPU 正在处理某事件时,外界发生了更为紧急的请求,要求 CPU 暂停当前的工作, 转而去处理这个紧急事件,处理完毕,CPU 再回到原来被中断的地方,继续原来的工作,这 样的过程称为中断。 中断作用:(1)分时操作 (2)实时处理 (3)故障处理 7、中断优先级的顺序?5 个中断源的入口地址? 答:顺序:外部中断 0→定时器 0 中断→外部中断 1→定时器 1 中断→串行接口中断。 5 个中断源的入口地址: 中断源 中断矢量地址 中断源 中断矢量地址 外部中断 0(INT0) 0003H 定时器 T1 中断 001BH 定时器 T0 中断 000BH 串行口中断 0023H 外部中断 1(INT1) 0013H 三、分析结果 1、已知(A)=06H,(R3)=08H

执行A0A,3 D以A结果(A)=1坦 2、已知(A)0C3,《0)55 执行0A,0 结果(A)=D7H (0)= 55 3、说明下列指令中源操作数采用的寻址方式 5,7:寄存器寻址 mA,5用:直接寻址 四A,55团:立即寻址 加A,0:寄存器间接寻址 JMP A+DPTR 基址变址寻址 4、设(0)32组,(A)■48H,(3图)-80,(0HD=08阳。请指出在执行下列程序段 后,上述各单元内容的变化。 MO A.RD (A)=80H 0 0,40阳 (32)-08 40.A(40图)=8 mW0.35H(0)35 5、己知(A)=0C,(0)=0,《CY)=1,无符号数执行指令A0CA,0后: (A)=E里,(O)“04,CY-】(进位),0-L(道出),C-0(半进位无)一 6,间读下列程序段,说明程序段实现功能,并把每条指令加注释 00,#40附:40H→R0 MOV A,RD 98H-A IG0141H→R0 ADD A. 8i0:98+(A)=47H→A INC RO 0四60,A:结果存入42单元 CLR A清A 0CA,O:进位存入A INC RO m0.A:进位存入43H
执行 ADD A,R3 DA A 结果(A)= 14H 2、已知(A)=0C3H,(R0)=55H 执行 ORL A,R0 结果(A)= D7H ; (R0)= 55H 。 3、说明下列指令中源操作数采用的寻址方式 MOV R5, R7 ;寄存器寻址 MOV A, 55H ;直接寻址 MOV A, #55H ;立即寻址 MOV A, @R0 ;寄存器间接寻址 JMP @A+DPTR 基址变址寻址 4、设(R0)=32H,(A)=48H,(32H)=80H,(40H)=08H,请指出在执行下列程序段 后,上述各单元内容的变化。 MOV A, @R0 (A)=80H MOV @R0,40H (32H)=08H MOV 40H, A (40H)=80H MOV R0, #35H (R0)=35H 5、已知(A)=0C3H,(R0)=0AAH,(CY)=1,无符号数执行指令 ADDC A, R0 后, (A)= 6EH ,(R0)= 0AAH ,CY= 1(进位) ,OV= 1(溢出),AC= 0(半进位无) 。 6、阅读下列程序段,说明程序段实现功能,并把每条指令加注释 MOV R0,#40H ;40H→R0 MOV A, @R0 ;98H→A INC R0 ;41H→R0 ADD A, @R0 ;98+(A)=47H→A INC R0 MOV @R0,A ;结果存入 42H 单元 CLR A ;清 A ADDC A, #0 ;进位存入 A INC R0 MOV @R0, A ;进位存入 43H

功能,将40H,41H单元中的内容相加结果放在42州单元,进位放在43组单元, (R0)=43H。(A)=1,(40)=98H,(41H)=AFH.(42H0=47日。(43)=01目, 7、已知(A)=83H。(O)=17相,(17H》=34相,请写出执行完下列程序爱后A的内容。 并把分析过程写出。 AN.A,#17阳;(A)+-0G 0L17.A:(17)+37 风LA,eO:(A)-3阳 C乳.A;(A)-0a 四,1,82隔并行接口芯片,A口工作在方式0输入,B口方式1输出,C口高位为输出, 低位为输入,设控制寄存器地址为3阻,晴确定控制字并初始化编程。 答:D7D6D5D4D32DID0 10010101 控制字为:95H MOV DPTR.#003BH WA,9用 MOV eDPTR.A 2,试编程对8155进行初始化。要求对计数脉冲进行分顿,既计数1000后,电平状态 变化,并重新置数以违续方波。设A口为输入,阳口为输出,C口为输入,禁止中断,命 令状态寄存器随址为FD00阳 答:M12-01初值1000-03矩8别 命令字11000010C2H 0NWTR。FD00H MOV A.#C2H MOVX DPTR.A MOV DPTR.#FD04 MOV A.0E8H MOVX eDPTR.A INC DPTR 0WA,#03阳 MOVX EDPTR.A
功能:将 40H,41H 单元中的内容相加结果放在 42H 单元,进位放在 43H 单元, (R0)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,(43H)=01H。 7、已知(A)=83H,(R0)=17H,(17H)=34H,请写出执行完下列程序段后 A 的内容, 并把分析过程写出。 ANL A, #17H ;(A)←03H ORL 17H, A ;(17H)←37H XRL A, @R0 ;(A)←34H CPL A ;(A)←0CBH 四、1、8255 并行接口芯片,A 口工作在方式 0 输入,B 口方式 1 输出,C 口高位为输出, 低位为输入,设控制寄存器地址为 3BH,请确定控制字并初始化编程。 答: D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 1 0 1 0 1 控制字为:95H MOV DPTR,#003BH MOV A, #95H MOV @DPTR,A 2、试编程对 8155 进行初始化。要求对计数脉冲进行分频,既计数 1000 后,电平状态 变化,并重新置数以连续方波。设 PA 口为输入,PB 口为输出,PC 口为输入,禁止中断,命 令状态寄存器地址为 FD00H。 答:M1M2=01 初值 1000=03E8H 命令字 11000010 C2H MOV DPTR, #FD00H MOV A, #C2H MOVX @DPTR, A MOV DPTR, #FD04 MOV A,#0E8H MOVX @DPTR, A INC DPTR MOV A, #03H MOVX @DPTR, A

3、要在某一位输出一个开关量信号,对该位的置1/置0操作必類成对使用。要使CB 输出一个舞洗变信号。设拉制寄存器地址为03阳,。请编出初始化程序。 容,M0 W DPTR,#0003绍 0WA,#00国 0X0TR,A:06置“0” NA,阳 X0TR,A:PO6置“1” 4、用定时器T1,工作方式0,在P1.0产生周期为500s的连续方波,时钟振等颜率为 区,用查面方式编写程序 答:(1)计算机器周期:TF12/foes=12/6*10心-2us (2)t0-2-X)Tm 500/2*10(2-X)*210㎡ 250(2一x)2 x-2-125-8067 TH1-0FCH TL1=03组 0T球0,00用 0 TL1,#03组 N TH1.#0FCH SETB TRO LOOP:JBC TFO.NEXT SJMP LOOP NEXT:MOV TLI,#03H MOV THI.HOFCH CPL PI.0 SJMP LOOP 5、设T0工作在方式0,定时时间为1s。在P1.0输出,周期为2s的方波,时钟品振 为6忆,请用查询方式编程。 答:1=2一T0初值)机器周期 1*10(2-X)*12/6*10
3、要在某一位输出一个开关量信号,对该位的置 1/置 0 操作必须成对使用,要使 PC6 输出一个负跳变信号,设控制寄存器地址为 03H,请编出初始化程序。 答:MOV DPTR, #0003H MOV A, #0CH MOVX @DPTR, A; PC6 置“0” MOV A, #0DH MOVX @DPTR, A; PC6 置“1” 4、用定时器 T1,工作方式 0,在 P1.0 产生周期为 500us 的连续方波,时钟振荡频率为 6MHZ,用查询方式编写程序。 答:(1)计算机器周期:Tm=12/focs=12/6*106 =2us (2)to=(213—X)*Tm 500/2*10-6 =(2 13—X)*2*106 250=(2 13—X)*2 X=213—125=8067 TH1=0FCH TL1=03H MOV TMOD, #00H MOV TL1,#03H MOV TH1,#0FCH SETB TR0 LOOP: JBC TF0, NEXT SJMP LOOP NEXT:MOV TL1,#03H MOV TH1,#0FCH CPL P1.0 SJMP LOOP 5、设 T0 工作在方式 0,定时时间为 1ms,在 P1.0 输出,周期为 2ms 的方波,时钟晶振 为 6MHZ,请用查询方式编程。 答:t=(213—TO 初值)*机器周期 1*10-3 =(2 13—X)*12/6*106

1*10。(22-【)2*10 2"-X)=0.510 I-2-500-8192-500-7692 TLO-0CH T0=0FO阳 naD-0c阳 0TD球00, 00刚 MOV TLO.#OCH MOV TBO,#0FO班 SETB TRO LOOP:JBC TFO.NEXT SJMP LOOP EXT:OmTL0,#0C国 0NT图,0F阳 CPL PI.0 SJMP LOOP 6、用定时器0以工作方式2,产生100us定时,在PL.0输出周期为200us连续方被。 时钟品叛为6Z,请用查询方式编程。 答:(1)计算机器周期:Tr12/f0cs-12/610-2us (2)t0=2一0*T▣ 200/2*10=(2-X)210 100炸(一X》*2 I-256-50-216 H0=0E6 Tn0e008图 四 T0, 02州 0TTL0.#008l NTH0.#00g阳 SETB TRO LOOP:JBC TFO,NEXT
1*10-3 =(2 13—X)*2*106 (213—X)=0.5*103 X=213—500=8192—500=7692 TL0=0CH TH0=0F0H TMOD=00H MOV TMOD, #00H MOV TL0,#0CH MOV TH0,#0F0H SETB TR0 LOOP: JBC TF0, NEXT SJMP LOOP NEXT: MOV TL0,#0CH MOV THP,#0F0H CPL P1.0 SJMP LOOP 6、用定时器 0 以工作方式 2,产生 100us 定时,在 P1.0 输出周期为 200us 连续方波。 时钟晶振为 6MHZ,请用查询方式编程。 答:(1)计算机器周期:Tm=12/focs=12/6*106 =2us (2)to=(28—X)*Tm 200/2*10-6 =(2 8—X)*2*10-6 100=(2 8—X)*2 X=256—50=216 TH0= 0D8H TL0= 0D8H MOV TMOD, #02H MOV TL0,# 0D8H MOV TH0,# 0D8H SETB TR0 LOOP: JBC TF0, NEXT

SJMP LOOP EXT:TTD,#008图 镇WHO.#C0gH CP1.0 SJMP LOOP 五,1、己知(30D=40H,(40)=10阳。(10H)=00H,(P1)=C4H,请写出执行以下 程序段后,各有关单元的内容。 答:W0听0,30用 MOV A.RO MY RI.A MOY B.RD R1。P1 m2,P1 0m10阳,200 W30阳.10阳 2、假设三个8位无符号数相加,其中一加数在内都4M的50州,51H,52,另一个数 在内部AM的53,54H,55甜相加之后放在50附。51日.52组单元中,进位存放在53湖单元中, 睛编写程序。 答:M0N0,52出 01,55阳 MOV A.RO ADD A.RO N60。A DEC RO DEC RI MOV A.eRO ADDC A.eRL 0T0,A DEC RO DEC RI
SJMP LOOP NEXT:MOV TL0,# 0D8H MOV TH0,# 0D8H CPL P1.0 SJMP LOOP 五、1、已知(30H)=40H,(40H)=10H,(10H)=00H,(P1)=CAH,请写出执行以下 程序段后,各有关单元的内容。 答:MOV R0 , #30H MOV A, @R0 MOV R1 ,A MOV B ,@R0 MOV @R1,P1 MOV P2 ,P1 MOV 10H, #20H MOV 30H, 10H 2、假设三个 8 位无符号数相加,其中一加数在内部 RAM 的 50H,51H,52H,另一个数 在内部 RAM 的 53H,54H,55H 相加之后放在 50H,51H,52H 单元中,进位存放在 53H 单元中, 请编写程序。 答:MOV R0 ,52H MOV R1 ,55H MOV A ,@R0 ADD A,@R0 MOV @R0 ,A DEC R0 DEC R1 MOV A , @R0 ADDC A, @R1 MOV @R0 ,A DEC R0 DEC R1

MOV A eRO ADDC A.R1 N60,A 0W00阳.C 3、内存中有两个4字节无符号数相如,一个存成在3一一33开始的单元中,一个存 放在40州一43部开始的单元中,请编程求它们的和,结果放在30研一一33别中。 爷:0防2,0甜:字节长度一2 四O,30附;一个知数首地址一0 四1,#40用;另一个加数首地址→R1 CLR C :清进位位 L1:W0WA,60 :取一个如数 ADDC A.R1 ;两个加数带进位相加 D44 :十透选制调整 080,A ;存放结果 INC RO ;指向下一个字节 INC RI DJNZ R2.L1 :字节长度减1,没加完,。转L1,推续相加 RE打 :全加完,返回 4,用移位指令计算,10体X,己知X是一个8位无符号数。请编程序。 答:MO防0,DATA MOV A.RO RL A O四RI,A RL.A RL A ADD A.RI MO 0.A 5、外R42000阳单元开始存故的8个数据传送到片内50H的单元中. 答:T2,08;数据块长度一2 0NR1,50H ,数据块目的地址→R1
MOV A ,@R0 ADDC A, @R1 MOV @R0 , A MOV 00H ,C 3、内存中有两个 4 字节无符号数相加,一个存放在 30H——33H 开始的单元中,一个存 放在 40H——43H 开始的单元中,请编程求它们的和,结果放在 30H——33H 中。 答:MOV R2,#04H ;字节长度→R2 MOV R0,#30H ;一个加数首地址→R0 MOV R1,#40H ;另一个加数首地址→R1 CLR C ;清进位位 L1:MOV A,@R0 ;取一个加数 ADDC A,@R1 ;两个加数带进位相加 DAA ;十进制调整 MOV @R0,A ;存放结果 INC R0 ;指向下一个字节 INC R1 DJNZ R2,L1 ;字节长度减 l,没加完,转 L1,继续相加 RET ;全加完,返回 4、用移位指令计算,10*X,已知 X 是一个 8 位无符号数。请编程序。 答:MOV R0 ,#DATA MOV A , @R0 RL A MOV R1,A RL A RL A ADD A, R1 MOV @R0 , A 5、外 RAM2000H 单元开始存放的 8 个数据传送到片内 RAM50H 的单元中。 答: MOV R2,#08H ;数据块长度→R2 MOV R1,#50H ;数据块目的地址→R1

0PTR。2000研:数据块源地址一PTR LOOP:WOWX A.EDPTR :传送一个数据 0服1,A I成PTR :指向下一个数据 INC RI DJNZ R2,LOOP :长度减1,没传送完,转1O0P,继续传送 T ;传送完,返回 6,将1000单元内容拆开,高位送1001H单元,低位送1002州单元 答:00660阳 MOV DPTR #1000H MOVX A.eDPTR 3mB,A:(1000)-A-8 SAPA;交换 ALA,OF阳:屏蓝高位 INC DPTR 0 X OPTR,A;透1001H INC DPTR MOV A.B M.A,0F用;(1000》内容屏蔽高位 NX0TR,A1送1002 LOOP:SJMP LOOP T,0低位有一个十大进制数,把它转换成ASC码送入D, 答:0C0100细 MOY A.RO :取转换值 ANL A.=0FH 。屏蓝高4位 ADD A.=03H :计算偏移量 OCA,A+PO;查表 MOV RO.A 。存结果 SIMP ASCTAB:DB 0°,1,2,3
MOV DPTR,#2000H ;数据块源地址→DPTR LOOP:MOVX A,@DPTR ;传送一个数据 MOV @R1,A INC DPTR ;指向下一个数据 INC R1 DJNZ R2,LOOP ;长度减 1,没传送完,转 LOOP,继续传送 RET ;传送完,返回 6、将 1000H 单元内容拆开,高位送 1001H 单元,低位送 1002H 单元 答:ORG 0660H MOV DPTR ,#1000H MOVX A,@DPTR MOV B,A ;(1000)→A→B SWAP A ;交换 ANL A, #0FH ;屏蔽高位 INC DPTR MOVX @DPTR,A ;送 1001H INC DPTR MOV A,B ANL A,#0FH ;(1000)内容屏蔽高位 MOVX @DPTR,A ;送 1002H LOOP:SJMP LOOP 7、R0 低位有一个十六进制数,把它转换成 ASC 码送入 R0。 答:ORG 0100H MOV A,R0 ;取转换值 ANL A,#0FH ;屏蔽高 4 位 ADD A,#03H ;计算偏移量 MOVC A,@A+PC ; 查表 MOV R0,A ;存结果 SIMP $ ASCTAB: DB ‘0’,‘1’,‘2’,‘3’

DB 4”,5,6”,7" 00 B C”,D',E,p END
DB ‘4’,‘5’,‘6’,‘7’ DB ‘8’,‘9’,‘A’,‘B’ DB ‘C’,‘D’,‘E’,‘F’ END