單片機電子秤重量檢測與顯示設(shè)計說明_第1頁
單片機電子秤重量檢測與顯示設(shè)計說明_第2頁
單片機電子秤重量檢測與顯示設(shè)計說明_第3頁
單片機電子秤重量檢測與顯示設(shè)計說明_第4頁
單片機電子秤重量檢測與顯示設(shè)計說明_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.PAGE.微控制器應(yīng)用系統(tǒng)綜合設(shè)計的目的意義1.1設(shè)計目的通過課程設(shè)計進一步鍛煉同學(xué)們在微型計算機應(yīng)用方面的實際工作能力。計算機科學(xué)在應(yīng)用上得到飛速發(fā)展,因此,學(xué)習(xí)這方面的知識必須緊密聯(lián)系實際:掌握這方面的知識更要強調(diào)解決實際問題的能力。同學(xué)們要著重學(xué)會面對一個實際問題,如何去自己收集資料,如何自己去學(xué)習(xí)新的知識,如何自己去制定解決問題的方案并通過實踐不斷地去分析和解決前進道路上的一切問題,最終到達勝利的彼岸。本實驗是設(shè)計單片機重量檢測與顯示電路,對5種以上不同單價的商品進行鍵盤參數(shù)設(shè)置,稱量,計價和顯示。這個課題與我們現(xiàn)實生活聯(lián)系密切,具有很大的實際用途。做好本實驗對我們今后學(xué)習(xí)和生活具有重要意義。1.2課程在教學(xué)計劃中的地位和作用《微控制器應(yīng)用系統(tǒng)綜合設(shè)計》課程是測控技術(shù)專業(yè)本科生必修的一門技術(shù)基礎(chǔ)課程。通過該課程的學(xué)習(xí)使學(xué)生對單片機有一個全面的了解、掌握常規(guī)芯片的使用方法、掌握簡單微型計算機應(yīng)用系統(tǒng)軟硬的設(shè)計方法。為了使我們微機應(yīng)用課程設(shè)計目標更明確,要求更具體,學(xué)生收獲更大,我們特編寫課程設(shè)計任務(wù)書,學(xué)生可根據(jù)本人的愛好任選其中一個課題,要求獨立完成課題,寫出課程設(shè)計說明書,設(shè)計出電路原理圖,說明工作原理,畫出電路板圖,編寫程序及程序流程圖。希望同學(xué)認真閱讀本任務(wù)書,認真查閱資料與上機調(diào)試,圓滿完成課程設(shè)計。第二章電子計價稱軟硬件設(shè)計任務(wù)2.1設(shè)計內(nèi)容及要求設(shè)計單片機稱重測量檢測,處理與顯示電路,對五種不同單價的商品進行鍵盤參數(shù)設(shè)置,稱量,計價和顯示。由A/D0809把輸入的0—5V的電壓轉(zhuǎn)換,當(dāng)電壓為5V時,對應(yīng)的重量為500克,進行數(shù)值轉(zhuǎn)換,并在LCD液晶顯示器上顯示商品的克數(shù),程序設(shè)置了五種不同單價的商品,由鍵盤輸入0—4顯示不同商品的單價,并顯示總的價錢,顯示三位數(shù)。2.2課程設(shè)計的要求1.利用現(xiàn)有的硬件電路,構(gòu)成單片機稱重檢測,處理與顯示系統(tǒng)。2.編寫程序,實現(xiàn)稱量和計價顯示的功能。3.設(shè)計出原理圖,說明工作原理,畫出程序流程圖。第三章總體設(shè)計方案設(shè)計思想實驗需要設(shè)計一個系統(tǒng)可以對5種以上不同的商品進行鍵盤參數(shù)設(shè)置,稱量,計價和顯示。可以把系統(tǒng)分為以下幾個模塊,分別進行編寫程序,調(diào)試。〔18279可編程鍵盤,輸入0—4時,通過比較鍵值,使程序跳到不同的子程序,在子程序中進行A/D采樣,設(shè)定單價,經(jīng)過數(shù)值轉(zhuǎn)換與乘法程序,將重量和價錢轉(zhuǎn)換成十進制數(shù),調(diào)用顯示程序。執(zhí)行完返回判斷有無鍵按下?!?A/D采樣部分,給A/D0通道輸入一個05V的電壓,將轉(zhuǎn)換成0—FF輸出,對應(yīng)0—500G,把A/D采樣值存入內(nèi)部寄存器51H中,經(jīng)過數(shù)值轉(zhuǎn)換成十進制數(shù),調(diào)用LCD顯示程序顯示。當(dāng)質(zhì)量大于500克時,轉(zhuǎn)到報警程序。〔3LCD液晶顯示,分三個區(qū)分別顯示單價,重量,價錢,并且都分為三位顯示。〔4實驗中還需要用到雙字節(jié)與單字節(jié)乘法及十六進制轉(zhuǎn)十進制報警等子程序。P0.0-p0.78031/RD/WRRESET373138IN0D0—D7ADC0809/RD/WRCLK0—5VT474LS02D0—D78279/RDSL2/WRSL1RESETSL074LS138D0-D7C/D/CELCD/RD/WR/RESETFS圖3.1硬件系統(tǒng)結(jié)構(gòu)圖第四章硬件設(shè)計4.1硬件設(shè)計概要本次設(shè)計主要用到的芯片有8088、ADC0809模數(shù)轉(zhuǎn)換器、可編程鍵盤顯示8279、LCD液晶顯示共同完成這個課題。A/D實現(xiàn)數(shù)據(jù)的采集和轉(zhuǎn)換,可編程鍵盤顯示8279實現(xiàn)鍵盤輸入編號顯示不同商品的單價,LCD液晶顯示器顯示單價,重量以及三位價錢。8088實現(xiàn)各個芯片之間的連接。4.2所用到的芯片及其各自功能說明芯片列表AT89C528位單片機ADC0809模數(shù)轉(zhuǎn)換器可編程鍵盤顯示8279LCD液晶器AT89C528位單片機AT89C52是一個低電壓,高性能CMOS8位單片機,片內(nèi)含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲器和256bytes的隨機存取數(shù)據(jù)存儲器〔RAM,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。ADC0809的功能簡介ADC0809是8位逐次逼近式單片A/D轉(zhuǎn)換芯片,可對8路0~5V的輸入模擬電壓信號分時進行轉(zhuǎn)換。它內(nèi)部包括8路模擬開關(guān),以及地址鎖存譯碼器,有三條地址輸入線。該芯片還有便于和微機數(shù)據(jù)總線相連的三臺輸出鎖存器。ADC0809的內(nèi)部結(jié)構(gòu)為:ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,它由8路模擬開關(guān)、地址鎖存譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近寄存器、三態(tài)輸出鎖存器等其他一些電路組成。其內(nèi)部原理圖如下:模擬量輸入A模擬量輸入ABBN位D/AN位N位D/AN位寄存器啟動位置控制邏輯啟動位置控制邏輯DONEDONE圖4.1ADC0809芯片管腳功能如下:IN0~IN7:8路模擬量輸入通道。

