- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit jiasu=P1^0;
- sbit jiansu=P1^1;
- sbit pwm=P2^0;
- sbit fx=P2^3;
- uchar gdp;//高电平时间变量
- uchar tt=100;//周期变量
- uchar time;//定时器自动加1变量
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=120;y>0;y--);
- }
- void tm0() interrupt 1
- {
- TH0=(65536-65526)/256;
- TL0=(65536-65526)%256;
- time++;
- if(time==gdp)//高电平时间到。PWM脉冲变低
- pwm=0;
- else
- if(time==tt)//周期时间到
- {
- pwm=1;
- time=0;
- }
- }
- void main()
- {
- TMOD=0X01;
- TH0=(65536-65526)/256;
- TL0=(65536-65526)%256;
- EA=1;
- ET0=1;
- TR0=1;
- fx=1;
- while(1)
- {
- if(!jiasu)
- {
- delay(10);
- if(!jiasu)
- {
- gdp+=5;
- if(gdp>=100)
- gdp=95;
- while(!jiasu);
- }
- }
- if(!jiansu)
- {
- delay(10);
- if(!jiansu)
- {
- gdp-=5;
- if(gdp<=10)
- gdp=10;
- while(!jiansu);
- }
- }
- }
- fx=0;
- while(1)
- {
- if(!jiasu)
- {
- delay(10);
- if(!jiasu)
- {
- gdp+=5;
- if(gdp>=100)
- gdp=95;
- while(!jiasu);
- }
- }
- if(!jiansu)
- {
- delay(10);
- if(!jiansu)
- {
- gdp-=5;
- if(gdp<=10)
- gdp=10;
- while(!jiansu);
- }
- }
- }
- }
复制代码 |