时基信号发生器:
时间基准信号,简称时基信号,来自于32768Hz实时时钟,通过频率选择组合而成。时基信号发生器的选频逻辑TMB1,为TimerA的时钟源B提供各种频率选择信号,并为中断系统提供中断源(IRQ6)信号。此外,时基信号发生器还可以通过分频产生2Hz、4Hz、1024Hz、2048Hz以及4096Hz的时基信号,为中断系统提供各种实时中断源(IRQ4和IRQ5)信号。
时基信号发生器通过对P_Timebase_Setup(写)($700EH)单元的编程写入来进行选频操作。
定时器/计数器:
SPCE061A提供了两个16位的定时/计数器:TimerA和TimerB。TimerA为通用计数器;TimerB为多功能计数器。TimerA的时钟源由时钟源A和时钟源B进行“与”操作而形成;TimerB的时钟源仅为时钟源A。
定时器发生溢出后会产生一个溢出信号(TAOUT/TBOUT)。一方面,它会作为定时器中断信号传输给CPU中断系统;另一方面,它又会作为4位计数器计数的时钟源信号,输出一个具有4位可调的脉宽调制占空比输出信号APWMO或BPWMO(分别从IOB8 和IOB9输出),可用来控制马达或其它一些设备的速度。此外,定时器溢出信号还可以用于触发ADC输入的自动转换过程和DAC输出的数据锁存。
向定时器的P_TimerA_Data(读/写)($700AH)单元或P_TimerB_Data(读/写)($700CH)单元写入一个计数值N后,选择一个合适的时钟源,定时器/计数器将在所选的时钟频率下开始以递增方式计数N,N+1,N+2,…0xFFFE,0xFFFF。当计数达到0xFFFF后,定时器/计数器溢出,产生中断请求信号,被CPU响应后送入中断控制器进行处理。同时,N值将被重新载入定时器/计数器并重新开始计数。
时钟源A和时钟源C是高频时钟源(从图中可以看出,时钟源A和时钟源C的结构是相同的),来自带锁相环的晶体振荡器输出Fosc;时钟源B的频率来自32768Hz实时时钟系统,也就是说,时钟源B可以作为精确的计时器。例如,2Hz定时器可以作为实时时钟的时钟源。
时钟源A和时钟源B的组合,为TimerA提供了多种计数速度。若以ClkA作为门控信号,‘1’表示允许时钟源B信号通过,而‘0’则表示禁止时钟源B信号通过。例如,如果时钟源A为“1”,TimerA时钟频率将取决于时钟源B;如果时钟源A为“0”,将停止TimerA的计数。EXT1和EXT2为外部时钟源。
定时/计数器控制的寄存器:
这是最重要的,单片机的操作说白了就是对寄存器的操作,不管是8位、16位还是32位。
P_Timebase_Setup(写)($700EH)
时基信号发生器通过对P_Timebase_Setup(写)($700EH)单元的编程写入来进行选频操作。
P_Timebase_Clear(写)($700FH)
TimerA的数据单元,用于向16位预置寄存器写入数据(预置计数初值)或从其中读取数据。在写入数值以后,计数器便会在所选择的频率下进行加一计数,直至计数到0xFFFF产生溢出。溢出后P_TimerA_Data中的值将会被重置,再以置入的值继续加一计数。
P_TimerA_Data(读/写)($700AH)
TimerA的数据单元,用于向16位预置寄存器写入数据(预置计数初值)或从其中读取数据。在写入数值以后,计数器便会在所选择的频率下进行加一计数,直至计数到0xFFFF产生溢出。溢出后P_TimerA_Data中的值将会被重置,再以置入的值继续加一计数。
P_TimerA_Ctrl(写)($700BH)
TimerA的控制单元如表5.3所示。用户可以通过设置该单元的第0~5位来选择TimerA的时钟源(时钟源A、B)。设置该单元的第6~9位(如表2.13所示),TimerA将输出不同频率的脉宽调制信号,即对脉宽占空比输出APWMO进行控制。
P_TimerB_Data(读/写)($700CH)
TimerB的数据单元,用于向16位预置寄存器写入数据(预置计数初值)或从其中读取数据。写入数据后,计数器就会以设定的数值往上累加直至溢出。计数初值的计算方法和TimerA相同。
P_TimerB_Ctrl(写)($700DH)
TimerB的控制单元(如表5.7所示)。用户可以通过设置该单元的第0~2位来选择TimerB的时钟源。设置第6~9位,TimerB将输出不同频率的脉宽调制信号,即对脉宽占空比输出BPWMO进行控制。
定时/计数器设置的C函数:
SPCE061.lib中提供了相应的API函数如下所示:
函数原型:
void Set_TimerA_Data(unsigned int);
void Set_TimerB_Data(unsigned int);
功能说明 预置计数器初值
用法
Set_TimerA_Data(TimerA_Data);
Set_TimerB_Data(TimerB_Data);
参数
TimerA_Data = 0xFFFF – (Source A & Source B Frequency) / Desired Frequency
TimerB_Data = 0xFFFF – (Source C Frequency) / Desired Frequency
函数原型
unsigned int Get_TimerA_Data(void);
unsigned int Get_TimerB_Data(void);
功能说明 读计数器的值
用法
TimerA_Data = Get_TimerA_Data();
TimerB_Data = Get_TimerB_Data();
函数原型
void Set_TimerA_Ctrl(unsigned int);
void Set_TimerB_Ctrl(unsigned int);
功能说明 选择时钟源频率和占空比
用法
Set_TimerA_Ctrl(TimerA_Ctrl_Data);
Set_TimerB_Ctrl(TimerB_Ctrl_Data);
参数
TimerA_Ctrl_Data = Source A + Source B Frequency + Duty Cycle
TimerB_Ctrl_Data = Source C Frequency + Duty Cycle
关键字:凌阳61 单片机 定时器
引用地址:
凌阳61单片机之定时器
推荐阅读最新更新时间:2024-03-16 14:44
采用P87LPC764单片机中央空调智能管理系统
常见的控制方法是按“高、中、低、关”分档模式控制,其缺点是房间的温度需要手动调节,各种环境因素的变化常常会使人感到不适。风机转速控制方案,采用变频器调速控制,有效地解决了上述问题,达到了室内温度自动调节的目的,大大的节省了能源。 中央空调系统主要由制冷机、冷却水循环系统、冷冻水循环系统,风机盘管系统和散热水塔组成。制冷机通过压缩机将制冷剂压缩成液态后送蒸发器中与冷冻水进行热交换,将冷冻水制冷,冷冻水泵将冷冻水送到各风机风口的冷却盘管中,由风机吹送冷风达到降温的目的。在系统中,冷动泵、冷却泵、水塔风扇变频器采用开环控制,由维护人员根据季节不同和负荷的变化进行调节,在每一个房间内都安装热交换器和循环风机,通过控制风机的转速来
[单片机]
51单片机定时/计数器工作在模式1
51单片机的定时/计数器工作在模式1,设置定时/计数器0初值为15536,因此计数溢出值为50000,在时钟频率为12MHz时,中断周期为50ms,每20次中断使P2.0引脚取反,使相连的LED灯闪烁;每20次中断使变量nn加1,用连接在P1和P0口的数码管显示nn值(范围0~59) 源程序如下: //本程序版权所有:51hei单片机 #include "reg_c51.h" unsigned char hex ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E}; //数码管十六进制译码表 unsigned char
[单片机]
STM32学习笔记:通用定时器基本定时功能
1.STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒时钟。今天主要是学习8个定时器。 定时器其中TIM1和TIM8是能够产生3对PWM互补输出的高级定时器,常用于三相电机的驱动,时钟由APB2的输出产生。TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器,其时钟由APB1输出产生。由于STM32的TIMER功能太复杂了,所以只能一点一点的学习。因此今天就从最简单的开始学习起,也就是TIM2-TIM5普通定时器的定时功能。 2.普通定时器TIM2-TIM5 2.1 时钟来源 计数器时钟可以由下列时钟源提供: 内部
[单片机]
对51系列单片机SPI总线的认识
* UART、 I2C 和 SPI 是单片机系统中最常用的三种通信协议。* 1、SPI简介: SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。 SPI 通信原理比 I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的 SPI 是 4 根线,分别是 SSEL( 片选,也写作 SCS)、 SCLK( 时钟,也写作 SCK)、 MOSI( 主机输出从机输入Master Output/Slave Input) 和 MISO( 主机输入从机输出 Master Input/Slave O
[单片机]
基于MC9S12XSl28微控制器的智能车硬件设计
随着汽车电子业的迅猛发展,智能车作为电子计算机等最新科技成果与现代汽车工业相结合的产物,因其具有的智能特点而成为研究重点。“飞思卡尔”杯全国大学生智能汽车比赛在此背景下产生,竞赛规则规定。赛车在设定的赛道上能够自主行驶,并以最短的时间跑完全程者获胜。因此,智能车硬件不断创新以适应小车的速度要求。本文以MC9S12XSl28为核心处理器,通过实验比较智能车各个模块电路设计方案,从而设计出性能稳定的硬件电路,经大赛实际检验性能良好稳定。
1 系统整体方案设计 1.1 智能车功能设计 根据大赛规则,智能车应具有路径识别、方向控制、速度控制、状态检测等功能,设计采用大赛指定的飞思卡尔16位微控制器MC9S12X-Sl2
[嵌入式]
从零开始学单片机(九)串口通信
串口通信是单片机一个重要的部分,单片机和PC,单片机和单片机之间的通信大都用串口。单片机的串口是全双工异步串口通信方式。通过TXD(P3.1)发送,RXD(P3.0)引脚接收输入。串口传送数据是一帧一帧发送的,它有四种工作方式,同时也可以做并行I/O的扩展。 图上是串口的结构图。 SBUF是数据缓冲寄存器,发送和接收用的是一个地址,但是不用担心冲突,读只能从接收缓冲区,写只能在发送缓冲区里。 寄存器SCON(SM0 SM1 SM2 REN TB8 RB8 TI RI) SM0和SM1: 工作方式选择(0-3),方式1和方式3使用T1产生波特率,方式0和方式2是固定速率。 SM2 :在方式2和方式3的多级通信控制位 RE
[单片机]
单片机应用系统的抗干扰技术
随着工业控制的发展,单片机应用系统以其高性价比逐步取代模拟式控制系统,被广泛应用于各个领域。应用现场存在着各种干扰源,对单片机应用系统的工作影响很大,在实验室里设计好的控制系统,安装调试时完全符合设计要求,而置入现场后,系统常常无法正常稳定地工作。干扰虽不能直接造成硬件的损坏,但常使计算机不能正常运行以致控制失灵,造成设备和生产事故。因此,为了保证设备在实际应用中可靠地工作,从系统设计开始就必须充分考虑到对系统抗干扰性能的要求。 1 干扰源、干扰途径和干扰的影响 1.1 应用系统自身干扰源及干扰途径 应用系统自身干扰源是因在设计系统时对某些问题考虑不全面,如元器件布局不合理、电路工作不可靠、元器件质量差等,形成诸如电阻热噪声
[单片机]