您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 单片机原理及应用总结
单片机原理及应用第一章绪论1.什么叫单片机?其主要特点有哪些?在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。特点:控制性能和可靠性高、体积小、价格低、易于产品化、具有良好的性价比。第二章80C51的结构和原理1.80C51的基本结构a.CPU系统8位CPU,含布尔处理器;时钟电路;总线控制逻辑。b.存储器系统4K字节的程序存储器(ROM/EPROM/FLASH,可外扩至64KB);128字节的数据存储器(RAM,可外扩至64KB);特殊功能寄存器SFR。c.I/O口和其他功能单元4个并行I/O口;2个16位定时/计数器;1个全双工异步串行口;中断系统(5个中断源,2个优先级)2.80C51的应用模式a.总线型单片机应用模式总线型应用的“三总线”模式;非总线型应用的“多I/O”模式3.80C51单片机的封装和引脚a.总线型DIP40引脚封装RST/VPO:复位信号输入引脚/备用电源输入引脚;ALE/PROG:地址锁存允许信号输出引脚/编程脉冲输入引脚;EA/VPP:内外存储器选择引脚/片内EPROM编程电压输入引脚;PSEN:外部程序存储器选通信号输出引脚b.非总线型DIP20封装的引脚RST:复位信号输入引脚4.80C51的片内存储器增强型单片机片内数据存储器为256字节,地址范围是00H~FFH。低128字节的配情况与基本型单片机相同。高128字节一般为RAM,仅能采用寄存器间接寻址方式询问。注意:与该地址范围重叠的特殊功能寄存器SFR空间采用直接寻址方式询问。5.80C51的时钟信号晶振周期为最小的时序单位。一个时钟周期包含2个晶振周期。晶振信号12分频后形成机器周期。即一个机器周期包含12个晶振周期或6个时钟周期。6.80C51单片机的复位定义:复位是使单片机或系统中的其他部件处于某种确定的初始状态。a.复位电路两种形式:一种是上电复位;另一种是上电与按键均有效的复位。b.单片机复位后的状态单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器PC=0000H,所以程序从0000H地址单元开始执行。特殊功能寄存器复位后的状态是确定的。P0~P3为FFH,SP为07H,SBUF不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态为00H.相应的意义为:P0~P3=FFH,相当于各口锁存器已写入1,此时不但可用于输出,也可以用于输入;SP=07H,堆栈指针指向片内RAM的07单元;IP、IE和PCON的有效位为0,各中断源处于低优先级且均被关断、串行通讯的波特率不加倍;PSW=00H,当前工作寄存器为0组。7.80C51的存储器组织功能:存储信息(程序和数据)a.程序存储器低端的一些地址被固定地用作特定的入口地址:0000H:单片机复位后的入口地址;0003H:外部中断0的中断服务程序入口地址;000BH:定时/计数器0溢出中断服务程序入口地址;0013H:外部中断1的中断服务程序入口地址;001BH:定时/计数器1溢出中断服务程序入口地址;0023H:串行口的中断服务程序入口地址。8.80C51单片机的数据存储器配置80C51单片机数据存储器分为片外RAM和片内RAM两大部分。80C51片内RAM的128B部分分成工作寄存器区、位寻址区、通用RAM三大部分。基本型单片机片内RAM的地址范围是00H~7FH。增强型单片机片内除地址范围为00H~7FH的128BRAM外,又增加了80H~FFH的高128B的RAM。增加的这部分RAM仅能采用间接寻址方式访问。片外RAM地址空间为64KB,地址范围是0000H~FFFFH。与程序存储器地址空间不同的是,片外RAM地址空间与片内RAM地址空间在地址的低端0000H~007FH是重叠的。访问片外RAM时采用指令MOVX实现,访问片内RAM采用指令MOV,无读写信号产生。a.工作寄存器区80C51单片机片内RAM低端的00H~1FH共32B,分成4个工作寄存器组,每组占8个单元。寄存器0组:地址00H~07H;寄存器1组:地址08H~0FH;寄存器2组:地址10H~17H;寄存器3组:地址18H~1FH。程序运行时,只能有一个工作寄存器组作为当前工作寄存器组;当前工作寄存器组的选择由特殊功能寄存器中得程序状态字寄存器PSW的RS1、RS0来决定。b.位寻址区内部RAM的20H~2FH共16个字节是位寻址区。其128位的地址范围是00H~7FH。c.通用RAM区位寻址区之后的30H~7FH共80个字节为通用RAM区。这些单元可以作为数据缓冲器使用。实际应用中,常需在RAM区设置堆栈。80C51的堆栈一般设在30H~7FH的范围内,栈顶的位置由堆栈指针SP指示。复位时SP的初值为07H,在系统初始化时可以重新设置。9.80C51单片机的特殊功能寄存器a.程序状态字寄存器PSW,8位。含义如下:CY:进位、借位标志。有进位、借位时CY=1,否则CY=0;AC:辅助进位、借位标志F0:用户标志位,由用户自己定义RS1、RS0:当前工作寄存器组选择位OV:溢出标志位。有溢出时OV=1,否则0V=0P:奇偶标志位。存于ACC中的运算结果有奇数个“1”时P=1,否则P=0。10.P0口、P2口的结构P0口作为分时复用的低8位地址/数据总线,P2口作为高8位地址总线。a.P0口的结构P0用作通用I/O口输出驱动级工作在需外接上拉电阻的漏极开路方式;P0口在作为通用I/O口,属于准双向口。P0用作地址/数据总线b.P2口的结构P2口的输出驱动电路与P0口不同,内部设有上拉电阻。P2用作通用I/O口P2口在作为通用I/O口,属于准双向口。P2用作地址总线11.P3口结构a.P3用作第一功能的通用I/O口b.P3用作第二功能使用P3.0:RXD(串行口输入);P3.1:TXD(串行口输出);P3.2:INT0(外部中断0输入);P3.3:INT1(外部中断1输入);P3.4:T0(定时器0的外部输入);P3.5:T1(定时器1的外部输入);P3.6:WR(片外数据存储器“写”选通控制输出);P3.7:RD(片外数据存储器“读”选通控制输出)。第三章80C51的指令系统1.80C51的寻址方式表3.1寻址方式所对应的寄存器和存储空间2.特殊传送指令表3.3特殊传送指令编号指令分类指令机器码字节机器周期数1ROM查表MOVCA,@A+DPTR93H22MOVCA,@A+PC83H23读片外RAMMOVXA,@DPTRE0H24MOVXA,@RiE2H(~E3H)25写片外RAMMOVX@DPTR,AF0H26MOVX@Ri,AF2H(~F3H)27堆栈操作PUSHdirectC0H2序号寻址方式寄存器或存储空间1基本方式寄存器寻址寄存器R0~R7,A、AB、DPTR和C(布尔累加器)2直接寻址片内RAM低128字节、SFR3寄存器间接寻址片内RAM(@R0,@R1,SP)片外RAM(@R0,@R1,@DPTR)4立即寻址ROM5扩展方式变址寻址ROM(@A+DPTR,@A+PC)6相对寻址ROM(PC当前值的-128~+127字节)7位寻址可寻址位(内部RAM20H~2FH单元的位和部分SFR的位)direct8POPdirectD0H2direct堆栈操作在80C51单片机中,堆栈的生长方向是向上的。入栈操作时,先将SP+1,然后将指令指定的直接地址单元的内容存入SP指向的单元;出栈操作时,将SP指向的单元内容传送到指令指定的直接地址单元,然后SP-1。系统复位时,SP的内容位07H。SP的值越小,堆栈深度越深。PUSHdirect:(direct)(SP)1,(SP)SPPOPdirect:1(SP)SP((SP)),direct一般在中断、子程序调用时发生堆栈操作MOV、MOVX、MOVC区别MOV:单片机内部数据传递;MOVX:单片机与片外RAM和I/O口电路的数据传递;MOVC:ROM的查表3.逻辑运算与循环类指令逻辑与:编号指令分类指令1逻辑与ANLdirect,A2ANLdirect,#data3ANLA,Rn4ANLA,direct5ANLA,@Ri6ANLA,#data前两条把源操作数与直接地址指示内容相与;后四条是把源操作数与累加器A的内容相与,送入A逻辑或:编号指令分类指令1逻辑或ORLdirect,A2ORLdirect,#data3ORLA,Rn4ORLA,direct5ORLA,@Ri6ORLA,#data逻辑异或:编号指令分类指令1逻辑异或XRLdirect,A2XRLdirect,#data3XRLA,Rn4XRLA,direct5XRLA,@Ri6XRLA,#data累加器清0和取反CLRA清0CPLA取反累加器循环移位RR右移RRCRL左移RLC4.控制转移类指令短跳转:AJMP;长跳转:LJMP;相对跳转:SJMP。由于LJMP指令提供的是16位地址,因此程序可以转向64KB的程序存储器地址空间的任何单元。累加器判0转移:JZrel:(A)=0,则relPCPC;JNZrel:(A)relPCPC0,则比较不相等转移(目的字节与源字节不相等则转移):CJNEA,direct,relreldata@RiRnACJNE,,#减1不为0转移:DJNZRn,relDJNZdirect,rel将操作数的循环控制单元的内容减1,并判断是否为0.若不为0,一直循环。若为0,程序往下执行。调用:ACALL短调用;LCALL长调用返回:RET子程序返回指令;RETI中断服务子程序返回指令CPL取反第四章1.查表程序有一变量存放在片内RAM的20H单元,其取值范围为00H~05H。要求编制一段程序,根据变量值求平方值,并存入片内RAM的21H单元。程序如下:ORG1000HSTART:MOVDPTR,#2000HMOVA,20HMOVCA,@A+DPTRMOV21H,ASJMP$ORG2000HTABLE:DB00,01,04,09,16,25END2.双字节无符号数加法设被加数存放在内部RAM的51H、50H单元,加数存放在内部RAM的61H、60H单元,相加的结果存放在内部RAM的51H、50H单元,进位存放在位寻址区的00H位中,实现此功能的程序段如下:MOVR0,#50H;被加数的低字节地址MOVR1,#60H;加数的低字节地址MOVA,@R0;取被加数低字节ADDA,@R1;加上加数低字节MOV@R0,A;保存低字节相加结果INCR0;指向被加数高字节INCR1;指向加数高字节MOVA,@R0;取被加数高字节ADDCA,@R1;加上加数高字节(带进位加)MOV@R0,A;保存高字节相加结果MOV00H,C;保存进位3.双分支程序设变量x以补码的形式存放在片内RAM的30H单元,变量y与x的关系是:当x0时,y=x;当x=0时,y=20H;当x0时,y=x+5。编制程序,根据x的大小求y并返回原单元。程序段如下:START:MOVA,30HJZNEXTANLA,#80H;判断符号位JZLPMOVA,#05HADDA,30HMOV30H,ASJMPLPNEXT:MOV30H,#20HLP:SJMP$4.多分支程序根据R7的内容转向相应的处理程序。设R7的内容为0~N,对应的处理程序的入口地址分别为PP0~PPN。程序段如下:START:MOVDPTR,#TAB;置分支入口地址表首址MOVA,R7ADDA,R7MOVR3,AMOVCA,@A+DPTR;取高位地址XCHA,R3INCAMOVCA,@A+DPTR;取低位地址MOVDPL,A;处理程序入口地址低8位送DPLMOVDPH,R3;处理程序入口地址高8位送DPHCLRAJMP@A+DPTRTAB:DWPP0DWPP1……DWPPN5.循环程序先执行后判断;先判断后执行50ms延时程序若晶振频率为
本文标题:单片机原理及应用总结
链接地址:https://www.777doc.com/doc-5093721 .html