宏定义
#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下 } }