1、课后思考题级习题答案思考题与习题 1一、填空1.单片机按照用途通常分为 通用型 和 专用型 。2.单片机也称为 微控制器 和 单片微型计算机 。二、简答1.什么是单片机?答:单片机也称微控制器,它是将中央处理器、程序处理器、数据处理器、输入/输出接口、定时/计数器串行口、系统总线等集成在一个半导体芯片上的微计算机,因此又称为单片微型计算机,简称为单片机。2.简述单片机的特点和应用领域。答:(1)单片机体积小,应用系统结构简单,能满足很多应用领域对硬件功能的要求。(2)单片机的可靠性高。(3)单片机的指令系统简单,易学易用。(4)单片机的发展迅速,特别是最近几年,单片机的内部结构越来越完善。3.
2、写出 AT89S51 与 AT89S52 芯片的主要区别。内部程序存储区容量不同,52 的程序存储空间为 8K,内部数据存储空间为 256B,中断源 8 个,定时器计数器有 3 个,而 51 的程序存储空间为 4K,内部数据存储空间为 128B,中断源 5 个,定时器计数器有 2 个。思考题与习题 2一、填空题1.如果(PSW)=10H, 则内部 RAM 工作寄存器区的当前寄存器是第二 组寄存器,8 个寄存器的单元地址为 10H 17H 。2.为寻址程序状态字 F0 位,可使用的地址和符号有 PSW.5 、 0D0H.5 、 F0 和 0D5H 。3.单片机复位后,(SP)= 07H ,P0P
3、3= FFH ,PC= 0000H ,PSW= 00H A= 00H 。4.AT89S51 单片机的程序存储器的寻址范围是由 PC 决定的,由于AT89S51 单片机的 PC 是 16 位的,所以最大寻址范围为 64KB 。5.写出位地址为 20H 所在的位,字节地址 24H.0 。6.写出字节地址为 20H 的单元最高位的位地址为 07H ,最低位的位地址为 00H 。7.如果晶振频率 ,则一个时钟周期为 1.66667E-7,一个机器周MHz6OSCf期为 2us。8. AT89S51 单片机共有 26 个特殊功能寄存器。9. AT89S51 单片机片外数据存储器最多可以扩展 64KB。1
4、0.如果 CPU 从片外 ROM 的 0000H 单元开始执行程序,那么 EA引脚应接 低电平。二、选择题1.PC 的值是( C )。A.当前指令前一条指令的地址 B.当前正在执行指令的地址C.下一条指令的地址 D.控制器中指令寄存器的地址2.对程序计数器 PC 的操作是( A )。A.自动进行的 B.通过传送进行C.通过加“1”指令进行的 D.通过减“1”指令进行3.在 AT89S51 单片机中 P0 口作为( D )。A.数据总线 B.地址总线C.控制总线 D.数据总线和地址总线4. 在 AT89S51 单片机中( C )。A.具有独立的专用的地址总线 B.P0 口和 P1 口作为地址总线
5、C.P0 口和 P2 口作为地址总线 D.P2 口和 P1 口作为地址总线三、简答题1.AT89S51 单片机的 EA引脚有何功能?如果使用片内 ROM,该引脚该如何处理?答: E为该引脚的第一功能,为访问程序存储器控制信号。如果使用片内 ROM,则 信号为高电平。2.什么是指令周期,机器周期和时钟周期?答:指令周期是 CPU 每取出并执行一条指令所需的全部时间;机器周期是CPU 完成一个基本操作所需要的时间。时钟周期是指计算机主时钟的周期时间。3.堆栈的作用是什么?在程序设计时,为什么要对堆栈指针 SP 重新赋值?答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现
6、场;堆栈指针 SP 复位后指向 07H 单元,00H-1FH 为工作寄存器区,20H-2FH 为位寻址区,这些单元有其他功能,因此在程序设计时,需要对 SP 重新赋值。4.单片机复位有几种方法?答:1、上电复位 2、按键复位 3、看门狗复位 4、软件复位5. AT89S51 单片机运行出错或程序陷入死循环时,如何摆脱困境?可以采用复位键进行复位,使单片机初始化,也可以在软件中使用看门狗。6. AT89S51 单片机 P0P3 口的驱动能力如何?如果想获得较大的驱动能力,采用低电平输出还是高电平输出?答:P0 口每位可驱动 8 个 LSTTL 输入,而 P1.P2.P3 口的每一位的驱动能力,只
7、有 P0 口的一半。当 P0 口的某位为高电平时,可提供 400A 的电流;当P0 口的某位为低电平(0.45V)时,可提供 3.2mA 的灌电流,如低电平允许提高,灌电流可相应加大。所以,任何一个口要想获得较大的驱动能力,只能用低电平输出。7. AT89S51 单片机内部 RAM 低 128 单元划分为几个部分?每部分有什么特点?答:工作寄存器区、位寻址区、用户 RAM 区。每部分特点如下:00H-1FH 为工作寄存器区,共 32 个单元,被分为 4 组,每组有八个寄存器(R0-R7)。任意时刻,CPU 只能使用一组寄存器,当前正在使用的寄存器组被称为当前寄存器。在程序运行过程中如果不使用的
8、寄存器也可以作为 RAM 使用。20H-2FH 为位寻址区,共 16 个单元。这 16 个单元可以作为字节单元使用,同时这 16 个单元的每一位也可以单独使用,即位寻址。30H-7FH 为用户 RAM 区,用于存放各种数据、中间结果,起到数据缓冲的作用。在实际使用中,常需要把堆栈设在用户 RAM 中。8. AT89S51 单片机的片内都包含了哪些功能部件?各个功能部件主要的功能是什么?答: 1 个微处理器(CPU);128 个数据存储器(RAM)单元;4KB Flash 程序存储器;4 个 8 位可编程并行 I/O 口;1 个全双工串行口;2 个 16 位定时器/计数器;1 个看门狗定时器;1
9、 个中断系统,5 个中断源,2 个优先级;26 个特殊功能寄存器(SFR);1 个看门狗定时器。9.程序存储器的空间中,有 5 个特殊单元,分别对应 AT89S51 单片机 5 个中断源的入口地址,写出这些单元的地址及对应的中断源。中断源 中断入口地址外部中断 0 0003H定时/计数器 0 溢出中断 000BH外部中断 1 0013H定时/计数器 1 溢出中断 001BH串行中断 0023H10. AT89S51 单片机有几个存储器空间?画出它的存储器结构图。AT89S51 单片机的有 3 个存储器空间,即片内片外统一编制的程序存储器,片内数据存储器和片外数据存储器。11.什么是空闲方式?怎
10、样进入和退出空闲方式?答:空闲方式:CPU 处于休眠的状态,而片内所有其他外围设备保持工作状态,即振荡器保持工作,时钟脉冲继续输出到中断、串行口、定时器等功能部件,使它们继续工作,但时钟脉冲不再送到 CPU,因而 CPU 停止工作。进入:每当 CPU 执行一条将 IDL 位置 1 的指令,就使它进入空闲方式,CPU 即停止工作,进入空闲方式。退出:两种:一是被允许的中断源请求中断时,由内部的硬件电路清 0 IDL 位,终止空闲方式;另一种方式是硬件复位。RST 引脚上的复位信号直接将IDL 为清 0,从而使单片机退出空闲方式。12.什么是掉电方式?怎样进入和退出掉电方式?答:掉电:振荡器停止工
11、作,单片机内部所有的功能部件全部停止工作。进入:CPU 执行一条将 PD 位置 1 的指令,就使单片机进入掉电方式。退出:唯一的方法是硬件复位,复位后单片机内部特殊功能寄存器的内容被初始化,PCON=0,从而退出掉电方式。13.AT89S51 单片机的控制信号引脚有哪些?说出其功能。答: RST(9 脚):复位信号输入端,高电平有效。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。ALE (30 脚):地址锁存控制信号。当访问外部程序存储器或数据存储器时,ALE 输出脉冲用于锁存低 8 位地址。(29 脚):程序储存允许输出端,是外部程序存储器的读选通信号,PSEN低电平
12、有效。当 AT89S51 从外部程序存储器取指令时,每个机器周期两次有效,即输出两个脉冲。当访问外部数据存储器,不会出现两次有效的信号。 (31 脚): 为该引脚的第一功能,为访问程序存储器控制信号。当AEA信号为低电平时,对 ROM 的读操作限定在外部程序存储器;而当 信号为E EA高电平时,则对 ROM 的读操作是从内部程序存储器开始,并可延续至外部程序存储器。4、设计一个电路,使单片机的 P0 口能驱动 8 只发光二极管。思考题与习题 3思考题与习题 3一、 填空1.假定外部数据存储器 3000H 单元的内容为 50H,执行下列指令后,累加器 A 中的内容为 50H 。 MOV DPTR
13、,#3000HMOVX A,DPTR2.假定累加器 A 中的内容为 30H,DPTR 中的内容为 2000H,执行指令:MOVC A,A+DPTR后,把程序存储器 2030H 单元的内容送入累加器 A 中。3.已知(30H)=21H ,(31H)=04H,说明下列程序的功能 ,执行后(30H)= 04H ,(31H)= 21H 。PUSH 30H PUSH 31H POP 30H POP 31H 4.已知程序执行前,在 AT89S51 单片机片内 RAM 中,(A )=33H,(R0 )=28H,( 28H)=0BCH,写出执行如下程序后,(A) = 63H 。ANL A,#60HORL 28
14、H,AXRL A,R0CPL A5.对程序存储器的读操作使用的指令 MOVC 指令 。6.对外部数据存储器的读操作使用的指令 MOVX 指令 。7.执行如下三条指令后,20H 单元的内容是 0FH M O V R 0,20H M O V 40H,0 F H M O V R 0,40H 二、判断判断以下指令的正误。(1) MOV R1,R2 (2)MOV 20H,R3 (3)DEC DPTR (4)INC DPTR (5)MOVX A,R1 (6)MOVC A,DPTR (7)PUSH DPTR (8)CLR R1 (9)MOV 20H,30H (10)MOV F0,C (11) CPL R7
15、(12)RC A 三、简答1.MCS-51 共有哪几种寻址方式?试举例说明。(1)寄存器寻址方式 MOV A,R2 (2)直接寻址方式 MOV A,30H(3)寄存器间接寻址方式 MOV A,R0 (4)立即寻址 MOV A,#20H (5)变址寻址 MOVC A,A+ DPTR(6)相对寻址 SJMP rel(7)位寻址 MOV C, 0D5H;2.MCS-51 指令按功能可以分为哪几类?每类指令的作用是什么?数据传送类指令(28 条);数据传送是指将源地址单元中的数据传送到目的地址单元中,且源地址单元中的数据保持不变,或者源地址单元中的数据与目的地址单元中的数据互换。算术运算类指令(24
16、条);这类指令中,大多数都要用累加器 A 来存放源操作数,另一个操作数是工作寄存器 Rn、片内 RAM 单元或立即数。执行指令时,CPU 总是将源操作数与累加器 A 中的操作数进行相应操作,然后将结果保留在累加器 A 中,同时会影响程序状态字 PSW 中的溢出标志 OV、进位标志CY、辅助进位标志 AC 和奇偶标志位 P。逻辑运算及移位类指令(25 条);在这类指令中,仅当目的操作数为累加器 A 时对奇偶标志位 P 有影响,其余指令均不影响 PSW 的状态。控制转移类指令(17 条);位操作类指令(17 条)。MCS-51 系列单片机的硬件结构中有一个位处理器,对位地址空间具有丰富的位操作指令
17、。由于位操作数是“位” ,取值只能是 0 或 1,故又称为布尔操作指令。3.访问 SFR,可使用哪些寻址方式?寄存器寻址,直接寻址,位寻址4.执行指令:MOV A,R0 ;在程序状态字 PSW 中 RS1=0,RS0=0; RS1=1,RS0=0 的两种情况下,上述指令执行结果有何不同?RS1=0,RS0=0 时,是将内部 RAM 00H 单元中的内容传送给累加器 A, RS1=1,RS0=0 时,是将内部 RAM 10H 单元中的内容传送给累加器 A4.SJMP(短转移)指令和 LJMP(长对转移)指令的目的地址的范围各是多少?SJMP 指令的目的地址范围是-128B+127B;LJMP 指
18、令的目的地址范围是 64KB。5.JB 指令和 JBC 指令的区别是什么?6.答:这类指令是判断直接寻址位是否为“1” 或为“0”,当条件满足时转移,否则继续顺序执行。而 JBC 指令当条件满足时,指令执行后同时将该位清“0” 。7.指出下列每条指令的寻址方式。(1)MOV A,40H ;直接寻址(2)MOV 30H,#00H ;立即寻址(3)SJMP LOOP ;相对寻址(4)MOVC A,A+DPTR ;变址寻址(5)MOVX A,R0 ;寄存器寻址(6)MOV C,20H ;位寻址(7)MOV 20H,R3 ;寄存器寻址(8)MOV 31H,20H ;直接寻址8.已知程序执行前,在 AT
19、89S51 单片机片内 RAM (10H)=20H,(20H)=33H,(33H)=45H,(45H)=56H,(P1 )=30H 。分析下列程序按顺序执行每条指令后的结果。MOV A,33H ;(A)=45HMOV R1,A ;(R1)=45HMOV R1,#0FFH ;(45H)0FFHMOV 45H,33H ;(45H)=45HMOV R0,#10H ;(R0)=10HMOV A,R0 ;(A)=20HMOV P1,#0FFH ;(P1)=0FFHMOV A ,P1; ;(P1 ) =30HMOV 20H,A ;(20H)=30H9.已知程序执行前,在 AT89S51 单片机片内 RAM
20、 中,(A)=85H ,(R0)=20H, (20H)=0AFH,(Cy)=1 ,(21H)=0FFH。写出下列指令独立执行后寄存器和存储单元的内容,若该指令影响标志位,写出 CY、AC 、OV 和 P 的值。ADD A,R0 ;CY=1,AC=1,OV=1,P=1 ,(A)=34HADDC A, 21H ; CY=1,AC=1, P=1,OV=0 ,(A )=85HSWAP A ; (A)=58H ,P=1SUBB A,#50H ; CY=0,AC=0, P=1,OV=1 ,(A)=34HDEC R0 ;R0=1FHXCHD A,R0 ;(A)=8FH,(20H)=0A5H ,P=110.
21、写出完成如下要求的指令,但是不能改变未涉及位的内容。(1)把 ACC.3, ACC.4,ACC.5 和 ACC.6 置“1”。ORL A,#01111000B(2)把累加器 A 的中间 4 位清“0”。ANL A,#11000011B(3)将内部数据存储器 10H 单元中的数据的高 2 位,低 3 位清“0”。ANL 10H,#00111000B(4)将内部数据存储器 50H 单元中的数据所有位取反。XRL 50H,#11111111B(5)将内部数据存储器 40H 单元中的数据高 4 位取反。XRL 40H,#11110000B(6)将内部数据存储器 10H 单元中的数据低 3 位置 “1”
22、。ORL 10H,#00000111B11.分析执行下列指令序列所实现的逻辑运算式MOV C,P1.0 ANL C,/P1.1 MOV 20H, CMOV C,/P1.0 ANL C, P1.1 ORL C, 20HMOV P3.0,C P3.0=(P1.0/P1.1)(/P1.0P1.1) 思考题与习题 4一、简答题1.什么是汇编语言源程序、汇编、汇编程序?(1)使用汇编语言编写的程序称为汇编语言源程序。(2)汇编语言程序不能直接在计算机上运行,需要将它翻译成机器语言程序,也就是目标代码程序,这个翻译过程称为汇编。(3)完成汇编任务的程序成为汇编程序。2.什么叫伪指令,有什么作用?所谓伪指令
23、是 告诉汇编程序应该如何完成汇编工作,只有在汇编前的源程序中才有伪指令,而在汇编后没有机器代码产生。伪指令具有控制汇编程序的输入输出、定义数据和符号、条件汇编、分配存储空间等功能。二、编程题1. 在外部 RAM3000H 单元中有一个 8 位二进制数,试编程将该数的低四位屏蔽掉,并送给外部 RAM3001H 单元中。MOV DPTR,#3000HMOVX A,DPTRANL A,#0F0HINC DPTRMOVX DPTR,A 2. 已知 ,试编写延时 20ms 和 1s 的程序MHz12OSCfDELAY20MS: MOV R6,#100 ;延时 20ms D1: MOV R7,#98nop
24、D2: DJNZ R7,D2DJNZ R6,D1RETENDDELAY1S: MOV R7,#250DEL1: MOV R6,#200DEL2: MOV R5,#98DEL3: DJNZ R5,DEL3NOPDJNZ R6,DEL2DJNZ R7,DEL1RETEND3. 用查表的方法求 06 之间的整数的立方。已知整数存在内部 RAM30H 单元中,查表结果回存 30H 单元。MOV DPTR,#tabMOV A,30HMOVC A,A+DPTRMOV 30H,ARetORG 1000HTAB: DB 00H,01H,08H,1BH,40H,7DH,0D8H4. 若有 3 个无符号数 x、
25、y、z 分别在内部存储器 40H、41H、42H 单元中,试编写一个程序,实现 x y 时,xz 的结果存放在 43H、44H 单元中;当xy 时,yz 的结果存放入 43H、44H 单元中。MOV A,40HCLR CSUBB A,41H ;相减比较大小JC L1 MOV A,40H ;x=ySJMP L2L1:MOV A,41H ;x sbit P1_0=P12; /已仿真调试成功int i;void main()while(1)TMOD=0x05;/T0 计数,方式一TH0=(65536-500)/256;/计数TL0=(65536-500)%256;TR0=1;P1_0=0;while
26、(!TF0);/等待计数溢出TF0=0; /溢出标志复位P1_0=1;TMOD=0x01;/T0 定时,方式一TH0=(65536-10000)/256;/定时 10msTL0=(65536-10000)%256;TR0=1; /启动 T0while(!TF0);/等待定时时间溢出TF0=0; /溢出标志复位P1_0=0;3.已知 12MHz,采用查询方式编写 24 小时制的模拟电子钟程序,秒、OSCf分钟、小时分别存放于 R2、R3、R4 中。ORG 0000HLJMP MAINORG 0030HMAIN: MOV TMOD , #01HMOV TH0 , #3CHMOV TL0 , #0B
27、0HMOV R1 , #20 SETB TR0MOV R2 , #00H ; 秒MOV R3 , #00H ; 分MOV R4 , #00H ; 时MOV A , #00HLOOP: MOV DPTR,#0300H ;查 7 段码ADD A , R4DA AMOV 40H , AANL A , #0F0HMOVC A,A+DPTRMOV P0 , A ; 送 P0 显示MOV P1 , #20H ; 位选LCALL DELAY20MSMOV A , 40HANL A , #0FHMOVC A,A+DPTRMOV P0 , A ; 送 P0 显示MOV P1 , #10H ; 位选LCALL D
28、ELAY20MSADD A , R3DA AMOV 30H , AANL A , #0F0HMOVC A,A+DPTRMOV P0 , A ; 送 P0 显示MOV P1 , #08H ; 位选LCALL DELAY20MSMOV A , 30HANL A , #0FHMOVC A,A+DPTRMOV P0 , A ; 送 P0 显示MOV P1 , #04H ; 位选LCALL DELAY20MSADD A , R4DA AMOV 20H , AANL A , #0F0HMOVC A,A+DPTRMOV P0 , A ; 送 P0 显示MOV P1 , #02H ; 位选LCALL DELA
29、Y20MSMOV A , 20HANL A , #0FHMOVC A,A+DPTRMOV P0 , A ; 送 P0 显示MOV P1 , #01H ; 位选LCALL DELAY20MSJNB TF0 , LOOP ; 定时到MOV TH0 , #3CHMOV TL0 , #0B0HCLR TF0DJNZ R1 , LOOPMOV R1 , #20INC R2CJNE R2 , #60 , LOOPMOV R2 , #00HINC R3CJNE R3 , #60 , LOOPMOV R3 , #00HINC R4CJNE R4 , #24 , LOOPMOV R4 , #00HLJMP LO
30、OPDELAY20MS:MOV R7,#5D0: MOV R6,#200D1: NOPNOPNOPDJNZ R6,D1DJNZ R7,D0RETORG 0300HTAB2: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ; 共阴DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HEND思考题与习题 6一、填空1. LED 数码管的使用与发光二极管相同,根据其材料不同正向压降一般为 5V,额定电流为 5 m A,最大电流为 20 m A。2.在单片机系统中,常用的显示器有 LED 发光管、LED 数码管和 LED 液晶屏 等显示方式。3.键盘扫描控制方式可
31、分为随机方式 控制、中断扫描控制和 定时扫描控制方式。4.LED 显示器的静态驱动显示的优点是: 显示稳定,在 LED 导通、电流已定的情况下数码管的亮度高。控制系统在运行过程中,仅仅在需要更新显示内容时,CPU 才执行一次显示更新子程序,这样大大节省了 CPU 的时间,提高了 CPU 的工作效率 ;缺点是: 位数较多时,所需的 I/O 接口较多,硬件开销太大 。动态驱动显示的优点是: 节省硬件资源,成本较低 ;缺点是: 在控制运行过程中,为了保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序 。5.矩阵键盘的识别有 扫描法 和 线反转法 两种方式。二、判断题1.为了消除按键的抖动,
32、常用的方法有硬件和软件两种方法。( 对 )2.LED 显示器有两种显示方式:静态方式和动态方式。( 对 ) 3.LED 数码管显示器有共阴极和共阳极两种。( 对 )三、简答题1.为什么要消除按键的机械抖动?消除按键抖动的方法有几种?答:抖动现象会引起单片机对一次按键操作进行多次处理。去抖动的方法有硬件和软件两种方法。2.说明矩阵式键盘按键按下的识别原理。答: 判别键盘上有无按键闭合。由 AT89S51 单片机向所有行线发出低电平信号,如果该行线所连接的键没有按下,则连线所连接的输出端口得到的是全 1 信号;如果有键按下,则得到的是非全 1 信号。 判别键号。方法是先扫描第 0 行,即输出 01
33、11(第 0 行为 0,其余 3 行为 1),然后读入列信号,判断是否为全 1。若是全 1,则表明当前行没有键按下,行输出值右移,即输出 1011(第 1 行为 0,其余 3 行为 1),再次读入列信号,判断是否为全 1。如此逐行扫描下去,直到读入的列信号不为全 1 为止。根据此时的行号和列号即可计算出当前闭合的键号。 键码计算如图 6-12 所示,键号是按从左到右从上到下的顺序编排的,各行的首号依次是 00H、08H、10H、18H,如列号按 07 顺序排列,则键码的计算公式为:键值=为低电平行的首键号为低电平的列号3.键盘有哪三种工作方式,他们各自的工作原理及特点是什么?答:随机方式、中断
34、扫描方式和定时扫描方式三种(1)随机方式是利用 CPU 的空闲时间,调用键盘扫描子程序,响应键盘的输入请求。(2)中断扫描方式在图 6-10 中,当按键按下时,列线中必有一个为低电平,经与门输出低电平,向单片机引脚发出中断请求,CPU 执行中断服务程序,判断闭合的键号,并进行相应的处理,这种方式可大大提高 CPU 的效率。(3)定时扫描方式利用单片机内部定时器,每隔一定时间 CPU 执行一次键盘扫描程序,并在有键闭合时转入该键的功能处理程序。定时扫描方式要求扫描间隔时间不能太长,否则有可能漏掉按键输入,一般取几十毫秒。4.说明 LCD 显示器的工作原理,画出 AT89S51 单片机与 LCD1
35、602 的接口电路连接图。LCD 显示器的工作原理:字符型 LCD 液晶显示器是专用于显示字母、数字、符号等的点阵式 LCD。它们多与 HD44780 控制驱动器集成在一起,构成字符型 LCD 液晶显示模块,用 LCM 表示,有 161、162、202、402 等产品。AT89S51 单片机与 LCD1602 的接口电路如图 6-6 所示。四、设计题1.设计将字符“AB”通过液晶模块 LCD1602 显示在屏幕的左边。org 0000hljmp Startorg 000bhljmp L1org 0100hStart:MOV TMOD,#00HMOV TH0,#00HMOV TL0,#00HMO
36、V IE,#82HSETB TR0MOV R5,#50HMOV SP,#60HLCALL NEXT MOV A,#80H ACALL WHITEMOV A,#41H LCALL WDRMOV A,#81H ACALL WHITEMOV A,#42H LCALL WDRSJMP $L1:MOV TH0,#00H MOV TL0,#00HDJNZ R5,L2MOV R5,#50HL2:RETINEXT:MOV A,#38H LCALL WHITEMOV A,#0EH LCALL WHITEMOV A,#06H LCALL WHITERETWHITE:LCALL L3 CLR P3.5 CLR P3
37、.0 CLR P3.1 SETB P3.5MOV P1,A CLR P3.5RETWDR: LCALL L3 CLR P3.5 SETB P3.0 CLR P3.1 SETB P3.5MOV P1,A CLR P3.5RETL3: PUSH ACC Loop:CLR P3.0SETB P3.1 CLR P3.5SETB P3.5MOV A,P1 CLR P3.5JB ACC.7,LOOP POP ACCACALL DELAYRETDELAY:MOV R6,#255 D1:MOV R7,#255D2:DJNZ R7,D2DJNZ R6,D1RET END2.设计一个 AT89S51 外扩键盘和显
38、示电路,要求扩展 8 个键,4 位 LED 显示器。思考题与习题 7一、填空1.单片机程序存储器的主要功能是存储 程序 和_常数_。2.AT89S51 单片机程序存储器的寻址范围是由程序计数器 PC 的位数所决定的,因为 AT89S51 的 PC 是_16 位_的,因此其寻址空间为 _64KB_,地址范围是从 0000H 到_FFFFH_ 3.13根地址线可选_8KB_个存储单元,64KB存储单元需要_16_根地址线。4.在 AT89S51 单片机中,使用 P2、P0 口传送_地址_信号,且使用 P0 口传送_数据_信号,这里采用的是_分时复用_技术。5. 8255A 能为数据 I/O 操作提
39、供 A、B、C 3 个 8 位口,其中 A 口和 B 口能作为数据口使用,而 C 口则既可作为_数据线_使用,又可作为_信号线_使用。二、判断题1.AT89S51 单片机片的数据存储器与扩展 I/O 口是分别独立编址。( 错 )2.单片机系统扩展时使用锁存器是用于锁存低 8 位地址。( 对 ) 3.使用 8255 可以扩展的 I/O 口线是 32 根。( 错 )4.使用线选法扩展存储器不会使地址空间造成不连续的现象。( 错 )三、简答题1.为什么扩展外部程序存储器时,低 8 位的地址需要锁存?由于 P0 口在扩展存储器时既做地址总线的低 8 位,又做数据总线,为了将他们分离出来,需要在单片机外
40、部增加地址锁存器,以存低 8 位地址一般可采用 74LS373。2.访问外部 RAM 和内部 RAM 时,所用指令有什么不同?分别写出读片内RAM30H 单元和写片外 RAM30H 单元的程序。访问内部 RAM 时用 MOV,访问外部 RAM 时用 MOVX;读片内 RAM30H 单元: MOV A,30H写片外 RAM30H 单元: MOV R0,#30HMOVX R0,A3.为什么要进行地址空间的分配?何谓线选法和译码法?各有何优、缺点?为了使一个存储单元唯一的对应一个地址;线选法:线选法是将高位地址线直接连到存储器芯片的片选端,根据高位地址的高低电平来进行存储器芯片的选择,芯片低电平有效
41、,为了不出现寻址错误,要求在同一时刻,只允许一根为低电平,其余均为高电平;优缺点:线选法的优点是连接简单,缺点是芯片的地址空间相互之间可能不连续,致使存储空间的不到充分利用,扩充储容量受限,因此线选法适用于扩展存储容量较小的场合。译码法:所谓译码法就是使用译码器对系统的高位地址进行译码,以其译码输出作为存储器的片选信号,能有效利用存储空间,适用于大容量、多芯片存储器扩展;优缺点:硬件电路稍复杂,需使用译码器,但可充分利用存储空间,全译码时还可避免地址重叠现象,译码法的另一个优点是,若译码器输出端还留有剩余端线未使用时,便于继续扩展存储器或 I/O 接口电路。4.什么是 8255A 的控制字?控
42、制字的主要内容是什么? 8255A 是可编程芯片接口,以控制字形式对其工作方式以及 C 口各位状态进行设置,为此,共有两种控制字,即工作方式控制字和 C 口位置/复位控制字。1)工作方式控制字:工作方式控制字用与确定各口的的工作方式及数据传送方向,D7 位为工作方式控制字标志位,”1”有效;D6D3 为 A 组(包括 A 口和 C 口高 4 位)工作方式;D2D0 为 B 组(包括 B 口和 C 口低 4 位)工作方式2)C 口位置/复位控制字:8255A 的 C 口具有位控功能,即允许 CPU 用输出指令单独对 C 口的某一位写“1”或“0” ,C 口的位控字的格式。这是通过向8255A 的
43、控制寄存器写入一个位控字来实现的。最高位 D7 是 C 口置位/ 复位控制字的特征位,必须为“0” ;D0 位决 定了是置“1”还是置“0” 操作;D3 D1位决定了 对 C 口中的哪一位进行操作。5.8255A 的“方式控制字 ”和“C 口按位置复位控制字”都可以写入 8255A 的同一控制寄存器,8255A 是如何来区分这两个控制字的?根据控制字的最高位 D7 位来区分,若 D7 位为 0,则为 C 口置/复位控制字;若 D7 位为 1,则为工作方式控制字。四、设计题使用AT89S51芯片外扩1片SRAM6264 ,且6264的首地址为 8000H。要求:(1)确定6264芯片的末地址。(
44、2)画出该应用系统的硬件连线图。(3)编程,将扩展RAM中800080FFH单元中的内容移至8100H 开始的单元中1)末地址为9FFFH(注:无关位为0)2)系统硬件连线图如图:3)参考程序:MOV DPTR,#8000HMOV R7,#00HL1: MOV DPH,#80HMOVX A,DPTRMOV DPH,#81HMOVX DPTR,AINC DPLDJNZ R7,L1SJMP $A8D7 D7D6 D6D5 D5D4 D4D3 D3D2 D2D1 D1D0 D0 A0 A0A1 A1A2 A2A3 A3A4 A4A5 A5A6 A6A7 A7A8A9A10A1A12A9A10A1A1
45、2D0D1D2D3D4D5D6D7D03 Q02D14 Q15D27 Q26D38 Q39D413 Q412D514 Q515D617 Q616D718 Q719OE1LE1U274LS373XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.
46、7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51A010A19A28A37A46A55A64A73A825A924A1021A123A122CE20CS26WE27OE2D01D112D213D315D416D517D618D719U36264U4NOT思考题与习题 8一、填空1.按照串行数据的同步方式,串行通信可以分为 同步通信 和 异步通信 两类。2.串行通信按照数据传送方向可分为三种制式: 单工方式 、 半双工方式 和
47、 全双工方式 。3.帧格式为 1 个起始位,9 个数据位和 1 个停止位的异步串行通讯方式是方式 2 或方式 3 。4.AT89S51 单片机串行接口有 4 种工作方式,由特殊功能寄存器 SCON 中的 SM0 、 SM1 确定。5. AT89S51 单片机有一个 全双工 异步串行口。6.串行通信对波特率的要求是通信双方的波特率必须 相同 。7.多机通信时,主机向从机发送信息分地址帧和数据帧两类,以第 9 位可编程的 TB8 作区分标志。TB8=0,表示 发送的是数据帧 ;TB8=1,表示 发送的是地址帧 。8. AT89S51 单片机发送数据后将标志位 TI 置 1。9.多机通信开始时,主机
48、首先发送地址,各从机校对主机发送的地址与本机地址是否相符,若相符,则置 RI=1 ,从机将 SM2 清零。二、判断题1. 进行多机通信,AT89S51 单片机串行接口的工作方式应为方式 1。 ( 错 )2. AT89S51 单片机的串行口是全双工的。( 对 )3. AT89S51 单片机上电复位时,SBUF=00H。 ( 错 ) 4.串行通信接收到的第 9 位数据送 SCON 寄存器的 RB8 中保存。( 对 )5.串行口工作于方式 0 的波特率是可变的。( 错 )6. 串行口工作于方式 3 的波特率是可变的,通常使用定时器 T0 工作于方式 1 实现。( 错 )三、选择题1. AT89S51 单片机用串行扩展并行 I/O 口时,串行口工作方式选择(