首页 > 编程语言 >LQB03控制LED编程的操作视频

LQB03控制LED编程的操作视频

时间:2023-02-25 12:05:47浏览次数:40  
标签:P2 P0 choose573 LED 编程 delay1ms LEDbuf LQB03


1、KEIL软件的使用;工程建立,文件的导入
2、头文件的生成和使用,stc15.h;延时函数的生成,以及修改
3、编译错误的调试,修改;
4、代码的烧录。

代码功能;
开机关闭外设;
循环一下操作:
整体点亮,一秒,整体熄灭一秒;

#include <stc15.h>
#include <intrins.h>

void delay1ms(int tms) //@11.0592MHz
{
unsigned char i, j;

for(tms;tms>0;tms--)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}

}

#define LED 4
#define ULN 5
#define COM 6
#define ABC 7

void choose573(unsigned char x)
{
switch(x)
{
case 0:
P2 =P2&0x1F;//0x1F ====0001 1111
break;
case LED: //Y4---LED
P2= (P2&0x1F) | 0x80;break; //1000 0000
case ULN://Y5---蜂鸣器
P2 =(P2&0x1F) | 0xA0;break; //1010 0000
case COM: //Y6---数码管
P2= (P2&0x1F) | 0xC0;break; //1100 0000
case ABC://Y7 ---数码管
P2 =(P2&0x1F) | 0xE0;break; //1110 0000
default:break;
}
}
//全局变量
unsigned char LEDbuf;
unsigned char ULNbuf;

void main()
{
//关闭外部设备,LED,蜂鸣器等等;
//关闭LED
choose573(LED);
LEDbuf=0xFF;
P0=LEDbuf;
choose573(0);

//关闭fengmignqi
choose573(ULN);
ULNbuf=0x00;//ULN2003是反相的放大,1--0,0--1
P0=ULNbuf;
choose573(0);

//关闭数码管
choose573(COM);
P0=0x00;
choose573(0);
choose573(ABC);
P0=0xFF;
choose573(0);

while(1)
{
choose573(LED);
LEDbuf=0x00;
P0=LEDbuf;
choose573(0);

delay1ms(1000);

choose573(LED);
LEDbuf=0xFF;
P0=LEDbuf;
choose573(0);

delay1ms(1000);


choose573(LED);
//让LED1点亮,其他熄灭
LEDbuf=0xFE; //1111 1110
P0=LEDbuf;
choose573(0);

delay1ms(300);

choose573(LED);
//让LED1点亮,其他熄灭
LEDbuf=0xFF; //1111 1111
P0=LEDbuf;
choose573(0);

delay1ms(300);

choose573(LED);
//让LED2点亮,清0,其他保持不变 1111 1101
LEDbuf=LEDbuf & 0xFD; //0xFD
P0=LEDbuf;
choose573(0);

delay1ms(300);

choose573(LED);
//让LED2熄灭,1 其他保持不变 0000 0010
LEDbuf=LEDbuf | 0x02; //0xFD
P0=LEDbuf;
choose573(0);

delay1ms(300);
}
}


标签:P2,P0,choose573,LED,编程,delay1ms,LEDbuf,LQB03
From: https://blog.51cto.com/u_1355431/6085185

相关文章