ADDA~ADDC:地址線用于選擇模擬量輸入通道。

ALE:地址鎖存允許信號。

START:轉(zhuǎn)換啟動信。D0~D7:數(shù)據(jù)輸線

。OE:輸出允許信號,低電平允許轉(zhuǎn)換結(jié)果輸出。EOC:A/D轉(zhuǎn)換結(jié)束信號,當(dāng)轉(zhuǎn)換結(jié)束時,此端口輸出一個高電平。

CLOCK:時鐘信號輸入引腳,通常使用500KHz。

EOC:轉(zhuǎn)換結(jié)束信號,為0代表正在轉(zhuǎn)換,1代表轉(zhuǎn)換結(jié)束。REF〔-、REF〔+:基準電壓。

Vcc:+5V電壓。GND:接地。ADC0809的管腳圖如下:圖4.2可編程鍵盤顯示82798279是可編程的鍵盤,顯示接口芯片.它既具有按鍵處理功能,又具有自動顯示功能,在單片機系統(tǒng)中應(yīng)用很廣泛.8279內(nèi)部有鍵盤FIFO<先進先出堆棧>/傳感器,雙重功能的8*8=64BRAM,鍵盤控制部分可控制8*8=64個按鍵或8*8陣列方式的傳感器.該芯片能自動消抖并具有雙鍵鎖定保護功能.數(shù)據(jù)線DB0→DB7是雙向三態(tài)數(shù)據(jù)總線,在接口電路中與系統(tǒng)數(shù)據(jù)總線相連,用以傳送CPU和8279之間的數(shù)據(jù)和命令.

<2>地址線

/CS=0選中8279,當(dāng)A0=1時,為命令字及狀態(tài)字地址;當(dāng)A0=0時,為片內(nèi)數(shù)據(jù)地址,故8279芯片占用2個端口地址.

<3>控制線

CLK:8279的時鐘輸入線.

IRQ:中斷請求輸出線,高電平有效.

/RD,/WR:讀,寫輸入控制線.

SL0SL3:掃描輸出線,用來作為掃描鍵盤和顯示的代碼輸出或直接輸出線.

RL0RL7:回復(fù)輸入線,它們是鍵盤或傳感器矩陣的信號輸入線.

SHIFT:來自外部鍵盤或傳感器矩陣的輸入信號,它是8279鍵盤數(shù)據(jù)的次高位即D6位的

狀態(tài),該位狀態(tài)控制鍵盤上/下檔功能.在傳感器方式和選通方式中,該引腳無用.

CNTL/S:控制/選通輸入線,高電平有效.鍵盤方式時,鍵盤數(shù)據(jù)最高位<D7>的信號輸

入到該引腳,以擴充鍵功能;選通方式時,當(dāng)該引腳信號上升沿到時,把RL0RL7的數(shù)

