单片机灯光控制系统

点击数: 【字体: 收藏 打印文章 查看评论
 

;****************************************
;* PIC12C508单片机灯光控制系统源程序 *
;****************************************

;※※※※※※※※※※※※※※※※※
;※资料提供:www.51c51.net
;※联系电话:0531-88979330 ※
;※※※※※※※※※※※※※※※※※


;PIC12C508单片机灯光控制系统源程序

;以上程序使用PIC12C508单片机,内部4MHZ时钟,4脚输入50HZ脉冲信号,7,6,3脚(GP0,GP1,GP4端口)为输出口。其中渐变部分是让灯慢慢的变亮(或灭)。不知道单片机灯光控制系统程序有没错误,有错误之处请大家多多给意见。谢谢
;程序如下:

GPI0 EQU 6
COUNT1 EQU 11
COUNT2 EQU 12
COUNT3 EQU 13
COUNT4 EQU 14
COUNT5 EQU 15
POINTER EQU 16
POINTER1 EQU 17

ORG 00H
MOVLW 07H ;设定时钟参数1:256分频
OPTION
MOVLW 2CH ;输出端口设定 0,1,4输出,3输入50HZ
TRIS 6

;-------------------------------
START:
;对3端口扫描 扫描0低电位
MOVF GPI0,W
MOVWF COUNT1
BTFSC COUNT1,3
GOTO START
NEXT: ;对3端口扫描 扫描1高电位
MOVF GPI0,W
MOVWF COUNT1
BTFSS COUNT1,3
GOTO NEXT

INCF COUNT2
MOVLW 100
DECFSZ COUNT2,1
GOTO START ;------外接50HZ信号,扫描100次,延时2秒

;-------------------单片机灯光控制系统----------------------------------------
JB:
CLRF TMR0
MOVLW 250
MOVWF COUNT4
MOVWF COUNT5

INCF POINTER,F
MOVF POINTER,0
MOVWF POINTER1
MOVLW TABLE
ADDWF POINTER,0
CALL AA
MOVWF 6 ;返回,输出-----亮
CHANGE:
MOVF TMR0,0
MOVWF COUNT3
SUBWF COUNT4,1
BTFSS STATUS,Z ;TMR0=250? 'N'空循环TMR0次 'Y'跳出重新开始渐变
GOTO NOPDELAY1
GOTO OUT
NOPDELAY1:
NOP
DECFSZ COUNT3,1
GOTO NOPDELAY1

DECF POINTER1,F ; <---单片机灯光控制系统-------|
MOVLW TABLE ; |
ADDWF POINTER1,0 ; |
CALL AA ; |
MOVWF 6 ;返回上一次显示数据,输出到GP端口---灭 <--|
NOPDELAY2:
NOP
DECFSZ COUNT4,1
GOTO NOPDELAY2
GOTO CHANGE
;-----渐-----变------------单片机灯光控制系统-----------------------------------
OUT:
MOVLW 9 ;取表9次
SUBWF POINTER,0
BTFSS STATUS,Z
GOTO JB
GOTO START


AA: MOVWF 2
TABLE:RETLW 2CH
RETLW 3CH
RETLW 2DH
RETLW 2EH
RETLW 2FH
RETLW 3DH
RETLW 3EH
RETLW 2CH
RETLW 3FH

ORG 1FFH
MOVWF OSCCAL
END

作者:佚名 来源:不详 发布时间:2009年06月24日
观后心情
感动 同情 无聊 愤怒 搞笑 难过 高兴 路过
用户信息中心
联系我们  |  广告合作  |  友情链接  |  网站帮助  |  版权声明  |  企业邮箱  |  管理登录
  Copyright © 2007-2012 China Research and Development Network, All Rights Reserved
举报邮箱:co@chnrd.com    鄂ICP备09003885号