自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
PIC16F877A動態(tài)數(shù)碼時鐘顯示實(shí)驗(yàn)參考程序
PIC16F877A動態(tài)數(shù)碼時鐘顯示實(shí)驗(yàn)參考程序
 更新時間:2008-7-26 17:03:49  點(diǎn)擊數(shù):3
【字體: 字體顏色
;動態(tài)數(shù)碼時鐘顯示實(shí)驗(yàn)參考程序;使用資源:;1,TMRO定時器。確定顯示的位,及顯示延時。;2,TMR1定時器。秒信號產(chǎn)生。;3,PORTA端口。六共陽極位數(shù)碼管的位選信號,低電平有效;4,PORTC端口。數(shù)碼管的七段,RC7不用。;功能說明:;1.六位數(shù)碼管動態(tài)掃描顯示時間(格式為:HHMMSS,24小時制)。;2.時鐘信號由單片機(jī)內(nèi)部定時器硬件單元編程產(chǎn)生。;本實(shí)戰(zhàn)的目的是讓大家進(jìn)一步熟悉定時器的編程,多位數(shù)碼管動態(tài)掃描顯示的編程。;硬件接法:;1.實(shí)驗(yàn)板上撥碼開關(guān)S4、S5的所有位必須置ON,其他都可以關(guān)閉。;2.最好把93C46跟24CXX存儲器從板上取下。;本實(shí)例原提供者:pic16論壇會員 leef728 ,在此鳴謝leef728同志共享本實(shí)例.;由深圳市乾龍盛電子科技有限公司技術(shù)部鐘閨田(工程師)(論壇網(wǎng)名:zhongruntian)驗(yàn)正并加于整理、注釋.;網(wǎng)站:PIC單片機(jī)學(xué)習(xí)網(wǎng) http://www.pic16.com 討論論壇:http://pic16.com/bbs/;版權(quán)所有,轉(zhuǎn)載請注明出處,并不能去掉或改變文件中的說明文字。;程序文件名“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 ;復(fù)位地址 GOTO MAIN ORG 0004H;********************中斷處理程序*********** MOVWF W_TMP SWAPF STATUS,W CLRF STATUS MOVWF STATUS_TMP ;以上4條指令為中斷現(xiàn)場保護(hù) BCF INTCON,2 ;清除TMRO中斷標(biāo)志位 MOVF TEMP,W ;時間存放單元的地址 MOVWF FSR MOVF INDF,W ;取得某一位的時間值 CALL BMA ;查表得時間的顯示代碼 MOVWF PORTC ;送數(shù)碼管顯示 COMF DAA,W ;位碼取反 MOVWF PORTA ;點(diǎn)亮相應(yīng)的數(shù)碼管 RLF DAA,F ;準(zhǔn)備點(diǎn)亮下一位 INCF TEMP,F ;下一時間存放單元地址 BTFSS DAA,6 ;是否顯示完六位 GOTO RT MOVLW 01H ;是,重新開始新一輪顯示 MOVWF DAA MOVLW 20H ;重新獲取時間單元的地址 MOVWF TEMP RT SWAPF STATUS_TMP,W ;中斷現(xiàn)場恢復(fù) MOVWF STATUS SWAPF W_TMP,F SWAPF W_TMP,W MOVLW 0XE0 ;賦定時器初值 MOVWF TMR0 RETFIE ;*******************主程序開始**************** MAIN BANKSEL TRISA ;選擇體1 MOVLW 00H MOVWF TRISA ;PORTA設(shè)置為輸出 MOVWF TRISC ;PORTC設(shè)置為輸出 MOVLW 06H MOVWF ADCON1 ;設(shè)置A口為普通數(shù)字口 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中斷標(biāo)志位 MOVLW 0XE0 ;TMRO賦初值 MOVWF TMR0 CLRF DAA INCF DAA,F ;顯示位設(shè)置;**************************************************************KS CALL DELAY ;調(diào)用200ms定時程序 CALL DELAY CALL DELAY CALL DELAY CALL DELAY ;調(diào)用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 ;源程序結(jié)束;***********************************************************; 進(jìn)入該實(shí)戰(zhàn)演練的工序流程如下:; 1.創(chuàng)建源文件和編輯源文件;在此介紹一種不同于前面講的創(chuàng)建源文件的方法,用Windows附件中的”記事本”; 這個為大家所熟知和好用的文件編輯器,并且可以方便的加入中文注釋.不過有兩點(diǎn)需要注意,一是注釋前面的; 分號”;”必須用西文半角輸入;二是必須用”.asm”擴(kuò)展名存儲到事先建立的一個專用子目錄下.; 2.打開MPLAB集成開發(fā)環(huán)境:首先在WINDOWS環(huán)境下,選用開始>程序>Microchip MPLAB>MPLAB命令,啟動MPLAB; 并進(jìn)入MPLAB的桌面.; 3.創(chuàng)建項目:選用菜單File>New或Project>New Project,在事先建立的一個專用子目錄下創(chuàng)建一個新項目,將; 用記事本創(chuàng)建的源文件加入到該項目中.; 4.建立項目中的目標(biāo)文件:選擇菜單Project >Build All(項目>建立所有文件),MPLAB將自動調(diào)用MPASM將項目; 文件管理下的源文件(.asm)匯編成十六進(jìn)制的目標(biāo)文件(.hex).
  • 上一篇: PIC16F877A+18B10溫度測量+LCD1602顯示溫度
  • 下一篇: PIC16F97+eV1527解碼源程序
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1