使用单片机实现一个灯光控制系统的源代码

使用单片机实现一个灯光控制系统的源代码,第1张

  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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2465431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存