#include"intrins.h"
typedef unsigned char u8;/*char 为1字节,8位 */
typedef unsigned int u16;
/*一般情况下用int,因为unsigned char取值范围为0~255;而int为65535;
用u16,u8使代码的可移植性高 */
#define led P0
//sbit led=P0^0;
//两种表示方式
void delay(u16 i)
{
while(i--);
}//运用延时函数达到使led灯闪烁的目的
void main()
{
/*
while(1)
{
led=1;
delay(50000);//i=1时,约等于是10us,所以50000是500ms
led=0;
delay(50000);
}
//这段代码实现一个led灯的闪烁。即亮了0.5秒后,暗0.5秒。但是由于delay函数是不精确的,所以时间不是准确的0.5s
*/
/*u8 i;
led=0x01;//表示16进制,第一个led灯 0000 0001
delay(50000);
while(1)
{
for(i=0;i<8;i++)
{
led=(0x01
}
}
//这段代码实现了八个led灯的依次点亮,实现了流水灯的功能
*/
u8 i;
led=0x01;
delay(50000);
while(1)
{
for(i=0;i<7;i++)
{
led=_crol_(led,1);
delay(50000);
}
for(i=0;i<7;i++)
{
led=_cror_(led,1);
delay(50000);
}
}
/*这段代码实现了走马灯的功能1~8依次亮,接着8~1亮
因为运用了_cror_(a,b)函数,所以需要引用头文件instrins.h
至于为什么上一段代码是i<8,这一段是i<7;
其实是根据具体操作来的,亲故可以自行体验下他的用法
第二段代码是led=(0x01
值在i=0循环的时候就变成了0010起始,而上一段还是0001起始。 */
}