#include<reg52.h> sbit p35=P3^5; sbit p20=P2^0; sbit p21=P2^1; unsigned int t0=65486; void delay(unsigned int t){ unsigned char j=0; while(--t){ j=120; while(j--); } } void timer0() interrupt 1{ P0=~P0; TH0=t0/256;TL0=t0%256; TR1 = 0; TR1 = 1; } void timer1() interrupt 3{ p35=0;p35=1; TH1=0xd8;TL1=0xf0; } void main(){ TMOD=0x15; EA=1;ET0=1;ET1=1; TH0=0xff;TL0=0xce; TH1=0xd8;TL1=0xf0; p35=1;P0=0xff; TR0=1;TR1=1; while(1){ if(p20==0){ delay(10); if(p20==0){ t0+=40; while(p20==0); } } if(p21==0){ delay(10); if(p21==0){ t0-=40; while(p21==0); } } if(t0>65486) t0=65326; if(t0<65326) t0=65486; } }
时间: 2023-08-11 14:05:28 浏览: 200
单片机中用c编程时头文件reg51.h及reg52.h解析
这段代码是一个基于51单片机的定时器实现的闪烁LED程序。其中,P0口连接了八个LED灯,P2口的0、1号引脚分别连接外部的按键,用于控制LED闪烁的频率。定时器0用于控制LED闪烁的时间,定时器1用于控制外部按键的检测与响应。程序中的delay函数是一个简单的延时函数。当按下P2口的0号引脚时,闪烁频率会加快,当按下P2口的1号引脚时,闪烁频率会变慢。程序中的TH0、TL0、TH1、TL1分别是定时器0和定时器1的高8位和低8位计数器。
阅读全文