AT89S52语言常用程序——闪烁灯
          
            时间:12-02 09:57 阅读:994次
*温馨提示:点击图片可以放大观看高清大图
                
         
        
		  
               简介:这里给大家分享一个AT89S52语言常用程序——闪烁灯。
               
                        
          
            #include <reg52.h>// 
sbit gate=P2^0;// 定义P2-0口
void main(void)
{
unsigned int i,j;
while(1)
{
for(i=500;i>0;i--)
for(j=500;j>0;j--);// 双重循环,延时约1秒
gate=!gate;// 对P-0口取反,控制小灯的亮灭
}
}
#include <reg52.h>
#define uint unsigned int
sbit gate1=P2^0; 			// 定义P2-0口
sbit gate2=P2^1; 			// 定义P2-1口
sbit gate3=P2^2; 			// 定义P2-2口
sbit gate4=P2^3; 			// 定义P2-3口
void main(void)
{
uint i,j;
while(1)
{
for(i=250;i>0;i--)
for(j=250;j>0;j--);			// 双重循环,延时约0.2秒
    gate1=!gate1;			// 对P-0口取反,控制小灯的亮灭
    gate2=!gate2;			// 对P-1口取反,控制小灯的亮灭
    gate3=!gate3;			// 对P-2口取反,控制小灯的亮灭
    gate4=!gate4;			// 对P-3口取反,控制小灯的亮灭
}
}
#include <reg52.h>
#include <absacc.h>
#define unit unsigned int
#define uchar unsigned char
sbit L0=P2^0;
sbit L1=P2^1;
sbit L2=P2^2;
sbit L3=P2^3;
uchar data BUFFER[1]={0}; 	/*定时器计数变量*/
void main(void)
{
P2=0x0f;					// 初始化端口
EA=1; IT1=1; ET0=1;
TMOD=0x01;  				/* T0方式1计时0.01秒 */
TH0=-5000/256;
TL0=-5000%256;
TR0=1;						/* 开中断,启动定时器 */
for (;;);
}
/* 定时计数器0的中断服务子程序 */
void intserv1(void)  interrupt 1 using 1
{
TH0=-5000/256;				// 定时器T0的高四位赋值
TL0=-5000%256;
BUFFER[0]=BUFFER[0]+1; 		// 定时器T0的低四位赋值
if (BUFFER[0]==100)			// 百分秒进位
{
L3=!L3;
L2=!L2;
L1=!L1;
L0=!L0;
}
}