修改版
- /*
- By:Xsxin
- Time:2020.4.5
- STC15F104E
- IRC频率12M.
- */
- #include<reg51.h>
- sfr AUXR = 0x8E;
- unsigned int a=0;
- sbit led=P3^4;
- sbit p=P3^2; //pwm输入脚
- void Timer0Init(void) //12.000MHz
- {
- AUXR &= 0x7F; //定时器时钟12T模式
- TMOD &= 0xF0; //设置定时器模式
- TL0 = 0x00; //设置定时初值
- TH0 = 0x00; //设置定时初值
- TF0 = 0; //清除TF0标志
- TR0 = 0; //定时器0停止计时
- }
- void Delay100ms()
- { //@11.0592MHz
- unsigned char i, j, k;
- i = 5;
- j = 52;
- k = 195;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- void main()
- {
- Timer0Init(); //初始化
- while(1)
- {
- if(p==1)TR0 = 1; //满足条件,开始计时
- if(p==0)
- {
- TR0 = 0; //停止计时
- a = TH0;
- a = a*256+TL0;
- TL0 = 0x00; //清零
- TH0 = 0x00; //清零
- if(a>900&&a<1100)
- {
- led=1;
- Delay100ms();
- }
- if(a>1400&&a<1500)
- {
- led=1;
- Delay100ms();
- Delay100ms();
- Delay100ms();
- Delay100ms();
- }
- else led=0;
- }
- }
- }
-
复制代码 |