據(jù)存入FIFORAM中.

OUTA0OUTA3:通常作為顯示信號的高4位輸出線.

OUTB0OUTB3:通常作為顯示信號的低4位輸出線.

/BD:顯示熄滅輸出線,低電平有效.當(dāng)/BD=0時將顯示全熄滅.圖4.38279引腳及引線功能4.2.5LCD液晶器T6963C液晶顯示控制器多用于中小規(guī)模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內(nèi)藏控制器型圖形液晶顯示模塊的形式出現(xiàn)。一、T6963C的特點<1>T6963C是點陣式液晶圖形顯示控制器,它能直接與80系列的8位微處理器接口;<2>T6963C的字符字體可由硬件或軟件設(shè)置,其字體有4種:5×8、6×8、7×8、8×8;<3>T6963C的占空比可從1/16到1/128;<4>T6963C可以圖形方式、文本方式及圖形和文本合成方式進行顯示,以及文本方式下的特征顯示,還可以實現(xiàn)圖形拷貝操作等等;<5>T6963C具有內(nèi)部字符發(fā)生器CGROM,共有128個字符,T6963C可管理64K顯示緩沖區(qū)及字符發(fā)生器CGRAM。并允許MPU隨時訪問顯示緩沖區(qū),甚至可以進行位操作。二、T6963C的引腳說明及其功能T6963C的QFP封裝共有67個引腳<見圖三>,各引腳說明如下:<1>D0--D7:T6963C與MPU接口的數(shù)據(jù)總線,三態(tài);<2>/RD,/WR:讀、寫選通信號,低電平有效,輸入信號;<3>/CE:T6963C的片選信號,低電平有效;<4>C/D:通道選擇信號,1為指令通道,0為數(shù)據(jù)通道;<5>/RESET,/HALT:/RESET為低電平有效的復(fù)位信號,它將行、列計數(shù)器和顯示寄存器清零,關(guān)顯示;/HALT具有/RESET的基本功能,還將中止內(nèi)部時鐘振蕩器的工作;以上引腳為T6963C與MPU接口的引腳。圖4.4T6963C管腳外形圖<6>DUAL,SDSEL:DUAL=1為單屏結(jié)構(gòu),DUAL=0為雙屏結(jié)構(gòu);SDSEL=0為一位串行數(shù)據(jù)傳輸方式,SDSEL=1為二位并行數(shù)據(jù)傳輸方式;<7>MD2,MD3:設(shè)置顯示窗口長度,從而確定了列數(shù)據(jù)傳輸個數(shù)的最大值,其組合邏輯關(guān)系如下:表4.1MD31100MD21010每行字符數(shù)32406480當(dāng)DUAL=0時,以上設(shè)置中的字符行和總行數(shù)增至原來的2倍,其它都不變,這種情況下的液晶屏結(jié)構(gòu)為雙屏結(jié)構(gòu);FS1,FS0:顯示字符的字體選擇表4.2FS11100FS01010字體5×86×87×88×8<10>XI,XO:振蕩時鐘引腳;ad0-ad15:輸出信號,顯示緩沖區(qū)16位地址總線;d0-d7:三態(tài),顯示緩沖區(qū)8位數(shù)據(jù)總線;<13> r/w:輸出,顯示緩沖區(qū)讀、寫控制信號;<14> /ce:輸出,顯示緩沖區(qū)片選信號,低電平有效;<15> /ce0,/ce1:輸出,DUAL=1時的存儲器片選信號;T1,T2,CH,CH2:用來檢測T6963C工作使用情況,T1,T2作為測試信號輸入端,CH,CH2作為輸出端;HOD,HSCP,ED,LP,CDATA,FR為T6963C驅(qū)動部信號連線AD0809接線:1.把A/D區(qū)0809的0通道IN0用插針接至W1的中心抽頭V01插孔<0-5V>。2.0809的CLK插孔與分頻輸出端T4相連。3.把VREF端接到為+5V。4.連好74LS025.將A/D區(qū)D0-D7用排線與BUS1區(qū)XD0-XD7相連。擴展鍵盤接線:1.將DVCC實驗系統(tǒng)上J8插座與鍵盤顯示板用扁平電纜相連。2.將KEY區(qū)D0—D7用8芯排線連到BUS2區(qū)XD0—XD7上。3.將KEY區(qū)WR、RD、ALE分別連到BUS3區(qū)XWR、XRD、ALE上。4.KEY區(qū)A0連到BUS1區(qū)XA0上。5.KEY區(qū)RST連到MP區(qū)SP上。6.KEY區(qū)KCS連到SELET區(qū)的Y3上。LCD液晶顯示器連線:1.液晶板C/D連主機XA0,液晶板/CS連主機Y02.液晶板D0D7連主機XD0XD73.液晶板/RESET連主機/RST,液晶板/WR連主機XWR,液晶板/RD連主機XRD4.液晶板FS接地。第五章軟件設(shè)計5.1流程圖及其說明開始開始8279初始化顯示器顯示P有鍵按下嗎?計算鍵值散轉(zhuǎn)商品2商品3商品4商品5商品1A/D采樣A/D采樣A/D采樣A/D采樣A/D采樣調(diào)乘法及轉(zhuǎn)換子程序調(diào)顯示子程序調(diào)乘法及轉(zhuǎn)換子程序調(diào)乘法及轉(zhuǎn)換子程序調(diào)乘法及轉(zhuǎn)換子程序調(diào)乘法及轉(zhuǎn)換子程序調(diào)顯示子程序調(diào)顯示子程序調(diào)顯示子程序調(diào)顯示子程序,YN圖5.1主程序流程圖開始A/D采樣值轉(zhuǎn)化為相應(yīng)的十六進制數(shù)開始A/D采樣值轉(zhuǎn)化為相應(yīng)的十六進制數(shù)轉(zhuǎn)化為十進制數(shù)轉(zhuǎn)化為十進制數(shù)調(diào)LCD顯示子程序乘單價,調(diào)乘法子程序調(diào)LCD顯示子程序返回設(shè)置顯示指針地址,寫控制字設(shè)置顯示指針地址,寫控制字設(shè)置自動寫方式,分區(qū),字體,字數(shù)一行顯示完,改變指針地址指向下一行全部顯示完,等待下一次設(shè)置調(diào)清屏子程序開始圖5.3LCD液晶顯示子程序5.2源程序及其說明ORG0000H DAT1EQU30H;第一參數(shù)存放地址DAT2EQU31H;第二參數(shù)存放地址/數(shù)據(jù)存放地址COMEQU32H;指令代碼存放地址C_ADDEQU8001H;指令通道地址<片選Y1端口地址8000H開始D_ADDEQU8000H;數(shù)據(jù)通道地址S_ADD_HEQU33H;LCD顯示指針地址高位S_ADD_LEQU34H;LCD顯示指針地址低位S_ADD_HFEQU35H;LCD顯示指針地址高位備份S_ADD_LFEQU36H;LCD顯示指針地址低位備份SEL_FONTEQU37H;LCD字體選者,16X16則為#16H,8X16則為#8HWORD_NUMEQU38H;已經(jīng)顯示的字數(shù)ATTREQU39H;字符屬性碼〔低四位有效CODEDEQU40H;字符代碼CGR_NUMEQU41H;CGRAM顯示程序顯示的字數(shù)HA7S: MOVSP,#60HMOVDPTR,#0B001HMOVA,#00HMOVXDPTR,AMOVA,#32HMOVXDPTR,AMOVA,#0DFHMOVXDPTR,AHA7S1MOVXA,DPTRACC.7,HA7S1MOVDPTR,#0B000HMOVA,#0C8HMOVXDPTR,AINCDPTRMOVA,#80HMOVXDPTR,AHA7S2:MOV42H,#80HMOV43H,#40HHA7S3:MOVDPTR,#0B001HMOVXA,DPTRANLA,#07HCJNEA,#00H,HA7S4AJMPHA7S3HA7S4:MOVDPTR,#0B000HMOVXA,DPTRMOVB,AMOVR1,#00HMOVDPTR,#KEYTABHA7S5:MOVA,#00HMOVCA,A+DPTRCJNEA,B,HA7S6AJMPHA7SAHA7S6:INCDPTRINCR1MOVA,R1JNBACC.2,HA7S5AJMPHA7S2HA7SA:CJNEA,#0C1H,L1MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP0L1:CJNEA,#0C8H,L2MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP1L2:CJNEA,#0C9H,L3MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP2L3:CJNEA,#0D0H,L4MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP3L4:CJNEA,#0D8H,L5MOVA,42HMOVDPTR,#0B001HMOVXDPTR,AMOVA,R1MOVR0,43HMOVR0,AINC43HMOVDPTR,#CDATAMOVCA,A+DPTRMOVDPTR,#0B000HMOVXDPTR,ALJMPLOOP4L5:LJMPHA7SKEYTAB:DB0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9HDB0DAH,0C3H,0CBH,0D2H,0D3H,0DBHCDATA: DB0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38HDB6CH,1AH,68H,0E8HLOOP0: MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S:DJNZR7,H55SMOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#0CHPP0:MOVR4,#12HLCALLDDMULLCALLCONT0LJMPMAIN;顯示LJMPXIAN1LOOP1: MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S1:DJNZR7,H55S1MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#9FHPP1:MOVR4,#0FHLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1LOOP2:MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S2:DJNZR7,H55S2MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAIN MOVR5,#4AHPP2:MOVR4,#0CHLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1LOOP3:MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S3:DJNZR7,H55S3MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#0BHPP3:MOVR4,#08HLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1LOOP4:MOVA,#00HMOVDPTR,#9000H;A/D通道Y1MOVXDPTR,AMOVR7,#0FFHH55S4:DJNZR7,H55S4MOVXA,DPTRMOV51H,ALCALLCOMPLCALLDMULLCALLCONT2LCALLMAINMOVR5,#99HPP4:MOVR4,#05HLCALLDDMULLCALLCONT0LJMPMAINLJMPXIAN1XIAN1:MOVR6,#80HDISPC1:MOVA,r6MOVDPTR,#0B001HMOVXDPTR,AMOVA,R5MOVDPTR,#0B000HMOVXDPTR,AMOVR2,#20HLCALLDELAY4MOVA,#0FFH MOVXDPTR,A;關(guān)顯示INCR6LJMPha7s2dELAY4: PUSH02HDELAY5:PUSH02HDELAY6:PUSH02HDELAY7:DJNZR2,DELAY7POP02HDJNZR2,DELAY6POP02HDJNZR2,DELAY5POP02HDJNZR2,DELAY4RET;/////////////128X64液晶顯示程序//////////////////MAIN:MOVSP,#60HLCALLINT_LCD;液晶初始化MOVWORD_NUM,#00H;實現(xiàn)字數(shù)清零LCALLCLEAR;清屏;顯示方式一;在第一區(qū)顯示,128X64液晶顯示模塊可人為分為四個區(qū),每個區(qū)大小為128X16;區(qū)一顯示完畢;顯示方式二;在區(qū)二顯示,以單個字循環(huán)方式顯示"測控技術(shù)實驗室",16X16字體,一般用于漢字顯示MOVS_ADD_H,#01H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#01H;低位MOVSEL_FONT,#16H;采用16X16字體MOVDPTR,#TAB0;danjiaMOVR7,#02H;顯示字的個數(shù)ER:LCALLSHOW_A_WORDDJNZR7,ERMOVS_ADD_H,#01H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#06H;低位MOVSEL_FONT,#08H;采用8X16字體MOVDPTR,#TAB03;顯示0SSS2:LCALLSHOW_A_WORDMOVS_ADD_H,#01H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#07H;低位MOVSEL_FONT,#08H;采用8X16字體MOVDPTR,#TAB3SSS1:LCALLSHOW_A_WORD;顯示小數(shù)點MOVS_ADD_H,#01H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#08H;低位MOVSEL_FONT,#08H;采用8X16字體MOVA,4FH;顯示的字從4F中讀取ANLA,#0F0H;取4F高位SWAPAACALLBIAOER2:LCALLSHOW_A_WORD;顯示千位MOVS_ADD_H,#01H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#09H;低位MOVSEL_FONT,#08H;采用8X16字體MOVA,4FH;顯示的字從4F中讀取ANLA,#0FH;取4F低位ACALLBIAOER1:LCALLSHOW_A_WORDMOVS_ADD_H,#01H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#0AH;低位MOVSEL_FONT,#08H;采用8X16字體MOVDPTR,#TAB05;Y/GMOVR7,#03H;顯示字的個數(shù)ER3:LCALLSHOW_A_WORDDJNZR7,ER3;顯示方式三;在區(qū)三顯示,以單個字循環(huán)方式顯示"GOOD",8X16字體,一般用于數(shù)字和字母的顯示MOVS_ADD_H,#02H;設(shè)置一個字的顯示起始地址高位MOVS_ADD_L,#01H;低位MOVSEL_FONT,#16H;采用8X16字體MOVDPTR,#TAB01;zhongliangMOVR7,#02H;顯示字的個數(shù)SAN:LCALLSHOW_A_WORDDJNZR7,SANMOVS_ADD_H,#02H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#0BH;低位MOVSEL_FONT,#08H;采用8X16字體MOVDPTR,#TAB;顯示字的個數(shù):gSAN1:LCALLSHOW_A_WORDMOVS_ADD_H,#02H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#06H;低位MOVSEL_FONT,#08HMOVA,46H;顯示的字從46中讀取ANLA,#0FH;取46低位;SWAPAACALLBIAOSAN2:LCALLSHOW_A_WORD;顯示MOVS_ADD_H,#02H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#07H;低位MOVSEL_FONT,#08H;采用8X16字體MOVA,47;顯示的字從47中讀取ANLA,#0F0H;取47低位SWAPAACALLBIAOSAN3:LCALLSHOW_A_WORD;顯示MOVS_ADD_H,#02H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#08H;低位MOVSEL_FONT,#08H;采用8X16字體MOVA,47H;顯示的字從47中讀取ANLA,#0FH;取47高位ACALLBIAOSAN5:LCALLSHOW_A_WORD;顯示;顯示方式四MOVS_ADD_H,#03H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#01H;低位MOVSEL_FONT,#16H;采用16X16字體MOVDPTR,#TAB02;jiaqianMOVR7,#02H;顯示字的個數(shù)ER4:LCALLSHOW_A_WORDDJNZR7,ER4MOVS_ADD_H,#03H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#06H;低位MOVSEL_FONT,#08H;采用8X16字體MOVA,4CH;顯示的字從4C中讀取ANLA,#0F0H;取4C高位SWAPAACALLBIAOSAN7:LCALLSHOW_A_WORD;顯示千位MOVS_ADD_H,#03HMOVS_ADD_L,#07HMOVSEL_FONT,#08HMOVA,4CH;顯示的字從4C中讀取ANLA,#0FH;取4C低位ACALLBIAOSAN8:LCALLSHOW_A_WORDMOVS_ADD_H,#03H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#08H;低位MOVSEL_FONT,#08H;采用8X16字體MOVDPTR,#TAB3SSS:LCALLSHOW_A_WORD顯示小數(shù)點MOVS_ADD_H,#03H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#09H;低位MOVSEL_FONT,#08H;采用8X16字體MOVA,4DH;顯示的字從4D中讀取ANLA,#0F0H;取4D高位SWAPAACALLBIAOSAN6:LCALLSHOW_A_WORDMOVS_ADD_H,#03H;設(shè)置第一個字的顯示起始地址高位MOVS_ADD_L,#0AH;低位MOVSEL_FONT,#16H;采用16X16字體MOVDPTR,#TAB04;元MOVR7,#01H;顯示字的個數(shù)ER9:LCALLSHOW_A_WORDDJNZR7,ER9LJMPHA7S;延時子程序DELAY:MOVR7,#01HDY1:MOVR2,#0FHDY11:DJNZR2,DY11DJNZR7,DY1RET;清屏子程序CLEAR:MOVDAT1,#00H;GRAPHICHOMEADDRESSMOVDAT2,#00HMOVCOM,#24HLCALLPR1;設(shè)置起始地址指針MOVCOM,#0B0H;設(shè)置自動寫方式LCALLPR12MOVR0,#00H;分四個區(qū)清屏,每個區(qū)256個字節(jié)MOVR1,#04H;有四個區(qū)CLEARG:CLRAMOVDPTR,#8000HMOVXDPTR,ADJNZR0,CLEARG;清256個字節(jié)DJNZR1,CLEARGMOVCOM,#0B2H;設(shè)置自動寫結(jié)束指令LCALLPR12MOVDAT1,#00H;TEXTHOMEADDRESSMOVDAT2,#10HMOVCOM,#24HLCALLPR1MOVCOM,#0B0H;設(shè)置自動寫方式LCALLPR12MOVR0,#80H;16COLUMNS*8LINES=128=80HCLEART:MOVA,#00HMOVDPTR,#8000HMOVXDPTR,ADJNZR0,CLEART;MOVCOM,#0B2H;設(shè)置自動寫結(jié)束指令LCALLPR12RET;顯示一個16X16或8X16的字體子程序;要求-調(diào)用該程序前要將被顯示的字的字碼表地址送DPTR,顯示指針;地址送S_ADD_H顯示地址高位,S_ADD_L顯示地址低位;SEL_FONT顯示字體控制,#16H為16X16,#8H為8X16;[S_ADD_HF顯示地址高位備份,S_ADD_LF顯示地址低位備份];[WORD_NUM已經(jīng)顯示的字數(shù)]SHOW_A_WORD:;16x16或8x16顯示程序SETB0D4HPUSHDPH;;開始循環(huán)的第一個字符的地址設(shè)置PUSHDPLMOVDAT1,S_ADD_L;重新設(shè)置顯示地址指針MOVDAT2,S_ADD_HMOVCOM,#24HLCALLPR1;POPDPLPOPDPH;開始循環(huán)的第一個字符的地址設(shè)置結(jié)束MOVR0,#10H;行控制MOVS_ADD_HF,S_ADD_H;高位備份MOVS_ADD_LF,S_ADD_L;低位備份PUSHDPH;存字庫指針PUSHDPLMOVCOM,#0B0H;設(shè)置自動寫方式LCALLPR12;POPDPL;取出字庫指針POPDPHLINE_STA:CLRAMOVCA,A+DPTR;A暫存左半行字碼INCDPTR;字碼表指針加1,指向下一個字節(jié)PUSHDPH;保存字庫指針PUSHDPLMOVDPTR,#8000HMOVXDPTR,A;寫入左半行字碼MOVA,SEL_FONTCJNEA,#16H,FONT_8POPDPL;取出字庫指針POPDPHCLRAMOVCA,A+DPTR;A暫存右半行字碼INCDPTR;字碼表指針加1,指向下一個字節(jié)PUSHDPH;保存字碼表指針PUSHDPLMOVDPTR,#8000HMOVXDPTR,A;寫入右半行字碼,寫完一個字的一行<1/16>FONT_8:MOVA,S_ADD_L;改變顯示RAM低位地址到下一行ADDA,#10HMOVS_ADD_L,AMOVA,S_ADD_H;低位滿FFH,則顯示RAM高位地址加1ADDCA,#0HMOVS_ADD_H,AMOVCOM,#0B2H;設(shè)置自動寫結(jié)束指令LCALLPR12;MOVDAT1,S_ADD_L;重新設(shè)置顯示地址指針MOVDAT2,S_ADD_HMOVCOM,#24HLCALLPR1;MOVCOM,#0B0H;設(shè)置自動寫方式LCALLPR12;POPDPL;取出字庫指針POPDPHDJNZR0,LINE_STA;沒有完成一個字〔16行,則繼續(xù)INCWORD_NUM;已經(jīng)顯示的字數(shù)加一EE:MOVA,S_ADD_LF;調(diào)整顯示RAM區(qū)下一個字的起始地址MOVR0,SEL_FONTCJNER0,#16H,DDADDA,#2H;一個字為兩個字節(jié)寬〔16x16SJMPASDFDD:ADDA,#1H;一個字為一個字節(jié)寬〔8x16ASDF:MOVS_ADD_LF,AMOVA,S_ADD_HFADDCA,#0HMOVS_ADD_HF,AN_ENTER:MOVS_ADD_L,S_ADD_LFMOVS_ADD_H,S_ADD_HFPUSHDPHPUSHDPLMOVCOM,#0B2H;設(shè)置自動寫結(jié)束指令LCALLPR12;MOVDAT1,S_ADD_L;重新設(shè)置顯示地址指針MOVDAT2,S_ADD_HMOVCOM,#24HLCALLPR1;POPDPLPOPDPHCLR0D4HRET;液晶模塊初始化子程序INT_LCD:MOVDAT1,#00H;設(shè)置圖形顯示區(qū)域首地址MOVDAT2,#00H;或為文本屬性區(qū)域首地址MOVCOM,#42H;[0000H]LCALLPR1MOVDAT1,#00H;設(shè)置文本顯示區(qū)域首地址MOVDAT2,#10H;[1000H]MOVCOM,#40HLCALLPR1MOVDAT1,#10H;設(shè)置圖形顯示區(qū)域?qū)挾萂OVDAT2,#00H;或為文本屬性區(qū)域?qū)挾萂OVCOM,#43H;即一行顯示所占字節(jié)數(shù)LCALLPR1MOVDAT1,#10H;設(shè)置文本顯示區(qū)域?qū)挾萂OVDAT2,#00H;即一行顯示所占字節(jié)數(shù)MOVCOM,#41HLCALLPR1MOVCOM,#0A7H;光標形狀設(shè)置LCALLPR12MOVCOM,#80H;顯示方式設(shè)置,邏輯"或"合成,使用內(nèi)部字符LCALLPR12MOVCOM,#9CH;顯示開關(guān)設(shè)置,文本開,圖形開,光標閃爍及顯示均打開LCALLPR12RET;讀狀態(tài)字子程序R_ST:MOVDPTR,#C_ADD;設(shè)置指令通道地址MOVXA,DPTRRET;判斷STA1,STA0子程序,在指令和數(shù)據(jù)的讀寫之前這兩個標志位必須同時為1ST01:LCALLR_STJNBACC.0,ST01JNBACC.1,ST01RET;判斷STA2〔數(shù)據(jù)自動讀狀態(tài)子程序,在連續(xù)讀過程中每讀一次之前都要確認STA2=1ST2:LCALLR_STJNBACC.2,ST2RET;判斷STA3〔數(shù)據(jù)自動寫狀態(tài)子程序ST3:LCALLR_STJNBACC.3,ST3RET;寫指令和寫數(shù)據(jù)子程序PR1:LCALLST01;雙字節(jié)參數(shù)指令寫入入口MOVA,DAT1;取第一參數(shù)LCALLPR13;寫入?yún)?shù)PR11:LCALLST01;1字節(jié)參數(shù)指令寫入入口MOVA,DAT2;取第二參數(shù)LCALLPR13;寫入?yún)?shù)PR12:LCALLST01;無參數(shù)指令寫入入口MOVA,COM;取指令代碼LJMPPR14;寫入指令代碼PR13:MOVDPTR,#D_ADD;設(shè)置數(shù)據(jù)通道地址/數(shù)據(jù)寫入入口PR14:MOVXDPTR,A;寫入操作RET;讀數(shù)據(jù)子程序PR2:PUSHACCPUSHDPHPUSHDPLLCALLST01;判斷狀態(tài)位MOVDPTR,#D_ADD;設(shè)置數(shù)據(jù)通道地址MOVXA,DPTR;讀數(shù)據(jù)操作MOVDAT2,A;數(shù)據(jù)存入第二參數(shù)/數(shù)據(jù)的存放地址POPDPLPOPDPHPOPACCRETBIAO:MOVDPTR,#TABDDRMOVR2,ARLARLAADDA,R2JMPA+DPTRTABDDR:MOVDPTR,#DTAB0SJMPFANHUIMOVDPTR,#DTAB1SJMPFANHUIMOVDPTR,#DTAB2SJMPFANHUIMOVDPTR,#DTAB3SJMPFANHUIMOVDPTR,#DTAB4SJMPFANHUIMOVDPTR,#DTAB5SJMPFANHUIMOVDPTR,#DTAB6SJMPFANHUIMOVDPTR,#DTAB7SJMPFANHUIMOVDPTR,#DTAB8SJMPFANHUIMOVDPTR,#DTAB9SJMPFANHUIFANHUI:RETTAB0:DB008H,020H,006H,030H,004H,040H,03FH,0F8H,021H,008H,03FH,0F8H,021H,008H,021H,008HDB03FH,0F8H,021H,008H,001H,000H,0FFH,0FEH,001H,000H,001H,000H,001H,000H,001H,000H;danDB008H,040H,00CH,040H,018H,0A0H,011H,010H,032H,018H,064H,00EH,0A9H,014H,021H,010HDB021H,010H,021H,010H,021H,010H,022H,010H,022H,010H,024H,010H,024H,010H,028H,010H;jiaTAB01:DB001H,0F0H,03FH,000H,001H,000H,0FFH,0FEH,001H,000H,01FH,0F0H,011H,010H,01FH,0F0HDB011H,010H,01FH,0F0H,001H,000H,03FH,0F8H,001H,000H,001H,000H,0FFH,0FEH,000H,000H;zhongDB01FH,0F0H,010H,010H,01FH,0F0H,010H,010H,01FH,0F0H,000H,000H,0FFH,0FEH,011H,010HDB01FH,0F0H,011H,010H,01FH,0F0H,001H,000H,01FH,0F8H,001H,000H,0FFH,0FEH,000H,000H;liangTAB02:DB008H,040H,00CH,040H,018H,0A0H,011H,010H,032H,018H,064H,00EH,0A9H,014H,021H,010H;價DB021H,010H,021H,010H,021H,010H,022H,010H,022H,010H,024H,010H,024H,010H,028H,010HDB020H,0A0H,020H,090H,03CH,090H,020H,0FCH,043H,080H,078H,080H,0A0H,0BCH,023H,0C0HDB0FCH,044H,020H,048H,020H,030H,020H,060H,028H,092H,033H,00AH,020H,006H,000H,002H;錢tab:DB000H,000H,000H,000H,000H,000H,000H,03EH,044H,044H,038H,040H,03CH,042H,042H,03CH;gTAB3:DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,060H,060H,000H,000H;小數(shù)點TAB03:DB000H,000H,000H,018H,024H,042H,042H,042H,042H,042H,042H,042H,024H,018H,000H,000H;0TAB04:DB000H,000H,01FH,0F8H,000H,000H,000H,000H,000H,000H,07FH,0FEH,004H,040H,004H,040HDB004H,040H,004H,040H,008H,040H,008H,040H,010H,042H,020H,042H,040H,03EH,000H,000H;元TAB05:DB000H,000H,000H,000H,000H,000H,000H,0E7H,042H,024H,024H,028H,018H,010H,010H,0E0H;yDB000H,000H,001H,002H,002H,004H,004H,008H,008H,010H,010H,020H,020H,040H,040H,000H;/DB000H,000H,000H,000H,000H,000H,000H,03EH,044H,044H,038H,040H,03CH,042H,042H,03CH;gDTAB0:DB000H,000H,000H,018H,024H,042H,042H,042H,042H,042H,042H,042H,024H,018H,000H,000H;0DTAB1:DB000H,000H,000H,010H,070H,010H,010H,010H,010H,010H,010H,010H,010H,07CH,000H,000H;1DTAB2:DB000H,000H,000H,03CH,042H,042H,042H,004H,004H,008H,010H,020H,042H,07EH,000H,000H;2DTAB3:DB000H,000H,000H,03CH,042H,042H,004H,018H,004H,002H,002H,042H,044H,038H,000H,000H;3DTAB4:DB000H,000H,000H,004H,00CH,014H,024H,024H,044H,044H,07EH,004H,004H,01EH,000H,000H;4DTAB5:DB000H,000H,000H,07EH,040H,040H,040H,058H,064H,002H,002H,042H,044H,038H,000H,000H;5DTAB6:DB000H,000H,000H,01CH,024H,040H,040H,058H,064H,042H,042H,042H,024H,018H,000H,000H;6;DTAB7:DB000H,000H,000H,07EH,044H,044H,008H,008H,010H,010H,010H,010H,010H,010H,000H,000H;7DTAB8:DB000H,000H,000H,03CH,042H,042H,042H,024H,018H,024H,042H,042H,042H,03CH,000H,000H;8DTAB9:DB000H,000H,000H,018H,024H,042H,042H,042H,026H,01AH,002H,002H,024H,038H,000H,000H;9RET;///////////////////雙字節(jié)十六進制轉(zhuǎn)十進制子程序//////////////CONT2: CLRA MOV45H,A;入口R1R2 MOV46H,A;出口45H46

溫馨提示

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

最新文檔

評論

0/150

提交評論