//流水灯显示值
//播放暂停标志位
sbit button=P3^3;
//中断1引脚
void delay_ms(uint x);
void main() { IE=0X84; }
IT1=1;
//延时子程序
//中断初始化,开中断1跳沿触发
LEDX=0x80; //显示值初始化 while(1) { if(PLAY==1) }
{ LEDX=_crol_(LEDX,1); //循环左移 }
P2=LEDX; delay_ms(500);
void delay_ms(uint x) { uchar y; }
void Play_pause() interrupt 2 { if(button==0) }
{ delay_ms(10); }
if(button==0)
//按键防抖
//标志取反
while(x--)
for(y=0;y<120;y++);
{ PLAY=~PLAY; }
6-2
#include void main() { TMOD=1; } //设置T0为方式0,时钟频率6MHz TH0=15536/256; TL0=15536%256; //赋初值,定时100ms TR0=1; while(1) { if(TF0==1) //查询方式定时 } { TH0=15536/256; } TL0=15536%256; TF0=0; if(++time==10) //100ms循环10次, { time=0; P1_0=~P1_0; } 6-3 #include void main() { TMOD=0X25; } void T0_count() interrupt 1 { TR1=1; } void T1_wave() interrupt 3 { P1_0=~P1_0; } TR0=0; //打开T1定时 //关闭T0计数 TH0=0XFF; TL0=0XFF; TH1=6; TL1=6; IE=0X8A; //开中断T0,T1 TR0=1; while(1); //T0方式1计数,T1方式2定时 6-4 #include void main() { TMOD=0X60; } void T1_count() interrupt 3 { P1_0=~P1_0; } //T1方式2 TH1=TL1=254; //计数值2 IE=0X88; TR1=1; while(1); //开T1中断 6-5 #include void main() { TMOD=0X27; TL0=0XFF; TH0=206; IE=0X8A; TCON=TCON|0X50; } void T0_count() interrupt 1 { TL0=0XFF; } void T1_wave() interrupt 3 { P1_0=~P1_0; } TH0=206; while(1); 6.4.4 #include void main() { } TMOD=0X90; TL1=0; while(Pluse); //等待INT1引脚变为低电平 TR1=1; while(!Pluse); // 等待INT1引脚变为高电平 while(Pluse); //等待INT1引脚变为低电平 TR1=0; //停止计数 //读出计数值 //T1为方式1定时,GATE=1 P1=TL1; 习题6-4 #include //轮换标志位 //显示计数、定时循环 sbit LEDC=P2^0; sbit LEDT=P2^6; void main() { LEDC=1; } LEDT=0; TMOD=3; TH0=0XFF; TL0=0X9C; IE=0X82; TR0=1; while(1); //T0方式1计数 //计数100 //开T0中断 void T0_candt() interrupt 1 { if(flag==0) //标志位为0时,计数 { TMOD=3; TH0=0XFF; TL0=0X9C; LEDC=1; } LEDT=0; else { TMOD=1; TH0=0XFE; TL0=0X0C; LEDT=1; LEDC=0; } flag=~flag; } //标志位为1时,定时 //标志位取反 #include void main() { TMOD=2; TL0=76; TH0=236; TR0=1; while(1) { if(TF0==1) //6MHz晶振 //高低电平标志位,初始为0 //T0工作在方式2 //执行需4us //执行需2us { P1_0=~P1_0; if(flag==0) //执行需4us { TL0=81; // 输出低电平360us,调整10us } else { TL0=241; //输出高电平40us,调整10us } flag=~flag; //高低电平标志位 TF0=0; //查询方式,溢出位清0 } } } 因篇幅问题不能全部显示,请点此查看更多更全内容