新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC單片機驅(qū)動LED數(shù)碼管顯示程序

PIC單片機驅(qū)動LED數(shù)碼管顯示程序

作者: 時間:2012-12-11 來源:網(wǎng)絡(luò) 收藏

;*****該程序用于驅(qū)動led數(shù)碼管顯示,在8個上依次顯示數(shù)字1、2、3、4、5、6、7、8*******
;****http://www.51hei.com 單片機學(xué)習(xí)網(wǎng)經(jīng)典程序已測試,led數(shù)碼管共陰和共陽不同請修改碼值轉(zhuǎn)換表部分

LIST P=18F458
INCLUDE "P18F458.INC"
;所用的寄存器
XIANR EQU 0X20
ORG 0X00
GOTO MAIN
ORG 0X30
;****************以下為碼值轉(zhuǎn)換表********************
CONVERT ADDWF PCL,1
RETLW 0XC0 ;0,顯示段碼與具體的硬件連接有關(guān)
RETLW 0XF9 ;1
RETLW 0XA4 ;2
RETLW 0XB0 ;3
RETLW 0X99 ;4
RETLW 0X92 ;5
RETLW 0X82 ;6
RETLW 0XD8 ;7
RETLW 0X80 ;8
RETLW 0X90 ;9
RETLW 0X88 ;A
RETLW 0X83 ;B
RETLW 0XC6 ;C
RETLW 0XA1 ;D
RETLW 0X86 ;E
RETLW 0X8E ;F
RETLW 0X7F ;"."
RETLW 0XBF ;"-"
RETLW 0X89 ;H
RETLW 0XFF ;DARK
RETURN
;**************初始化子程序*****************
INITIAL
BCF TRISA,5 ;置RA5為輸出方式,以輸出鎖存信號
BCF TRISC,5
BCF TRISC,3 ;設(shè)置SCK與SDO為輸出方式
BCF INTCON,GIE ;關(guān)閉所有中斷
MOVLW 0XC0
MOVWF SSPSTAT ;設(shè)置SSPSTAT寄存器
MOVLW 0X30
MOVWF SSPCON1 ;設(shè)置SPI的控制方式,允許SSP方式,并且時鐘下降
;沿發(fā)送數(shù)據(jù),與"74HC595當(dāng)其SCLK從低到高電平
;跳變時,串行輸入數(shù)據(jù)(DI)移入寄存器"的特點相對應(yīng)
MOVLW 0X11 ;顯示值寄存器賦初值,每個值占兩個字節(jié),
MOVWF XIANR ;從8開始顯示
RETURN ;返回
;***************led數(shù)碼管顯示子程序******************
;SPI發(fā)送顯示子模塊
DISPLAY
TRANSMIT CLRF PORTA ;LACK送低電平,為鎖存做準(zhǔn)備
MOVWF SSPBUF ;啟動發(fā)送
WAIT
BTFSS PIR1,SSPIF
GOTO WAIT ;等待發(fā)送結(jié)束
BCF PIR1,SSPIF ;清除中斷標(biāo)志
NOP
BSF PORTA,5 ;最后給一個鎖存信號,代表一顯示任務(wù)完成
RETURN
;*****************pic單片機驅(qū)動led的主程序開始***************
MAIN NOP
CALL INITIAL ;調(diào)用系統(tǒng)初始化子程序
LOOP MOVF XIANR,W
CALL CONVERT ;查出XIANR的顯示段碼值
CALL DISPLAY
DECF XIANR
DECF XIANR ;顯示值減2,因為按字存放,按字節(jié)讀取
MOVF XIANR,W
SUBLW 0X01
BTFSS STATUS,Z
GOTO LOOP ;若送完顯示的數(shù),則退出顯示
HERE GOTO HERE
END
本程序完畢,本程序的c語言版本請打開 http://www.51hei.com/mcu/558.html

c語言相關(guān)文章:c語言教程


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