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

    关注

    237

    文章

    22622

    浏览量

    647503
  • 单片机
    +关注

    关注

    6011

    文章

    44168

    浏览量

    624525
  • 源代码
    +关注

    关注

    95

    文章

    2933

    浏览量

    66231
收藏 人收藏

    评论

    相关推荐

    单片机交通程序设计中断系统

    交通智能控制的关键。 单片机交通的基本原理 交通控制系统的基本原理是利用红、绿、黄三种颜色的灯光的闪烁组合通过向车辆和行人传递不同的指
    的头像 发表于 01-24 16:16 585次阅读

    基于51单片机的交通设计

    电子发烧友网站提供《基于51单片机的交通设计.rar》资料免费下载
    发表于 01-12 10:40 1次下载

    基于51单片机的交通设计

    电子发烧友网站提供《基于51单片机的交通设计.rar》资料免费下载
    发表于 01-12 10:30 0次下载

    基于51单片机的声控设计

    电子发烧友网站提供《基于51单片机的声控设计.rar》资料免费下载
    发表于 01-12 10:27 1次下载

    基于51单片机的交通设计

    电子发烧友网站提供《基于51单片机的交通设计.rar》资料免费下载
    发表于 01-07 09:41 19次下载

    基于51单片机的声控设计

    电子发烧友网站提供《基于51单片机的声控设计.rar》资料免费下载
    发表于 01-07 09:37 4次下载

    单片机解析g代码的方法

    单片机是一种完整的计算机系统,它集成了处理器、存储器、输入输出接口等基本的计算机组成部分。单片机应用广泛,可以用于控制各种电子设备。在单片机中,G代码是一种常用的数控编程语言,用于控制
    的头像 发表于 12-22 14:15 862次阅读

    三菱 FX3U 底层源代码单片机STM32程序实现

    三菱 FX3U 底层源代码单片机STM32 程序实现,更新到V10
    发表于 12-07 09:48 28次下载

    如何使得单片机的LED闪烁又不影响主程序运行?

    51单片机问题,紧急求助! 怎样使得单片机的LED闪烁又不影响主程序运行??? 我想通过单片机接收串口命令让一个LED
    发表于 11-06 07:18

    51单片机如何让led闪烁

    51单片机如何让led闪烁
    发表于 11-01 06:32

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

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

    基于51单片机音乐喷泉设计频谱彩灯音乐盒播放器源代码分享

    基于51单片机音乐喷泉设计频谱彩灯音乐盒播放器源代码
    发表于 09-26 07:16

    51单片机的水流量计流量报警器设计源代码分享

    51单片机的水流量计流量报警器设计源代码
    发表于 09-26 06:42

    基于51单片机的声控光控触摸LED设计

    本资源内容概要: 这是基于51单片机的声控光控触摸LED设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开) 。 本资源适合人群: 单片机
    发表于 08-10 09:39 2次下载

    使用51单片机实现延时控制LED闪烁

    这篇文章我们讲解使用51单片机控制LED闪烁。那么为了方便理解,我们要从最基础的讲起。闪烁,就是一会儿亮一会儿灭,这个一会儿就是时间间
    发表于 07-11 11:39 4690次阅读
    使用51<b class='flag-5'>单片机</b>实现延时控制LED<b class='flag-5'>灯</b><b class='flag-5'>闪烁</b>