单片机知识点 下载本文

图中,TH和TL是计数器,数字信号的下降沿使其加1;两种计数信号源:系统时钟和引脚T输入的外部信号;其余为计数控制与状态。 2、定时/计数器工作方式

有4种工作方式,方式0、1、2,T0、T1的工作原理基本相同,方式3,两个定时器的工作原理不同。

方式0:13位计数器(结构图和上图一样,有13位计数器即TL+TH位数) 方式1:16位计数器

方式2:可自动赋初值的8位计数器

方式3:两个独立的8位计数器

5.2 定时/计数器的特殊功能寄存器 1、方式控制寄存器—TMOD(89H) 2、定时器控制寄存器—TCON(88H) 5.3 定时/计数器的编程实例 1、定时/计数器常数的计算 (1)计数器初值的计算 把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式: TC=M-C

式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213;在方式1时M为216;在方式2和方式3时M为28。 (2)定时器初值的计算 在定时器模式下,计数器由单片机主时钟脉冲经12分频后计数。因此,定时器定时时间T的公式:T=(M-TC)T计数 上式也可写成:TC=M-T/ T计数 式中,M为模值,和定时器的工作方式有关;T计数是单片机振荡周期TCLK的12倍;TC为定时器的定时初值。 2、定时/计数器应用实例

【应用实例1】设单片机的晶振频率为12MHz,利用T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。 方式字:TMOD=00H

定时初值: TC=M-T/ T计数

T = 1*10-3 ,T计数 = 12/(12x106) = 1*10-6 //周期 TC = 213 – 1*10-3/1*10-6 = 213 –1000 = 7192 = 1C18H TH0 = 1CH , TL0 =18H 程序设计:

【应用实例2】设单片机的晶振频率为12MHz,利用T0方式2进行计数,T0引脚(P3.4)的3个下降沿使得P1.0引脚上电平翻转一次。 方式字:TMOD=06H 计数初值: TC=M-C

TC = 28 – 3 = 253 = 0FDH TH0 = TL0 =0FDH 程序设计

第六章:中断系统结构 6.1 中断的概念 1. 异常和中断 异常(exception):打破CPU正常的执行顺序,并强迫CPU执行一个特殊指令段的事件。 异常分为两类:

(1)同步异常(synchronous exceptions):由内部事件(CPU指令运行产生的事件)引起的异常。例如:被零除运算产生的异常;断点产生的异常。

(2)异步异常(asynchronous exceptions):由外部事件(与CPU指令执行无关的事件)引起的异常。一般外部事件来源于外部硬件装置。例如:复位按键产生的系统复位异常;通信设备引发的接收数据异常。

51单片机中的中断是指由CPU外部硬件装置产生的事件引起的异步异常。可以认为中断是硬件与系统中运行的应用程序之间进行通信的一种方法。 异常有三方面的用途:

1、内部错误处理和特殊条件的管理;如被零除、溢出、断点处理、特权指令等。 2、硬件并发处理:多个与CPU并行的外部设备同时申请CPU干预。

3、服务请求管理:各个外部装置向CPU请求服务,如定时间隔到、收到数据包等。 6.2 中断的系统结构 1. 中断的逻辑结构

外部中断源:NT0(P3.2) INT1(P3.3) 低电平或下降沿有效 内部中断源

T0:定时/计数器0中断,由T0回零溢出引起。 T1:定时/计数器1中断,由T1回零溢出引起。

TI/RI:串行I/O中断,完成一帧字符发送/接收引起。 中断服务程序的入口地址:

0000H—0002H 无条件转移指令(系统复位后PC=0000H) 0003H—000AH INT0中断地址区

000BH—0012H T0中断地址区 0013H—001AH INT1中断地址区 001BH—0022H T1中断地址区 0023H—002AH 串行中断地址区 2. 中断的响应过程

在每个机器周期的S5P2期间,顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断处理。

中断得到响应后自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。

中断申请将被封锁情况:

(1)CPU正在执行一个同级或高一级的中断服务程序。 (2)当前正在执行的那条指令还未执行完。

(3)当前正在执行的指令是RETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。 6.3 中断系统的特殊功能寄存器 1、中断允许寄存器IE(A8H) 2、中断条件和状态寄存器 3、中断优先寄存器IP(B8H) 中断优先顺序

不同级:先高后低;同级:按如下顺序由高到低,INT0、T0、INT1、T1、TI/RI。 6.4 中断系统的应用实例

【应用实例】利用定时器和中断技术,设计以秒、分、时为单位的时钟程序。(晶振12MHz) 1、任务分析、确定算法、分配存储单元 (1)确定最小计时单位:

定时器计时为50ms X 20 = 1s (2)T0工作方式1,计算计数初值:

TC=M-T/ T计数=216-50ms/1μs=3CB0H

(3)中断服务程序:累计20次得到秒,实现秒到分和分到时的计数。 (4)时、分、秒各占两位,分别放在30H、31H、32H。