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
    +关注

    关注

    242

    文章

    23332

    浏览量

    662149
  • 单片机
    +关注

    关注

    6040

    文章

    44606

    浏览量

    637272
  • 硬件电路
    +关注

    关注

    39

    文章

    244

    浏览量

    29273
收藏 人收藏

    评论

    相关推荐

    怎么提升单片机代码执行效率

    ​ 提升单片机代码执行效率需要从多个方面入手,包括代码优化、硬件资源利用、编译器设置、中断处理优化以及其他技巧等。在实际应用中,需要根据具体需求和硬件条件综合考虑这些因素,以实现最佳的性能表现。 ​
    的头像 发表于 01-10 11:06 131次阅读

    如何写出稳定的单片机代码

    这篇文章分享怎么写出稳定的单片机代码。     我对优秀代码的理解,大体分为两个部分:高效和稳定。   两者都能做到很好的,如果靠自己摸索,没有刻意去练习,可能需要花10年,甚至更久
    的头像 发表于 11-15 16:40 459次阅读
    如何写出稳定的<b class='flag-5'>单片机</b><b class='flag-5'>代码</b>

    基于51单片机TEA5767收音数码管显示设计

    这是基于51单片机TEA5767收音数码管显示设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群:      单片机
    发表于 06-27 11:42 18次下载

    基于51单片机烟雾检测报警器设计

    本资源内容概要:       这是基于51单片机烟雾检测报警器设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开)。本
    发表于 06-26 10:51 1次下载

    基于51单片机无线温度传输控制设计

    本资源内容概要:       这是基于51单片机无线温度传输控制设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开
    发表于 06-26 10:50 0次下载

    基于51单片机DS18B20温度采集控制风扇设计

    本资源内容概要:       这是基于51单片机DS18B20温度采集控制风扇设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单
    发表于 06-26 10:43 0次下载

    基于51单片机数字时钟数码管显示设计

    本资源内容概要:       这是基于51单片机数字时钟数码管显示设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开
    发表于 06-25 10:42 1次下载

    基于51单片机数字时钟闹钟设计

    本资源内容概要:       这是基于51单片机数字时钟闹钟设计包含了PDF版本电路图、C语言程序源代码(keil软件打开)、proteus仿真。本资源适合人群:      单片机爱好者、电子
    发表于 06-25 10:17 0次下载

    基于51单片机热释红外报警设计

    本资源内容概要:       这是基于51单片机热释红外报警设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel表格打开
    发表于 06-25 10:15 0次下载

    基于51单片机DS18B20水箱水温检测控制设计

    本资源内容概要:       这是基于51单片机DS18B20水箱水温检测控制设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单
    发表于 06-25 10:04 0次下载

    基于51单片机24秒倒计时设计

    本资源内容概要:       这是基于51单片机24秒倒计时设计包含了 C语言程序源代码(keil软件打开) 。本资源适合人群:      单片机爱好者、电子类专业学生、电子diy爱好者。本资源能
    发表于 06-25 10:03 0次下载

    基于51单片机步进电机正反转调速控制电路图及程序

    本资源内容概要:       这是基于51单片机步进电机正反转调速控制电路图及程序设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群
    发表于 06-20 16:17 0次下载

    第三讲:单片机STC89C52+RA8889驱动控制彩屏 代码的压缩(Keil编译器)

    51单片机驱动控制芯片RA8889,源代码函数冗余较多,移植时可能会碰到输出程序过大,这里介绍压缩代码的方法。
    的头像 发表于 06-05 11:05 607次阅读
    第三讲:<b class='flag-5'>单片机</b>STC89C52+RA8889驱动<b class='flag-5'>控制</b>彩屏 <b class='flag-5'>代码</b>的压缩(Keil编译器)

    第二讲:单片机STC89C52+RA8889驱动控制彩屏 代码移植介绍

    介绍51单片机如何移植RA8889的代码进行彩屏驱动与控制
    的头像 发表于 06-04 10:36 1064次阅读
    第二讲:<b class='flag-5'>单片机</b>STC89C52+RA8889驱动<b class='flag-5'>控制</b>彩屏 <b class='flag-5'>代码</b>移植介绍

    单片机如何通过代码控制硬件:一名工程师的分享

    今天跟大家聊聊单片机是怎样通过代码来操控硬件的。作为一名单片机工程师,我们平时的工作就像是给单片机编写“指令集”,让它按照我们的意图去驱动各种硬件设备。
    的头像 发表于 03-06 14:46 1584次阅读
    <b class='flag-5'>单片机</b>如何通过<b class='flag-5'>代码</b><b class='flag-5'>控制</b>硬件:一名工程师的分享