绪 论 1.第一台计算机的问世有何意义? 答: 第一台电子数字计算机ENIAC问世,标志着计算机时代的到来。与现代的计算机相比,ENIAC有许多不足,但它的问世开创了计算机科学技术的新纪元,对人类的生产和生活方式产生了巨大的影响。 2.计算机由哪几部分组成? 答: 由运算器、控制器、存储器、输入设备和输出设备组成,运算器与控制器合称为CPU。 3.微型计算机由哪几部分构成? 答: 微型计算机由微处理器、存储器和I/O接口电路构成。各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。 4.微处理器与微型计算机有何区别? 答: 微处理器集成了运算器和控制器(即CPU);而微型计算机包含微处理器、存储器和I/O接口电路等。 5.什么叫单片机?其主要特点有哪些? 答: 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。单片机主要特点有:控制性能和可靠性高;体积小、价格低、易于产品化;具有良好的性能价格比。。 6.微型计算机有哪些应用形式?各适于什么场合? 答: 微型计算机有三种应用形式:多板机(系统机)、单板机和单片机。 多板机,通常作为办公或家庭的事务处理及科学计算,属于通用计算机。 单板机,I/O设备简单,软件资源少,使用不方便。早期主要用于微型计算机原理的教学及简单的测控系统,现在已很少使用。 单片机,单片机体积小、价格低、可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。目前,单片机应用技术已经成为电子应用系统设计的最为常用技术手段。 7.当前单片机的主要产品有哪些?各有何特点? 答: 多年来的应用实践已经证明,80C51的系统结构合理、技术成熟。因此,许多单片机芯片生产厂商倾力于提高80C51单片机产品的综合功能,从而形成了80C51的主流产品地位,近年来推出的与80C51兼容的主要产品有: ? ATMEL公司融入Flash存储器技术推出的AT89系列单片机; ? Philips公司推出的80C51、80C552系列高性能单片机; ? 华邦公司推出的 W78C51、W77C51系列高速低价单片机; ? ADI公司推出的ADμC8xx系列高精度ADC单片机; ? LG公司推出的GMS90/97系列低压高速单片机; ? Maxim公司推出的DS89C420高速(50MIPS)单片机; ? Cygnal公司推出的C8051F系列高速SOC单片机等。 8.简述单片机的开发过程。 答: 系统需求分析,硬件方案设计,软件编程,仿真调试,实际运行。 9.单片机应用系统开发方法有哪些新方法? 答: 在系统编程(ISP)技术,在应用编程(IAP)技术。 章2 80C51的结构和原理 1.80C51单片机在功能上、工艺上、程序存储器的配置上有哪些种类? 答: 功能上分为基本型和增强型; 工艺上分为HMOS工艺和CHMOS工艺; 在片内程序存储器的配置上有掩膜ROM、EPROM和Flash、无片内程序存储器形式。 2. 80C51单片机的存储器的组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使用上有何特点? 答: 采用哈佛结构,在物理上设计成程序存储器和数据存储器两个独立的空间;80C51基本型单片机片内程序存储器为4KB,地址范围是0000H-0FFFH,用于存放程序或常数;片内数据存储器为128字节RAM,地址范围是00H-7FH,用于存放运算的中间结果、暂存数据和数据缓冲;另外在80H-FFH还配有21个SFR。 3.80C51单片机的P0~P3口在结构上有何不同?在使用上有何特点? 答: 作为通用I/O口时,P0、P1、P2和P3都是准双向口。 P0可以作为地址/数据总线,此时是一个真正的双向口;P2口可以作为地址线的高8位;P3口是双功能口,每条口线还具有不同的第二功能。 另外,P0口的驱动能力为8个TTL负载,而其它口仅可驱动4个TTL负载。 4.如果80C51单片机晶振频率分别为6 MHz、11.0592 MHz、12MHz时,机器周期分别为多少? 答: 机器周期分别为2μs,1.085μs,1μs。 5.80C51单片机复位后的状态如何?复位方法有几种? 答: 复位后,PC内容为0000H,P0口~P3口内容为FFH,SP内容为07H,SBUF内容不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。复位方法一种是上电复位,另一种是上电与按键均有效的复位。 6.80C51单片机的片内、片外存储器如何选择? 答: 80C51的EA引脚为访问片内、片外程序存储器的选择端。访问片内、片外数据存储器需要采用不同的指令加以区分。 7.80C51单片机的PSW寄存器各位标志的意义如何? 答: CY:进位、借位标志。有进位、借位时 CY=1,否则CY=0; AC:辅助进位、借位标志(高半字节与低半字节间的进位或借位); F0:用户标志位,由用户自己定义; RS1、RS0:当前工作寄存器组选择位; OV:溢出标志位。有溢出时OV=1,否则OV=0; P:奇偶标志位。存于ACC中的运算结果有奇数个1时P=1,否则P=0。 8. 80C51单片机的当前工作寄存器组如何选择? 答: 当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器PSW的RS1、RS0 来决定。 9.80C51单片机的控制总线信号有哪些?各信号的作用如何? 答: RST/VPD:复位信号输入引脚/备用电源输入引脚;ALE/PROG:地址锁存允许信号输出引脚/编程脉冲输入引脚;EA/VPP:内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚;PSEN:外部程序存储器选通信号输出引脚。 10.80C51单片机的程序存储器低端的几个特殊单元的用途如何? 答: 0000H:单片机复位入口地址;0003H:外部中断0的中断服务程序入口地址;000BH:定时/计数器0溢出中断服务程序入口地址;0013H:外部中断1的中断服务程序入口地址;001BH:定时/计数器1溢出中断服务程序入口地址;0023H:串行口的中断服务程序入口地址。 章3 80C51的指令系统 1.80C51系列单片机的指令系统有何特点? 答: 执行时间短。1个机器周期指令有64条,2个机器周期指令有45条,而4个机器周期指令仅有2条(即乘法和除法指令); 指令编码字节少。单字节的指令有49条,双字节的指令有45条,三字节的指令仅有17条; 位操作指令丰富。这是80C51单片机面向控制特点的重要保证。 2.80C51单片机有哪几种寻址方式?各寻址方式所对应的寄存器或存储器空间如何? 答: 80C51单片机的寻址方式有七种。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址。 这些寻址方式所对应的寄存器和存储空间如下表所示。 序寻址方寄存器或存储空间 号 式 寄存器R0~R7,A、AB、DPTR1 寄存器寻址 和C(布尔累加器) 直接寻片内RAM低128字节、SFR 2 址 片内RAM(@R0,@R1,SP) 寄存器片外RAM(@R0,@R1,3 间接寻@DPTR) 址 ROM 4 立即寻址 ROM(@A+DPTR,@A+PC) 5 变址寻址 ROM(PC当前值的+127~-6 相对寻址 128字节) 可寻址位(内部RAM20H~2FH7 位寻址 单元的位和部分SFR的位) 3.访问特殊功能寄存器SFR可以采用哪些寻址方式? 答: 直接寻址和位寻址方式。 4.访问内部RAM单元可以采用哪些寻址方式? 答: 直接寻址、寄存器间接寻址和位寻址方式。 5.访问外部RAM单元可以采用哪些寻址方式? 答: 寄存器间接寻址。 6.访问外部程序存储器可以采用哪些寻址方式? 答: 立即寻址、变址寻址和相对寻址方式。 7.为什么说布尔处理功能是80C51单片机的重要特点? 答: 单片机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成了片内的布尔功能系统,它可对位(bit)变量进行布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。在实现位操作时,借用了程序状态标志器(PSW)中的进位标志Cy作为位操作的“累加器”。 8.对于80C52单片机内部RAM还存在高128字节,应采用何种方式访问? 答: 寄存器间接寻址方式。 9.试根据指令编码表写出下列指令的机器码。 (1)MOV A,#88H----------------74H, 88H (2)MOV R3,50H----------------ABH,50H (3)MOV P1,#55H----------75H,90H,55H (4)ADD A,@R1---------------------27H (5)SETB 12H----------------------D2H,12H 10.完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。 (1)将R0的内容传送到R1; (2)内部RAM单元60H的内容传送到寄存器R2; (3)外部RAM单元1000H的内容传送到内部RAM单元60H; (4)外部RAM单元1000H的内容传送到寄存器R2; (5)外部RAM单元1000H的内容传送到外部RAM单元2000H。 答: (1)MOV A,R0 MOV R1,A (2)MOV R2,60H (3)MOV DPTR,#1000H MOVX A,@DPTR MOV 60H,A (4)MOV DPTR,#1000H MOVX A,@DPTR MOV R2,A (5)MOV DPTR,#1000H MOVX A,@DPTR MOV DPTR,#2000H MOVX @DPTR, A 11.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段后上述各单元内容的变化。 MOV A,@R1 MOV @R1,40H MOV 40H,A MOV R1,#7FH 答: (R1)=7FH (A)=60H (30H)=08H (40H)=60H 12.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。 (1)MOV A,@R0 (2)ANL 40H,#0FH (3)ADD A,R4 (4)SWAP A (5)DEC @R1 (6)XCHD A,@R1 答: (1)(A)=2CH (2)(40H)=0CH (3)(A)=22H,(CY)=1,(AC)=1,(OV)=0 (4)(A)=8EH (5)(20H)=0EH,P=1 (6)(A)=EFH,(20)=08H 13.若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少? MOV A,50H MOV R0,A MOV A,#00H MOV @R0,A MOV A,#3BH MOV 41H,A MOV 42H,41H 答: (A)=3BH,(R0)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH。 14.试用位操作指令实现下列逻辑操作。要求不得改变未涉及的位的内容。 (1)使ACC.0置位; (2)清除累加器高4位; (3)清除ACC.3,ACC.4,ACC.5,ACC.6。 答: (1)SETB ACC.0 (2)ANL A,#0FH (3)ANL A,#87H 15.试编写程序,将内部RAM的20H、21H、22H三个连续单元的内容依次存入2FH、2EH和2DH单元。 答: MOV 2FH,20H MOV 2EH,21H MOV 2DH,22H 16.试编写程序,完成两个16位数的减法:7F4DH-2B4EH,结果存入内部RAM的30H和31H单元,30H单元存差的高8位,31H单元存差的低8位。 答: CLR CY MOV 30H,#7FH MOV 31H,#4DH MOV R0, #31H MOV A,@R0 SUBB A ,#4E MOV @R0,A ;保存低字节相减结果 DEC R0 MOV A, @R0 SUBB A,#2BH MOV @R0,A ;保存高字节相减结果 17.试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。 答: MOV A,R2 ANL A,#0F0H ORL R1,A 18.试编写程序,将内部RAM的20H、21H单元的两个无符号数相乘,结果存放在R2、R3中,R2中存放高8位,R3中存放低8位。 答: MOV A,20H MOV B,21H MUL AB MOV R3,A MOV R2,B 19.若(CY)=1,(P1)=10100011B,(P3)=01101100B。试指出执行下列程序段后,CY、P1口及P3口内容的变化情况。 MOV P1.3,C MOV P1.4,C