广嵌科技  广嵌教育  广嵌威客  English  
 
首页 > 软件开发 > 汇编 > 用12C508实现LED三路七彩调光
用12C508实现LED三路七彩调光
来源:开发网  作者: 时间:2008-09-02 发布人:林逸

;**********************************************************************
;
; 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









·上一条:离子迁移谱仪嵌入式系统的设计

评论
发布者 标题 发布日期
暂没有任何评论
以下发言只是广嵌网会员个人意见,非本网立场 查看更多评论

发表评论
·尊重网上道德,遵守中华人民共和国的各项有关法律法规。
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
·本站管理人员有权保留或删除其管辖留言中的任意内容,本站有权在网站内转载或引用您的评论。
·参与本评论即表明您已经阅读并接受上述条款。
标题:
发布者:
内容:
验证码:

相关信息
·用12C508实现LED..
·用于手机SoC设计的部件..
·嵌入式中C和汇编的一些技..
·嵌入式系统软件及编程语言
·51单片机数码管动态显示..
·单片机定时中断实现显示的..
·89C2051控制的摩托..
·用51单片机实现公历与农..
·16c54四位LED时钟..
·嵌入式系统软件及编程语言
Copyright ©2005-2007 广东省嵌入式软件公共技术中心.All Rights Reserved.版权所有 复制必究
客户服务支持:020-32068395-832 24小时服务热线:13631411558
技术支持与报障:gdesc@midea.com.cn 020-32068395-807/809
粤ICP备05104135号