发一个产生扫频信号的程序,大家参考一下
//单片机晶振12MHz,这个程序如果要提高扫频信号输出的频率关键的一句是本文引用地址:http://www.eepw.com.cn/article/201611/315780.htm
//dataLoad=10000/(2*(4+i));//153个时钟周期
//记该指令的执行时间是N个时钟周期
//该程序可以输出地扫频信号的最高频率为fosc/(2*N*12)
//如果想要提高扫频信号的最高频率使用时钟频率更高的芯片,或者可以
//更改这条语句,使之执行时间缩短
//这个程序的编程思路如下:
//定时器0负责输出方波的定时,输入指定频率的方波
//定时器1负责0.1秒定时,如果时间到,则改变
//定时器0的控制的输出方波的频率
#include sbit outWave=P0^0;
#define uchar unsigned char
#define uint unsigned int
uchar t1Counter;//the times of t1 interrupt
uint dataLoad; //the reset data of the time0, volatile variable.
bit t1Int;// the flag of time1 interrupt
//定时器0初始化
void InitTimer0(){
TMOD|=0x01;//定时器方式1
ET0=1;//允许T0中断
TH0=(65536-dataLoad)/256;//定时器初值10ms