⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led1.asm

📁 pic16f877 流水灯pic16f877
💻 ASM
字号:
;实验目的:本程序主要实现一个简单的流水灯程序
;即轮流点亮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
 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -