PIC单片机原理及应用(第三版)(下)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26
第7章 定时器/计数器
定时器/计数器模块是大部分单片机都内 置的一项重要功能,定时器/计数器的正常工 作一般表现为计数累计功能,通常是由时钟脉 冲来驱动。 定时器/计数器模块一般适用于以下3种 不同的应用场合:
27
从单片机I/O引脚上向外部电路输出一系列符合一定 时序规范的方波信号。 从单片机I/O引脚上,检测外部电路输入的一系列方 波信号的脉宽、周期或频率,以便单片机接收外部电 路的输入信号或通信信号。 单片机对其端口引脚上输入的由外部事件产生的触发 信号进行准确地计数,依据计数结果来控制完成相应 的动作。
主编: 李荣正
1
第0章 键盘和显示
键盘和显示是单片机控制系统非常重要的人 机交互界面。
2
0.1 八段数码显示
1、八段数码显示器的编码
数值
1 2 3 4 5
编码
06H 5BH 4FH 66H 6DH
数值
6 7 8 9 0
编码
7DH 07H 7FH 6FH 3FH
2、编码查表程序
3
3、多位数字动态显示 多位数字动态显示涉及数据的传送和显示 位的控制。
RK0 RK0 RK1 RK2 RK3 CK0 CK1 CK2 CK3 RK0 RK1 RK2 RK3 CK0 CK1 CK2 CK3 TO PIC1 6F877 RSW1 4K7 RSW2 4K7 RSW3 4K7 RSW4 4K7 RK3 C SW-PB D SW-PB E SW-PB F SW-PB RK2 8 SW-PB 9 SW-PB A SW-PB B SW-PB RK1 4 SW-PB 5 SW-PB 6 SW-PB 7 SW-PB 0 SW-PB 1 SW-PB 2 SW-PB 3 SW-PB
17
Bit4/CPK:时钟极性选择位。 0:表示空闲时时钟停留在低电平; 1:表示空闲时时钟停留在高电平。 Bit5/SSPEN:同步串口MSSP使能位。 在SPI模式下时,有关引脚必须正确的设定为输入或 输出状态。 0:关闭串行端口功能,且设定SCK、SOD、SDI和SS 为普通数字I/O脚; 1:允许串行端口工作,且设定SCK、SOD、SDI和SS 为SPI接口专用。
38
分频器的分频比选择位,主动参数。
T1CKPS1—T1CKPSO(Bit5-bit4) 00 01 10 11 分频比 1:01 1:02 1:04 1:08
39
定时器/计数器TMR1模块的电路结构
40
TMR1与系统时钟的协调关系
与系统的 工作方式 协调关系 定时 同步 触发信号 指令周期信号 T1CKI 同步 计数 异步 T1OSI T1OSO-T1OSI T1CKI T1OSI T1OSO-T1OSI SLEEP状 态 TMR1 不工作 不工作 不工作 不工作 工作 工作 工作 分频器 不工作 工作 工作 工作 工作 工作 工作 捕捉、比 较功能 适用 适用 适用 适用 不适用 不适用 不适用
33
定时器/计数器TMR1的特性:
既可工作于定时器模式又可工作于计数器
模式,还可用作实时时钟RTC; 在计数器溢出时,相应的溢出中断标志自 动置位,并可产生溢出中断。
34
TMR1模块相关的寄存器
中断控制寄存器 INTCON TMR1控制寄存器T1CON 第一外设中断屏蔽寄存器 PIE1 高字节低字节TMR1H:TMR1L
35
TMR1控制寄存器T1CON
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 - - T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
36
Bit0/TMR1ON:TMR1使能控制位(而TMR0不能被关闭的), 主动参数。 0: 关闭TMR1,使TMR1退出活动状态,以节省能耗; 1: 启用TMR1,使TMR1进入活动状态。 Bit1/TMR1CS:时钟源选择位,主动参数。 0: 选择内部时钟源(fosc/4=Tcyc指令周期); 1: 选择外部时钟源,即时钟信号来源于外部引脚或 者自带振荡器。
10
9.1.1 SPI模式下相关寄存器
在SPI模式下,有关的寄存器共有10个, 其中无编址的只有一个SSPSR。这10个寄存器 中有6个寄存器是与其它模块共用的。另外有4 个寄存器与MSSP模块相关,它们是与I2C模式 共用的。
11
1.SSPBUF(收/发数据缓冲器)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
8
MSSP模块主要应用于系统内部近距离的串行 通信扩展,如SPI、I2C模式。USART模块主要应 用于系统之间的远距离串行通信,在外围接口电 路及计算机通信中应用相当广泛。
9
9.1 SPI串行通信模块
SPI(Serial Peripheral Interface)是 一种单片机外设芯片同步串行扩展接口,由摩 托罗拉公司推出。采用SPI接口外围器件的特 点是引脚性价比高等优点,因而在市场上得到 了广泛的应用。
MSSP接收/发送数据缓冲空间
12
2.SSPSTAT(同步串口状态寄存器)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SMP CKE D/A P S R/W UA BF
13
Bit0/BF:缓冲器满标志位,被动参数。 仅仅用于SPI接收状态下: 0:缓冲器空; 1:缓冲器满。 Bit6/CKE:SPI时钟沿选择和I2C总线输入电平选择位。 在CKP = 0,静态电平为低时: 0:SCK的下降沿发送数据; 1:SCK的上升沿发送数据。 在CKP = 1, 静态电平为高时: 0:SCK的上升沿发送数据; 1:SCK的下降沿发送数据。
要发送的数据通过数据总线送入发送缓冲 器,然后自动传送到移位寄存器中;移位寄存 器接收到数据自动传送到接收缓冲器,然后由 程序读取收到的数据;移位寄存器有移入和移 出两个端口,分别与收和发两条通信线路连接, 负责收发数据。
22
SPI模式电路的基本结构
23
பைடு நூலகம்
SPI工作原理示意图
24
【例题】如图9-5为8位数码显示和16个键 盘电路,利用F877的SPI同步串行功能实现数 码管数据串行传送,并通过8个74LS164组成的 移位电路,达到数码数据的静态显示。而16个 键盘组成矩阵电路,采用RD口高低四复合选通。 请编写相应的应用程序,要求:在系统复 位后8位数码管全暗,接着1、2、3…7分别从 数码管的最高位到最低位依次点亮,最后直接 进入系统的监控状态,以在最高位出现“-” 为标志。
14
Bit7/SMP:SPI采样控制位兼I2C总线转换率控制位。 在SPI主控方式下: 0:在输出数据的中间采样输入数据; 1:在输出数据的末尾采样输入数据。 注意:在SPI从动方式下,SMP位必须置位。
15
3.SSPCON(同步串口控制寄存器)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
VCC
CK3
7
第9章 串行通信模块
串行扩展通信接口是单片机与其它计算机之间进行 数据交换的重要渠道,F877单片机主要配置有2种形式的 串行通信模块: 主控同步串行通信MSSP (Master Synchronous Serial Port) 通用同步/异步收发器USART (Universal Synchronous/Asynchronous Receiver Transmitter )。
41
7.3 定时器TMR2
TMR2是一个8位定时器,带一个可编程 预分频器和一个可编程后分频器,一个可编程 8位周期寄存器PR2。
42
主要用途
TMR2是存放计数值的寄存器,只能工作于定时
器模式; 可以为主同步串行端口MSSP模块(SPI模式), 提供波特率时钟; TMR2还可以与CCP模块配合使用,提供脉宽 调制PWM功能的时基信号。
位控制 显示数据(编码) 停留时间(确保视觉需要)
4
4、多位数字静态显示 多位数字静态显示涉及数据显示位数据的 锁存控制,一般采用两种方案实现。
多位74LS164移位寄存器 采用74LS224和74LS373数据锁存
5
0.2 独立键盘和矩阵键盘
1、独立键盘
6
2、矩阵键盘
CK0 CK1 CK2
16
同步串行口MSSP方式选择位
SSPM3-SSPM0 (Bit3-Bit0) 0000 0001 0010 0011 0100 0101 SPI工作方式 主控方式 主控方式 主控方式 主控方式 从动方式 从动方式 时钟 fosc/4 fosc/16 fosc/64 TMR2输出/2 SCK脚输入,使能SS引脚功能 SCK脚输入,关闭SS引脚功能, SS被用作普通数字I/O引脚
29
三者的共同点:
它们的核心部分都是一个由时钟信号触发 ,按递增方式累加工作的循环计数器;从预先 设定的某一初始值开始累计,在累计到计数器 产生溢出,并且同时会建立一个相应的溢出中 断标志。
30
7.2 定时器/计数器TMR1
定时器/计数器TMR1是一个16位的计数寄 存器,带有一个3位的可编程预分频器和一个 内置的低功耗低频时基振荡器。
18
Bit6/SSPOV:接收溢出标志位,被动参数。 0:未发生接收溢出; 1:发生接收溢出。 注意:所指的接收溢出是缓冲器SSPBUF中 数据还未取出时,移位寄存器SSPSR中又收到 新的数据,原SSPSR中的数据丢失。
19
Bit7/WCOL:写操作冲突检测位,被动参数。 在SPI从动方式下: 0:未发生冲突; 1:发生冲突。 注意:当WCOL=1, 正在发送前一个数据时, 又有新数据写入SSPBUF,必须用软件予以清零。
25
【例题】在电路原理图9-5基础上,对其电 路结构稍作调整,以便外扩展一个静态 128KEPROM数据存储器。利用RC3、RC4、RC5引 脚组成一个SPI同步串行方式,通过164移位产 生17位寻址功能,实现对HM628128的并行数据 传送(RD端口)。 编程要求:首先将256个数据00H-FFH存入 EPROM单元0000H-00FFH中,然后再将这些单元 中的数据逐个取出,送往数码显示区的最后两 位显示数据内容,每个数显示停留1秒种。
28
单片机配置3个定时器/计数器模块:
定时器/计数器模块 位宽 分频器 TMR0 TMR1 TMR2 8 预分频器 普通功能 定时/计数 特别功能 通用目的 备注
16 预分频器 8 预/后分频器
定时/计数 捕捉或输出比较 低频时基振荡器 定时 脉宽调制
CCP:输入捕捉、输出比较和PWM脉冲宽度调制功能 低频时基振荡器 :32768Hz
20
4.SSPSR移位寄存器
直接从端口引脚接收或发送数据,将已经成 功接收到的数据送到缓冲器SSPBUF中,或者从缓 冲器SSPBUF读取将发送的数据。
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
MSSP接收/发送数据串行移位空间
21
9.1.2 SPI模式工作原理
37
Bit2/T1SYNC:TMR1外部输入时钟与系统时钟同步控制位,主 动参数。 当TMR1工作于计数器方式(TMR1CS=1时): 0: TMR1外部输入时钟与系统时钟保持同步; 1: TMR1外部输入时钟与系统时钟不保持同步; 当TMR1工作于定时器方式(TMR1CS=0时):该位不起作用。 Bit3/T1OSCEN:TMR1自带振荡器使能位,主动参数。 0: 禁上TMR1振荡器起振,使非门的输出端呈高阻态; 1: 允许TMR1振荡器起振。
31
TMR1的用途:
TMR1可作通用的定时器和计数器; 利用内置的低频时基振荡器,可实现实时
时钟RTC功能 TMR1与CCP模块配合使用,可实现输入捕 捉和输出比较功能。
32
定时器/计数器TMR1的特性:
一个16位的由时钟信号上升沿触发的累加
计数寄器对TMR1L:TMR1H; TMR1L和TMR1H是在RAM中统一编址的寄存器 对,地址为0EH和0FH,可用软件方式读/写 TMR1寄存器对的内容; 一个可选用的3位可编程预分频器; 累加计数的信号源可选择内部系统时钟、 外部触发信号或自带时基振荡器信号;
第7章 定时器/计数器
定时器/计数器模块是大部分单片机都内 置的一项重要功能,定时器/计数器的正常工 作一般表现为计数累计功能,通常是由时钟脉 冲来驱动。 定时器/计数器模块一般适用于以下3种 不同的应用场合:
27
从单片机I/O引脚上向外部电路输出一系列符合一定 时序规范的方波信号。 从单片机I/O引脚上,检测外部电路输入的一系列方 波信号的脉宽、周期或频率,以便单片机接收外部电 路的输入信号或通信信号。 单片机对其端口引脚上输入的由外部事件产生的触发 信号进行准确地计数,依据计数结果来控制完成相应 的动作。
主编: 李荣正
1
第0章 键盘和显示
键盘和显示是单片机控制系统非常重要的人 机交互界面。
2
0.1 八段数码显示
1、八段数码显示器的编码
数值
1 2 3 4 5
编码
06H 5BH 4FH 66H 6DH
数值
6 7 8 9 0
编码
7DH 07H 7FH 6FH 3FH
2、编码查表程序
3
3、多位数字动态显示 多位数字动态显示涉及数据的传送和显示 位的控制。
RK0 RK0 RK1 RK2 RK3 CK0 CK1 CK2 CK3 RK0 RK1 RK2 RK3 CK0 CK1 CK2 CK3 TO PIC1 6F877 RSW1 4K7 RSW2 4K7 RSW3 4K7 RSW4 4K7 RK3 C SW-PB D SW-PB E SW-PB F SW-PB RK2 8 SW-PB 9 SW-PB A SW-PB B SW-PB RK1 4 SW-PB 5 SW-PB 6 SW-PB 7 SW-PB 0 SW-PB 1 SW-PB 2 SW-PB 3 SW-PB
17
Bit4/CPK:时钟极性选择位。 0:表示空闲时时钟停留在低电平; 1:表示空闲时时钟停留在高电平。 Bit5/SSPEN:同步串口MSSP使能位。 在SPI模式下时,有关引脚必须正确的设定为输入或 输出状态。 0:关闭串行端口功能,且设定SCK、SOD、SDI和SS 为普通数字I/O脚; 1:允许串行端口工作,且设定SCK、SOD、SDI和SS 为SPI接口专用。
38
分频器的分频比选择位,主动参数。
T1CKPS1—T1CKPSO(Bit5-bit4) 00 01 10 11 分频比 1:01 1:02 1:04 1:08
39
定时器/计数器TMR1模块的电路结构
40
TMR1与系统时钟的协调关系
与系统的 工作方式 协调关系 定时 同步 触发信号 指令周期信号 T1CKI 同步 计数 异步 T1OSI T1OSO-T1OSI T1CKI T1OSI T1OSO-T1OSI SLEEP状 态 TMR1 不工作 不工作 不工作 不工作 工作 工作 工作 分频器 不工作 工作 工作 工作 工作 工作 工作 捕捉、比 较功能 适用 适用 适用 适用 不适用 不适用 不适用
33
定时器/计数器TMR1的特性:
既可工作于定时器模式又可工作于计数器
模式,还可用作实时时钟RTC; 在计数器溢出时,相应的溢出中断标志自 动置位,并可产生溢出中断。
34
TMR1模块相关的寄存器
中断控制寄存器 INTCON TMR1控制寄存器T1CON 第一外设中断屏蔽寄存器 PIE1 高字节低字节TMR1H:TMR1L
35
TMR1控制寄存器T1CON
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 - - T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
36
Bit0/TMR1ON:TMR1使能控制位(而TMR0不能被关闭的), 主动参数。 0: 关闭TMR1,使TMR1退出活动状态,以节省能耗; 1: 启用TMR1,使TMR1进入活动状态。 Bit1/TMR1CS:时钟源选择位,主动参数。 0: 选择内部时钟源(fosc/4=Tcyc指令周期); 1: 选择外部时钟源,即时钟信号来源于外部引脚或 者自带振荡器。
10
9.1.1 SPI模式下相关寄存器
在SPI模式下,有关的寄存器共有10个, 其中无编址的只有一个SSPSR。这10个寄存器 中有6个寄存器是与其它模块共用的。另外有4 个寄存器与MSSP模块相关,它们是与I2C模式 共用的。
11
1.SSPBUF(收/发数据缓冲器)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
8
MSSP模块主要应用于系统内部近距离的串行 通信扩展,如SPI、I2C模式。USART模块主要应 用于系统之间的远距离串行通信,在外围接口电 路及计算机通信中应用相当广泛。
9
9.1 SPI串行通信模块
SPI(Serial Peripheral Interface)是 一种单片机外设芯片同步串行扩展接口,由摩 托罗拉公司推出。采用SPI接口外围器件的特 点是引脚性价比高等优点,因而在市场上得到 了广泛的应用。
MSSP接收/发送数据缓冲空间
12
2.SSPSTAT(同步串口状态寄存器)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SMP CKE D/A P S R/W UA BF
13
Bit0/BF:缓冲器满标志位,被动参数。 仅仅用于SPI接收状态下: 0:缓冲器空; 1:缓冲器满。 Bit6/CKE:SPI时钟沿选择和I2C总线输入电平选择位。 在CKP = 0,静态电平为低时: 0:SCK的下降沿发送数据; 1:SCK的上升沿发送数据。 在CKP = 1, 静态电平为高时: 0:SCK的上升沿发送数据; 1:SCK的下降沿发送数据。
要发送的数据通过数据总线送入发送缓冲 器,然后自动传送到移位寄存器中;移位寄存 器接收到数据自动传送到接收缓冲器,然后由 程序读取收到的数据;移位寄存器有移入和移 出两个端口,分别与收和发两条通信线路连接, 负责收发数据。
22
SPI模式电路的基本结构
23
பைடு நூலகம்
SPI工作原理示意图
24
【例题】如图9-5为8位数码显示和16个键 盘电路,利用F877的SPI同步串行功能实现数 码管数据串行传送,并通过8个74LS164组成的 移位电路,达到数码数据的静态显示。而16个 键盘组成矩阵电路,采用RD口高低四复合选通。 请编写相应的应用程序,要求:在系统复 位后8位数码管全暗,接着1、2、3…7分别从 数码管的最高位到最低位依次点亮,最后直接 进入系统的监控状态,以在最高位出现“-” 为标志。
14
Bit7/SMP:SPI采样控制位兼I2C总线转换率控制位。 在SPI主控方式下: 0:在输出数据的中间采样输入数据; 1:在输出数据的末尾采样输入数据。 注意:在SPI从动方式下,SMP位必须置位。
15
3.SSPCON(同步串口控制寄存器)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
VCC
CK3
7
第9章 串行通信模块
串行扩展通信接口是单片机与其它计算机之间进行 数据交换的重要渠道,F877单片机主要配置有2种形式的 串行通信模块: 主控同步串行通信MSSP (Master Synchronous Serial Port) 通用同步/异步收发器USART (Universal Synchronous/Asynchronous Receiver Transmitter )。
41
7.3 定时器TMR2
TMR2是一个8位定时器,带一个可编程 预分频器和一个可编程后分频器,一个可编程 8位周期寄存器PR2。
42
主要用途
TMR2是存放计数值的寄存器,只能工作于定时
器模式; 可以为主同步串行端口MSSP模块(SPI模式), 提供波特率时钟; TMR2还可以与CCP模块配合使用,提供脉宽 调制PWM功能的时基信号。
位控制 显示数据(编码) 停留时间(确保视觉需要)
4
4、多位数字静态显示 多位数字静态显示涉及数据显示位数据的 锁存控制,一般采用两种方案实现。
多位74LS164移位寄存器 采用74LS224和74LS373数据锁存
5
0.2 独立键盘和矩阵键盘
1、独立键盘
6
2、矩阵键盘
CK0 CK1 CK2
16
同步串行口MSSP方式选择位
SSPM3-SSPM0 (Bit3-Bit0) 0000 0001 0010 0011 0100 0101 SPI工作方式 主控方式 主控方式 主控方式 主控方式 从动方式 从动方式 时钟 fosc/4 fosc/16 fosc/64 TMR2输出/2 SCK脚输入,使能SS引脚功能 SCK脚输入,关闭SS引脚功能, SS被用作普通数字I/O引脚
29
三者的共同点:
它们的核心部分都是一个由时钟信号触发 ,按递增方式累加工作的循环计数器;从预先 设定的某一初始值开始累计,在累计到计数器 产生溢出,并且同时会建立一个相应的溢出中 断标志。
30
7.2 定时器/计数器TMR1
定时器/计数器TMR1是一个16位的计数寄 存器,带有一个3位的可编程预分频器和一个 内置的低功耗低频时基振荡器。
18
Bit6/SSPOV:接收溢出标志位,被动参数。 0:未发生接收溢出; 1:发生接收溢出。 注意:所指的接收溢出是缓冲器SSPBUF中 数据还未取出时,移位寄存器SSPSR中又收到 新的数据,原SSPSR中的数据丢失。
19
Bit7/WCOL:写操作冲突检测位,被动参数。 在SPI从动方式下: 0:未发生冲突; 1:发生冲突。 注意:当WCOL=1, 正在发送前一个数据时, 又有新数据写入SSPBUF,必须用软件予以清零。
25
【例题】在电路原理图9-5基础上,对其电 路结构稍作调整,以便外扩展一个静态 128KEPROM数据存储器。利用RC3、RC4、RC5引 脚组成一个SPI同步串行方式,通过164移位产 生17位寻址功能,实现对HM628128的并行数据 传送(RD端口)。 编程要求:首先将256个数据00H-FFH存入 EPROM单元0000H-00FFH中,然后再将这些单元 中的数据逐个取出,送往数码显示区的最后两 位显示数据内容,每个数显示停留1秒种。
28
单片机配置3个定时器/计数器模块:
定时器/计数器模块 位宽 分频器 TMR0 TMR1 TMR2 8 预分频器 普通功能 定时/计数 特别功能 通用目的 备注
16 预分频器 8 预/后分频器
定时/计数 捕捉或输出比较 低频时基振荡器 定时 脉宽调制
CCP:输入捕捉、输出比较和PWM脉冲宽度调制功能 低频时基振荡器 :32768Hz
20
4.SSPSR移位寄存器
直接从端口引脚接收或发送数据,将已经成 功接收到的数据送到缓冲器SSPBUF中,或者从缓 冲器SSPBUF读取将发送的数据。
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
MSSP接收/发送数据串行移位空间
21
9.1.2 SPI模式工作原理
37
Bit2/T1SYNC:TMR1外部输入时钟与系统时钟同步控制位,主 动参数。 当TMR1工作于计数器方式(TMR1CS=1时): 0: TMR1外部输入时钟与系统时钟保持同步; 1: TMR1外部输入时钟与系统时钟不保持同步; 当TMR1工作于定时器方式(TMR1CS=0时):该位不起作用。 Bit3/T1OSCEN:TMR1自带振荡器使能位,主动参数。 0: 禁上TMR1振荡器起振,使非门的输出端呈高阻态; 1: 允许TMR1振荡器起振。
31
TMR1的用途:
TMR1可作通用的定时器和计数器; 利用内置的低频时基振荡器,可实现实时
时钟RTC功能 TMR1与CCP模块配合使用,可实现输入捕 捉和输出比较功能。
32
定时器/计数器TMR1的特性:
一个16位的由时钟信号上升沿触发的累加
计数寄器对TMR1L:TMR1H; TMR1L和TMR1H是在RAM中统一编址的寄存器 对,地址为0EH和0FH,可用软件方式读/写 TMR1寄存器对的内容; 一个可选用的3位可编程预分频器; 累加计数的信号源可选择内部系统时钟、 外部触发信号或自带时基振荡器信号;