# include <reg52.h>
typedef unsigned int u16;//习惯性写入
typedef unsigned char u8;
/*define uchar unsigned char
define uint unsigned int
define ulint unsigned long
//宏定义*/
sbit led=P0^0;//定义单个脚
//#define led P0//预转换 一组脚
void delay(u16 i)
{
while(i--);//延时
}
void main()
{
while(1)
{
led=1;//端口为低电平,默认为低电平,预转换可用16进制
delay(50000);//不精确,约450ms
led=0;
delay(50000);
}
}
//另一个(不会上传附件)
# include<reg52.h>
# include<intrins.h> //左右移函数需要
typedef unsigned int u16;
typedef unsigned char u8;
//sbit led=P0;//位定义
#define led P0//宏定义
void delay(u16 i)
{
while(i--);
}
void main()
{
u8 i;
led=0x01;
delay(50000);
while(1)
{
// for(i=0;i<8;i++)
// {
// P0=(0x01<<i);//将1右移i位,然后将结果赋值到P0口
//// P0=(0x80>>i);//将1左移i位,然后将结果赋值到P0口
// delay(50000);
// }
for(i=0;i<7;i++)
{
led=_crol_(led,1);//左移
// led=_cror_(led,1);//右移
delay(50000);
}
}
}
//另一个
# include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
#define led P0
u8 code lyt[17]={0x00,0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80,0xff};
//对应1~8灯,第一个数据无意义,可用于消影
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
led=lyt[9];
delay(50000);
led=lyt[0];
delay(50000);
}
}
|