#i#include<reg52.h> #define uint unsigned int /*宏定义*/ #define uchar unsigned char /*宏定义*/ sbit P2_0=P2^0; sbit S1=P0^0; sbit S2=P0^1; sbit S3=P0^2; bdata flag=0x20^0; uint nmuber0,nmuber1,count0,count1; uint th0_h,th0_l,th1_h,th1_l; void delay(uint z); void time_initial(); void main() { time_initial(); while(1); } void time_initial() //定时器初始化 { TMOD=0X11; TH0=0x0D8;//5ms TL0=0x0F0;//5ms TH1=0x0D8;//5ms TL1=0x0F0;//5ms TH0=0xf0; //2ms TL0=0x60; //2ms TH0=0xfc; //0.5ms TL0=0x18; //0.5ms TH0=0x0F8; // 1ms TL0=0x30; // 1ms TH1=0x0F8; // 1ms TL1=0x30; // 1ms TH0=0x0FF;// 0.1ms TL0=0x38; // 0.1ms TH1=0x0FF; // 0.1ms TL1=0x38; // 0.1ms ET0=1; //定时器0的中断控制位 ET1=1; //定时器1的中断控制位 EX0=1; //外部的中断0控制位 IT0=1; //外部中断0为下降沿触发方式 ES=1; REN=1; TR0=1; EA=1; count0=1; count1=1; } void Time0() interrupt 1 //定时器0的中断函数? { TH0=0xd8;//5ms TL0=0x0f0;//5ms nmuber0++; if(nmuber0==count0) { nmuber0=0; TH1=0xd8;//5ms TL1=0xf0;//5ms P2_0=1; TR1=1; TR0=0; } } void Time1() interrupt 3 //定时器0的中断函数? { TH1=0x0D8;//5ms TL1=0x0F0;//5ms nmuber1++; if(nmuber1==count1) { nmuber1=0; P2_0=0; TR1=0; TR0=1; } } void int0() interrupt 0// 外部的中断函数 { P2_0=0; TH0=0xd8;//5ms TL0=0xf0;//5ms delay(15); TR0=1; } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } |