行业资讯
#include reg51.h
#define LED P1 //宏定义,使用LED代替P1口(相当于LED=P1)
#define uchar unsigned char //用uchar代替unsigned char方便操作
#define uint unsigned int
/*------------------time ms延时函数-----------------*/
void delay_ms(uint time)
{
uchar tres;
for(;time0;time--)
{
tres=150;
while(tres--);
}
}
void main()
{
uchar t;
LED=0X01;//P1=00000001B
while(1)//死循环,不停的仔改点亮和熄灭LED
{
for(t=0;t8;t++)
{
LED=~LED;//按位取反,点亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//按位取反
LED=1;//左移一位,点亮不同的LED
}
LED=0X80;//P1=10000000B
for(t=0;t8;t++)
{
LED=~LED;//按位取反,点念滑判亮一个LED
delay_ms(100);//延时0.1s
LED=~LED;//让孝按位取反
LED=1;//右移一位,点亮不同的LED
}
LED=0X01;//P1=00000001B
}
}
#includereg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
void Delay(unsigned int t); //埋让函数声明
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
unsigned char i; //定义一个无符号字符型局部辩液禅变量 i 取值范围 0~255
Delay(50000);
while (1) //主循环中添加其他需要一直工作的程序
{
P1=0xfe; //赋初始值
for(i=0;i8;i++) //加入 for循环,表携尘明for循环大括号中的程序循环执行8次
{
Delay(50000);
P1=1;
}
}
}
/*------------------------------------------------
延时函数,含有输入参数 unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
uchar key_scan(void)
{
if(P3^1==0) //当按键按下是低电平时
{
delay_ms(12);//消抖
if(P3^1==0) return 1;
}
return 0;
}
void main()
{
uchar cnt=0,key;
uchar led[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
while(1)
{
key=key_scan();
if(key==1) //按键按下了
{
if(cnt++=8)cnt=0;
}
P1=led[cnt];
}
}
纯手陪谨打,没有编粗盯译,思路大概这样岩乱和
#include reg51.h
#define LED P1 //雹唤搭宏链稿定义,使用LED代替P1口(相当于LED=P1)
#define uchar unsigned char //用uchar代替unsigned char方便操作
#define uint unsigned int
/*------------------time ms延时函数-----------------*/
void delay_ms(uint time)
{
uchar tres;
for(;time0;time--)
{
tres=;
while(tres--);
}
void in()
{
uchar t;
LED=0X01;//P1=B
while(1)//ˀѭ»·,²»ͣ源拿µĵぁº͏¨ðLED
{
for(t=0;t
关键词:p1口做输出口接8个发光二极管 发光二极管
一点销电子网
Yidianxiao Electronic Website Platform