为什么会有这么简单的应用
一个成品仪表,可以测量频率,需要一个频率发生器,验证好坏。之前用的信号发生器,公司只有一台,不方便,所以弄一个简单的,能输出一个方波信号就行。
软件
下载的时候选择30M主频,主频越高,输出的频率与设置误差越小。
#include "stc15.h"
//接P3.5 T0CLKO输出
#define SYSclk 30000000L //系统时钟
#define PWMclk 4000L //输出频率 当前程序和时钟可设置范围//229Hz - 15MHz //只是理论值
#define T0_CZ 65536-(SYSclk/2/PWMclk) //T0初值
void Timer0_Init(void)
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = T0_CZ; //设置定时初始值
TH0 = T0_CZ>>8; //设置定时初始值
TF0 = 0; //清除TF0标志
INT_CLKO |= 0x01; //使能P3.5引脚输出T0溢出率/2
TR0 = 1; //定时器0开始计时
}
void main()
{
P3M0 = 0x20; P3M1 = 0x00; //P3.5推挽
Timer0_Init(); //定时器初始化
while(1);
{
}
}
硬件电路图与实物

