单片机总结系列1由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机重点总结”。
单片机,通过片内总线连接而成:中央处理器(CPU由运算器、控制器和若干特殊功能寄存器组成)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行输入/输出口(P0口-P3口)、串行口、定时/计数器、中断系统及特殊功能寄存器。主要部件集成在一块集成电路芯片上的微型计算机称为单片机。三总线结构:⑴ 地址总线AB,16位,P2口提供高8位地址,P0口经地址锁存器提供低8位。片外存储器可寻址范围达64KB(即=65536个字节)。⑵ 数据总线DB,D0-D7共8位,由P0口提供,分时输送低8位地址(通过地址锁存器锁存)和8位数据信息。⑶ 控制总线CB。时钟电路与时序:单片机芯片内部有一个高增益反向放大器,其输入引脚为XTAL1,输出引脚为XTAL2,芯片外部通过这两个引脚接晶体振荡器CYS和微调电容器C1、C2形成反馈电路(通常取值在20~30pF),构成稳定的自激振荡器,振荡频率范围通常是1.2MHz~12MHz。振荡脉冲经分频后再为系统所用。时序单位共4个:节拍、状态、机器周期和指令周期。CPU执行一条指令的时间称为指令周期。一般由若干个机器周期组成。机器周期=6状态=12晶振周期(拍节)。单片机的存储器单片机分为程序存储器(用于存放编好的程序、表格和常数。内部有4K ROM,片外最多可扩展64K ROM,两者统一编址。)和数据存储器(内部有128B RAM;片外最多可扩展64 K RAM。内、外RAM地址有重叠,可通过不同的指令来区分:“MOV”是对内部RAM进行读写的操作指令;“MOVX”是对外部RAM进行读写的操作指令),在物理空间上是相互独立哈佛结构。物理结构上可以分为片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。片内数据存储器工作寄存器区、可位寻址区、通用RAM区、特殊功能寄存器区。工作方式程序执行方式、掉电保护方式、低功耗方式(空闲方式、掉电方式)最小系统对于内部带有程序存储器的51单片机,若上电工作时所需要的电源、复位电路和晶体振荡电路齐全,即可构成完整的单片机最小系统。致单片机不工作的原因EA没有接高电平、晶振电容使用不当、晶振不起振ALE控制信号端无信、复位电路设计不当。【并行输入/输出口有4个8位的双向并行输入/输出(I/O)端口,P0口、P1口、P2口和P3口。P0口是一个双功能的8位并行I/O口(地址/数据分时复用口和通用I/O口),字节地址为80H,位地址为80H~87H。可作输入/输出端口使用,又可作地址/数据总线分时传输低8位地址和8位数据。P1口是单一功能的并行I/O口,字节地址为90H,位地址为90H~97H。它只用作通用的数据输入/输出口。P2口是一个双功能的8位并行I/O口,字节地址为80H,位地址为A0H~A7H。可作通用的输入/输出口用,又可用作高8位地址总线。P3口是一个双功能的8位并行I/O口,字节地址为B0H,位地址为B0H~B7H,它的第一功能是通用输入/输出口,作第二功能用时,各引脚定义如下:读引脚和读锁存器的区别读引脚:由传送指令(MOV)实现;读锁存器:读锁存器是先从锁存器中读取数据,进行处理后,将处理后的数据重新写入锁存器中,这类指令成为“读-修改-写”指令。“读锁存器”可以避免因引脚外部电路的原因而使引脚的状态发生改变造成误读。】【中断系统功能实现中断与返回、能实现优先权排队、高级中断能中断低级中断。优点分时操作、实时处理、故障处理。5个中断源(优先级高→低)外部中断0(IE0,0003H)、定时/计数器中断0(TF0,000BH)、外部中断1(IE1,0013H)、定时/计数器中断1(TF1,001BH)、串行口发送/接收中断(TI/RI,002BH)CPU中断响应的条件中断源有中断请求,此中断的中断允许位为1,CPU开总中断。中断响应过程将相应的优先级状态触发器臵1(以阻断后来的同级或低级的中断请求);执行一条硬件LCALL指令,即把程序计数器PC的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入PC;执行中断服务程序。外部中断请求有2种触发方式:电平触发和边沿脉冲触发。】【定时/计数器的工作原理T0和T1的实质是加1计数器,即每输入一个脉冲,计数器加1,当加到计数器全为1时,再输入一个脉冲,就使计数器归零,且计数器的溢出使TCON中的标志位TF0或TF1臵1,向CPU发出中断请求。只是输入的计数脉冲来源不同,把它们分成定时与计数两种功能。当为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因MCS-51单片机的一个机器周期由12个振荡脉冲组成,如果单片机系统采用12 MHz晶振,则计数周期为1us,这是最短的定时周期。当为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,若前一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。所以检测一个从1到0的跳变需要两个机器周期,即外部输入信号的周期应大于或等于两个机器周期,也就是说外部输入信号的频率必须小于晶振频率的1/24,若频率超过晶振频率的1/24,则无法准确计数脉冲个数。虽然对外部输入信号的占空比无特殊要求,但是为了确保输入信号电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期。由定时器0、定时器
1、定时器方式寄存器TMOD(只能进行字节操作,不能位寻址)和定时器控制寄存器TCON组成(既能进行字节操作,又能位寻址)。定时器0,定时器1是16位加法计数器,分别由两个8位专用寄存器组成;定时器0由TH0和TL0组成,定时器1由TH1和TL1组成。(一般当T1作为串行通信接口的波特率发生器时T0才工作在方式3,此时TL0可作为8位的定时/计数器;而TH0只能作为8位定时器。)GATE—门控位。GATE=0,只要用软件使TR0(或TR1)臵1就可以启动定时器,而不管INT0(或INT1)的电平是高还是低。GATE=1,只有INT0(或INT1)引脚为高电平且由软件使TR0(或TR1)臵1时,才能启动定时器工作。定时/计数器的初始化1确定工作方式——对TMOD赋值。2预臵定时或计数的初值——直接将初值写入TH0、TL0或TH1、TL1。3根据需要开启定时/计数器中断——直接对IE寄存器赋值。4启动定时/计数器工作——将TR0或TR1臵“1”初值X = M-计数值,计数值与定时器的工作方式有关。若是定时工作模式,计数脉冲由内部供给,对机器周期进行计数,因此计数脉冲频率为f=fosc/12,计数周期T=1/f=12/fosc,若定时时间为t,则定时工作方式的计数初值:X= M-计数值=2n-t/T=2n-t ∙ fosc/12(例如主频为6MHZ,要求产生1ms的定时,试计算计数初值X。若设臵定时器工作于工作方式1,定时1ms,则计数初值X=216-(6MHZ×1ms)/12=65536-500=65036=FE0CH为定时方式1,在臵TR0=1以后,定时立即开始,但在定时时间到后,还必须用软件再次装入初值、重新启动才能开始新的定时。T1为计数方式2,在臵TR1=1以后,以计数开始,在计数次数到以后,自动装入初值并重新计数,因此软件设计不必再考虑装入初值。)】【通信方式 并行(多个数据各位同时传送,速度快效率高,但占用的数据线较多,成本高,仅适用于短距离)和串行(每个数据是一位一位按顺序传送,数据传送的速度有限制,但成本低,一根数据线就可以传送)。串行通讯分类 异步通信方式是按字符传送的,字符的前面有一个起始位(0),后面有一个停止位(1),这是一种起止式的通讯方式,字符之间没有固定的间隔长度,有点事数据传送的可靠性较高、能及时发现错误,缺点是通信效率较低。同步通信方式按数据块传送的,把传送的字符按顺序连接起来,组成数据块,在数据块前面加上特殊的同步字符,作为数据块的起止符号,在数据块后面加上校验字符,用于校验通信中的错误。同步通信中字符之间是没有间隔的,通讯效率比较高。串行通讯传输方式单工,半双工,全双工。串行口的结构 串行接口控制电路、发送电路(发送缓冲器SBUF,发送控制电路)、接收电路(接受缓冲器SBUF,接收控制电路)。特殊功能寄存器SCON存放串行口的控制和状态信息,串行口用定时器T1作为波特率发生器(发送接受时钟),电源控制寄存器PCON的最高位SMOD为串行口波特率的倍率控制位,中断允许控制寄存器IE控制串行通信中断是否允许。数据缓冲器SBUF 两个数据缓冲器在物理上是相互独立的,逻辑上却占用一个字节地址(99H)。发送时,就是CPU写入SBUF;接受时,就是CPU读取SBUF的过程。可以同时发送和接收数据,对于发送缓冲器,由于发送时CPU是主动的,不会产生重叠错误。波特率的计算方式0、方式2是固定的。方式1,方式3可变。波特率 = 2SMOD / 32 ×(T1的溢出率);T1溢出率 = 单位时间内溢出次数 = 1 /(T1的定时时间);而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。N = 256- t / T,t =(256-N)T =(256-N)×12 / fosc,所以,T1溢出率 = 1/t = fosc / 12(256-N),故,波特率 = 2SMOD / 32 × fosc / 12(256-N)。
若已知波特率,则可求出T1的计数初值: y = 256-2SMOD×fosc /(波特率×32×12)串行口初始化确定T1的工作方式(编程TMOD寄存器);计算T1的初值,装载TH1、TL1;启动T1(编程TCON中的TR1位);确定串行口控制(编程SCON寄存器)。串行口在中断方式工作时,还要进行中断设臵(编程IE、IP寄存器)。方式01、同步8位数据,波特率为F0SC/12;
2、低位在前,高位在后;
3、TI,再发送数据,软件清0,CLRTI;
4、RI,再接收数据,软件清0,CLRRI;
5、同步通信,无起始位和停止位。方式11、一帧为10位信息,1位起始(0),8位数据,1位停止(1);
2、波特率可变;
3、异步通信;
4、接收时,RB8里是停止位,数据位在SBUF(SM2=0)方式2,3是异步11位(以方式2接收数据时,REN必须臵1)RS-232C采用负逻辑电平,规定DC(-3~-5)为逻辑1,规定DC(+3~+5)为逻辑0,通常RS-232C的信号传输最大距离为30m,最高传输速率为20kbit/s
如果按键较多,则常用软件方法去抖动。为了保证CPU对键的一次闭合仅作一次键输入处理,必须去除抖动影响。即检测出键闭合后执行一个延时程序产生5ms~10ms的延时,等前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序,从而去除了抖动影响。