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

📄 用12c508实现led三路七彩调光.txt

📁 用12C508实现LED三路七彩调光.rar
💻 TXT
字号:
;********************************************************************** 
; 
; Filename: HW-3S.asm 
; Date:2006/05/17 
; File Version: 
; 主控芯片用12c508,直接输出3路低电平有效的可调矩形脉冲,用于LED的调光 * 
; * 
;********************************************************************** 
list p="12c508" 
#include <p12c508.inc> 
__CONFIG _MCLRE_OFF&_CP_ON&_WDT_OFF&_IntRC_OSC 
errorlevel 0,-207 
;********************************************************************** 
;变量和名称定义 
#define led_r GPIO,0 
#define led_g GPIO,1 
#define led_b GPIO,2 
#define gl GPIO,3 
#define sd_1 GPIO,4 
#define sd_2 GPIO,5 
#define rep_b d'50' 
cotc equ 07h 
cotc_c equ 08h 
cots equ 09h 
ch_r equ 0ah 
ch_g equ 0bh 
ch_b equ 0ch 
glcs equ 0dh 
rep_d equ 0eh 
rep_c equ 0fh 







;********************************************************************** 
; 



org 0x00 
MOVwf OSCCAL ;片内震荡校正系数送OSCCAL 
;--------------------------- 
;RAM清0子程序 
MOVlw 0x08 
MOVwf FSR 
MOVlw d'24' 
MOVwf cotc 
MOVlw 0x00 
MOVwf INDF 
incf FSR,f 
decfsz cotc,f 
goto $-3 
;----------------------------- 
; 
main: 
MOVlw b'00111000' ; 
TRIS GPIO 
MOVlw b'11111111' ; 
MOVwf GPIO 
bcf STATUS,PA0 ; 
MOVlw 0x00 ;起始输出最暗 
MOVwf ch_r 
MOVwf ch_g 
MOVwf ch_b 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_0 ;调用红色常亮,绿色渐亮子程序 
MOVwf rep_d 
call reprom 
goto $-1 







; 
reprom: 
MOVf rep_d,w 
MOVwf PCL 



rep_0: 
MOVlw 0xff ;红色常亮,绿色渐亮 
MOVwf ch_r ; 
incfsz ch_g,f ;判断绿色是否最亮 
retlw 0x00 ;否 
decf ch_g,f ;是则绿色重置0xff 
MOVlw rep_1 ;保持静止色子程序地址送转移指针 
MOVwf rep_d 
retlw 0x00 
rep_1: ;红色绿色静止色保持节拍 
decfsz rep_c,f 
retlw 0x00 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_2 
MOVwf rep_d 
retlw 0x00 

rep_2: ;绿色常亮,红色渐渐灭 
decfsz ch_r,f ;判断绿色是否最暗 
retlw 0x00 ;否 
MOVlw rep_3 ;保持静止色子程序地址送转移指针 
MOVwf rep_d 
retlw 0x00 
rep_3: ;绿色静止色保持节拍 
decfsz rep_c,f 
retlw 0x00 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_4 
MOVwf rep_d 
retlw 0x00 

rep_4: ;绿色常亮,蓝色渐亮 
incfsz ch_b,f ;判断绿色是否最亮 
retlw 0x00 ;否 
decf ch_b,f ;是则绿色重置0xff 
MOVlw rep_5 ;保持静止色子程序地址送转移指针 
MOVwf rep_d 
retlw 0x00 
rep_5: ;绿色蓝色静止色保持节拍 
decfsz rep_c,f 
retlw 0x00 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_6 
MOVwf rep_d 
retlw 0x00 

rep_6: ;蓝色常亮,绿色渐渐灭 
decfsz ch_g,f ;判断绿色是否最暗 
retlw 0x00 ;否 
MOVlw rep_7 ;保持静止色子程序地址送转移指针 
MOVwf rep_d 
retlw 0x00 
rep_7: ;绿色静止色保持节拍 
decfsz rep_c,f 
retlw 0x00 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_8 
MOVwf rep_d 
retlw 0x00 

rep_8: ;蓝色常亮,红色渐亮 
incfsz ch_r,f ;判断红色是否最亮 
retlw 0x00 ;否 
decf ch_r,f ;是则绿色重置0xff 
MOVlw rep_9 ;保持静止色子程序地址送转移指针 
MOVwf rep_d 
retlw 0x00 
rep_9: ;红色蓝色静止色保持节拍 
decfsz rep_c,f 
retlw 0x00 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_10 
MOVwf rep_d 
retlw 0x00 

rep_10: ;红色蓝色常亮,绿色渐亮 
incfsz ch_g,f ;判断绿色是否最暗 
retlw 0x00 ;否 
decf ch_g,f 
MOVlw rep_11 ;保持静止色子程序地址送转移指针 
MOVwf rep_d 
retlw 0x00 
rep_11: ;红色,绿色,蓝色静止色保持节拍 
decfsz rep_c,f 
retlw 0x00 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_12 
MOVwf rep_d 
retlw 0x00 

rep_12: ;红色常亮,绿色蓝色渐渐灭 
decf ch_g,f ;判断绿色是否最暗 
decfsz ch_b,f 
retlw 0x00 ;否 
MOVlw rep_13 ;保持静止色子程序地址送转移指针 
MOVwf rep_d 
retlw 0x00 
rep_13: ;红色静止色保持节拍 
decfsz rep_c,f 
retlw 0x00 
MOVlw rep_b 
MOVwf rep_c 
MOVlw rep_0 
MOVwf rep_d 
retlw 0x00 




;*********************************** 
end 

⌨️ 快捷键说明

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