# 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);
}
}
|