單片機(jī)電子秤重量檢測與顯示設(shè)計(jì).doc_第1頁
單片機(jī)電子秤重量檢測與顯示設(shè)計(jì).doc_第2頁
單片機(jī)電子秤重量檢測與顯示設(shè)計(jì).doc_第3頁
單片機(jī)電子秤重量檢測與顯示設(shè)計(jì).doc_第4頁
單片機(jī)電子秤重量檢測與顯示設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章 微控制器應(yīng)用系統(tǒng)綜合設(shè)計(jì)的目的意義1.1 設(shè)計(jì)目的 通過課程設(shè)計(jì)進(jìn)一步鍛煉同學(xué)們在微型計(jì)算機(jī)應(yīng)用方面的實(shí)際工作能力。計(jì)算機(jī)科學(xué)在應(yīng)用上得到飛速發(fā)展,因此,學(xué)習(xí)這方面的知識必須緊密聯(lián)系實(shí)際:掌握這方面的知識更要強(qiáng)調(diào)解決實(shí)際問題的能力。同學(xué)們要著重學(xué)會面對一個(gè)實(shí)際問題,如何去自己收集資料,如何自己去學(xué)習(xí)新的知識,如何自己去制定解決問題的方案并通過實(shí)踐不斷地去分析和解決前進(jìn)道路上的一切問題,最終到達(dá)勝利的彼岸。本實(shí)驗(yàn)是設(shè)計(jì)單片機(jī)重量檢測與顯示電路,對5種以上不同單價(jià)的商品進(jìn)行鍵盤參數(shù)設(shè)置,稱量,計(jì)價(jià)和顯示。這個(gè)課題與我們現(xiàn)實(shí)生活聯(lián)系密切,具有很大的實(shí)際用途。做好本實(shí)驗(yàn)對我們今后學(xué)習(xí)和生活具有重要意義。1.2 課程在教學(xué)計(jì)劃中的地位和作用 微控制器應(yīng)用系統(tǒng)綜合設(shè)計(jì)課程是測控技術(shù)專業(yè)本科生必修的一門技術(shù)基礎(chǔ)課程。通過該課程的學(xué)習(xí)使學(xué)生對單片機(jī)有一個(gè)全面的了解、掌握常規(guī)芯片的使用方法、掌握簡單微型計(jì)算機(jī)應(yīng)用系統(tǒng)軟硬的設(shè)計(jì)方法。為了使我們微機(jī)應(yīng)用課程設(shè)計(jì)目標(biāo)更明確,要求更具體,學(xué)生收獲更大,我們特編寫課程設(shè)計(jì)任務(wù)書,學(xué)生可根據(jù)本人的愛好任選其中一個(gè)課題,要求獨(dú)立完成課題,寫出課程設(shè)計(jì)說明書,設(shè)計(jì)出電路原理圖,說明工作原理,畫出電路板圖,編寫程序及程序流程圖。希望同學(xué)認(rèn)真閱讀本任務(wù)書,認(rèn)真查閱資料與上機(jī)調(diào)試,圓滿完成課程設(shè)計(jì)。第二章 電子計(jì)價(jià)稱軟硬件設(shè)計(jì)任務(wù)2.1 設(shè)計(jì)內(nèi)容及要求 設(shè)計(jì)單片機(jī)稱重測量檢測,處理與顯示電路,對五種不同單價(jià)的商品進(jìn)行鍵盤參數(shù)設(shè)置,稱量,計(jì)價(jià)和顯示。由A/D0809把輸入的05V的電壓轉(zhuǎn)換,當(dāng)電壓為5V時(shí),對應(yīng)的重量為500克,進(jìn)行數(shù)值轉(zhuǎn)換,并在LCD液晶顯示器上顯示商品的克數(shù),程序設(shè)置了五種不同單價(jià)的商品,由鍵盤輸入04顯示不同商品的單價(jià),并顯示總的價(jià)錢,顯示三位數(shù)。2.2 課程設(shè)計(jì)的要求 1.利用現(xiàn)有的硬件電路,構(gòu)成單片機(jī)稱重檢測,處理與顯示系統(tǒng)。 2.編寫程序,實(shí)現(xiàn)稱量和計(jì)價(jià)顯示的功能。 3.設(shè)計(jì)出原理圖,說明工作原理,畫出程序流程圖。 第三章 總體設(shè)計(jì)方案3.1 設(shè)計(jì)思想實(shí)驗(yàn)需要設(shè)計(jì)一個(gè)系統(tǒng)可以對5種以上不同的商品進(jìn)行鍵盤參數(shù)設(shè)置,稱量,計(jì)價(jià)和顯示??梢园严到y(tǒng)分為以下幾個(gè)模塊,分別進(jìn)行編寫程序,調(diào)試。(1)8279可編程鍵盤,輸入04時(shí),通過比較鍵值,使程序跳到不同的子程序,在子程序中進(jìn)行A/D采樣,設(shè)定單價(jià),經(jīng)過數(shù)值轉(zhuǎn)換與乘法程序,將重量和價(jià)錢轉(zhuǎn)換成十進(jìn)制數(shù),調(diào)用顯示程序。執(zhí)行完返回判斷有無鍵按下。(2)A/D采樣部分,給A/D0通道輸入一個(gè)0-5V的電壓,將轉(zhuǎn)換成0FF輸出,對應(yīng)0500G,把A/D采樣值存入內(nèi)部寄存器51H中,經(jīng)過數(shù)值轉(zhuǎn)換成十進(jìn)制數(shù),調(diào)用LCD顯示程序顯示。當(dāng)質(zhì)量大于500克時(shí),轉(zhuǎn)到報(bào)警程序。(3)LCD液晶顯示,分三個(gè)區(qū)分別顯示單價(jià),重量,價(jià)錢,并且都分為三位顯示。(4)實(shí)驗(yàn)中還需要用到雙字節(jié)與單字節(jié)乘法及十六進(jìn)制轉(zhuǎn)十進(jìn)制報(bào)警等子程序。 P0.0-p0.78031 /RD /WR RESET373138IN0 D0D7 ADC0809 /RD /WR CLK05VT474LS02D0D7 8279 /RD SL2 /WR SL1RESET SL074LS138D0-D7C/D/CE LCD/RD/WR/RESET FS 圖3.1 硬件系統(tǒng)結(jié)構(gòu)圖第四章 硬件設(shè)計(jì)4.1 硬件設(shè)計(jì)概要 本次設(shè)計(jì)主要用到的芯片有8088、ADC0809模數(shù)轉(zhuǎn)換器 、可編程鍵盤顯示8279、LCD液晶顯示共同完成這個(gè)課題。A/D實(shí)現(xiàn)數(shù)據(jù)的采集和轉(zhuǎn)換,可編程鍵盤顯示8279實(shí)現(xiàn)鍵盤輸入編號顯示不同商品的單價(jià),LCD液晶顯示器顯示單價(jià),重量以及三位價(jià)錢。8088實(shí)現(xiàn)各個(gè)芯片之間的連接。4.2 所用到的芯片及其各自功能說明4.2.1 芯片列表 AT89C528位單片機(jī)ADC0809模數(shù)轉(zhuǎn)換器 可編程鍵盤顯示8279LCD液晶器4.2.2 AT89C528位單片機(jī) AT89C52是 一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央 處理器和Flash存儲單元,功能強(qiáng)大的AT89C52單片機(jī)可提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。 4.2.3 ADC0809的功能簡介 ADC0809是8位逐次逼近式單片A/D轉(zhuǎn)換芯片,可對8路05V的輸入模擬電壓信號分時(shí)進(jìn)行轉(zhuǎn)換。它內(nèi)部包括8路模擬開關(guān),以及地址鎖存譯碼器,有三條地址輸入線。該芯片還有便于和微機(jī)數(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 BN位D/A N 位寄存器 啟動(dòng)位置控制邏輯DONE 圖4.1 ADC0809芯片管腳功能如下: IN0IN7:8路模擬量輸入通道。 ADDAADDC:地址線用于選擇模擬量輸入通道。ALE:地址鎖存允許信號。 START:轉(zhuǎn)換啟動(dòng)信。D0D7:數(shù)據(jù)輸線。OE:輸出允許信號,低電平允許轉(zhuǎn)換結(jié)果輸出。EOC:A/D轉(zhuǎn)換結(jié)束信號,當(dāng)轉(zhuǎn)換結(jié)束時(shí),此端口輸出一個(gè)高電平。 CLOCK:時(shí)鐘信號輸入引腳,通常使用500KHz。 EOC:轉(zhuǎn)換結(jié)束信號,為0代表正在轉(zhuǎn)換,1代表轉(zhuǎn)換結(jié)束。 REF()、REF(+):基準(zhǔn)電壓。Vcc:5V電壓。 GND:接地。ADC0809的管腳圖如下: 圖4.24.2.4 可編程鍵盤顯示8279 8279是可編程的鍵盤,顯示接口芯片.它既具有按鍵處理功能,又具有自動(dòng)顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛.8279內(nèi)部有鍵盤FIFO(先進(jìn)先出堆棧)/傳感器,雙重功能的8*8=64B RAM,鍵盤控制部分可控制8*8=64個(gè)按鍵或8*8陣列方式的傳感器.該芯片能自動(dòng)消抖并具有雙鍵鎖定保護(hù)功能.(1) 數(shù)據(jù)線 DB0DB7是雙向三態(tài)數(shù)據(jù)總線,在接口電路中與系統(tǒng)數(shù)據(jù)總線相連,用以傳送CPU和8279之間的數(shù)據(jù)和命令. (2)地址線 /CS=0選中8279,當(dāng)A0=1時(shí),為命令字及狀態(tài)字地址;當(dāng)A0=0時(shí),為片內(nèi)數(shù)據(jù)地址,故8279芯片占用2個(gè)端口地址. (3)控制線 CLK:8279的時(shí)鐘輸入線. IRQ:中斷請求輸出線,高電平有效. /RD,/WR:讀,寫輸入控制線. SL0-SL3:掃描輸出線,用來作為掃描鍵盤和顯示的代碼輸出或直接輸出線. RL0-RL7:回復(fù)輸入線,它們是鍵盤或傳感器矩陣的信號輸入線. SHIFT:來自外部鍵盤或傳感器矩陣的輸入信號,它是8279鍵盤數(shù)據(jù)的次高位即D6位的狀態(tài),該位狀態(tài)控制鍵盤上/下檔功能.在傳感器方式和選通方式中,該引腳無用. CNTL/S:控制/選通輸入線,高電平有效.鍵盤方式時(shí),鍵盤數(shù)據(jù)最高位(D7)的信號輸入到該引腳,以擴(kuò)充鍵功能;選通方式時(shí),當(dāng)該引腳信號上升沿到時(shí),把RL0-RL7的數(shù)據(jù)存入FIFO RAM中. OUTA0-OUTA3:通常作為顯示信號的高4位輸出線. OUTB0-OUTB3:通常作為顯示信號的低4位輸出線. /BD:顯示熄滅輸出線,低電平有效.當(dāng)/BD=0時(shí)將顯示全熄滅.圖4.3 8279引腳及引線功能425 LCD液晶器 T6963C液晶顯示控制器多用于中小規(guī)模的液晶顯示器件,常被裝配在圖形液晶顯示模塊上,以內(nèi)藏控制器型圖形液晶顯示模塊的形式出現(xiàn)。一、T6963C的特點(diǎn)(1) T6963C是點(diǎn)陣式液晶圖形顯示控制器,它能直接與80系列的8位微處理器接口;(2) T6963C的字符字體可由硬件或軟件設(shè)置,其字體有4種:58、68、78、88;(3) T6963C的占空比可從1/16到1/128;(4) T6963C可以圖形方式、文本方式及圖形和文本合成方式進(jìn)行顯示,以及文本方式下的特征顯示,還可以實(shí)現(xiàn)圖形拷貝操作等等;(5) T6963C具有內(nèi)部字符發(fā)生器CGROM,共有128個(gè)字符,T6963C可管理64K顯示緩沖區(qū)及字符發(fā)生器CGRAM。并允許MPU隨時(shí)訪問顯示緩沖區(qū),甚至可以進(jìn)行位操作。二、T6963C的引腳說明及其功能T6963C的QFP封裝共有67個(gè)引腳(見圖三),各引腳說明如下:(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ù)位信號,它將行、列計(jì)數(shù)器和顯示寄存器清零,關(guān)顯示;/HALT具有/RESET的基本功能,還將中止內(nèi)部時(shí)鐘振蕩器的工作;以上引腳為T6963C與MPU接口的引腳。 圖4.4 T6963C管腳外形圖(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ù)傳輸個(gè)數(shù)的最大值,其組合邏輯關(guān)系如下: 表4.1MD31100MD21010每行字符數(shù)32406480當(dāng)DUAL = 0時(shí),以上設(shè)置中的字符行和總行數(shù)增至原來的2倍,其它都不變,這種情況下的液晶屏結(jié)構(gòu)為雙屏結(jié)構(gòu);(9) FS1,F(xiàn)S0:顯示字符的字體選擇 表4.2FS11100FS01010字體58687888(10)XI,XO:振蕩時(shí)鐘引腳;(11) ad0-ad15:輸出信號,顯示緩沖區(qū)16位地址總線;(12) d0-d7:三態(tài),顯示緩沖區(qū)8位數(shù)據(jù)總線;(13)r/w:輸出,顯示緩沖區(qū)讀、寫控制信號;(14)/ce:輸出,顯示緩沖區(qū)片選信號,低電平有效;(15)/ce0,/ce1:輸出,DUAL = 1時(shí)的存儲器片選信號;(16) T1,T2,CH,CH2:用來檢測T6963C工作使用情況,T1,T2作為測試信號輸入端,CH,CH2作為輸出端;(17) HOD,HSCP,ED,LP,CDATA,F(xiàn)R為T6963C驅(qū)動(dòng)部信號 連線AD0809接線:1.把A/D區(qū)0809的0通道IN0用插針接至W1的中心抽頭V01插孔(0-5V)。 2.0809的CLK插孔與分頻輸出端T4相連。3.把VREF端接到為+5V。 4.連好74LS02 5.將A/D區(qū)D0-D7用排線與BUS1區(qū)XD0-XD7相連。擴(kuò)展鍵盤接線: 1.將DVCC實(shí)驗(yàn)系統(tǒng)上J8插座與鍵盤顯示板用扁平電纜相連。2.將KEY區(qū)D0D7用8芯排線連到BUS2區(qū)XD0XD7上。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 連主機(jī) XA0,液晶板/CS連主機(jī)Y02.液晶板 D0-D7 連主機(jī) XD0-XD73.液晶板 / RESET 連主機(jī) /RST,液晶板/WR 連主機(jī)XWR,液晶板/RD連主機(jī) XRD 4.液晶板FS 接地。第五章 軟件設(shè)計(jì)5.1 流程圖及其說明 開始8279初始化顯示器顯示P有鍵按下嗎?計(jì)算鍵值散轉(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)的十六進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)調(diào)LCD顯示子程序乘單價(jià),調(diào)乘法子程序調(diào)LCD顯示子程序返回 圖5.2 乘法及數(shù)值轉(zhuǎn)換子程序設(shè)置顯示指針地址,寫控制字設(shè)置自動(dòng)寫方式,分區(qū),字體,字?jǐn)?shù)一行顯示完,改變指針地址指向下一行全部顯示完,等待下一次設(shè)置調(diào)清屏子程序開 始 圖 5.3 LCD液晶顯示子程序5.2源程序及其說明 ORG 0000HDAT1 EQU 30H ;第一參數(shù)存放地址DAT2 EQU 31H ;第二參數(shù)存放地址/數(shù)據(jù)存放地址COM EQU 32H ;指令代碼存放地址C_ADD EQU 8001H ;指令通道地址(片選Y1端口地址8000H開始)D_ADD EQU 8000H ;數(shù)據(jù)通道地址S_ADD_H EQU 33H ;LCD顯示指針地址高位S_ADD_L EQU 34H ;LCD顯示指針地址低位S_ADD_HF EQU 35H ;LCD顯示指針地址高位備份S_ADD_LF EQU 36H ;LCD顯示指針地址低位備份SEL_FONT EQU 37H ;LCD字體選者,16X16則為#16H,8X16則為#8HWORD_NUM EQU 38H ;已經(jīng)顯示的字?jǐn)?shù)ATTR EQU 39H ;字符屬性碼(低四位有效)CODED EQU 40H ;字符代碼CGR_NUM EQU 41H ;CGRAM顯示程序顯示的字?jǐn)?shù)HA7S: MOV SP,#60H MOV DPTR,#0B001H MOV A,#00H MOVX DPTR,A MOV A,#32H MOVX DPTR,A MOV A,#0DFH MOVX DPTR,AHA7S1 MOVX A,DPTR JB ACC.7,HA7S1 MOV DPTR,#0B000H MOV A,#0C8H MOVX DPTR,A INC DPTR MOV A,#80H MOVX DPTR,AHA7S2: MOV 42H,#80H MOV 43H,#40HHA7S3: MOV DPTR,#0B001H MOVX A,DPTR ANL A,#07H CJNE A,#00H,HA7S4 AJMP HA7S3HA7S4: MOV DPTR,#0B000HMOVX A,DPTR MOV B,A MOV R1,#00H MOV DPTR,#KEYTABHA7S5:MOV A,#00H MOVC A,A+DPTR CJNE A,B,HA7S6 AJMP HA7SAHA7S6:INC DPTR INC R1 MOV A,R1 JNB ACC.2,HA7S5 AJMP HA7S2HA7SA: CJNE A,#0C1H,L1 MOV A,42H MOV DPTR,#0B001H MOVX DPTR,A MOV A,R1 MOV R0,43H MOV R0,A INC 43H MOV DPTR,#CDATA MOVC A,A+DPTR MOV DPTR,#0B000H MOVX DPTR,A LJMP LOOP0 L1: CJNE A,#0C8H,L2 MOV A,42H MOV DPTR,#0B001H MOVX DPTR,A MOV A,R1 MOV R0,43H MOV R0,A INC 43H MOV DPTR,#CDATA MOVC A,A+DPTR MOV DPTR,#0B000H MOVX DPTR,A LJMP LOOP1L2: CJNE A,#0C9H,L3 MOV A,42H MOV DPTR,#0B001H MOVX DPTR,A MOV A,R1 MOV R0,43H MOV R0,A INC 43H MOV DPTR,#CDATA MOVC A,A+DPTR MOV DPTR,#0B000H MOVX DPTR,A LJMP LOOP2L3: CJNE A,#0D0H,L4 MOV A,42H MOV DPTR,#0B001H MOVX DPTR,A MOV A,R1 MOV R0,43H MOV R0,A INC 43H MOV DPTR,#CDATA MOVC A,A+DPTR MOV DPTR,#0B000H MOVX DPTR,A LJMP LOOP3L4: CJNE A,#0D8H,L5 MOV A,42H MOV DPTR,#0B001H MOVX DPTR,A MOV A,R1 MOV R0,43H MOV R0,A INC 43H MOV DPTR,#CDATA MOVC A,A+DPTR MOV DPTR,#0B000H MOVX DPTR,A LJMP LOOP4L5: LJMP HA7SKEYTAB: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H DB 0DAH,0C3H,0CBH,0D2H,0D3H,0DBHCDATA:DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H DB 6CH,1AH,68H,0E8HLOOP0:MOV A,#00H MOV DPTR,#9000H ;A/D通道Y1 MOVX DPTR,A MOV R7,#0FFHH55S: DJNZ R7,H55S MOVX A,DPTR MOV 51H,A LCALL COMP LCALL DMUL LCALL CONT2 LCALL MAIN MOV R5,#0CHPP0: MOV R4,#12H LCALL DDMUL LCALL CONT0 LJMP MAIN ;顯示 LJMP XIAN1LOOP1:MOV A,#00H MOV DPTR,#9000H ;A/D通道Y1 MOVX DPTR,A MOV R7,#0FFHH55S1: DJNZ R7,H55S1 MOVX A,DPTR MOV 51H,A LCALL COMP LCALL DMUL LCALL CONT2 LCALL MAIN MOV R5,#9FHPP1: MOV R4,#0FH LCALL DDMUL LCALL CONT0 LJMP MAIN LJMP XIAN1LOOP2: MOV A,#00H MOV DPTR,#9000H ;A/D通道Y1 MOVX DPTR,A MOV R7,#0FFHH55S2: DJNZ R7,H55S2 MOVX A,DPTR MOV 51H,A LCALL COMP LCALL DMUL LCALL CONT2 LCALL MAIN MOV R5,#4AHPP2: MOV R4,#0CH LCALL DDMUL LCALL CONT0 LJMP MAIN LJMP XIAN1LOOP3: MOV A,#00H MOV DPTR,#9000H ;A/D通道Y1 MOVX DPTR,A MOV R7,#0FFHH55S3: DJNZ R7,H55S3 MOVX A,DPTR MOV 51H,A LCALL COMP LCALL DMUL LCALL CONT2 LCALL MAIN MOV R5,#0BHPP3: MOV R4,#08H LCALL DDMUL LCALL CONT0 LJMP MAIN LJMP XIAN1LOOP4: MOV A,#00H MOV DPTR,#9000H ;A/D通道Y1 MOVX DPTR,A MOV R7,#0FFHH55S4: DJNZ R7,H55S4 MOVX A,DPTR MOV 51H,A LCALL COMP LCALL DMUL LCALL CONT2 LCALL MAIN MOV R5,#99HPP4: MOV R4,#05H LCALL DDMUL LCALL CONT0 LJMP MAIN LJMP XIAN1XIAN1: MOV R6,#80HDISPC1: MOV A,r6 MOV DPTR,#0B001H MOVX DPTR,A MOV A,R5 MOV DPTR,#0B000H MOVX DPTR,A MOV R2,#20H LCALL DELAY4 MOV A,#0FFH MOVX DPTR,A ;關(guān)顯示 INC R6 LJMP ha7s2dELAY4:PUSH 02HDELAY5: PUSH 02HDELAY6: PUSH 02HDELAY7: DJNZ R2,DELAY7 POP 02H DJNZ R2,DELAY6 POP 02H DJNZ R2,DELAY5 POP 02H DJNZ R2,DELAY4 RET ;/128X64液晶顯示程序/MAIN: MOV SP,#60H LCALL INT_LCD ;液晶初始化 MOV WORD_NUM,#00H ;實(shí)現(xiàn)字?jǐn)?shù)清零 LCALL CLEAR ;清屏;-顯示方式一;在第一區(qū)顯示,128X64液晶顯示模塊可人為分為四個(gè)區(qū),每個(gè)區(qū)大小為128X16;區(qū)一顯示完畢;-顯示方式二;在區(qū)二顯示,以單個(gè)字循環(huán)方式顯示“測控技術(shù)實(shí)驗(yàn)室”,16X16字體,一般用于漢字顯示 MOV S_ADD_H,#01H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#01H ;低位 MOV SEL_FONT,#16H ;采用16X16字體 MOV DPTR,#TAB0 ;danjia MOV R7,#02H ;顯示字的個(gè)數(shù)ER: LCALL SHOW_A_WORD DJNZ R7,ER MOV S_ADD_H,#01H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#06H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV DPTR,#TAB03 ;顯示0SSS2: LCALL SHOW_A_WORD MOV S_ADD_H,#01H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#07H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV DPTR,#TAB3SSS1: LCALL SHOW_A_WORD ;顯示小數(shù)點(diǎn) MOV S_ADD_H,#01H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#08H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV A,4FH ;顯示的字從4F中讀取 ANL A,#0F0H ;取4F高位 SWAP A ACALL BIAOER2: LCALL SHOW_A_WORD ;顯示千位 MOV S_ADD_H,#01H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#09H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV A,4FH ;顯示的字從4F中讀取 ANL A,#0FH ;取4F低位 ACALL BIAOER1: LCALL SHOW_A_WORD MOV S_ADD_H,#01H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#0AH ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV DPTR,#TAB05 ;Y/G MOV R7,#03H ;顯示字的個(gè)數(shù)ER3: LCALL SHOW_A_WORD DJNZ R7,ER3;-顯示方式三;在區(qū)三顯示,以單個(gè)字循環(huán)方式顯示“GOOD”,8X16字體,一般用于數(shù)字和字母的顯示 MOV S_ADD_H,#02H ;設(shè)置一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#01H ;低位 MOV SEL_FONT,#16H ;采用8X16字體 MOV DPTR,#TAB01 ;zhongliang MOV R7,#02H ;顯示字的個(gè)數(shù)SAN: LCALL SHOW_A_WORD DJNZ R7,SAN MOV S_ADD_H,#02H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#0BH ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV DPTR,#TAB ;顯示字的個(gè)數(shù) : gSAN1: LCALL SHOW_A_WORD MOV S_ADD_H,#02H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#06H ;低位 MOV SEL_FONT,#08HMOV A,46H ;顯示的字從46中讀取 ANL A,#0FH ;取46低位 ;SWAP A ACALL BIAOSAN2: LCALL SHOW_A_WORD ;顯示 MOV S_ADD_H,#02H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#07H ;低位 MOV SEL_FONT,#08H ;采用8X16字體MOV A,47 ;顯示的字從47中讀取 ANL A,#0F0H ;取47低位 SWAP A ACALL BIAOSAN3: LCALL SHOW_A_WORD ;顯示 MOV S_ADD_H,#02H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#08H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV A,47H ;顯示的字從47中讀取 ANL A,#0FH ;取47高位 ACALL BIAOSAN5: LCALL SHOW_A_WORD ;顯示;-顯示方式四 MOV S_ADD_H,#03H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#01H ;低位 MOV SEL_FONT,#16H ;采用16X16字體 MOV DPTR,#TAB02 ;jiaqian MOV R7,#02H ;顯示字的個(gè)數(shù)ER4: LCALL SHOW_A_WORD DJNZ R7,ER4MOV S_ADD_H,#03H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#06H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV A,4CH ;顯示的字從4C中讀取 ANL A,#0F0H ;取4C高位 SWAP A ACALL BIAOSAN7: LCALL SHOW_A_WORD ;顯示千位MOV S_ADD_H,#03H MOV S_ADD_L,#07H MOV SEL_FONT,#08HMOV A,4CH ;顯示的字從4C中讀取 ANL A,#0FH ;取4C低位 ACALL BIAOSAN8: LCALL SHOW_A_WORD MOV S_ADD_H,#03H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#08H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV DPTR,#TAB3SSS: LCALL SHOW_A_WORD 顯示小數(shù)點(diǎn) MOV S_ADD_H,#03H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#09H ;低位 MOV SEL_FONT,#08H ;采用8X16字體 MOV A,4DH ;顯示的字從4D中讀取 ANL A,#0F0H ;取4D高位 SWAP A ACALL BIAOSAN6: LCALL SHOW_A_WORD MOV S_ADD_H,#03H ;設(shè)置第一個(gè)字的顯示起始地址高位 MOV S_ADD_L,#0AH ;低位 MOV SEL_FONT,#16H ;采用16X16字體 MOV DPTR,#TAB04 ;元 MOV R7,#01H ;顯示字的個(gè)數(shù)ER9: LCALL SHOW_A_WORD DJNZ R7,ER9LJMP HA7S;-延時(shí)子程序DELAY:MOV R7,#01HDY1:MOV R2,#0FHDY11:DJNZ R2,DY11 DJNZ R7,DY1 RET;-清屏子程序CLEAR: MOV DAT1,#00H ;GRAPHIC HOME ADDRESS MOV DAT2,#00H MOV COM,#24H LCALL PR1 ;設(shè)置起始地址指針 MOV COM,#0B0H ;設(shè)置自動(dòng)寫方式 LCALL PR12 MOV R0,#00H ;分四個(gè)區(qū)清屏,每個(gè)區(qū)256個(gè)字節(jié) MOV R1,#04H ;有四個(gè)區(qū)CLEARG: CLR A MOV DPTR,#8000H MOVX DPTR,A DJNZ R0,CLEARG ;清256個(gè)字節(jié) DJNZ R1,CLEARG MOV COM,#0B2H ;設(shè)置自動(dòng)寫結(jié)束指令 LCALL PR12 MOV DAT1,#00H ;TEXT HOME ADDRESS MOV DAT2,#10H MOV COM,#24H LCALL PR1 MOV COM,#0B0H ;設(shè)置自動(dòng)寫方式 LCALL PR12 MOV R0,#80H ;16COLUMNS*8LINES=128=80HCLEART: MOV A,#00H MOV DPTR,#8000H MOVX DPTR,A DJNZ R0,CLEART ;MOV COM,#0B2H ;設(shè)置自動(dòng)寫結(jié)束指令 LCALL PR12 RET;-顯示一個(gè)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)顯示的字?jǐn)?shù)SHOW_A_WORD: ;16x16或8x16顯示程序 SETB 0D4H PUSH DPH ;開始循環(huán)的第一個(gè)字符

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論