;试验意图:本程序首要完成一个简略的流水灯程序
;即轮番点亮C口的8个灯(先点亮RC0,再平息RCO点亮RC1。。。。)
;硬件要求:拨码开关S11悉数置ON。
#include ;调用头文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
;**********************用户寄存器界说********************
count equ 20h ;移位次数寄存器
del_va1 equ 0ffh ;外层延时参数
del_va2 equ 0afh ;内层延时参数
org 00h ;程序人口地址
;**********************主程序开端***********************
main
nop ;ICD所需求的一条空指令
clrf PORTC ;先清楚C口一切显现
banksel TRISC ;挑选I/O口方向寄存器地点的体
clrf TRISC ;设置C口全为输出
clrf STATUS ;回来体0
movlw .8
movwf count ;装载循环次数8(C口共8位)
bsf STATUS,C ;置进位标志位为1,因循环移位是带进位循环的
loop
rlf PORTC,1 ;C口左移1位
call delay
call delay
CALL delay ;调用三次延时程序(确保亮度,以及流水灯闪耀速度)
bcf STATUS,C ;清0进位标志位(永久只要一只LED亮)
DECFSZ count,1 ;判别是否一轮循环完毕
goto loop ;否,持续循环移位
GOTO main ;是,程序重头开端
;***********************延时程序*************************
delay
movlw del_va1 ;延时程序外层参数
movwf 30h
movlw del_va2 ;延时程序内层参数
movwf 31h
decfsz 31h,1
goto $-1
decfsz 30h,1
goto $-4
return
;********************程序完毕****************************
end
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/261042.html