新闻中心

EEPW首页>嵌入式系统>设计应用> PIC单片机“跑马灯”实验程序代码

PIC单片机“跑马灯”实验程序代码

作者: 时间:2016-11-23 来源:网络 收藏
;实验目的:本程序主要实现一个简单的流水灯程序

;即轮流点亮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 ;内层延时参数

本文引用地址://m.amcfsurvey.com/article/201611/320211.htm


org00h;程序人口地址
;**********************主程序开始***********************
main
nop;ICD所需要的一条空指令
clrfPORTC;先清楚C口所有显示
bankselTRISC;选择I/O口方向寄存器所在的体
clrfTRISC;设置C口全为输出
clrfSTATUS;返回体0
movlw.8
movwfcount;装载循环次数8(C口共8位)


bsfSTATUS,C;置进位标志位为1,因循环移位是带进位循环的
loop
rlfPORTC,1;C口左移1位
calldelay
calldelay
CALLdelay;调用三次延时程序(保证亮度,以及流水灯闪烁速度)
bcfSTATUS,C;清0进位标志位(永远只有一只LED亮)
DECFSZcount,1;判断是否一轮循环结束
gotoloop;否,继续循环移位
GOTOmain;是,程序重头开始

;***********************延时程序*************************
delay
movlwdel_va1;延时程序外层参数
movwf30h
movlwdel_va2;延时程序内层参数
movwf31h
decfsz31h,1
goto$-1
decfsz30h,1
goto$-4
return

;********************程序结束****************************
end



评论


技术专区

关闭