⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hwfsf508.asm

📁 PIC12F508编写的PT2262红外发射码芯片
💻 ASM
字号:
       ;ERRORLEVEL      -302
       ; ERRORLEVEL      -305
	INCLUDE P12F508.INC
     __CONFIG _CP_ON & _WDT_OFF & _IntRC_OSC&_MCLRE_OFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
flag      equ    09h
dly1      equ    0ah
dly2      equ    0bh
FSN       equ    0ch
FSBUFL    equ    0dh
FSBUFH    equ    0eh
dly3      equ    0fh
dly4      equ    10h
keyn      equ    11h
key_cnt1  equ    12h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
key       equ    1Eh
key_cnt   equ    1fh
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#define txf   flag,0
#define TXW    flag,1
#define FSOUT  GPIO,0
#define H1     GPIO,1
#define H2     GPIO,3
#define V1     GPIO,2
#define V2     GPIO,4
#define V3     GPIO,5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;***复位矢量入口(单片机复位时,PC指针指向程序存储器0X0000单元)***
		ORG	0X0000
 	        GOTO	main			;复位后程序进入主程序
;==================================
               org      058h
;==========================
main         
             MOVWF     OSCCAL
             MOVLW     0X00
            ; goto     key1 ;调试语句
             OPTION
             MOVLW     0X0A
             TRIS      GPIO
             CLRF      STATUS 
             MOVLW     .30
             MOVWF     dly3
             DECFSZ    dly3,f
             GOTO      $-1
main1 
             clrf       key
             CLRF       GPIO
             CLRF       GPIO
             clrf       key_cnt 
             clrf       key_cnt1           
             btfsc      H1
             goto       MAIN2
             bsf        V1
             NOP
             NOP
ys1          btfss      H1
             goto       MA1
             incf       key_cnt,f
             btfsc      STATUS,Z
             incf       key_cnt1,f
             btfss      key_cnt1,4
             goto       ys1
             goto       key1
MA1          bsf        V2
             NOP
             clrf       key_cnt
             clrf       key_cnt1
ys2          btfss      H1
             goto       MA2
             incf       key_cnt,f
             btfsc      STATUS,Z
             incf       key_cnt1,f 
             btfss      key_cnt1,4
             goto       ys2        
             goto       key2
MA2          bsf        V3
             NOP
             clrf       key_cnt
             clrf       key_cnt1
ys3          btfss      H1
             goto       MAIN3
             incf       key_cnt,f
             btfsc      STATUS,Z
             incf       key_cnt1,f 
             btfss      key_cnt1,4
             goto       ys3
             goto       key3
;==========================
MAIN2        btfsc      H2
             goto       MAIN3   
             bsf        V1
             NOP
             clrf       key_cnt
             clrf       key_cnt1
ys4
             btfss      H2
             goto       MA3
             incf       key_cnt,f
             btfsc      STATUS,Z
             incf       key_cnt1,f
             btfss      key_cnt1,4
             goto       ys4
             goto       key4
MA3          bsf        V2
             clrf       key_cnt
             clrf       key_cnt1
ys5
             btfss      H2
             GOTO       MA4
             incf       key_cnt,f
             btfsc      STATUS,Z
             incf       key_cnt1,f  
             btfss      key_cnt1,4
             goto       ys5
             goto       key5
MA4          bsf        V3
             NOP
             CLRF       key_cnt
             CLRF       key_cnt1
ys6
             btfss      H2
             goto       MAIN3  
             incf       key_cnt,f
             btfsc      STATUS,Z
             incf       key_cnt1,f
             btfss      key_cnt1,4
             goto       ys6
             goto       key6           

;=============================
key1         movlw      .2
             goto       keyc1
             ;;;;;;;;;;;;;;;;;
key2         movlw      .1
             goto       keyc1
             ;;;;;;;;;;;;;;;;;;
key3         movlw      .3
             goto       keyc1
             ;;;;;;;;;;;;;;;;;;;
key4         movlw      .5
             goto       keyc1
             ;;;;;;;;;;;;;;;;;;
key5         movlw      .4
             goto       keyc1
             ;;;;;;;;;;;;;;;;;
key6         movlw      .6
;=========================
keyc1 
             MOVWF      key  
;==============================
FS1          movlw      .4
             movwf      dly3
FASHE0       movf       key,w
             movwf      FSBUFH      
             MOVLW      0Xff     ;地址码
             MOVWF      FSBUFL
             movlw      .12
             movwf      FSN
             BCF        TXW
;=====================================
FASHE          RRF      FSBUFH,F
               RRF      FSBUFL,F
               BTFSC    STATUS,C
               GOTO     FSH0
;==================================0
FSL0           BSF      FSOUT
               MOVLW    .2
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               NOP
               BCF      FSOUT
               BCF      FSOUT
               MOVLW    .1
               MOVWF    dly1 
               MOVLW    .4
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
              ; NOP
FSL1           BSF      FSOUT
               MOVLW    .2
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               BCF      FSOUT
               BCF      FSOUT
               MOVLW    .4
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               DECFSZ   dly1,F
               GOTO     FSL1
               BTFSC    TXW
               GOTO     FSL2
               MOVLW    .110
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1                 
               BSF      TXW
               NOP
               GOTO     FSL0
FSL2           BCF      TXW
               MOVLW    .111
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1 
               NOP 
               NOP
               GOTO     FSB
;================================ 1
FSH0           BSF      FSOUT
               MOVLW    .2
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               ;NOP
               BCF      FSOUT
               BCF      FSOUT
               MOVLW    .2
               MOVWF    dly1 
               MOVLW    .4
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               NOP
FSH1           BSF      FSOUT
               MOVLW    .2
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
              ; NOP
               BCF      FSOUT
               BCF      FSOUT
               MOVLW    .4
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               DECFSZ   dly1,F
               GOTO     FSH1
               BCF      FSOUT
               BTFSC    TXW
               GOTO     FSH2
               MOVLW    .40
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1                 
               BSF      TXW
               NOP
               GOTO     FSH0
FSH2           BCF      TXW
               MOVLW    .41
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1 
               NOP 
FSB            DECFSZ   FSN,F
               GOTO     FASHE
               BSF      FSOUT
               MOVLW    .2
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               NOP
               BCF      FSOUT
               MOVLW    .3
               MOVWF    dly1 
               MOVLW    .4
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               NOP
               NOP
FSEND1         BSF      FSOUT
               MOVLW    .2
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1
               NOP
               BCF      FSOUT
               MOVLW    .4
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1 
               NOP
               DECFSZ   dly1,F
               GOTO     FSEND1  
               BCF      FSOUT 
               MOVLW    .16
               MOVWF    dly4
FSEND2         MOVLW    .80
               MOVWF    dly2
               decfsz   dly2,f
               goto     $-1 
               decfsz   dly4,f
               goto     FSEND2
               BCF      TXW                ;756
               DECFSZ   dly3,F
               GOTO     FASHE0         
;=========================
MAIN3          CLRF     GPIO
               clrf     key_cnt
               clrf     key_cnt1
MAIN4          BTFSC    H1
               BTFSS    H2
               GOTO     MAIN3
               incf     key_cnt,f
               btfsc    STATUS,Z
               INCF     key_cnt1,f
               btfss    key_cnt1,4
               goto     MAIN4
               MOVF     GPIO,F
               SLEEP
               GOTO       main1
               GOTO       main1
;======================
               END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -