LED流水灯实验
- categories
LED流水灯实验
下载程序后“LED模块”的D1-D8指示左右点亮
代码一:
#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
void main()
{
u8 i=0;
LED_PORT=~0x01;
delay_10us(50000);
while(1)
{
//方法1:使用移位+循环实现流水灯
//for(i=0;i<8;i++)
// {
// LED_PORT=~(0x01<<i); //将1右移i位,然后取反将结果赋值到LED_PORT
// delay_10us(50000);
// }
//方法2:使用循环+_crol_或_cror_函数实现流水灯
for(i=0;i<7;i++) //将led左移一位
{
LED_PORT=_crol_(LED_PORT,1);
delay_10us(50000);
}
for(i=0;i<7;i++) //将led右移一位
{
LED_PORT=_cror_(LED_PORT,1);
delay_10us(50000);
}
}
}
代码二:
#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
void time (u16 i)
{
u16 j,k;
for(j=0;j<i;j++)
{
for(k=0;k<225;k++);
}
}
void main()
{
u8 p;
for(p=0x01;p!=0x00;p<<=1)
{
P2=~p;
time(5000);
}
}
说明:
typedef [已存在的数据类型] [自定义变量]
函 数 名 : delay_10us
函数功能 : 延时函数,ten_us=1时,大约延时10us
输 入 : ten_us
输 出 : 无
函 数 名 : time
函数功能 : 延时函数,i=1时,大约延时2.25us
输 入 : i
输 出 : 无
函 数 名 : main
函数功能 : 主函数
输 入 : 无
输 出 : 无
comment:
- Valine
- LiveRe
- ChangYan