新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機計時秒表程序設計

        PIC單片機計時秒表程序設計

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

        ;*********** TMR0初始化子程序***************
        CLKINSUB
        MOVLW 0XCF
        MOVWF T0CON ;設定TMR0L工作于8位定時器方式
        ;內部時鐘,TMR0不用分頻
        BCF INTCON,TMR0IF ;清除TMR0的中斷標志
        BCF INTCON,GIE ;總中斷禁止
        BSF INTCON,TMR0IE ;TMR0中斷允許
        BSF INTCON2,2 ;TMR0中斷高優先級
        BSF RCON,7 ;使能中斷優先級
        RETURN
        ;***************系統初始化子程序*****************
        MAINSUB
        BCF TRISA,5 ;置RA5為輸出方式,以輸出鎖存信號
        BCF TRISB,1
        BCF TRISA,3
        BCF TRISE,0
        BCF TRISE,1
        BSF TRISB,4 ;設置與鍵盤有關的各口的輸入輸出方式
        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)移入寄存器"的特點相對應
        RETURN ;返回
        ;***********鍵掃描子程序********************
        KEYSCAN
        BCF PORTB,1
        BCF PORTA,3
        BCF PORTE,0
        BCF PORTE,1 ;送低電平至K1,K2,K3,K4
        RETURN
        ;*********鍵盤去抖子程序(8ms的延時)******************
        KEYDELAY
        MOVLW 0X0A
        MOVWF DEYH
        AGAIN2 MOVLW 0XFF
        MOVWF DEYL
        AGAIN1 DECFSZ DEYL,1
        GOTO AGAIN1
        DECFSZ DEYH,1
        GOTO AGAIN2 ;具體程序語句參考3. 2節
        RETURN
        ;*************顯示緩沖區處理子程序****************
        XIANHUAN
        MOVLW 0XA0
        MOVWF FSR0L
        RLNCF S0,0
        MOVWF TEMP
        INCF TEMP,0
        MOVWF INDF0
        INCF FSR0L
        RLNCF S1,0
        MOVWF TEMP
        INCF TEMP,0
        MOVWF INDF0
        INCF FSR0L
        RLNCF S2,0
        MOVWF TEMP
        INCF TEMP,0
        MOVWF INDF0
        INCF FSR0L
        RLNCF S3,0
        MOVWF TEMP
        INCF TEMP,0
        MOVWF INDF0
        RETURN
        ;**************主程序******************
        MAIN NOP
        CALL MAINSUB ;系統初始化
        CALL CLKINSUB ;調用時鐘初始化子程序
        DENJIAN BCF INTCON,GIE
        CLRF S0
        CLRF S1
        CLRF S2
        CLRF S3
        CLRF SREG
        CLRF LEDF ;S0=S1=S2=S3=0
        CALL XIANHUAN ;把S3、S2、S1、S0的值裝入顯示緩沖區
        CALL DISPLAY ;顯示
        DENAN BCF INTCON,GIE ;關中斷
        CALL KEYSCAN ;進行鍵掃描
        BTFSS PORTB,4
        GOTO XIAODOU1 ;如起始鍵按下,則消抖動
        GOTO DENAN ;如起始鍵沒按下,則繼續等待
        XIAODOU1
        CALL KEYDELAY ;延時消抖動
        CALL KEYSCAN ;再次進行鍵掃描
        BTFSC PORTB,4
        GOTO DENAN ;若為干擾,則再次等待鍵按下
        CLRF S0
        CLRF S1
        CLRF S2
        CLRF S3
        CLRF SREG ;設置新一次計時的初始條件
        WAITS CALL KEYSCAN
        BTFSS PORTB,4
        GOTO WAITS ;為了防止按鍵過于靈敏,等鍵松開后再進行
        ;下面的操作
        BSF INTCON,GIE ;開總中斷
        HERE CALL XIANHUAN ;顯示緩沖區處理
        CALL DISPLAY ;即時更新顯示內容
        CALL KEYSCAN
        BTFSS PORTB,4
        GOTO XIAODOU ;若停止計時鍵按下,則消抖
        GOTO HERE ;若停止計時鍵沒按下,則繼續等待中斷計時
        XIAODOU
        CALL DISPLAY ;利用消抖動時間調用顯示程序
        CALL DISPLAY
        CALL DISPLAY
        CALL DISPLAY
        CALL DISPLAY
        CALL DISPLAY
        CALL DISPLAY
        CALL DISPLAY
        CALL DISPLAY
        CALL KEYSCAN
        BTFSC PORTB,4
        GOTO HERE ;若為干擾,則繼續等待停止鍵按下
        BCF INTCON,GIE ;若停止鍵按下,則禁止中斷
        CALL DISPLAY ;若不為干擾,則禁止中斷,更新顯示內容
        WAITR CALL KEYSCAN
        BTFSS PORTB,4
        GOTO WAITR ;為了防止按鍵過于靈敏,等鍵松開后再進行
        ;下面的操作
        DENDAI CALL KEYSCAN
        BTFSC PORTB,4
        GOTO DENDAI ;循環進行鍵掃描,等待清0鍵按下
        CALL KEYDELAY ;延時消抖
        CALL KEYSCAN
        BTFSC PORTB,4
        GOTO DENDAI
        WAIT19 CALL KEYSCAN
        BTFSS PORTB,4
        GOTO WAIT19 ;等鍵松開
        GOTO DENJIAN ;新一次計時開始
        END

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


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


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


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


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



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 漠河县| 承德市| 新宾| 日照市| 伊金霍洛旗| 东乌| 阳春市| 二连浩特市| 睢宁县| 时尚| 莱西市| 黄大仙区| 纳雍县| 息烽县| 汉沽区| 绥棱县| 资兴市| 津市市| 汕尾市| 青阳县| 邵阳市| 连城县| 棋牌| 六枝特区| 丹寨县| 庆安县| 任丘市| 平果县| 邵武市| 图片| 喜德县| 邯郸市| 德保县| 峨山| 南乐县| 普兰县| 阳城县| 许昌县| 湄潭县| 屏边| 时尚|