单片机LED灯闪烁程序?

单片机LED灯闪烁程序?,第1张

char LED

sbit key1down=P1^0 // 设开关key1连接此端口

sbit key2down=P1^1 // 设开关key2连接此端口

void main(){

P0=0xff // 输出低电平LED亮

LED=0xfe

while(1){

P0=LED delay()

if(key1){ LED <<= 1 } // 将LED左移一位

if(key2){ LED >>= 1 LED |=0x80} // 将LED右移一位

if(key1down==0) { key1=1key2=0}

if(key2down==0) { key1=0key2=1}

}

点亮 小灯的程序我们第二课完成了,就是让 LED = 0。熄灭小灯的程序也很简单,就是 LED = 1。点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁了。

我们首先复习一下 Keil 写程序的过程,建立工程-->保存工程-->建立文件-->添加文件到工程-->编写程序-->编译-->下载程序。

LED 对于有 C 基础的同学来说很简单,那我先写出来,大家可以先看下。没有C 语言基础的同学也可以跟着抄一遍,下节课我会补充部分 C 语言基础知识,这样你先抄一遍后,再跟着看 C 语言基础知识的时候也比较容易理解透彻。

纯文本复制

#<reg52.h>

sbit LED = P0^0

sbit ADDR0 = P1^0

sbit ADDR1 = P1^1

sbit ADDR2 = P1^2

sbit ADDR3 = P1^3

sbit ENLED = P1^4

main(){ //void 即函数类型

//以下为声明语句部分

unsigned int i = 0//定义一个变量 i,并赋初值 0

//以下为执行语句部分

ENLED = 0//U3、U4 两片 74HC138 总使能

ADDR3 = 1//使能 U3 使之正常输出

ADDR2 = 1//经 U3 的 Y6 输出开启Q16

ADDR1 = 1

ADDR0 = 0

(1){

LED = 0//点亮小灯

for (i=0i<30000i++)//延时一段时间

LED = 1//熄灭小灯

for (i=0i<30000i++)//延时一段时间

}

}

大家把这个程序编译一下,下载到里,就会发现 LED2 这个小灯会闪烁了。

1:设置一个变量zhidaoi,它可以从0循环到3

2:检测一个已取消缓冲的键。按“+1”

3:当I值为每个值时,执行相应的模式。

水量灯参考程序

#include

#include

#定义uchar无符号字符

Ucharj,温度;

无效延迟(无符号整型ms)

Uchart;

(女士)

对于(t = 0T <123T + +)

Voidmain()

P1=0XFF;

延迟(500);

Temp=0xfe;//奇怪,led连接在P2.3~P2.6

对于(j = 0J <4J + +)

P1=temp;

延迟(500);

Temp=_crol_(Temp,1);

P1=0XFF;

(1);

扩展资料:

注意事项:

#include“reg52。这个文件为单片机定义了一些特殊的功能寄存器

Typedef无符号int在16以下;//以声明的方式定义数据类型

无符号charu8;

//LED灯

Sbitleda=P0;

Sbitled1=P0^0;

Sbitled2=P0^1;

Sbitled3=P0^2;

Sbitled4=P0^3;

Sbitled5=P0^4;

Sbitled6=P0^5;

Sbitled7=P0^6;

Sbitled8=P0^7;

无效延迟(16岁以下)

,(我);

Voidmain()

而(1)

勒达=1;//所有的灯都亮着

//从左到右熄灭

Led1=0;

延迟(50000);//延迟时间约为450毫秒

Led2=0;

延迟(50000);//延迟时间约为450毫秒

Led3=0;

延迟(50000);//延迟时间约为450毫秒

Led4=0;

延迟(50000);//延迟时间约为450毫秒

Led5=0;

延迟(50000);//延迟时间约为450毫秒

Led6=0;

延迟(50000);//延迟时间约为450毫秒

Led7=0;

延迟(50000);//延迟时间约为450毫秒

Led8=0;

延迟(100000);//延迟大约900毫秒

//从右到左照明

Led8=1;

延迟(50000);//延迟时间约为450毫秒

Led7=1;

延迟(50000);//延迟时间约为450毫秒

Led6=1;

延迟(50000);//延迟时间约为450毫秒

Led5=1;

延迟(50000);//延迟时间约为450毫秒

Led4=1;

延迟(50000);//延迟时间约为450毫秒

Led3=1;

延迟(50000);//延迟时间约为450毫秒

Led2=1;

延迟(50000);//延迟时间约为450毫秒

Led1=1;

延迟(50000);//延迟时间约为450毫秒

勒达=1;//所有的灯都亮着


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8069602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存