天津大學智能裝置課程設計電子時鐘_第1頁
天津大學智能裝置課程設計電子時鐘_第2頁
天津大學智能裝置課程設計電子時鐘_第3頁
天津大學智能裝置課程設計電子時鐘_第4頁
天津大學智能裝置課程設計電子時鐘_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、智能裝置課程設計 一課程設計目的: 1.深入了解PIC16F877單片機的工作原理,熟練掌握匯編語言程序設計方法,熟練使用MPLAB-ICD仿真器及MPLAB-IDE仿真調(diào)試軟件。 2.通過該課程設計使學生初步掌握以單片機為核心的智能裝置設計的簡單原則、步驟和方法。 3.熟悉智能裝置設計中有關的硬件設計調(diào)試,如人機界面等。 4.熟悉智能裝置設計中相關軟件的設計、編程和調(diào)試。二課程設計內(nèi)容1.以16F877單片機為核心,結合給出的其他原器件和智能裝置實驗系統(tǒng)原有的內(nèi)容設計電子時鐘硬件電路電路。 2. 利用實驗板上的半導體溫度傳感器和四個獨立按鍵,溫度傳感器按其原理介紹采集,時鐘利用液晶顯示器進行

2、顯示。 3.時鐘按照時分秒、溫度以及年月日顯示,并可以利用按鍵逐位進行修改設置。 4.利用PIC16F877自帶EEPROM進行掉電保護(選做)。三課程設計要求: 1.根據(jù)實驗指導書的設計內(nèi)容及和智能裝智實驗系統(tǒng)所給出的元件,設計電子時鐘的硬件原理圖。 2.按照設計好的硬件原理圖在實驗系統(tǒng)上用導線搭建硬件電路。 3.用萬用表檢查硬件電路連接是否正確,檢查無誤后上電并編制簡單的測試程 序分步調(diào)試各部分功能。 4.在各部分功能實現(xiàn)后,編制完整的電子時鐘系統(tǒng)軟件,并進行軟硬件聯(lián)調(diào),直到達到設計要求。 5.按照設計內(nèi)容要求測試儀表誤差并做分析,給出儀表精度,完成后由教師進行驗收檢查。四課程設計設備儀器

3、:MPLAB-ICD模塊與仿真頭智能裝置實驗系統(tǒng)安裝了MPLAB-IDE開發(fā)軟件的計算機數(shù)字萬用表導線若干五課程設計硬件原理圖:七課程設計硬件設計思路: 電子時鐘的硬件接線比較簡單,復雜之處在于程序的設計,需要外部連接的硬件只有LCD液晶顯示屏以及按鍵。 1.LCD屏寫數(shù)據(jù)是串行輸入,所以產(chǎn)生時序的問題。LCD顯示輸出采用手動時鐘完成,這樣便于控制時序,且傳送字符時的傳輸效率比較高,當采用其他總線傳送方式的時候,由于計算機在傳送每個字節(jié)前也會加上相應的頭部,這樣與LCD所要求的時序不符,控制需要三條線,一條時鐘線,一條數(shù)據(jù)線,一條片選線,三條線互相配合保證將數(shù)據(jù)正確寫入LCD的數(shù)據(jù)緩沖區(qū)。所以

4、使用三條I/O端口線向LCD寫數(shù)據(jù),選用RD0RD2控制,其中RD0接CS端,RD1接CLK,RD2接SID。 2.四個按鍵分別與RC0.RC1.RC2.RC3相連,按鍵低電平有效,采用掃描方式判斷哪一個按鍵按下。八調(diào)試步驟以及各步驟調(diào)試過程中出現(xiàn)的問題與解決方法: 1.LCD輸出調(diào)試:由于所有實驗現(xiàn)象都要在LCD屏顯試才能看到,所以這是首先要調(diào)試好的一個程序。最初接線完成之后沒有顯示,先確定了一遍接線沒有問題,進而檢查程序。首先進行調(diào)試的是寫命令子程序,方法就是將顯示狀態(tài)開/關的控制字設置成顯示光標,如果這句控制字能夠成功寫入,屏幕上將有一個光標,則至少時鐘書寫命令程序是正確的,經(jīng)試驗寫命令

