基于PIC12C508单片机对灯光系统的控制

基于PIC12C508单片机对灯光系统的控制,第1张

以下程序使用PIC12C508 单片机 ,内部4MHz时钟,4脚输入50HZ脉冲信号,7,6,3脚(GP0,GP1,GP4端口)为输出口。其中渐变部分是让灯慢慢的变亮(或灭)。
 

;程序如下:

GPI0EQU6

COUNT1EQU11

COUNT2EQU12

COUNT3EQU13

COUNT4EQU14

COUNT5EQU15

POINTEREQU16

POINTER1EQU17

ORG00H

MOV LW07H;设定时钟参数1:256分频

OPTION

MOV LW2CH;输出端口设定0,1,4输出,3输入50HZ

TRIS6

;-------------------------------

START:

;对3端口扫描扫描0低电位

MOV FGPI0,W

MOV WFCOUNT1

BTFSCCOUNT1,3

GOTOSTART

NEXT:;对3端口扫描扫描1高电位

MOV FGPI0,W

MOV WFCOUNT1

BTFSSCOUNT1,3

GOTONEXT

INCFCOUNT2

MOV LW100

DECFSZCOUNT2,1

GOTOSTART;------外接50HZ信号,扫描100次,延时2秒

;------------------- 单片机 灯光控制系统----------------------------------------

JB:

CLRFTMR0

MOV LW250

MOV WFCOUNT4

MOV WFCOUNT5

INCFPOINTER,F

MOV FPOINTER,0

MOV WFPOINTER1

MOV LWTABLE

ADDWFPOINTER,0

CALLAA

MOV WF6;返回,输出-----亮

CHANGE:

MOV FTMR0,0

MOV WFCOUNT3

SUBWFCOUNT4,1

BTFSSSTATUS,Z;TMR0=250?N空循环TMR0次Y跳出重新开始渐变

GOTONOPDELAY1

GOTOOUT

NOPDELAY1:

NOP

DECFSZCOUNT3,1

GOTONOPDELAY1

DECFPOINTER1,F;《--- 单片机 灯光控制系统-------“

MOV LWTABLE;|

ADDWFPOINTER1,0;|

CALLAA;|

MOV WF6;返回上一次显示数据,输出到GP端口---灭《--|

NOPDELAY2:

NOP

DECFSZCOUNT4,1

GOTONOPDELAY2

GOTOCHANGE

;-----渐-----变------------ 单片机 灯光控制系统-----------------------------------

OUT:

MOV LW9;取表9次

SUBWFPOINTER,0

BTFSSSTATUS,Z

GOTOJB

GOTOSTART

AA: MOV WF2

TABLE:RETLW2CH

RETLW3CH

RETLW2DH

RETLW2EH

RETLW2FH

RETLW3DH

RETLW3EH

RETLW2CH

RETLW3FH

ORG1FFH

MOV WFOSCCAL

END

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

原文地址: https://outofmemory.cn/dianzi/2601564.html

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

发表评论

登录后才能评论

评论列表(0条)

保存