设计一个流水灯的实验,是6个led灯依次亮起来,请问可以帮我编写一下程序吗,谢谢各位了

来源:百度知道 编辑:UC知道 时间:2024/06/23 19:56:35
用单片机的p1口控制6只led灯,做p1.0,p1.1,p1.2,p1.3,p1.4,p1.5的依次单灯点亮,间隔0.4s,接下来6只led灯全灭一次,间隔0.4s;然后做p1.5,p1.4,p1.3,p1.2,p1.1,p1.0的依次单灯点亮,间隔0.4s,接下来6只led灯全灭一次,间隔0.4s,再从开始状态循环,6只led灯呈现流水灯的状态

;实验目的:本程序主要实现一个简单的流水灯程序
;即轮流点亮C口的8个灯(先点亮RC0,再熄灭RCO点亮RC1。。。。)
;硬件要求:拨码开关S2全部置ON。
#include<p16f877A.inc> ;调用头文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
;芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
;**********************用户寄存器定义********************
count equ 20h ;移位次数寄存器
del_va1 equ 0ffh ;外层延时参数
del_va2 equ 0ffh ;内层延时参数

org 00h ;程序人口地址
; addlw 0ffh
;**********************主程序开始***********************
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<