5、程序時正確的,后來在檢查寫數(shù)據(jù)程序時發(fā)現(xiàn)時首地址設錯了,上行是80H到87H,我們給的首地址是89H,改變地址后輸出正常。后來又產(chǎn)生一個問題就是在輸出多個字的時候容易產(chǎn)生亂碼,我們的解決方式是每寫完一條指令后需要加一段短延時,大致在20ms左右,這樣保證屏幕完成指令接收,并保證下一條指令可以正確寫入。 2.二進制轉(zhuǎn)BCD模塊調(diào)試:由于只有將LCD輸出模塊與二進制轉(zhuǎn)BCD碼程序調(diào)試成功,才能看到實驗現(xiàn)象進而調(diào)試其他模塊,所以首先要將二進制轉(zhuǎn)BCD碼程序調(diào)試成功。此子程序采用了簡單的加三移位算法,方法是結果字節(jié)首先清零,然后待轉(zhuǎn)換字節(jié)向左移動8次,每次移動后都檢查第四位LSD加3是否大于7,如果是

6、則加3,否則不加,高四位MSD做同樣處理。如果是要變換雙字節(jié)的16位二進制,則要將待轉(zhuǎn)換字節(jié)左移16次。在調(diào)試過程中整體比較順利。 3.時分秒計時模塊:在調(diào)試本模塊的過程中,出現(xiàn)了時間已到60秒但是分鐘數(shù)沒有進位的情況,單步執(zhí)行后發(fā)現(xiàn)是判斷語句發(fā)生了問題。我們采用了XORLW這個語句,將秒數(shù)與60相異或,然后判斷零標志位,當秒數(shù)到達六十時,異或操作使status寄存器零標志位為1,我們誤以為這時候零標志位為零,所以判斷語句用反,將BTFSS用成BTFSC,改正后,時分秒計時子程序正常工作。 4.年月日模塊:這是程序中最為復雜的程序因為年月日計時子程序不僅僅要解決進位的問題,在每個月都要分清不同

7、的天數(shù),還有平閏年的問題,所以這部分子程序最為復雜。在日期數(shù)加一之前首先要確定本月月數(shù)。為了使程序具有更高的可讀性,在編輯程序時舍棄了那些邏輯復雜的簡便月份判斷方法,如是不是1,3,5,7,8,10,12月,再使日期進時可以加到31天,本模塊的設計思路是先判斷月份是幾月,確定好月份之后再轉(zhuǎn)到相應的日期判斷子程序中,這樣的代價就是使程序的長度邊長,有了12段的簡單重復,但好處是使程序簡單易讀,便于調(diào)試。在調(diào)試過程中,出問題的是判斷平閏年程序,當從二月變到三月的時候,不論是否是平年還是閏年最后2月都是只記28天。經(jīng)過單步執(zhí)行,發(fā)現(xiàn)是我們沒有給程序設置一個公共出口,在判斷平閏年是,即使判斷是閏年,但

8、是由于判斷閏年的程序的出口是確定本年是平年的程序,所以不管是不是閏年,程序的最終出口都是將年份數(shù)判斷為平年,即二月的輸出只有28天,解決方案是增加程序的公共出口,判斷完平閏年后,程序返回,經(jīng)調(diào)試,程序正常。 5.溫度檢測模塊:溫度檢測的難點是如何將AD轉(zhuǎn)換后的得到的10位二進制數(shù)轉(zhuǎn)化為對應的溫度數(shù),PIC單片機中ad模塊的輸入電壓是5伏,溫度傳感器的輸出電壓為1伏時對應溫度為100度,5V對應的是ad轉(zhuǎn)換后的3FFH,經(jīng)換算,可得到如下對應關系,1度對應0.05V,3ffh換算成為十進制為1023,約等于1000,通過近似,可知0.005V對應一個二進制位,在編程時,將ad轉(zhuǎn)換后的二進制數(shù)減去

