;*************************************************
;* 本程序是一个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
回主程序
一种新型复合SiC-金刚石衬底与GaN器件结合的新工艺流程和制备方案
2018年电视厂商展望大尺寸电视,2022年8K电视出货渗透率将有机会突破5%
小型一体化加固机专用键盘的设计原理与注意事项
HTC U Ultra并非新旗舰 这款骁龙835机型才是最新旗舰!
未来三年NB-IoT芯片的发展前景
单片机闪烁灯设计的源代码
硅基OLED显示接近4K PPI,是未来VR/MR最佳技术路线
《主流媒体看本源》人民网:合肥这部量子计算教材,向全球开放编写权
福禄克网络发布支持工业以太网M12-X连接器的DSX CableAnalyzer™ 适配器
魅蓝note5真机谍照曝光,下午发布的千元机皇长这样!
边缘AI开发的挑战及ST的解决方案
想报考人工智能专业你必须知道这些事情
Digitimes总结下一代iPhone设计爆料内容
液晶电视电磁兼容设计技术概述
互联网医疗在疫情期间贡献了哪些重要的医疗力量
RFID在布草洗涤中的应用
汇中股份获得华为首个中东地区NB-IoT技术认证
高云峰这个把激光做到世界顶尖水平的人
基于AT89C2051单片机和GPS技术实现机器人定位模块的设计
为什么需要边缘计算