写了一个定时器输出方波的程序,然后通过按键改变输出方波的频率,但是实际使用没效果,频率没在变,请大神们看下问题出在哪里
(K1,K2是调频率的)求大神们指点一下
单片机源码:
- #include<reg52.h>
- sbit qw=P1^1;
- sbit OUT=P1^2;
- sbit K1=P2^0;
- sbit K2=P2^1;
- sbit K3=P2^2;
- sbit K4=P2^3;
- int i=0,t=5;
- void main(void)
- {
- TMOD=0x01;
- EA=1;
- ET0=1;
- TR0=1;
- TH0=(65536-20)/256;
- TL0=(65536-20)%256;
- qw=0;
- while(1)
- {
- if(K1==0)
- {
- {
- t--;
- if(t==0)
- {
- t=9;
- }
- while(!K1);
- }
- }
- if(K2==0)
- {
-
- {
- t++;
- if(t==10)
- {
- t=1;
- }
- while(!K2);
- }
- }
- if(K4==0)
- {
-
- {
- TR0=0;
- OUT=0;
- }
- while(!K4);
- }
- if(K3==0)
- {
- {
- qw=~qw;
- }
- while(!K3);
- }
- }
- }
- void Time0_serve(void) interrupt 1
- {
- TH0=(65536-20)/256;
- TL0=(65536-20)%256;
- i++;
- if(i==t)
- {
- OUT=0;
- }
- if(i==10)
- {
- i=0;
- OUT=1;
- }
- }
复制代码
|