专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

单片机灯光控制系统

作者:佚名   来源:本站原创   点击数:  更新时间:2007年07月04日   【字体:

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

关闭窗口

相关文章