AT89S52语言常用程序——闪烁灯
时间:12-02 09:57 阅读:860次
*温馨提示:点击图片可以放大观看高清大图
简介:这里给大家分享一个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;
}
}