串行LED譯碼/驅(qū)動器件TEC9607在PIC16C5X系列單片機中的應(yīng)用
SI EQU 1 ;RA1為串行數(shù)據(jù)輸入端
SCP EQU 2 ?。籖A2為時鐘端
BUFF EQU 10H ;數(shù)據(jù)緩存
MBUF EQU 13H ;13H,14H,15H,16H四個寄存器為顯示緩存
?。?3H最低位顯示段碼
?。?4H次低位顯示段碼
??;15H次高位顯示段碼
??;16H最高位顯示段碼
??;17H為任意數(shù)
DISBUF EQU OEH ;OEH,OFH為壓縮式顯示數(shù)據(jù)
;OEH高兩位顯示數(shù)據(jù)
??;OFH低兩位顯示數(shù)據(jù)
BIT EQU 9?。幻孔止?jié)位數(shù)(8)
FSR EQU 4 ;文件選擇寄存器
RA EQU 5 ;I/O端口A
CONVERT MOVWF 2 ;PC=W
TABLE RETLW 0FCH ;“ 0
RETLW 60H ??;“1”
RETLW 0DAH??; “2”
RETLW 0F2H ;“3
RETLW 66H ; “4”
RETLW 0B6H ; “5
RETLW 0BEH ;“6
RETLW 0E4H ;“7
RETLW 0FEH ;“8
RETLW 0F6H ;“9
RETLW 00H ;“
ETLW 7CH ?。?“U
RETLW 9EH ??;“E
RETLW 00H ;“
RETLW 00H ;“
RETLW 00H ;“
DIS MOVLW MBUF ;將顯示段碼寄存器 首址(f13)送f4
MOVWF FSR
MOVLW TABLE ;把段碼表起始地址 送BUFF
MOVWF BUFF
MOVF 0FH,0 ;取出最低位待顯數(shù)據(jù)
ANDLW 0FH
ADDWF BUFF,0 ;BUFF+W→W 取得段碼表中的偏移地址
CALL CONVERT ;轉(zhuǎn)段碼查詢子程序
MOVWF 0 ;段碼值送W
INCF FSR ;WF13
;以下依次完成高三位數(shù)據(jù)嘍溫脛檔淖換
MOVLW TABLE
MOVWF BUFF
MOVF 0FH,0
MOVWF TRBUF
SWAPF TRBUF,0
ANDLW 0FH
ADDWF BUFF,0
CALL CONVERT
MOVWF 0
INCF FSR
MOVLW TABLE
MOVWF BUFF
MOVF OEH,0
ANDLW 0FH
ADDWF BUFF,0
CALL CONVERT
MOVWF 0
INCF FSR
MOVLW TABLE
MOVWF BUFF
MOVF 0EH,0
MOVWF TRBUF
SWAPF TRBUF,0
ANDLW 0FH
ADDWF BUFF,0
CALL CONVERT
MOVWF 0
MOVLW 30H ;使RA1,RA2為輸出狀態(tài)
TRIS RA
BCF RA, SI
BCF RA, SCP
MOVLW MBUF
MOVWF FSR
MOVLW 5 ??;傳送5字節(jié)數(shù)據(jù)
MOVWF TRBUF
DIS1 MOVF 0,0 ;碼段值W
MOVWF BUFF ;W嗨褪據(jù)暫存器BUFF
INCF FSR
MOVLW 8
MONWF BIT ;一字節(jié)有8位
DIS2 BSF RA, CLK ;CLK端拉成高電平 BTFSC BUFF,7
BSF RA,SDA ;數(shù)據(jù)暫存器D7位送data線
BTFSS BUFF,7
BCF RA,SDA
RLF BUFF ;數(shù)據(jù)暫存器左移一位
BCF RA,CLK ;CLK端被拉成低電平,在其下降沿把data線上的數(shù)據(jù)采集進(jìn)去
DECFSZ BIT
GOTO DIS2 ;一字節(jié)未送完,返回
DECFSZ TRBUF
GOTO DIS1 ;三字節(jié)未送完,返回
BSF RA,CL ;器件操作結(jié)束
BSF RA,EN
RETLW 0
51單片機相關(guān)文章:51單片機教程
評論