• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術熱線: 4007-888-234
    設計開發(fā)

    專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

    開發(fā)工具

    提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享

    技術支持

    從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創(chuàng)造無限潛能!

    新品推廣

    提供新的芯片及解決方案,提升客戶產品競爭力

    新聞中心

    提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

    動態(tài)數碼管掃描顯示的時鐘

    更新時間: 2019-03-25
    閱讀量:1062

    動態(tài)數碼管掃描顯示的時鐘
    ;使用資源:
    ;1,TMRO定時器。確定顯示的位,及顯示延時。
    ;2,TMR1定時器。秒信號產生。
    ;3,PORTA端口。六共陽極位數碼管的位選信號,低電平有效
    ;4,PORTC端口。數碼管的七段,RC7不用。

    ;功能說明:
    ;1.六位數碼管動態(tài)掃描顯示時間(格式為:HHMMSS,24小時制)。
    ;2.時鐘信號由單片機內部定時器硬件單元編程產生。

    ;本實戰(zhàn)的目的是讓大家進一步熟悉定時器的編程,多位數碼管動態(tài)掃描顯示的編程。

    ;硬件接法:
    ;1.實驗板上撥碼開關S4、S5的所有位必須置ON,其他都可以關閉。
    ;2.最好把93C46跟24CXX存儲器從板上取下。

    ;本實例原提供者:pic16論壇會員 leef728 ,在此鳴謝leef728同志共享本實例.
    ;程序文件名&ldquo;TIME.ASM"
    ;程序清單如下:
    ;************************************
       LIST P=16F877A
       INCLUDE"P16F877A.INC"    
       ERRORLEVEL -302
    ;***********************************
    __CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC;
    ;***************文件寄存器定義**************
        CBLOCK 0X20
       WAW
       YIW  
       BAW
       QIW
       GEW
       SHW
       TEMP
       COUNTER
       S3
       DAA   
       STATUS_TMP
       W_TMP
        ENDC
    ;********************程序開始****************
       ORG  0000H
       NOP                                          ;復位地址
       GOTO MAIN       
       ORG  0004H

    ;********************中斷處理程序***********
       MOVWF W_TMP
       SWAPF STATUS,W
       CLRF STATUS
       MOVWF STATUS_TMP                             ;以上4條指令為中斷現場保護
       BCF  INTCON,2                                ;清除TMRO中斷標志位
       MOVF TEMP,W                                  ;時間存放單元的地址
       MOVWF FSR
       MOVF INDF,W                                  ;取得某一位的時間值
       CALL BMA                                     ;查表得時間的顯示代碼
       MOVWF PORTC                                  ;送數碼管顯示
       COMF DAA,W                                   ;位碼取反
       MOVWF PORTA                                  ;點亮相應的數碼管
       RLF  DAA,F                                   ;準備點亮下一位
       INCF TEMP,F                                  ;下一時間存放單元地址
       BTFSS DAA,6                                  ;是否顯示完六位
       GOTO RT
       MOVLW 01H                                    ;是,重新開始新一輪顯示
       MOVWF DAA                                   
       MOVLW 20H                                    ;重新獲取時間單元的地址
       MOVWF TEMP
    RT  
       SWAPF STATUS_TMP,W                           ;中斷現場恢復  
       MOVWF STATUS
       SWAPF W_TMP,F
       SWAPF W_TMP,W
       MOVLW 0XE0                                   ;賦定時器初值
       MOVWF TMR0
       RETFIE  
     
    ;*******************主程序開始**************** 
    MAIN  
       BANKSEL TRISA                                ;選擇體1
       MOVLW 00H
       MOVWF TRISA                                  ;PORTA設置為輸出
       MOVWF TRISC                                  ;PORTC設置為輸出
       MOVLW 06H
       MOVWF ADCON1                                 ;設置A口為普通數字口
       BANKSEL INTCON
       MOVLW 00H
       MOVWF YIW
       MOVWF WAW
       MOVWF QIW
       MOVWF BAW
       MOVWF SHW
       MOVWF GEW                                    ;以上7條指令清零時間
       MOVWF DAA
       MOVLW 20H
       MOVWF TEMP                                   ;時間存放單元地址

       BSF  STATUS,RP0
       MOVLW 0X05
       MOVWF OPTION_REG                             ;分頻器給TMR0做定時用,且分頻比1:4
       BCF  STATUS,RP0
       BSF  INTCON,7                                ;開啟中斷總允許位GIE
       BSF  INTCON,5                                ;開啟TMRO中斷允許位
       BCF  INTCON,2                                ;清除TMRO中斷標志位
       MOVLW 0XE0                                   ;TMRO賦初值
       MOVWF TMR0

       CLRF DAA                                    
       INCF DAA,F                                   ;顯示位設置
    ;**************************************************************
    KS  
       CALL DELAY                                   ;調用200ms定時程序
       CALL DELAY
       CALL DELAY
       CALL DELAY
       CALL DELAY                                   ;調用5次,剛好1s
       INCF GEW,F
       MOVF GEW,W                                   ;判斷秒的個位是否夠10
       XORLW .10
       BTFSS STATUS,Z
       GOTO KS                                      ;是,秒的個位清0,秒的十位加1
       INCF SHW,F                                   
       CLRF GEW
       CLRF STATUS
       MOVF SHW,W
       XORLW .6                                     ;判斷秒的十位是否為6(1分鐘60秒)
       BTFSS STATUS,Z
       GOTO KS
       INCF BAW,F                                   ;是,秒的十位清0,分的個位加1
       CLRF SHW
       CLRF STATUS
       MOVF BAW,W
       XORLW .10                                    ;判斷分的各位是否夠10
       BTFSS STATUS,Z
       GOTO KS
       INCF QIW,F                                   ;是,分的個位清0,分的十位加1
       CLRF BAW
       CLRF STATUS
       MOVF QIW,W
       XORLW .6                                     ;判斷分的十位是否夠6(1小時60分)
       BTFSS STATUS,Z
       GOTO KS
       INCF WAW,F                                   ;是,分的十位清0,時的個位加1
       CLRF QIW
       CLRF STATUS
       MOVF WAW,W
       XORLW .4                                     ;判斷時的個位是否夠4(24小時制)
       BTFSS STATUS,Z
       GOTO KS
       INCF YIW,F                                   ;是,時的個位清0,時的十位加1
       CLRF WAW
       CLRF STATUS
       MOVF YIW,W
       XORLW .2                                     ;判斷時的十位是否夠2
       BTFSS STATUS,Z
       GOTO KS
      
       CLRF GEW                                     ;是,使時間回到00-00-00
       CLRF SHW
       CLRF BAW
       CLRF QIW
       CLRF WAW
       CLRF YIW
       GOTO KS                                      ;循環(huán)顯示
    ;**************************200ms延時程序********************
    DELAY 
       NOP
       BANKSEL PIE1
       BCF  PIE1,0                                  ;禁止TMR1中斷
       BANKSEL T1CON
       MOVLW 24H                                    ;TMR1分頻1:4
       MOVWF T1CON
       BCF  PIR1,0
       MOVLW 0X3C
       MOVWF TMR1H
       MOVLW 0XB0
       MOVWF TMR1L                                  ;TMR1賦初值0X3CB0
       BSF  T1CON,0
    LOP
       BTFSS PIR1,0                                 ;查詢是否定時時間到
       GOTO LOP
       RETURN
     
    ;**********************************************************
    BMA
       ADDWF PCL,F                                 ;考察偏移量     
       RETLW 0XC0                                  ;"0" 編碼
       RETLW 0XF9                                  ;"1" 編碼
       RETLW 0XA4                                  ;"2" 編碼
       RETLW 0XB0                                  ;"3" 編碼
       RETLW 0X99                                  ;"4" 編碼
       RETLW 0X92                                  ;"5" 編碼
       RETLW 0X82                                  ;"6" 編碼
       RETLW 0XF8                                  ;"7" 編碼
       RETLW 0X80                                  ;"8" 編碼
       RETLW 0X98                                  ;"9" 編碼
       RETLW 0XFF

    ;**********************************************************
      END                                          ;源程序結束
    ;***********************************************************
    ;    進入該實戰(zhàn)演練的工序流程如下:
    ;    1.創(chuàng)建源文件和編輯源文件;在此介紹一種不同于前面講的創(chuàng)建源文件的方法,用Windows附件中的&rdquo;記事本&rdquo;
    ;   這個為大家所熟知和好用的文件編輯器,并且可以方便的加入中文注釋.不過有兩點需要注意,一是注釋前面的
    ;   分號&rdquo;;&rdquo;必須用西文半角輸入;二是必須用&rdquo;.asm&rdquo;擴展名存儲到事先建立的一個專用子目錄下.
    ;    2.打開MPLAB集成開發(fā)環(huán)境:首先在WINDOWS環(huán)境下,選用開始>程序>Microchip MPLAB>MPLAB命令,啟動MPLAB
    ;   并進入MPLAB的桌面.
    ;    3.創(chuàng)建項目:選用菜單File>New或Project>New Project,在事先建立的一個專用子目錄下創(chuàng)建一個新項目,將
    ;   用記事本創(chuàng)建的源文件加入到該項目中.
    ;    4.建立項目中的目標文件:選擇菜單Project >Build All(項目>建立所有文件),MPLAB將自動調用MPASM將項目
    ;   文件管理下的源文件(.asm)匯編成十六進制的目標文件(.hex).


    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>