宏定义
#include<iocc2530.h>
#define uchar unsigned char
#define uint unsigned int
/*LED1:P1_5
LED2:P1_0
LED3:P1_3
LED4:P1_4*/
初始化
void Initial(void)
{
P1SEL&=~0x39;//功能寄存器 :0为普通IO口,1为第二功能–外设
P1DIR|=0x39;//方向寄存器 :0为输入 , 1为输出
P1&=~0x39;//将四个灯熄灭
}
延迟函数
/*函数名称:Delay
*传入参数 :uint time
*实现功能 :延迟
*/
void Delay(uint time)
{
uint i;
uchar j;
for(i=0;i<time;i++)
for(j=0;j<240;j++)
{
asm("NOP");
asm("NOP");//asm是内嵌汇编,nop是空操作,执行一个指令周期
asm("NOP");
}
}
闪烁
/*函数名称:Blink
*传入参数 :uint j, uchar status
*j为闪烁次数,status 为需要闪烁的灯
*实现功能 :根据传入的闪烁次数,去闪烁这个灯
*/
void Blink(uint j, uchar status)
{ uint i;
for(i=0;i<j;i++)
{
P1=status; //寄存器赋值方法
Delay(1200);//延迟
P1&=~0x39;//重置,将灯熄灭,为下一次亮做准备
Delay(1200);//延迟
}
}
主函数
main()
{
Initial();//初始化LED灯
while(1)
{
Blink(10,0x20);//闪烁10下
Blink(8,0x01);//闪烁8下
Blink(6,0x08);//闪烁6下
Blink(4,0x10);//闪烁4下
}
}