数字技术与工控

家用电器、电子技术、数字技术应用、电工、工控等技术应用

« 高压柜图纸里有看不懂  求教

如何用T0输出两个不同的频率(先低频率,然后高频率)

      我用T0定时,输出两个不同的频率,先输出一个低点的频率,延时一段时间输出高点的频率,本来是想通过改变装不同的初值来实现输出不同的频率,但程序下载在单片机后,用示波器观察不正确,一直只有低的频率,不论等多久,而且发现示波同时显示有两种波形,但高频率的波形很浅,基本上看不出来,程序如下:


#include
sbit PULSE=P3^2;//脉冲输出脚
unsigned char CZH ;//初值变量
unsigned char CZL ;
unsigned char i=0;//定全局变量
void init()//初始化
{
TMOD=0X01;//实时器0工作在方式1
CZH=0xFE;//赋初值
CZL=0x33;
TH0=CZH;//装初值
TL0=CZL;
EA=1;//开中断
ET0=1;//定时器0开断
TR0=1;//启动定时器0
PULSE=0;
}
void main()
{
init();//初始化
while(1)
{


if(TF0)//等待中断
{
PULSE=~PULSE;
TF0=0;
}
}


}


void ET0INT() interrupt 1 using 1//定时器0中断程序
{
i++;
if(i<=50)//重赋初值,i小于50时频率为1.8K
{
CZH=0xFE;
CZL=0x33;
}
else //重赋初值,i大于后50时频率为8K
{
CZH=0xFF;
CZL=0x9A;
}
TH0=CZH;//装初值
TL0=CZL;
}
请各高手帮忙看下是哪里有问题,谢谢……




本篇来源于:数字技术与工控 http://www.365hn.com.cn本文出处.

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog Arwen

Copyright www.365hn.com.cn 数字技术与工控. Some Rights Reserved.