第1页共10页第2页共10页单片机期末复习资料试卷答案大全第3页共10页一.单片机基础知识1.单片机芯片上集成有CPU、ROM、RAM及I/O,属于微型计算机。2.MCS-51系列单片机是8位单片机,也就是CPU能同时处理数据的宽度是8位。3.AT89C51是与MCS-51兼容的8位单片机。4.试将十进制数135、250、98分别转换为二进制数和十六进制数。十进制二进制十六进制135=128+4+2+110000111B87H250=255-4-111111010B0FAH98=64+32+201100010B62H5.写出十进制数-54在8位微型计算机中的原码、反码和补码。[-54]原=10110110[-54]反=11001001[-54]补=110010106.写出十进制数59、120的BCD码。[59]BCD=01011001,[120]BCD=000100100000二.单片机的硬件结构和原理1.MCS-51系列单片机分为51系列和52系列。51系列中的典型芯片为8051、8751、8031。这三款芯片的指令系统与引脚功能完全兼容,仅在ROM上有所不同。8031内部无ROM程序存储器。8051内部有4KB掩膜ROM程序存储器。8751片内有4KB的EPROM程序存储器。三款均有128BRAM数据存储器,2个16位的定时器/计数器,4个8位的并行I/O端口,1个串行的I/O口和5个中断源。2.CPU、存储器、并行I/O口等部件相互之间是通过三条总线来连接的。三条总线是地址总线AB,数据总路线DB、控制总线CB。3.内部数据存储器中的低128单元是用户数据存储区,地址范围是00H-7FH。其中00H-1FH是通用寄存器区,共32个单元。20H-2FH是位寻址区,共16个单元128位,可直接位寻址,也可字节寻址。30H-7FH共80个单元是用户区,只能字节寻址。4.内部数据存储器中的高128单元是专用寄存器区。5.单片机是通过EA引脚来控制内部ROM和外部ROM的。EA=1时,单片机读取内部ROM地址范围(0000H-0FFFH)的程序。若PC的值超过0FFFH地址范围,则CPU自动读取外部程序存储器。EA=0时,CPU只读外部程序存储器。当读取外部ROM时,单片机29脚PSEN=0;当读内部ROM时,PSEN=1。6.单片机进入复位状态是指回到刚上电的初始状态,程序从0000H地址单元(即PC=0000H)开始执行。在时钟电路工作后进入复位状态,必须在单片机的9脚RET端至少维持2个机器周期的高电平。若系统采用12MHz(或6MHz)的时钟频率,机器周期为1us(或2us),则在单片机的RST端只需持续2us(或4us)以上时间的高电平就能进入复位状态。单片机通常采用上电复位和开关复位二种方式。第4页共10页7.单片机复位后,I/O端口寄存器P0-P3=FFH,堆栈指针寄存器SP=07H,其他特殊寄存器的值为0。如DPTR=0000、PC=0000H、ACC=00H等。10.一个机器周期等于12个振荡周期(或时钟周期)。三MCS-51单片机指令系统1.指令由操作码和操作数组成。操作码是指进行操作运算的类型,操作数是参与运算的对象。2.寻址方式,是指寻找操作数的方式。MCS-51共的7种寻址方式。即寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、位寻址、变址寻址和相对寻址。3.寄存器寻址就是操作数在指定的寄存器中。可用的寄存器有:4个通用寄存器组R0-R7,累加器A、B寄存器、数据指针寄存器DPTR。如MOVA,R0指令。4.直接寻址就是指令中的操作数直接以单元地址的形式给出。直接寻址方式只限于内部RAM。也是访问专用寄存器的唯一方法。如MOVA,30H指令。5.指出下列指令的功能和源操作数的寻址方式。1)MOVA,R1;寄存器寻址。功能是将寄存器R1的内容送到累加器中。2)MOVR0,30H;直接寻址。功能是将30H单元中的值送到寄存器R0中。3)MOVA,@R0;寄存器间接寻址。功能是将R0指定的单元内容送累加器A。4)MOV30H,#30H;立即数寻址。功能是将立即数送30H单元。5)MOV@R0,A;寄存器寻址。功能是将累加器的值送R0指定的单元中。6)MOVXA,@R0;寄存器间接寻址。功能是将R0指定的外部存储单元的值送累加器A。7)MOVCA,@A+DPTR;变址寻址。功能是将DPTR和A的和指定的存储单元的值送累加器A。8)ADDA,R0;寄存器寻址。功能是将寄存器R0的值与累加器A的值相加,结果保存到累加器A中。9)ADDCA,R0;寄存器寻址。功能是将寄存器R0的值与累加器A的值和进位位CY相加,结果保存到累加器A中。10)INCA;寄存器寻址。功能是将累加器A的值自增1。11)DEC@R1;寄存器间接寻址。功能是将R1指定的单元中的值自减1。12)ANLA,R0;寄存器寻址。功能是将R0的值与A的值作与运算,其结果保存到A中。13)ORLA,45H;直接寻址。将45H单元的值与A的值作或运算,其结果保存到A中。14)CLRA;寄存器寻址。将A的值清0。15)RLA;寄存器寻址。将A的值循环左移一位。16)RRA;寄存器寻址。将A的值循环右移一位。17)RLCA;寄存器寻址。将A的值与进位位CY的值一起循环左移一位。18)RRCA;寄存器寻址。将A的值与进位位CY的值一起循环右移一位。19)JZHH;相对寻址。若A的值为0,转HH标号执行。反之顺序执行。第5页共10页20)JNZHH;相对寻址。若A的值不为0,转HH标号执行。反之顺序执行。22)CJNEA,#30H,LOP;相对寻址。功能是将A的值与立即数30H比较,若不相等转LOP标号执行。若相等则顺序执行。23)DJNZA,LOP;相对寻址。功能是先A的值自减1保存后,再判断若结果不为0转LOP标号执行。若为0,则顺序执行。24)LCALLTTO;相对寻址。功能是调用子程序TT0。25)RET;相对寻址。功能是子程序返回。26)RETI;相对寻址。功能是中断程序返回。27)MOVC,20H;位寻址。功能是将20H位的值送布尔处理器C。28)MOV20H,C;位寻址。功能是将布尔处理器C的值送20H位。29)SETBC;位寻址。功能是置布尔处理器C为1。30)SETBP1.0;位寻址。功能是将P1口的0位置1。31)CLRP1.0;位寻址。功能是功能是将P1口的0位清0。32)JCLOP;相对寻址。若布尔处理器C的值为1,则转LOP标号执行。反之顺序执行。33)JNCLOP;相对寻址。若布尔处理器C的值为0,则转LOP标号执行。反之顺序执行。34)JBP2.0,LOP;相对寻址。若P2.0位为1,则转LOP标号执行。反之顺序执行。35)JNBP2.0,LOP;相对寻址。若P2.0位为0,则转LOP标号执行。反之顺序执行。6.子程序调用指令:LCALL可调用64K范围类的子程序,ACALL可调用2K范围类的子程序。7.无条件转移指令LJMP可以在64KB范围转移,AJMP可以在2KB范围转移,可以在256KB范围转移。四中断系统1.MCS-51有5个中断源,其中2个为外部中断源,3个为内部中断源。1)INT0:外部中断0,中断请求信号从P3.2输入。中断入口地址为:0003H。2)INT1:外部中断0,中断请求信号从P3.3输入。中断入口地址为:0013H。3)T0:定时器/计数器0溢出中断。中断入口地址为:000BH。4)T1:定时器/计数器1溢出中断。中断入口地址为:001BH。3.定时/计数器的计数方式是对外部事件的计数,计数脉冲从单片机的引脚输入。T0的计数脉冲从P3.4脚输入,T1的计数脉冲从P3.5脚输入,计数器的最高计数频率为晶振频率的1/24。4.定时/计数器的定时方式是以机器周期信号为定时脉冲输入到计数器计数。定时脉冲信号的频率是振荡频率的1/12。5.定时器/计数器的初值计算方法:计数方式:初值=计数器最大值-所需计数值第6页共10页定时方式:初值=计数器最大值-定时时间/机器周期6.定时器/计数器的工作方式寄存器TMOD中各位的功能:D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M01)GATE门控位GATE=0时,定时/计数器由TCON中的TR0(或TR1)来控制启动和停止。如TR0=1启动T0。TR0=0,T0停止。2)C/T定时器/计数器方式选择位。C/T=0定时方式,C/T=1计数方式。3)M1、M0工作方式选择位M1M0=00,T0(或T1)是13位定时器/计数器,其最大计数值为8192M1M0=01,T0(或T1)是16位定时器/计数器,其最大计数值为655367.定时器/计数器的控制寄存器TCON中各位的功能:D7D6D5D4D3D2D1D0TF1TF0TR1TR0IE1IT1IE0IT0高4位用于定时器/计数器的控制,低4位与外部中断有关。1)TF1和TF0:分别是T1和T0的溢出标志。当计数器计满产生溢出时,由硬件自动置1,并可申请中断,进入中断服务程序后,由硬件自动清零。2)TR0:T0的启动控制位,由软件进行设置。当TR0=1时,T0开始工作。当TR0=0时,T0停止工作。TR1:T1的启动控制位,由软件进行设置。当TR1=1时,T1开始工作。当TR1=0时,T1停止工作。3)IE1:外部中断INT1中断请求标志,当P3.3引脚信号有效时,IE1由硬件自动置1。IE0::外部中断INT0中断请求标志,当P3.2引脚信号有效时,IE0由硬件自动置1。4)IT0:外部中断INT0触发方式控制位,由软件置位或复位。若IT0=1,则INT0为边沿触发方式,若IT0=0,则INT0为电平触发。IT1:外部中断INT1触发方式控制位。功能设置同IT0。8.中断允许控制寄存器IE各位功能:D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0总中断串行口中断T1中断INT1中断T0中断INT0中断各位为1,开中断,为0关中断。若EA=0,则CPU关中断,屏蔽所有5个中断源的请求。9.MCS-51单片机中默认优先级的顺序为(由高到低):INT0、T0、INT1、T1、串行口。五、输入输出系统1.单片机的片外三总线是:地址总线、数据总线、控制总线。第7页共10页1)地址总线AB:地址总线宽度为16位,可寻址64KB的空间。地址的低8位由P0口提供,并锁存到地址锁存器中保持,高8位由P2口提供。EA:用于选择片内或片外程序存储器。当EA=0时,只访问外部程序存储器,不管片内有无程序存储器。当EA=1时,先访问片内程序存储器,读完4K范围后,自动读取外部程序存储器。2.按下图所示1)写出8位并行输出口74LS273的访问地址及产生输出信号WR的指令。2)写出8位并行输入口74LS244的访问地址及产生读信号RD的指令。解:1)8位并行输出口74LS273由P2.7和WR相或控制,地址应为7FFFH。当P2.7=0时,执行“MOVX@DPTR,A”类输出指令可产生WR=0信号。2)8位并行输入口74LS244由P2.6和RD相或控制,地址应为0BFFFH。当P2.6=0时,执行“MOVXA,@DPTR”类输入指令可产生RD=0信号。12.2716、2764、27256是三块EPROM存储器,其容量分别是2KB、8KB、32KB。13.6264、62256是二块RAM存储器,其容量分别是8KB、32KB。14.访问32KB有存储空间,需15根地址线。现有地址线20根,能访问的空间是1MB。15.8155、8255是两块用于扩展I/O接口的控制芯片。16.8155内有7个寄存器:命令寄存器、状态寄存器、A口寄存器、B口寄存器、C口寄存器、定时器/计数器(2个8位的寄存器)。各寄存器端口由A2、A1、A0三位地址确定。地址低三位为0是命令寄存器、状态寄存器的地址;地址低三位为1是A口;地址低三位为2是B口;地址低三位为3是C口;地址低三位为4是定时器低8位的寄存器;地址低三位为5是定时