TRM0 EQU 1 FLAG EQU 10 COUNT EQU 11 COUNT1 EQU 12 COUNT2 EQU 13 COUNT3 EQU 14 POINTER EQU 15 ORG 00H GOTO MAIN
MAIN: MOVLW 87H ;设定时钟参数 OPTION MOVLW 08H ;输出端口设定 TRIS 6 CLRF POINTER CLRF TRM0 CLRF COUNT1 CLRF COUNT2 MOVLW 250 MOVWF COUNT1 MOVWF COUNT2 MOVLW 8 MOVWF COUNT3
START: MOVLW TABLE ADDWF POINTER,0 INCF POINTER,1 CALL AA MOVWF 6 ;返回数据输出到GP端口 CLRF COUNT1 CLRF COUNT2 MOVLW 250 ;设定时间长度 MOVWF COUNT1 MOVWF COUNT2 MOVLW 8 MOVWF COUNT3
;延迟时间1m秒 250*4ms=1s DELAY: NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DECFSZ COUNT1,1 GOTO DELAY ;延迟时间250*16=4m秒 MOVLW 250 MOVWF COUNT1 DECFSZ COUNT2,1 GOTO DELAY MOVLW 250 MOVWF COUNT2 DECFSZ COUNT3,1 GOTO DELAY
MOVLW 7 MOVWF COUNT SUBWF POINTER,0 BTFSS STATUS,Z GOTO START GOTO MAIN
AA: MOVWF 2 TABLE: RETLW 18H RETLW 09H RETLW 0AH RETLW 0BH RETLW 19H RETLW 1AH RETLW 1BH ORG 1FFH MOVWF OSCCAL END 以上程序是用于12c508单片机,要求结果是运行以后,GP0,GP1,GP4三个灯先三个单独亮,然后两个一起亮,最后是三个一起亮,不过我运行了以后,灯一个都没亮,研究了许久,没结果,盼望有高手指点迷津,谢谢……
欢迎光临 千家论坛_智能建筑与智能家居技术交流社区 (http://bbs.qianjia.com/) | Powered by Discuz! X3.2 |