0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机控制LED的源代码详细说明

Wildesbeast 来源:单片机教程网 作者:单片机教程网 2020-06-13 11:13 次阅读

1.实验任务

做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。

系统板上硬件连线

把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。

4.程序设计内容

我们可以运用输出端口指令MOVP1,A或MOVP1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。

汇编源程序

ORG 0

START: MOV R2,#8

MOV A,#0FEH

SETB C

LOOP: MOV P1,A

LCALL DELAY

RLC A

DJNZ R2,LOOP

MOV R2,#8

LOOP1: MOV P1,A

LCALL DELAY

RRC A

DJNZ R2,LOOP1

LJMP START

DELAY: MOV R5,#20 ;

D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

END

7.C语言源程序

#include

unsigned char i;

unsigned char temp;

unsigned char a,b;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m》0;m--)

for(n=20;n》0;n--)

for(s=248;s》0;s--);

}

void main(void)

{

while(1)

{

temp=0xfe;

P1=temp;

delay();

for(i=1;i《8;i++)

{

a=temp<<i;

b=temp》》(8-i);

P1=a|b;

delay();

}

for(i=1;i《8;i++)

{

a=temp》》i;

b=temp《《(8-i);

P1=a|b;

delay();

}

}

}

This program is designed for learners to learn more about the I/O port of mcs-51 series. Besides it is all free for you to use ,but i take none of the responsibility that caused by the program .And more information can get from Http:c51.redpill.cn. Designed by Chen lee,QQ:619725717

该程序适合初学者使用,并以此来了解MCS-51系列单片机的I/O控制。该程序完全免费,使用者可以放心使用,但由此所产生的一些不良后果将不由本人负责。另外,如果想了解更多单片机方面的资料,欢迎访问Http:c51.redpill.cn 作者:Chen lee ,QQ:619725717

按键控制LED的亮灭:程序的设计思路为:当P0.0=0时,将P1,P2,P3口的LED全部打开;当P0.1=0时,将上述所有的LED 关闭。。。,该程序可以在我们公司的51扳上模拟。具体参考程序如下:

orG 0000H ;程序从地址0开始执行

JMP START ;跳转到START处

START:

MOV P0,#0FFH ;先关闭所有的P0口,作好准备

LOOP:JNB P0.0,ON ;判断P0.0=0 ?

JNB P0.1,OFF ;判断P0.1=0 ?

JMP LOOP ;跳转到LOOP处形成一个循环

ON:MOV P1,#00H ;开所有P1,P2,P3口的LED

MOV P2,#00H ;

MOV P3,#00H ;

ON_1:JB P0.0,LOOP ;

JMP ON_1 ;

OFF:MOV P1,#0FFH ;关闭所有的P1,P2,P3口的LED

MOV P2,#0FFH ;

MOV P3,#0FFH ;

OFF_1:JB P0.1,LOOP ;

JMP OFF_1 ;

END;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22449

    浏览量

    645872
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620823
  • 硬件电路
    +关注

    关注

    39

    文章

    233

    浏览量

    28988
收藏 人收藏

    评论

    相关推荐

    基于51单片机的电子称设计源代码分享

    基于51单片机的电子称设计源代码
    发表于 09-26 08:10

    基于51单片机的多路开关控制小灯例程源代码

    基于51单片机的多路开关控制小灯例程源代码
    发表于 05-18 09:57 1次下载

    基于51单片机的表决器例程源代码例程

    基于51单片机的表决器例程源代码例程源代码
    发表于 05-18 09:54 0次下载

    基于51单片机的广告显示屏例程源代码

    基于51单片机的广告显示屏例程源代码
    发表于 05-18 09:52 0次下载

    基于51单片机的红外遥控步进电机例程源代码

    基于51单片机的红外遥控步进电机例程源代码
    发表于 05-16 11:16 9次下载

    基于51单片机的红外遥控舵机例程源代码

    基于51单片机的红外遥控舵机例程源代码
    发表于 05-16 11:16 14次下载

    基于51单片机的交通灯例程源代码

    基于51单片机的交通灯例程源代码
    发表于 05-16 11:14 18次下载

    基于51单片机的模拟PWM信号控制小灯例程源代码

    基于51单片机的模拟PWM信号控制小灯例程源代码
    发表于 05-16 11:12 1次下载

    基于51单片机的钟表(可定时)例程源代码

    基于51单片机的钟表(可定时)例程源代码
    发表于 05-16 11:10 0次下载

    基于51单片机的钟表(可矫正时间)例程源代码

    基于51单片机的钟表(可矫正时间)例程源代码
    发表于 05-16 11:09 0次下载

    基于51单片机的自制电压表源代码

    基于51单片机的自制电压表例程源代码
    发表于 05-12 16:29 3次下载

    基于51单片机的抢答器设计例程源代码

    基于51单片机的抢答器设计例程源代码
    发表于 05-12 16:24 22次下载

    基于51单片机的定时器例程源代码例程下载

    基于51单片机的定时器例程源代码例程源代码
    发表于 05-12 16:10 1次下载

    基于51单片机的占空比可调方波(PWM)例程源代码

    基于51单片机单片机产生占空比可调方波(PWM)例程源代码
    发表于 05-12 15:59 19次下载

    基于51单片机的表决器例程源代码

    基于51单片机的表决器例程源代码例程源代码
    发表于 05-12 15:55 1次下载