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

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

3天内不再提示

单片机闪烁灯设计的源代码

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

;*************************************************

;* 本程序是一个LED灯的循环闪烁程序,用INT键来切换*

;* 闪烁模式 *www.dangdangdz.com

;*************************************************

include 《p16f877.inc》

;*----

MODESEL equ 20h

MODESELB equ 21h

Count equ 22h

Count1 equ 23h

Count2 equ 24h

PORTDB equ 25h

;*-----

org 0

goto start

org 4

goto ISR

org 10

start

clrf PORTD ;清D口

movlw 00h

movwf MODESEL ;初始化模式选择寄存器

movwf MODESELB

movlw b‘10010000’

movwf INTCON ;初始化中断控制

bsf STATUS,RP0

clrf TRISD ;设D口全为输出

movlw b‘10111111’

OPTION ;选择INT下降沿有效

bcf STATUS,RP0

call FMsel

movwf PORTDB

movwf PORTD

main btfsc PORTB,0 ;

goto $+6 ;

call Delay ; 按键去抖动

btfsc PORTB,0

goto $+3 ; /

call FMsel ;/

movwf PORTDB

movf MODESELB,W ;

movwf MODESEL ;

call LongDelay

bcf STATUS,C

rlf PORTDB,1

btfsc STATUS,C

bsf PORTDB,0

movf PORTDB,W

movwf PORTD

goto main

;*----------

Delay ; call指令占用2个指令周期

clrf Count ; 清 Count占用1个指令周期

Dloop

decfsz Count,f ; 这两行指令将延时

goto Dloop ; (256 * 3) -1 个指令周期

return ; return占用2个指令周期

;*----------------

LongDelay

clrf Count

clrf Count1

movlw 0x01

movwf Count2

LDloop

decfsz Count,f

goto LDloop

decfsz Count1,f

goto LDloop

decfsz Count2,f

goto LDloop

return

;*---------------

FMsel

movf MODESEL,w

movwf MODESELB

movf MODESEL,w

addwf PCL

retlw b‘11111000’

retlw b‘11110000’

retlw b‘11100000’

retlw b‘11000000’

retlw b‘10000000’

movlw 00h

movwf MODESELB

bsf INTCON,GIE

retlw b‘11111000’

return

;*-------------

ISR

btfss INTCON,INTF

goto $+3

bcf INTCON,INTF

incf MODESEL

retfie

end

单片机控制LED灯闪烁的程序编制方法

1:程序开始(START)

2:A=00000000B

3:PORT 0

4:延迟(DELAY)

5:A=11111111B

6:PORT 0

7:延迟(DELAY)

8:反回开始

延迟子程序编制方法:

1:R6=0

2:DEL1

3:R7=0

4:$

5:R7-1

6:R7=0 不等于0,返回2

7:R6-1

8:R6=0 不等于0,返回4

回主程序

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

    关注

    242

    文章

    23347

    浏览量

    662707
  • 单片机
    +关注

    关注

    6043

    文章

    44617

    浏览量

    637999
  • 源代码
    +关注

    关注

    96

    文章

    2946

    浏览量

    66894
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    基于51单片机烟雾DS18B20温度采集光强检测设计

    本资源内容概要:       这是基于51单片机烟雾DS18B20温度采集光强检测设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单
    发表于 06-27 11:37 5次下载

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

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

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

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

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

    基于51单片机两路红黄绿交通电路图及程序

    本资源内容概要:       这是基于51单片机两路红黄绿交通电路图及程序设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群
    发表于 06-24 17:32 2次下载

    基于51单片机四路红黄绿交通电路图及程序

    本资源内容概要:       这是基于51单片机四路红黄绿交通电路图及程序设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)。本资源适合人群
    发表于 06-24 17:31 2次下载

    基于51单片机0-20V电压表四位共阴数码管显示电路图及proteus仿真

    本资源内容概要:       这是基于51单片机的两位数码管交通设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、proteus仿真。本资源适合
    发表于 06-17 14:14 4次下载

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

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

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

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