新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機驅動LED數碼管顯示程序

        PIC單片機驅動LED數碼管顯示程序

        作者: 時間:2012-12-11 來源:網絡 收藏

        ;*****該程序用于驅動led數碼管顯示,在8個上依次顯示數字1、2、3、4、5、6、7、8*******
        ;****http://www.51hei.com 單片機學習網經典程序已測試,led數碼管共陰和共陽不同請修改碼值轉換表部分

        LIST P=18F458
        INCLUDE "P18F458.INC"
        ;所用的寄存器
        XIANR EQU 0X20
        ORG 0X00
        GOTO MAIN
        ORG 0X30
        ;****************以下為碼值轉換表********************
        CONVERT ADDWF PCL,1
        RETLW 0XC0 ;0,顯示段碼與具體的硬件連接有關
        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 ;設置SCK與SDO為輸出方式
        BCF INTCON,GIE ;關閉所有中斷
        MOVLW 0XC0
        MOVWF SSPSTAT ;設置SSPSTAT寄存器
        MOVLW 0X30
        MOVWF SSPCON1 ;設置SPI的控制方式,允許SSP方式,并且時鐘下降
        ;沿發送數據,與"74HC595當其SCLK從低到高電平
        ;跳變時,串行輸入數據(DI)移入寄存器"的特點相對應
        MOVLW 0X11 ;顯示值寄存器賦初值,每個值占兩個字節,
        MOVWF XIANR ;從8開始顯示
        RETURN ;返回
        ;***************led數碼管顯示子程序******************
        ;SPI發送顯示子模塊
        DISPLAY
        TRANSMIT CLRF PORTA ;LACK送低電平,為鎖存做準備
        MOVWF SSPBUF ;啟動發送
        WAIT
        BTFSS PIR1,SSPIF
        GOTO WAIT ;等待發送結束
        BCF PIR1,SSPIF ;清除中斷標志
        NOP
        BSF PORTA,5 ;最后給一個鎖存信號,代表一顯示任務完成
        RETURN
        ;*****************pic單片機驅動led的主程序開始***************
        MAIN NOP
        CALL INITIAL ;調用系統初始化子程序
        LOOP MOVF XIANR,W
        CALL CONVERT ;查出XIANR的顯示段碼值
        CALL DISPLAY
        DECF XIANR
        DECF XIANR ;顯示值減2,因為按字存放,按字節讀取
        MOVF XIANR,W
        SUBLW 0X01
        BTFSS STATUS,Z
        GOTO LOOP ;若送完顯示的數,則退出顯示
        HERE GOTO HERE
        END
        本程序完畢,本程序的c語言版本請打開 http://www.51hei.com/mcu/558.html

        c語言相關文章:c語言教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 岐山县| 新郑市| 扶风县| 靖西县| 福海县| 神池县| 荣成市| 南皮县| 武城县| 陈巴尔虎旗| 蓬莱市| 旺苍县| 西贡区| 洛川县| 米泉市| 赫章县| 东乡县| 无棣县| 陵水| 虞城县| 嫩江县| 正宁县| 浦东新区| 枣强县| 宜春市| 麻江县| 蒙山县| 宽甸| 闸北区| 周至县| 静海县| 朝阳县| 宜良县| 青龙| 盖州市| 年辖:市辖区| 唐河县| 吉水县| 大宁县| 兰溪市| 克山县|