📄 myio.h
字号:
/*myio.h-自己写的链接库*/
//====声明区=============================================================
#define LED P0 //定义LED接至P0口
void debouncer(void); //声明防抖动函数
void delay10ms(int); //声明10ms延时函数
void alter(int); //声明高地位交互闪烁函数
void left(int); //声明单灯左移函数
void right(int); //声明单灯右移函数
void pili(int); //声明霹雳灯函数
void fiash(int); //声明闪烁函数
//====自己写的子程序======================================================
/*防抖动函数,延时约20ms*/
void debouncer(void) //防抖动函数开始
{
int i; //声明整数变量i
for(i=0;i<2400;i++); //计数2400次,延时约20ms
}
/*延时函数,延时约x乘以10ms*/
void delay10ms(int x)
{
int i,j; //声明整数变量i,j
for(i=0;i<x;i++) //计数x次,延时约x乘以10ms
for(j=0;j<=1200;j++);//计数1200次,延时约10ms
}
/*高地位交互闪烁函数,执行x次*/
void alter(int x)
{
int i; //声明整数变量i
LED=0xof; //初始状态(高位亮,低位灭)
for(i=0;i<2*x-i;i++) //i变量for循环执行2x-1次
{ delay10ms(50); //延时50*10ms=0.5s
LED=~LED; //LED反相输出
}
delay10ms(50); //延时50*10ms=0.5s
}
/*全灯闪烁函数,执行x次*/
void fiash(int x)
{
int i; //声明整数变量i
LED=0x00; //初始状态全亮
for(i=0;i<2*x-i;i++) //i变量for循环执行2x-1次
{ delay10ms(50); //延时50*10ms=0.5s
LED=~LED; //LED反相输出
}
delay10ms(50); //延时50*10ms=0.5s
}
/*单灯左移函数,执行x圈*/
void left(int x)
{
int i,j; //声明整数变量i,j
for(i=0;i<x;i++) //i循环,执行x次
{ LED=0xfe; //初始状态=1111 1110
for(j=0;j<7;j++) //j循环,左移7次
{ delay10ms(25); //延时25*10ms=0.25s
LED=(LED<<1)|0x01;//左移一位后,LSB设为1
}
delay10ms(25); //延时25*10ms=0.25s
}
}
/*单灯右移函数,执行x圈*/
void right(int x)
{
int i,j; //声明整数变量i,j
for(i=0;i<x;i++) //i循环,执行x次
{ LED=0x7f; //初始状态=0111 1111
for(j=0;j<7;j++) //j循环,右移7次
{ delay10ms(25); //延时25*10ms=0.25s
LED=(LED>>1)|0x08;//右移一位后,MSB设为1
}
delay10ms(25); //延时25*10ms=0.25s
}
}
/*霹雳灯函数,执行x圈*/
void pili(int x)
{
int i; //声明整数变量i
for(i=0;i<x;i++) //i循环,执行x次
{ left(1); //单灯左移一圈
right(1); //单灯右移一圈
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -