我写了个脉冲输出程序,改写定时器初值,用proteus仿真的,结果脉冲的周期没变化(示波器显示)是什么原因啊?请教高手,多谢帮帮忙啊!!!
附程序
#include<reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char count0 = 20000;// 定时器初值
sbit PWM1=P2^3;//PWM 通道 1
void Timer0_init(void);
void Timer0_int(void) interrupt 1 using 1//定时0中断处理
{
TR0 = 0;
TL0 = ( count0+9) % 256;
TH0 = ( count0+9) / 256 + (char)CY; //强制转换CY(进位标志)的类型为char类型
TR0 = 1;
PWM1=~PWM1;
}
void Timer0_init(void)//定时器0初始化
{
TMOD=0x01;
TH0=count0 / 256;
TL0=count0 % 256;
TR0=1;
ET0=1;
EA=1;
}
void main(void)//主函数
{
Timer0_init();
while(1)
{
}
}
就是直接改写count0的数值,看输出波形变化