9、1000,余數(shù)再進行轉(zhuǎn)換才是以0度為基準的溫度值,將余數(shù)除以2之后得到的二進制數(shù)即為當前溫度,將溫度的二進制形式作為入口參數(shù)調(diào)用二進制轉(zhuǎn)BCD程序,之后就可以輸出在LCD屏上了。在ad轉(zhuǎn)換程序中設置的是右對齊,最高的兩位直接舍棄不用,因為只有當大于100度時最高兩位才有數(shù),但是如果作為測量試問的程序來說室溫基本不會到那么高,所以可以將最高兩位不帶入計算了。本程序的溫度檢測模塊檢測溫度精度是0.5度。 6.按鍵模塊:按鍵模塊的設計思路是在一秒中多次將RC口中的狀態(tài)讀進來,在沒有按鍵按下時輸入為FFH,一旦有按鍵輸入,相應位置零,輸入改變,通過判斷是哪一位的輸入置零,知道是哪個按鍵按下,之后再轉(zhuǎn)到

10、相應的案件處理子程序中。在調(diào)試過程中,出現(xiàn)了按鍵響應不靈敏的問題,同時電子鐘一秒定時的時間增加了。在沒有加入按鍵模塊之前,一秒定時準確度比較高,加入按鍵模塊之后一秒定時時間明顯加大,我們懷疑是每秒中按鍵掃描次數(shù)過多導致,在減少掃描次數(shù)后情況好轉(zhuǎn),我們在定時程序中調(diào)用按鍵掃描程序,定時程序是120ms乘以5,每次定時器120ms到時調(diào)用一次按鍵掃描程序。 7.EEPROM讀寫模塊:我們直接應用了書上的EEPROM讀寫模塊例程,理論上程序執(zhí)行不應該出錯,但是當實際執(zhí)行的時候發(fā)現(xiàn)數(shù)據(jù)無法寫入也無法讀出,經(jīng)過詢問老師,我們了解到在本仿真軟件的環(huán)境下對EEPROM的操作都要經(jīng)過手動刷新,這樣數(shù)據(jù)才能寫入

11、和讀出。軟件設計流程框圖程序初始化 調(diào)用EEPROM讀程序 調(diào)用一秒延時程序 調(diào)用溫度檢測程序 是否到24:59:59否 是 調(diào)用年月日計時程序 調(diào)用輸出程序 調(diào)用EEPROM寫程序 程序結束軟件程序清單:LIST P=16F877 #INCLUDE<P16F877.INC> SPTEM EQU 20HBINTEM EQU 21H LED_TEM EQU 22HGENE1 EQU 23HGENE2 EQU 24HLEH EQU 25HLEM EQU 26HLEL EQU 27HCOUNT1 EQU 28HCOUNT2 EQU 29HCOUNT3 EQU 30H COUNT EQU

12、31HGENE3 EQU 33HGENE4 EQU 34HGENE5 EQU 35H DECTEMLO EQU 36H DECTEMHI EQU 37H TEMP EQU 38H SEC EQU 39H MIN EQU 40H HOU EQU 41H YEAR EQU 42H MONTH EQU 43H DAY EQU 44H PINGRUN EQU 45H WENDU EQU 46H WENDU4 EQU 47H HOUTEMP EQU 48H TAG EQU 50H HM EQU 51H MODJISHU EQU 52H ORG 0050HSTART;主程序BSF STATUS,RP0BC

13、F STATUS,RP1MOVLW 01H;RA0輸入,其他不用。MOVWF TRISAMOVLW 0FFH;RC1234INPUT。MOVWF TRISCMOVLW 00HMOVWF TRISD;RD0、RD1、RD2輸出。MOVLW 20HMOVWF OPTION_REGMOVLW 00HMOVWF INTCON;Timer0作計數(shù)器,初始化 BCF STATUS,RP0 MOVLW 31HMOVWF T1CON;Timer1作定時器,定時1s,初始化 MOVLW 01H MOVWF MODJISHU CLRF HM CLRF SEC CLRF MIN CLRF HOU CLRF PORT

