stc单片机官方使用手册 stc单片机应用实例

STC单片机开门狗应用实例STC单片机是一款增强型51单片机,与MCS-51完全兼容。它还增加了新的功能,如增加两级中断优先级,增加一个外部中断,内置EEPROM,硬件看门狗,断电模式和512B内存。它还支持ISP下载。不用程序员,用一个MAX232和一些便宜的元件就能写出程序,可以擦除10万次。所以是一款非常好用的单片机。

这里简单说明一下它的看门狗的用法。STC微控制器的看门狗一旦启动就无法停止,其看门狗溢出时间可以通过使用STC微控制器用户手册来计算。简单的例子如下:

# I include//STC单片机头文件

#定义uint无符号整数

#定义uchar无符号字符

sbit led=p1^0;

//=================================================================

//函数名:void delay (uint us)

//功能:延迟

//Entry参数:美国延迟时间的长度。

//导出参数:无

//=================================================================

无效延迟(美国)

{

while(us-);

}

主()

{

WDT _ CONTR=0x3c;//启动看门狗

led=1;//点亮LED。

延迟(100);

led=0;

延迟(100);//关闭LED

while(1)

{

WDT _ CONTR=0x3c;//喂狗。如果该位被屏蔽,看门狗将在溢出后复位,LED将持续闪烁。

}

}

STC单片机硬件PWM的使用分析STC单片机(带PCA功能)如何实现变频PWM输出?很多朋友还在用定时器做变频PWM。这里我将介绍如何在定时器0的分频基数下,用硬件PWM来设计PWM。

首先,看看CMOD的登记簿。在这里,我们主要关注CPS0、CPS1和CPS2。这三位控制PCA计数脉冲源的选择。对应于PWM功能,选择频率。首先,你可以选择六个固定的分频。从图中可以看出,分别是1、2、4、6、8、12的系统分频。我们需要做变频PWM,所以需要选择模式2,选择定时器0的溢出作为系统分频的基数。

然后,我们来看看具体怎么计算,实现分频。下面是上图的计算规则。这里我举个例子来说明,比如我们单片机的晶振用的是12MHZ,我们需要实现300HZ的频率。如果你得到了呢?

首先,如果我们用CMOD的固定分频,可以发现无论1、2、4、8、12,频率都不是300HZ。所以这里也体现了使用定时器0作为分频基数的好处。

我们继续计算,12MHZ需要转换成300HZ,所以根据上图,我们需要先确定PCA时钟输入频率。根据公式300*256=76800HZ,这个值就是我们需要的PCA时钟输入频率。现在的问题是,我们怎么把12MHZ转换成76.8KHZ,12000 kHz/76.8 kHz=156.25,而这个156.25就是分频基数,这个分频基数是由我们的定时器溢出参数设置的,也就是说当我们的定时器计数到156.25溢出时,就可以达到156.25的分频基数,所以我们在设置定时器0的计数起始值为65536-。

嗯,PWM怎么算?定时器0下我们需要的任意频率的计算方法到此结束。如果要动态改变频率,可以通过通信动态调整定时器0的计数基数(实际上是调整分频基数),然后就可以改变频率了。另外注意:这里的定时器0是不需要中断的,定时器不是用来产生PWM的,而是作为分频基数使用的!