5、SONIX单片机TC0、TC1的pwm输出
来源:互联网 发布:甘肃干部网络考试答案 编辑:程序博客网 时间:2024/05/16 12:16
TC0与TC1的功能和使用方法是一样的,所以这里只介绍TC0
与定时器TC0的pwm功能相关的寄存器共有3个;TC0M,TC0C,TC0R
一、TC0M模式寄存器
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TC0M
TC0ENB
TC0rate2
TC0rate1
TC0rate0
TC0CKS
ALOAD0
TC0OUT
PWM0OUT
读/写
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位
0
0
0
0
0
0
0
0
Bit0;PWM0OUT;pwm输出控制位
0=禁止pwm0输出
1=使能pwm0输出,占空比由TC0OUT和ALOAD0决定
Bit1;TC0OUT;仅当PWM0OUT =0时有效
0=禁止,p54作为普通IO口使用
1=使能,p54输出TC0OUT信号
Bit2;ALOAD0,自动装载控制。仅当PWM0OUT = 0时有效。
0 = 禁止 TC0自动装载;
1 = 使能 TC0 自动装载。
Bit3;TC0CKS:TC0时钟信号控制位。
0 = 内部时钟(Fcpu或Fosc);
1 = 外部时钟,由 P0.0/INT0输入。
Bit6~bit4;T0rate2~T0rate0;T0分频选择位
T0时钟由CPU时钟分频而来,分频比如下;
T0rate2~T0rate0
分频比
000
fCPU/256
001
fCPU/125
010
fCPU/64
011
fCPU/32
100
fCPU/16
101
fCPU/8
110
fCPU/4
111
fCPU/2
Bit7;TC0ENB;T0使能位,
0=不使能
1=使能
二、TC0C计数寄存器
TC0C 是一个 8位定时计数器,只要TC0ENB置“1”就开启定时器。TC0C是个加1计数器,时钟源频率由TC0RATE0~TC0RATE2决定。当TC0C计到“0FFH”后,若再加1就会回到“00H”,产生溢出信号,TC0中断请求标志被置为“1”,如果TC0中断又同时被使能(TC0IEN =1),那么系统将执行TC0的中断服务程序。
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TC0C
TC0C7
TC0C6
TC0C5
TC0C4
TC0C3
TC0C2
TC0C1
TC0C0
读/写
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位
0
0
0
0
0
0
0
0
三、TC0R自动装载寄存器
TC0R 为 8 位自动装载寄存器,还用于频率输出和 PWM功能。在TC0OUT功能下,用户必须使能TC0R并且要进行设置。其主要功能如下:存放自动装载值,当TC0C溢出时将其写入TC0C中(ALOAD0 = 1);存放PWM0OUT的占空比
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TC0R
TC0R7
TC0R6
TC0R5
TC0R4
TC0R3
TC0R2
TC0R1
TC0R0
读/写
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
复位
0
0
0
0
0
0
0
0
当TC0M中的PWM0OUT=1时;
ALOAD0
TC0OUT
PWM占空比范围
TC0C有效值
TC0R有效值
最大PWM频率(pCPU=4M)
备注
0
0
0/256~255/256
00H-FFH
00H-FFH
7.8125k
计数256次溢出
0
1
0/64~63/64
00H-3FH
00H-3FH
31.25k
计数256次溢出
1
0
0/32~31/32
00H-1FH
00H-1FH
62.5k
计数256次溢出
1
1
0/16~15/16
00H-0FH
00H-0FH
125k
计数256次溢出
PWM的占空比由TC0C和TC0R共同确定,TC0R确定高电平占空比。占空比=TC0R/TC0C;PWM 输出占空比随 TC0R 的变化而变化:一般情况TC0C是从0开始,但是如果要产生特殊频率的话可以在中断中重置TC0C的初值,如果TC0C不是从0开始,TC0R也要做相应的改变才能保持原来的占空比,但是这样因为频繁进中断,会影响其他程序的运行。 在运行中改变TC0R的值能随时改变占空比。
例;
/*注意,要关闭pwm时,PWM0OUT和TC0OUT同时关闭才能停止pwm输出,缺一不可*/
#include<sn8p2612.h>
void main(void)
{
TC0M=0x73;//01110011 不使能TC0,内部时钟源fcpu/2
//使能pwm输出,32.15k
TC0C=0x20;//TC0C配置为和TC0R一样,不知道是不是必须的
//反正配置为一样的时候可以正常运行
TC0R=0x20;//TC0R确定占空比pwm=50%
FTC0ENB=1;//打开TC0,pwm开始输出
while(1);
}
- 5、SONIX单片机TC0、TC1的pwm输出
- 4、SONIX单片机TC0、TC1基本定时与计数功能
- TC0 用作PWM 设置方式 SONIX
- STM8S105系列单片机的PWM输出配置
- 2. avr定时器/计数器0 --TC0 --快速PWM输出 (比较输出--快速PWM模式)
- 单片机 PWM输出 c
- 5. avr定时器/计数器1 --TC1 --快速PWM输出 (比较输出--快速PWM模式)
- 3. avr定时器/计数器0 --TC0 --相位修正PWM模式 (比较输出--相位修正PWM 模式)
- STM32单片机PWM输出测试
- STM32单片机学习---PWM输出
- 51单片机输出pwm波形
- 利用51单片机输出pwm
- 基于stm32单片机的可调节pwm输出
- 51单片机按键控制输出pwm的占空比
- TC0 定时方式初始化设置 时间验算方法 SONIX
- 关于STC单片机硬件PWM的分析(PCA),对PWM输出频率的改变
- 1. avr定时器/计数器0 --TC0 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- STM32单片机学习(6) PWM输出实验
- codevs3115 高精度减法
- angular+两个按钮一个暂停一个停止
- 《鲜活的数据-第2章 处理数据》有关代码
- 数据结构编程笔记二十五:第九章 查找 二叉排序树(动态查找表)查找算法的实现
- MFC学习笔记-界面02
- 5、SONIX单片机TC0、TC1的pwm输出
- Keil ARM编译器命令行编译中实现头文件依赖的自动推导
- Java基础部分记录
- Unity3D_元件的复制
- Android视频播放学习笔记
- 微信 iOS 收款到帐语音提醒开发总结
- 6、SONIX单片机外部输入中断
- codevs3117 高精度乘法
- mybatis 批量插入oracle