14、B MOVLW 17H MOVWF HOU MOVLW 3BH MOVWF MIN MOVLW 30H MOVWF SEC MOVLW 10H MOVWF YEAR MOVLW 02H MOVWF MONTH MOVLW 1CH MOVWF DAYLEDOUT;LCD屏顯示部分MOVLW 00HMOVWF PORTD;準備傳輸MOVLW 01HMOVWF LED_TEM;清除顯示CALL LEDORDMOVLW 20H;功能設定MOVWF LED_TEMCALL LEDORDMOVLW 02H;地址歸位MOVWF LED_TEMCALL LEDORDMOVLW 06H;進入點設定MOVWF L

15、ED_TEMCALL LEDORDMOVLW 0CH;顯示狀態(tài)開,無光標MOVWF LED_TEMCALL LEDORDMOVLW 01H;清除顯示MOVWF LED_TEMCALL LEDORDMOVLW 80H;DDRAM地址復位至80HMOVWF LED_TEMCALL LEDORD CALL EEPROMRD ;CALL EEPROMWR ;CALL TEMPERATUREAE CALL EEPROMWR CALL INTRB CALL TEMPERATURE CALL INTRB CALL OUTPUT CALL INTRB CALL DISPLAYSFM CALL DELAY2 ;

16、CALL EEPROMRD INCF SEC,1 MOVLW 3CH SUBWF SEC,0 BTFSS STATUS,Z GOTO AE CLRF SEC INCF MIN,1 MOVLW 3CH SUBWF MIN,02 BTFSS STATUS,Z GOTO AE CLRF MIN ;CALL EEPROMWR INCF HOU,1 MOVLW 18H SUBWF HOU,0 BTFSS STATUS,Z GOTO AE CLRF HOU CALL NIAN GOTO AE NIAN ;年月日子程序 INCF DAY,1 IS1 MOVF MONTH,0 XORLW 01H BTFSS

17、STATUS,Z GOTO IS2 GOTO BE1IS2 MOVF MONTH,0 XORLW 02H BTFSS STATUS,Z GOTO IS3 GOTO BE2IS3 MOVF MONTH,0 XORLW 03H BTFSS STATUS,Z GOTO IS4 GOTO BE3IS4 MOVF MONTH,0 XORLW 04H BTFSS STATUS,Z GOTO IS5 GOTO BE4IS5 MOVF MONTH,0 XORLW 05H BTFSS STATUS,Z GOTO IS6 GOTO BE5IS6 MOVF MONTH,0 XORLW 06H BTFSS STATU

18、S,Z GOTO IS7 GOTO BE6IS7 MOVF MONTH,0 XORLW 07H BTFSS STATUS,Z GOTO IS8 GOTO BE7IS8 MOVF MONTH,0 XORLW 08H BTFSS STATUS,Z GOTO IS9 GOTO BE8IS9 MOVF MONTH,0 XORLW 09H BTFSS STATUS,Z GOTO IS10 GOTO BE9IS10 MOVF MONTH,0 XORLW 0AH BTFSS STATUS,Z GOTO IS11 GOTO BE10IS11 MOVF MONTH,0 XORLW 0BH BTFSS STATU

19、S,Z GOTO IS12 GOTO BE11IS12 GOTO BE12BE1 MOVF DAY,0 XORLW 20H BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE2 CALL JUDGE BTFSC PINGRUN,0 GOTO RUN MOVF DAY,0 XORLW 1DH BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BERUN MOVF DAY,0 XORLW 1EH BTFSS STATUS,Z GOTO BE MOV

20、LW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE3 MOVF DAY,0 XORLW 20H BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE4 MOVF DAY,0 XORLW 1FH BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BE BE5 MOVF DAY,0 XORLW 20H BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO

21、BEBE6 MOVF DAY,0 XORLW 1FH BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE7 MOVF DAY,0 XORLW 20H BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE8 MOVF DAY,0 XORLW 20H BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE9 MOVF DAY,0 XORLW 1FH BTFSS STA

22、TUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE10 MOVF DAY,0 XORLW 20H BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE11 MOVF DAY,0 XORLW 1FH BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY INCF MONTH,1 GOTO BEBE12 MOVF DAY,0 XORLW 20H BTFSS STATUS,Z GOTO BE MOVLW 01H MOVWF DAY

23、 MOVLW 01H MOVWF MONTH INCF YEAR,1BE RETURN JUDGE BTFSC YEAR,0 GOTO SHIPING BTFSC YEAR,1 GOTO SHIPING BSF PINGRUN,0 GOTO FANHUISHIPING BCF PINGRUN,0 FANHUI RETURNTEMPERATURE ;溫度檢測子程序 BCF STATUS,RP0 MOVLW 41HMOVWF ADCON0;選擇A/D轉(zhuǎn)換在RA0,并打開A/D轉(zhuǎn)換BSF STATUS,RP0MOVLW 0x8eMOVWF ADCON1;轉(zhuǎn)換結果左移,且把RA0口設置成模擬量輸入MO

24、VLW 0x01MOVWF TRISA BCF STATUS,RP0 BSF ADCON0,2;GO/DONE位置1,開始A/D轉(zhuǎn)換NOPNOPHEREBTFSC ADCON0,2;檢查是否轉(zhuǎn)換完成GOTO HERE NOP BSF STATUS,RP0 ;讀取轉(zhuǎn)換結果高8位信息MOVLW 69H SUBWF ADRESL,0 BCF STATUS,RP0 MOVWF WENDU BCF STATUS,C RRF WENDU,1 BTFSC STATUS,C GOTO AA MOVLW 30H MOVWF WENDU4 GOTO BBAA MOVLW 35H MOVWF WENDU4 BB M

25、OVF WENDU,0 MOVWF BINTEM CALL BINTOBCD MOVLW 95H;DDRAM地址復位至93HMOVWF LED_TEMCALL LEDORDMOVLW 20HMOVWF LED_TEM ;NULL位CALL LEDDATMOVF LEM,0 ;十位MOVWF LED_TEMCALL LEDDAT ;MOVF LEL,0 ;個位MOVWF LED_TEMCALL LEDDAT MOVLW 2EH MOVWF LED_TEMCALL LEDDATMOVF WENDU4,0MOVWF LED_TEMCALL LEDDATBCF STATUS,RP0 RETURN OU

26、TPUT MOVLW 80H;DDRAM地址至80H MOVWF LED_TEM CALL LEDORD MOVLW 32H MOVWF LED_TEM CALL LEDDAT MOVF YEAR,0 MOVWF BINTEM CALL BINTOBCD MOVF LEH,W MOVWF LED_TEM CALL LEDDAT MOVF LEM,W MOVWF LED_TEM CALL LEDDAT MOVF LEL,0 MOVWF LED_TEM CALL LEDDAT MOVLW 2FH;/ MOVWF LED_TEM CALL LEDDAT MOVF MONTH,0 MOVWF BINT

27、EM CALL BINTOBCD MOVF LEM,W MOVWF LED_TEMCALL LEDDATMOVF LEL,0MOVWF LED_TEMCALL LEDDAT MOVLW 2FH;/MOVWF LED_TEMCALL LEDDAT MOVF DAY,0 MOVWF BINTEM CALL BINTOBCD MOVF LEM,W MOVWF LED_TEMCALL LEDDATMOVF LEL,0MOVWF LED_TEMCALL LEDDAT RETURN DISPLAYSFM ;時分秒顯示子程序 CALL INTRB MOVLW 90H;DDRAM地址至90H MOVWF LE

28、D_TEM CALL LEDORD MOVF HOU,0 SUBLW 0BH BTFSC STATUS,C GOTO LESSTHAN12 GOTO MORETHAN12MORETHAN12 MOVLW 50H MOVWF LED_TEM CALL LEDDAT MOVLW 4DH MOVWF LED_TEM CALL LEDDAT BTFSS HM,0 GOTO SHUCHU12 GOTO SHUCHU24SHUCHU12 MOVF HOU,0 MOVWF HOUTEMP MOVLW 0CH SUBWF HOUTEMP,0 MOVWF BINTEM GOTO SHUCSHUCHU24 MOV

29、F HOU,0 MOVWF BINTEM GOTO SHUCLESSTHAN12 MOVLW 41H MOVWF LED_TEM CALL LEDDAT MOVLW 4DH MOVWF LED_TEM CALL LEDDAT MOVF HOU,0 MOVWF BINTEM GOTO SHUCSHUC CALL BINTOBCD MOVF LEM,W MOVWF LED_TEM CALL LEDDAT MOVF LEL,0 MOVWF LED_TEM CALL LEDDAT MOVLW 3AH;: MOVWF LED_TEM CALL LEDDAT MOVF MIN,0 MOVWF BINTEM

