Keil四个LED灯点亮程序

Keil四个LED灯点亮程序,第1张

keil使用教程编写第一个led灯程序

1、新建一个空文件

2、打开keil-->newuVisionproject

3、选择目录,命名文件

4、选择芯片

5、添加文件

6、编写C51单片机程序

7、生成可以加载单片机里的hex文件

8、编译生成hex文件

9、将hex文件导入单片机

main:

mov P1,#0aah

acall delay

mov P1,#55H

acall delay

sjmp main

delay:mov r7,#0ffh

de:mov r6,#0ffh

djnz r6,$

djnz r7,de

ret

end 这就是你想要的效果,不妨试试哦!

初始化部分你要自己根据芯片资料写,数码管部分可以根据数码管的资料做数组xs[10]={0x3b……}要看数码管引脚定义了,看原理图看不出来的,可以做个200MS的定时器,然后计数5次就是1S

直接给数码管的IO口附数组的值,如P1=xs[5];要看你给的是哪个IO口了,我这边看不清你的原理图,LED亮200MS后就换动作太快,看不出效果,可以把时间加长

1C51硬件上,必须LED阴极接IO口,阳极接VCC,记得串个电阻。因为Ioh非常小。接反了,啥都不亮。(所以P11=1肯定不会亮的)

2楼上的程序不完善或不准确。P1^1语法错了,他们没有调试过,呵呵。我调过了

#include<reg51h>

#define ON 0

#define OFF 1

sbit LED11=P1^1;

main()

{

unsigned int i,j;

LED11=ON; //根据需要设定。最好如下做个延时,跳变能看到效果。

while(1)

{

for(i=0;i<5000;i++)for(j=0;j<200;j++);

LED11=OFF;

for(i=0;i<5000;i++)for(j=0;j<200;j++);

LED11=ON;

}

}

祝你马到成功,别把兴趣给消磨掉了。

// 12MHz晶振

#include<reg51h>

sbit LED=P1^0; //LED接P10

unsigned int cnts_per250us;

void main( )

{

LED=LED;

EA=1;

ET0=1;

TMOD=0x02; // 自动重装模式

TH0=TL0=6;

TR0=1;

while(1);

}

void t0() interrupt 1

{

if ( ++cnts_per250us==40000)

{

LED=~LED;

cnts_per250us=0;

}

}

void set_led(int n, int status)

{

    // TODO, board specific

}

void wait_second(int n)

{

    // TODO, board specific

}

int main()

{

    int i, lastLED;

    for (i=0; i<4; i++)

        set_led(i, 0);

    lastLED = 0;

    while (1) {

        for (i=0; i<4; i++) {

            set_led(lastLED, 0);

            set_led(i, 1);

            lastLED = i;

            wait_second(1);

        }

    }

}

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

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

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

纯文本复制

#<reg52h>

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=0; i<30000; i++); //延时一段时间

LED = 1; //熄灭小灯

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

}

}

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

以上就是关于Keil四个LED灯点亮程序全部的内容,包括:Keil四个LED灯点亮程序、单片机间隔点亮一led灯的汇编语言程序、用简单的C语言程序控制LED灯的点亮等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/9814292.html

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

发表评论

登录后才能评论

评论列表(0条)

保存