新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机灯光控制系统

单片机灯光控制系统

作者:时间:2013-02-21来源:网络收藏

;****************************************
;* 源程序 *
;****************************************

;※※※※※※※※※※※※※※※※※
;※资料提供:www.51c51.net ※
;※※※※※※※※※※※※※※※※※


;源程序

;以上程序使用,内部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

单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


光控开关相关文章:光控开关原理
声光控开关相关文章:声光控开关原理


评论


相关推荐

技术专区

关闭