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

控制/MCU

1876人已加入

描述

以下程序使用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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分