30、 CALL BINTOBCD MOVF LEM,W MOVWF LED_TEM CALL LEDDAT MOVF LEL,0 MOVWF LED_TEM CALL LEDDAT MOVLW 3AH;: MOVWF LED_TEM CALL LEDDAT MOVF SEC,0 MOVWF BINTEM CALL BINTOBCD MOVF LEM,W MOVWF LED_TEM CALL LEDDAT MOVF LEL,0 MOVWF LED_TEM CALL LEDDAT MOVLW 87H;DDRAM地址至87H MOVWF LED_TEM CALL LEDORD MOVF MODJISHU

31、,0 ADDLW 30H MOVWF LED_TEM CALL LEDDAT RETURN ;*;子程序名稱:LEDORD;入口參數(shù):LED_TEM;出口參數(shù):無;子程序任務:通過手寫時鐘,按照LCD屏時序圖邏輯,將LED_TEM中的內(nèi)容以寫指令方式寫入LCD中。;*LEDORDBSF PORTD,0BSF PORTD,2BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BCF PORTD,2BSF PORTD,1BCF PO

32、RTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1;寫指令BTFSC LED_TEM,7;判斷LED_TEM的第8位是否為0,為0則發(fā)送0,否則發(fā)送1,下同BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,6BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,5BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,4BSF PORTD,2BSF PORTD,

33、1BCF PORTD,1;高四位寫入BCF PORTD,2BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BTFSC LED_TEM,3BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,2BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,1BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC

34、LED_TEM,0BSF PORTD,2BSF PORTD,1BCF PORTD,1;低四位寫入BCF PORTD,2BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BCF PORTD,0CALL DELAY1;調(diào)用小延時RETURN;*;子程序名稱:LEDDAT;入口參數(shù):LED_TEM;出口參數(shù):無;子程序任務:通過手寫時鐘,按照LCD屏時序圖邏輯,將LED_TEM中的內(nèi)容以寫數(shù)據(jù)方式寫入LCD中。;*LEDDATBSF PORTD,0BSF PORTD,2BSF

35、 PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BCF PORTD,2BSF PORTD,1BCF PORTD,1BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BSF PORTD,1BCF PORTD,1;寫數(shù)據(jù)BTFSC LED_TEM,7BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,6BSF PORTD,2BSF P

36、ORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,5BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,4BSF PORTD,2BSF PORTD,1BCF PORTD,1;高四位寫入BCF PORTD,2BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BTFSC LED_TEM,3BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2B

37、TFSC LED_TEM,2BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,1BSF PORTD,2BSF PORTD,1BCF PORTD,1BCF PORTD,2BTFSC LED_TEM,0BSF PORTD,2BSF PORTD,1BCF PORTD,1;低四位寫入BCF PORTD,2BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BSF PORTD,1BCF PORTD,1BCF PORTD,0CALL DELAY1;調(diào)用小延時RE

38、TURN;*;子程序名稱:BINTOBCD;入口參數(shù):SPTEM,BINTEM(作為臨時寄存器);出口參數(shù):LEH,LEM,LEL;子程序任務:將SPTEM中的8位二進制數(shù),通過移位加三判斷法,轉(zhuǎn)化成三位十進制數(shù),分別放入LEH、LEM、LEL中;*BINTOBCD BCF STATUS,C MOVLW 08H MOVWF COUNT CLRF LEH CLRF LEM CLRF LEL CLRF DECTEMLO CLRF DECTEMHILOOP8 RLF BINTEM RLF DECTEMLO RLF DECTEMHI DECFSZ COUNT GOTO ADJDEC GOTO FENKAIADJDEC MOVLW DECTEMLO MOVWF FSR CALL ADJBCD MOVLW DECTEMHI MOVWF FSR CALL ADJBCD GOTO LOOP8ADJBCD MOVLW 03H ADDWF INDF,0 MOVWF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論