基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

XXXXX大學(xué)本科畢業(yè)設(shè)計(jì)基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)學(xué)生姓名所在系專(zhuān)業(yè)名稱班級(jí)學(xué)號(hào)指導(dǎo)教師基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)學(xué)生:指導(dǎo)教師:內(nèi)容摘要:隨著全球信息化的開(kāi)展,人們的生活水平也不斷在提高,人們所需要的商品也越來(lái)越多,各大規(guī)模的超市也隨之涌現(xiàn),超市里的商品品種和數(shù)量數(shù)不勝數(shù),以致于不可能完全依靠人來(lái)管理。本設(shè)計(jì)正是基于此,解決超市人工收款任務(wù)不方便的問(wèn)題.本設(shè)計(jì)是基于Atmel公司AT89C51的簡(jiǎn)易超市收款機(jī)控制的設(shè)計(jì)。通過(guò)4X4矩陣鍵盤(pán),液晶顯示器〔字符型1602〕,串行鐵電存貯器〔24C64〕,串行通訊口和單片機(jī)〔AT89C51〕的配合,以程控的方式完成收款的目的,系統(tǒng)采用Atmel公司1989年生產(chǎn)的AT89C51單片機(jī)為核心控制器,完成簡(jiǎn)易超市收款機(jī)的根本功能。通過(guò)矩陣鍵盤(pán)輸入商品號(hào),系統(tǒng)經(jīng)過(guò)一系列的分析處理,輸出商品號(hào),數(shù)量,單價(jià)和總價(jià)等根本信息.關(guān)鍵詞:矩陣鍵盤(pán)字符型液晶顯示鐵電存貯I2CSimplecashregisterbasedonsingle-designAbstract:Withthedevelopmentofglobalinformation,people'slivingstandardshavealsocontinuedtoimprove,peopleneedmoreandmoremerchandise,thelarge-scalesupermarketsalsotheemergenceofthesupermarketvarietyandquantityofmerchandisejusttonameafewthatdonotmaycompletelyrelyontomanagepeople.Thedesignisbasedonthis,thesettlementofreceivablesdesignartificialsupermarket.throughthe4X4matrixkeyboard,liquidcrystaldisplay(character1602),serialferroelectricmemory(24C64),usingAtmelCorporation1989productionAT89C51single-chipmicrocomputerasthecorecontroller,completethesummaryofthebasicfunctionsofsupermarketcashregisters,throughthematrixkeyboardinputNo.merchandise,thesystemthroughaseriesofanalyticalprocessing,theoutputofgoodsnumber,quantity,unitprice,totalpriceofsuchbasicinformation.Keywords:MatrixkeyboardcharacterLCDferroelectricmemoryI2目錄TOC\o"1-2"\u一、引言1〔一〕本設(shè)計(jì)的背景 1〔二〕本設(shè)計(jì)的目的和意義 1二、總體方案設(shè)計(jì) 2〔一〕方案設(shè)計(jì) 2〔二〕方案論證與選擇 2三、系統(tǒng)硬件電路設(shè)計(jì) 4〔一〕單片機(jī)及其外圍電路設(shè)計(jì) 4〔二〕鍵盤(pán)電路的設(shè)計(jì) 5〔三〕、顯示電路的設(shè)計(jì) 6〔四〕存儲(chǔ)器電路的設(shè)計(jì) 10〔五〕串行通信接口電路的設(shè)計(jì) 12四、系統(tǒng)軟件程序設(shè)計(jì) 14〔一〕單片機(jī)內(nèi)部數(shù)據(jù)處理程序 14〔二〕鍵盤(pán)處理程序 15〔三〕LCD液晶顯示程序 16〔四〕串口通信程序 17〔五〕存儲(chǔ)器程序 18五、設(shè)計(jì)總結(jié) 19六、致謝19附錄 20附錄一硬件原理圖 20附錄二硬件PCB圖21附錄三原程序代碼 22參考文獻(xiàn) 30一、引言〔一〕本設(shè)計(jì)的背景當(dāng)前,單片機(jī)被廣泛地應(yīng)用于人們生活的各個(gè)領(lǐng)域。單片機(jī)實(shí)際就是一臺(tái)微型計(jì)算機(jī),雖然功能沒(méi)有普通的計(jì)算機(jī)那么強(qiáng)大,可是它的體積很小,在很多場(chǎng)合下普通計(jì)算機(jī)不能完成的工作,單片機(jī)卻能出色的完成。單片機(jī)是一種集成電路芯片,采用超大規(guī)模技術(shù)把具有數(shù)字處理能力〔如算術(shù)運(yùn)算,邏輯運(yùn)算,數(shù)據(jù)傳送,中斷處理〕的微處理器〔CPU〕,隨機(jī)存取數(shù)據(jù)存儲(chǔ)器〔RAM〕,只讀程序存儲(chǔ)器〔ROM〕,輸入輸出電路〔I/O口〕,可能還包括定時(shí)計(jì)數(shù)器,串行通信口〔SCI〕,顯示驅(qū)動(dòng)電路〔LCD或LED驅(qū)動(dòng)電路〕,脈寬調(diào)制電路〔PWM〕,模擬多路轉(zhuǎn)換器及A/D轉(zhuǎn)換器等電路集成到一塊單塊芯片上,構(gòu)成一個(gè)最小然而完善的計(jì)算機(jī)系統(tǒng)。由此來(lái)看,單片機(jī)有著微處理器所不具備的功能,它可單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。單片機(jī)在外觀上與常見(jiàn)的集成電路塊一樣,體積很小,多為黑色長(zhǎng)條狀,條狀兩側(cè)各有一排金屬引腳,可與外電路連接。只需在電路中添加少許元器件,通過(guò)編寫(xiě)程序就可以實(shí)現(xiàn)多種功能的單片機(jī)自動(dòng)控制。比方說(shuō),單片機(jī)接上鍵盤(pán)可以進(jìn)行信號(hào)輸入;接上顯示器可以實(shí)現(xiàn)數(shù)據(jù)顯示;接上喇叭可以實(shí)現(xiàn)聲音輸出等等。由于單片機(jī)體積小巧、功能強(qiáng)大、應(yīng)用靈活、價(jià)格廉價(jià),所以應(yīng)用十分廣泛。隨著人們的生活水平的不斷提高,對(duì)各種圍繞人們生活圈的設(shè)備要求也是越來(lái)越高,同時(shí)隨著工業(yè)化大開(kāi)展,一切家用設(shè)備、工業(yè)設(shè)備和商業(yè)設(shè)備都要求智能化,傻瓜化,比方說(shuō)數(shù)碼相機(jī),全自動(dòng)洗衣機(jī),電冰箱等;工業(yè)自動(dòng)化設(shè)備,那就是太多了,數(shù)控機(jī)床,智能化生產(chǎn)線等等;商業(yè)設(shè)備也是一樣,自動(dòng)取款機(jī),自動(dòng)條碼檢測(cè)系統(tǒng),自動(dòng)收款機(jī)等等。伴隨著人們生活水平的提高,人們所需要的必須品也越來(lái)越多,各種規(guī)模的超市也數(shù)不勝數(shù),超市里的商品品種和數(shù)量也太多,以致于不可能完全用人來(lái)管理。本設(shè)計(jì)正是基于此,研究超市現(xiàn)在流行的簡(jiǎn)易收款機(jī)?!捕潮驹O(shè)計(jì)的目的和意義超市收款機(jī)的主要任務(wù)就是,將各種商品的根本信息存貯起來(lái),當(dāng)識(shí)別到外部輸入的商品后,自動(dòng)調(diào)出相關(guān)信息,比方說(shuō),商品的名稱,商品貨號(hào),商品單價(jià),商品數(shù)量。通過(guò)用單價(jià)來(lái)乘上相應(yīng)的商品的數(shù)量,計(jì)算出商品總價(jià),來(lái)到達(dá)收款的目的,完成整個(gè)收款的過(guò)程。根據(jù)上述,本設(shè)計(jì)的目的就是要完成超市收款機(jī)簡(jiǎn)單的根本信息存貯,鍵盤(pán)輸入數(shù)據(jù),顯示器顯示相關(guān)內(nèi)容,數(shù)據(jù)能夠和PC機(jī)通信的功能。二、總體方案設(shè)計(jì)〔一〕方案設(shè)計(jì)總體電路設(shè)計(jì)應(yīng)該完成五個(gè)局部電路:1、單片機(jī)及外圍電路,2、鍵盤(pán)電路,3、顯示電路,4、存儲(chǔ)器電路,5、串行通信接口電路。單片機(jī)采用較流行的八位機(jī)AT89C51,根據(jù)內(nèi)部的特性,完全能滿足功能要求;因?yàn)樾枰斎氲臄?shù)字量比擬多,所以鍵盤(pán)采用4X4矩陣鍵盤(pán);顯示器使用液晶顯示器;存儲(chǔ)器采用鐵電存儲(chǔ)器,操作方便,可靠,掉電可保存數(shù)據(jù)。圖1為電路組成框圖。

機(jī)AT89C51矩陣

鍵盤(pán)數(shù)據(jù)

存儲(chǔ)器LCD

顯示器串行

通信口圖1系統(tǒng)組成框圖〔二〕方案論證與選擇1.鍵盤(pán)模塊的選擇鍵盤(pán)的作用有兩個(gè),一是輸入數(shù)據(jù),二是功能操作。基于此,有很多種方案實(shí)現(xiàn)這一操作。方案一、采用直接式獨(dú)立按鍵操作。這種方案的操作過(guò)程,就是直接從單片機(jī)I/O口引出通上拉電阻,接一按鍵,當(dāng)按鍵按下時(shí),單片機(jī)該端口為“0〞,單片機(jī)通過(guò)對(duì)此端口邏輯“0〞判斷,來(lái)完成按鍵的識(shí)別,到達(dá)數(shù)據(jù)的輸入,功能的實(shí)現(xiàn)。從這一過(guò)程可知,完成任務(wù)需要單片機(jī)很多I/O口,花費(fèi)了很多CPU資源,此種方案不可取。方案二、矩陣鍵盤(pán)。矩陣鍵盤(pán),這里采用4X4矩陣鍵盤(pán),一共有16組情況,實(shí)現(xiàn)的方法也是利用單片機(jī)的I/O口,通過(guò)上拉電阻相接,4X4正好用到了單片機(jī)一個(gè)端口。采用這種方案既節(jié)約資源又方便,而且能夠滿足本設(shè)計(jì)的需要。綜上所述,在本設(shè)計(jì)中采用方案二。2.顯示電路模塊的選擇顯示電路的主要任務(wù)是反響出操作結(jié)果和相關(guān)商口的信息。根據(jù)此,有四種方案可完這一工作。方案一,可用七段共陽(yáng)極LED數(shù)碼顯示,將商口名稱、單價(jià)等顯示出來(lái),可以完成,將多個(gè)LED數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位I/O口控制,而各位的共陽(yáng)極或共陰極分別由相應(yīng)的I/O口線控制,實(shí)現(xiàn)各位的分時(shí)選通,這就是動(dòng)態(tài)掃描顯示方式,采用動(dòng)太掃描顯示方式,每一位LED的選通時(shí)間為1-2MS。這個(gè)時(shí)間不能太短,因?yàn)榘l(fā)光二極管從導(dǎo)通到發(fā)光有一定的延時(shí),導(dǎo)通時(shí)間太短,發(fā)光太弱人眼無(wú)法看清,這個(gè)時(shí)間也不能太長(zhǎng),否占用CPU時(shí)間太長(zhǎng),由于人眼有視覺(jué)暫留現(xiàn)象,只要每一位顯示時(shí)間足夠短,就能夠造成多位同時(shí)顯示的假象,每一位顯示的時(shí)間間隔不能超過(guò)20ms,假設(shè)時(shí)間間隔太長(zhǎng),就會(huì)造成閃爍現(xiàn)象,采用動(dòng)態(tài)掃描方式,可降低功率消耗。此系統(tǒng),所需數(shù)碼管較多,操作麻煩,并且不直觀,當(dāng)然其發(fā)光數(shù)碼管價(jià)格較便易。在本系統(tǒng)中,此方案不可取。方案二,用LED數(shù)碼管矩陣方式顯示,這種方案的顯示的原理和方案一都差不多,用16X16點(diǎn)陣排列,將字型分成上下兩個(gè)半部,上半部16列,每列用一個(gè)字節(jié)表示〔8個(gè)點(diǎn)〕,下半部也是16列,每列也用一個(gè)字節(jié)表示〔8個(gè)點(diǎn)〕,因此每個(gè)字需要32個(gè)字節(jié)來(lái)表示。當(dāng)然這樣主就可以顯示漢字,但時(shí)和單片機(jī)相連較為復(fù)雜,本系統(tǒng)要許多塊這樣的16X16點(diǎn)陣,同時(shí)這種LED點(diǎn)陣方式顯示,造價(jià)較高,作為本電路,也是不可取的。方案三,采用帶中文字庫(kù)的LCD液晶顯示器來(lái)完成顯示,128X64這種顯示器作為本系統(tǒng)設(shè)計(jì),當(dāng)然最好。便考慮到系統(tǒng)本錢(qián)的問(wèn)題,帶中文字庫(kù)的LCD價(jià)格一般都比擬貴,采用這種方案,勢(shì)必會(huì)增加設(shè)計(jì)本錢(qián)。本文也不采用這種方案。方案四,采用兩行字符型顯示器,這種顯示器,用英文顯示相關(guān)信息,操作方便,價(jià)格又較適中,二十多元錢(qián)一塊,作為本設(shè)計(jì),是最適宜不過(guò)。因此,結(jié)合上述方案,在本設(shè)計(jì)中,采用兩行字符型1602顯示器。3.存儲(chǔ)器電路模塊的選擇存儲(chǔ)器的作用在本設(shè)計(jì)中主要起到根本商品信息的存儲(chǔ),和最后商品的出入信息的存貯。完成這一項(xiàng)工作方案也是多種多樣的。方案一,用紫外線存儲(chǔ)器ROM,這個(gè)存儲(chǔ)器操作不方便,同時(shí),本設(shè)計(jì)的數(shù)據(jù)是不斷變化的,因此這種方案不可取。方案二,可以用海量存貯器來(lái)完,當(dāng)然這個(gè)完全是可行的,掉電后信息也不會(huì)掉失。它具有低功耗、大容量、擦寫(xiě)速度快、可整片或分扇區(qū)在系統(tǒng)編程、擦除等特點(diǎn)。并且可由內(nèi)部嵌入的算法完成對(duì)芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。作為一種非易失性存儲(chǔ)器,它在系統(tǒng)中通常用來(lái)存放程序代碼。這種存貯器當(dāng)然很好,但是,價(jià)格較貴,同時(shí)和本設(shè)計(jì)的單片機(jī)也不容易實(shí)現(xiàn)接口,因?yàn)閿?shù)據(jù)線和地址較復(fù)雜。方案三,采用串行鐵電存貯器,可在系統(tǒng)中讀寫(xiě),掉電可保存數(shù)據(jù),用I2C根據(jù)上述三種方案,兼顧價(jià)格、容量和可操作性,本設(shè)計(jì)選用第三種方案,也就是用串E2ROM。4.串行通信接口電路的選擇串行通信接口標(biāo)準(zhǔn)經(jīng)過(guò)使用和開(kāi)展,目前已經(jīng)有幾種。但都是在RS-232標(biāo)準(zhǔn)的根底上經(jīng)過(guò)改良而形成的。所以,以RS-232C為主來(lái)討論。RS-323C標(biāo)準(zhǔn)是美國(guó)EIA(電子工業(yè)聯(lián)合會(huì)〕與BELL等公司一起開(kāi)發(fā)的1969年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在0~20000b/s范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問(wèn)題,如信號(hào)線功能、電器特性都作了明確規(guī)定。由于通信設(shè)備廠商都生產(chǎn)與RS-232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用。這里使用RS-232C。三、系統(tǒng)硬件電路設(shè)計(jì)本系統(tǒng)由五局部組成:?jiǎn)纹瑱C(jī)、鍵盤(pán)處理電路、顯示器電路、存儲(chǔ)器電路、串行通信口等。下面將詳細(xì)討論這幾局部電路的設(shè)計(jì)過(guò)程?!惨弧硢纹瑱C(jī)及其外圍電路設(shè)計(jì)微處理電路采用AEMEL公司的單片機(jī),價(jià)格廉價(jià)、功能齊全、可靠性高、使用普遍。AT89C51單片機(jī)是ATMEL公司8位單片機(jī)系列產(chǎn)品之一,是一種40引腳雙列直插式芯片。AT89C51有4KFLASH;128字節(jié)RAM;32條I/O引線;2個(gè)16位定時(shí)器/計(jì)數(shù)器;一個(gè)5向量2級(jí)中斷結(jié)構(gòu);一個(gè)全雙工串行口;一個(gè)片內(nèi)震蕩器和時(shí)鐘電路。此外,AT89C51是用可降到0頻率的靜態(tài)邏輯操作設(shè)計(jì)的,并支持兩種可選的軟件節(jié)能工作方式??臻e方式停止CPU工作,但允許RAM、定時(shí)器/計(jì)數(shù)器、串行口和中斷系統(tǒng)繼續(xù)工作。掉點(diǎn)方式保持RAM內(nèi)容,但振蕩器停止工作,并禁止所有其他部件的工作直到下一個(gè)硬件復(fù)位。它含有4KB可反復(fù)燒錄及擦除內(nèi)存和128字節(jié)的RAM,有32條可編程控制的I/O線,5個(gè)中斷源,指令與MCS-51系列完全兼容。選用它作為核心控制新片,可使電路極大地簡(jiǎn)化,而且程序的編寫(xiě)及固化也相當(dāng)方便、靈活。主要性能:4KB可重編程Flash存儲(chǔ)器;耐久性:1000次寫(xiě)/擦除;2.7~6V的操作范圍;全靜態(tài)操作:0Hz~24MHz;2極加密程序存儲(chǔ)器;128×8位內(nèi)部RAM;32條可編程I/O引線;2個(gè)16位定時(shí)器/計(jì)數(shù)器;6個(gè)中斷源;可編程串行UART通道;直接LED驅(qū)動(dòng)輸出;片內(nèi)模擬比擬器;低功耗空載和掉電方式。本系統(tǒng)設(shè)計(jì)電路圖2所示:圖2單片機(jī)電路圖如圖2所示,P0口為L(zhǎng)CD的八根數(shù)據(jù)總線,P2.5、P2.6、P2.7三根線為L(zhǎng)CD的讀寫(xiě)控制線和使能端。P3.6、P3.7為存貯器的兩根總線,主要用于數(shù)據(jù)的讀取與存貯。P1口為矩陣鍵盤(pán)列線與行線的接口,實(shí)現(xiàn)4X4鍵盤(pán),完成相關(guān)的工能操作,比方說(shuō),數(shù)字的輸入,功能操作等。XTAL1和XTAL2口接外部晶體振蕩器,保證單片機(jī)內(nèi)部各局部有序的工作。P3.0、P3.1口接串行端口,分別作串行數(shù)據(jù)的接收端和發(fā)送端。RST與Vss之間連接一個(gè)下拉電阻,與Vcc之間連接一個(gè)電容,目的是保證可靠的復(fù)位。〔二〕鍵盤(pán)電路的設(shè)計(jì)這里采用的是矩陣鍵盤(pán)。如圖3所示:圖3矩陣鍵盤(pán)實(shí)物圖矩陣鍵盤(pán)的實(shí)現(xiàn)可采用查詢的方法,也可以采用中斷的方法。4X4的意思即:4根列線,4根行線,列線通上拉電阻接到電源上,因此無(wú)按鍵按下時(shí),各列線均為高電平。當(dāng)行線分別輸出低電平時(shí),有健按下,相應(yīng)的列線上會(huì)出現(xiàn)低電平。根據(jù)此原理,CPU對(duì)整個(gè)鍵盤(pán)進(jìn)行掃描。所謂掃描,即CPU不斷輪流對(duì)行線置低電平,然后檢查列線輸入狀態(tài),確定按鍵情況。電路如圖4所示:圖4矩陣鍵盤(pán)圖如圖4所示,4X4矩陣鍵盤(pán),一共有16個(gè)按鍵,用單片機(jī)的P1口,其內(nèi)部有上接電阻,在此可不用,在確定有按鍵按下后,先把H1置為低電平,其它都為高電平,再讀入H5、H6、H7、H8的值。假設(shè)H5為“1〞,其它都為“0〞,那么“F〞按下。依次類(lèi)推,當(dāng)H8為“1〞,其它都為“0〞,那么“3〞按下。根據(jù)此道理,可判斷,哪個(gè)按鍵按下。本設(shè)計(jì)就是根據(jù)此,判斷數(shù)據(jù)的輸入和各功能的實(shí)現(xiàn)。按鍵“A〞、“B〞、“C〞、“D〞、“E〞、“F〞為功能鍵,其它的為數(shù)字鍵。〔三〕、顯示電路的設(shè)計(jì)這里采用的是兩行字符型1602顯示器,下面詳細(xì)介紹1602及其使用。1.字符型點(diǎn)陣式LCD液晶顯示屏LCD的應(yīng)用很廣泛,簡(jiǎn)單如手表上的液晶顯示屏,儀表儀器上的液晶顯示器或者是電腦筆記本上的液晶顯示器,都使用了LCD。在一般的辦公設(shè)備上也很常見(jiàn),如機(jī),復(fù)印機(jī),以及一些娛樂(lè)器材玩具等也常常見(jiàn)到LCD的足跡。本設(shè)計(jì)要介紹的LCD為字符型點(diǎn)陣式LCD模塊〔LiquidCrystalDisplayModule〕簡(jiǎn)稱LCM,或者是字符型LCD。字符型液晶顯示模塊是一類(lèi)專(zhuān)門(mén)用于顯示字母,數(shù)字,符號(hào)等的點(diǎn)陣式液晶顯示模塊。在顯示器件上的電極圖型設(shè)計(jì),它是由假設(shè)干個(gè)5*7或5*11等點(diǎn)陣符位組成。每一個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。點(diǎn)陣字符位之間有一空點(diǎn)距的間隔起到了字符間距和行距的作用。目前市面上常用的有16字*1行,16字*2行,20字*2行和40字*2行等的字符模塊組。這些LCM雖然顯示字?jǐn)?shù)各不相同,但是都具有相同的輸入輸出界面。本設(shè)計(jì)將以WINTECH16*2字符型液晶顯示模塊WM-C1602N為例,詳細(xì)介紹字符液晶顯示模塊的應(yīng)用技術(shù)。一般字符LCD模塊的控制器為日本日立新華通訊社的HD44780及其替代集成電路,驅(qū)動(dòng)器為HD44100及其替代的集成電路。2.LCD液晶顯示屏的內(nèi)部結(jié)構(gòu)液晶顯示模塊WN-C1602N的內(nèi)部結(jié)構(gòu)可以分成三局部:LCD挖掘器、LCD驅(qū)動(dòng)器和LCD顯示裝置。如圖5所示:圖5LCD內(nèi)部結(jié)構(gòu)圖目前大多數(shù)的LCD液晶顯示器的控制器都有采用一顆型號(hào)為HD44780的集成電路作控制器。HD44780是集控制器,驅(qū)動(dòng)器于一體,專(zhuān)用于字符顯示控制驅(qū)動(dòng)集成電路。HD44780是字符型液晶顯示控制器的代表電路,HD44780集成電路的特點(diǎn)有:〔1〕HD44780不僅作為控制器而且還具有驅(qū)動(dòng)40*16點(diǎn)陣液晶像素的能力,并且HD44780的驅(qū)動(dòng)能力可通過(guò)外接驅(qū)動(dòng)器擴(kuò)展360列驅(qū)動(dòng)。〔2〕HD44780的顯示緩沖區(qū)及用戶自定義的字符發(fā)生器CGRAM全部?jī)?nèi)藏在芯片內(nèi)?!?〕HD44780具有適用于M6800系列MPU的接口,并且接口數(shù)據(jù)傳輸可為8位數(shù)據(jù)和4位數(shù)據(jù)傳輸兩種方式?!?〕HD44780具有簡(jiǎn)單而功能較強(qiáng)的指令集,可實(shí)現(xiàn)字符移動(dòng),閃爍等顯示功能。由于HD44780的DDRAM容量所限,HD44780可控制的字符高達(dá)每行80個(gè)字,也就是5*80=400點(diǎn),HD44780內(nèi)藏有16路行驅(qū)動(dòng)器和40路列驅(qū)動(dòng)器,所以HD44780本身就具驅(qū)動(dòng)有16*40點(diǎn)陣LCD能力〔即單行16個(gè)字符或兩行8個(gè)字符〕。如果在外部加一HD44100外擴(kuò)展多40路/列驅(qū)動(dòng),那么可驅(qū)動(dòng)16*2LCD。HD44780內(nèi)藏的字符發(fā)生存儲(chǔ)器〔CGROM〕已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。比方數(shù)字“1”的代碼是00110001B〔31H〕,又如大寫(xiě)的英文字母“A〞表1WM-C1602N的CGRAM字符圖形代碼對(duì)應(yīng)表3.LCD的應(yīng)用液晶顯示模塊LCD1602在顯示“1〞時(shí),那么只需將ASCII碼31H存入DDRAM即可。顯示時(shí)模塊把地址31H中的點(diǎn)陣字符圖形顯示出來(lái),就能看到數(shù)字“1〞了。DDRAM有80bytes空間,共可顯示80個(gè)字,地址與實(shí)際顯示位置的排列順序跟LCD的型號(hào)有關(guān)。1602采用標(biāo)準(zhǔn)的16腳接口,如表2所示。其中VSS為地電源,VDD接5V正電源,VL為液晶顯示器比照度調(diào)整端,接正電源時(shí)比照度最弱,接地電源時(shí)比照度最高,比照度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影〞,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整比照度。RS為存放器選擇,高電平時(shí)選擇數(shù)據(jù)存放器、低電平時(shí)選擇指令存放器。RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。D0-D7為8位雙向數(shù)據(jù)線。表2LCD1602引腳說(shuō)明表編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2DataI/O2VDD電源正極10D3DataI/O3VL液晶顯示偏壓信號(hào)11D4DataI/O4RS數(shù)據(jù)/命令選擇端(H/L)12D5DataI/O5R/W讀/寫(xiě)選擇端(H/L)13D6DataI/O6E使能信號(hào)14D7DataI/O7D0DataI/O15BLA背光源正極8D1DataI/O16BLK背光源正極本設(shè)計(jì)電路如圖6所示:圖6LCD1602電路連接圖如圖6所示,有八根數(shù)據(jù)線與單片機(jī)的P0口相連,三根讀寫(xiě)控制線,背光調(diào)節(jié)電位器,可調(diào)節(jié)背光亮度。〔四〕存儲(chǔ)器電路的設(shè)計(jì)本設(shè)計(jì)采用串行鐵電存貯器FRAM,采用I2C總線工作方式。FRAM鐵電存儲(chǔ)器的核心技術(shù)是美國(guó)Ramtron公司研制的鐵電晶體材料。這一特殊材料使得鐵電存儲(chǔ)產(chǎn)品同時(shí)擁有隨機(jī)存儲(chǔ)器〔RAM〕和非易失性存儲(chǔ)器〔EPROM、E21.鐵電晶體材料的工作原理當(dāng)把電場(chǎng)加載到鐵電晶體材料上,晶陣中的中心原子會(huì)沿著電場(chǎng)方向運(yùn)動(dòng),到達(dá)穩(wěn)定狀態(tài),一個(gè)狀態(tài)存儲(chǔ)邏輯0,另一個(gè)狀態(tài)存儲(chǔ)邏輯1。中心原子在常溫下沒(méi)有電場(chǎng)的作用時(shí)停留在此狀態(tài)達(dá)一百年以上,鐵電存儲(chǔ)器不需要定時(shí)刷新,斷電情況下能保存數(shù)據(jù)不變。由于在整個(gè)物理過(guò)程中沒(méi)有任何原子碰撞,鐵電存儲(chǔ)器〔FRAM〕擁有高速讀寫(xiě),超低功耗和無(wú)限次寫(xiě)入等特性。2.存儲(chǔ)器的根底知識(shí)傳統(tǒng)存儲(chǔ)器有兩大類(lèi):易失存儲(chǔ)器〔volatilememory〕和非易失存儲(chǔ)器〔non-volatilememory〕,易失性存儲(chǔ)器像SRAM和DRAM存儲(chǔ)器在沒(méi)有電源的情況下都不能保存數(shù)據(jù),但這種存儲(chǔ)器擁有高性能,存取速度快和無(wú)限次的寫(xiě)入次數(shù),易用等優(yōu)點(diǎn)。非易失性存儲(chǔ)器像EPROM、E2ROM和FLash能在斷電后保存數(shù)據(jù)不變,但由于所有這些存儲(chǔ)器均起源只讀存儲(chǔ)器〔ROM〕技術(shù),因此它們都有寫(xiě)入速度慢,寫(xiě)入次數(shù)有限和使用時(shí)功耗大等缺點(diǎn)。表3是16K位鐵電存儲(chǔ)器〔FRAM〕的性能和16K位E2ROM性能比擬情況,F(xiàn)RAM第一個(gè)最明顯的優(yōu)點(diǎn)是:FRAM可以跟隨總線速度寫(xiě)入,無(wú)需任何等候時(shí)間,而E2ROM需等幾毫秒〔ms〕才能寫(xiě)入一下數(shù)據(jù)。FRAM第二大優(yōu)點(diǎn)是幾乎無(wú)限次的寫(xiě)入。E2ROM的寫(xiě)入次數(shù)是每百萬(wàn)次〔10的6次方〕,而新一代的鐵電存儲(chǔ)器〔FRAM〕卻是一億億次〔10的6次方〕寫(xiě)入壽命。FRAM的第三大優(yōu)點(diǎn)是超低功能。E2ROM的慢速和高電流寫(xiě)入一個(gè)字節(jié)令它需要高出FRAM2500倍的能量。表3性能比擬表型號(hào)待機(jī)電流寫(xiě)入電流寫(xiě)入次數(shù)字節(jié)寫(xiě)入時(shí)間整片寫(xiě)入時(shí)間FM2401610UA150US1E1372US47AMSAT24C1618UA3mA1E610MS1.3SST24C16300UA3mA1E610MS1.3S24AA16100UA3mA1E610MS1.3SX24C16150UA3mA1E610MS1.3S3.鐵電存貯器FRAM的應(yīng)用FRAM無(wú)限次快速擦寫(xiě)和非易性的特點(diǎn),令它的系統(tǒng)工程師可以把現(xiàn)在在電路上別離的SRAM和E2ROM兩種存儲(chǔ)器整合到一個(gè)FRAM里,為整個(gè)系統(tǒng)節(jié)省了功耗,降低了本錢(qián),減小了體積,同時(shí)增加了整個(gè)系統(tǒng)的可靠性。典型應(yīng)用包括:儀器儀表、工業(yè)控制、家用電器、復(fù)印機(jī)、打印機(jī)、機(jī)頂盒、網(wǎng)絡(luò)設(shè)備、游戲機(jī)、計(jì)算機(jī)等等。4.I2C總線知識(shí)該存貯器采用I2C總線方式工作,在軟件操作時(shí),就得用I2C總線方式進(jìn)行讀寫(xiě)。I2C總線是由PHILIPS公司創(chuàng)造的一種高性能芯片間串行同步傳輸總線。與SPI、MicroWire接口不同,它僅僅需要兩根信號(hào)線〔串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL〕,就實(shí)現(xiàn)了完善的雙工同步數(shù)據(jù)傳送,能夠極其方便地構(gòu)成多機(jī)系統(tǒng)和外圍器件擴(kuò)展系統(tǒng)。鑒于I2C總線的眾多功能優(yōu)越性,目前,以PHILIPS公司為主的許多著名半導(dǎo)體制造公司,紛紛研制出了大量的種類(lèi)繁多的〔已經(jīng)達(dá)數(shù)百種型號(hào)〕帶有I2C總線硬件接口的單片機(jī)、通用外圍器件,例如RAM、EEPROM、NVRAM、I/O、ADC、DAC、日歷時(shí)鐘RTC、LED驅(qū)動(dòng)器、LCD驅(qū)動(dòng)器、溫度傳感器等等。另外,還開(kāi)發(fā)了面向一些特殊應(yīng)用系統(tǒng)中專(zhuān)用配套的I2本設(shè)計(jì)電路如圖7:圖7存儲(chǔ)器電路圖如圖7所示,電路用24C64存貯器,A0、A1、A2為地址選擇端,主要作用是用于級(jí)連,在總線上掛接多個(gè)這樣的存貯器時(shí)使用,VSS為接地端,VCC為電源正極連接端,WP為寫(xiě)保護(hù)控制端,SCL、SDA分別為I2C總線的串行時(shí)鐘連接端和串行數(shù)據(jù)連接端,數(shù)據(jù)的寫(xiě)入與讀出就是通過(guò)這個(gè)端兩個(gè)端操作的,同時(shí)電路中在這兩個(gè)端口加了兩只上接電阻,作用是由于存貯器內(nèi)部是采用開(kāi)漏輸出的?!参濉炒型ㄐ沤涌陔娐返脑O(shè)計(jì)串行通信接口標(biāo)準(zhǔn)經(jīng)過(guò)使用和開(kāi)展,目前已經(jīng)有幾種。但都是在RS-232C標(biāo)準(zhǔn)的根底上經(jīng)過(guò)改良而形成的。RS-323C標(biāo)準(zhǔn)是美國(guó)EIA(電子工業(yè)聯(lián)合會(huì)〕與BELL等公司一起開(kāi)發(fā)的1969年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在0~20000b/s范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問(wèn)題,如信號(hào)線功能、電器特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與RS-232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用。RS-232C標(biāo)準(zhǔn)〔協(xié)議〕的全稱是EIA-RS-232C標(biāo)準(zhǔn),其中EIA(ElectronicIndustryAssociation)代表美國(guó)電子工業(yè)協(xié)會(huì),RS〔ecommededstandard〕代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào),C代表RS232的最新一次修改〔1969〕,在這之前,有RS232B、RS232A。。它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過(guò)程。常用物理標(biāo)準(zhǔn)還有有EIA�RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。這里只介紹EIA�RS-232-C〔簡(jiǎn)稱232,RS232〕。例如,目前在IBMPC機(jī)上的COM1、COM2接口,就是RS-232C接口。RS-232C電氣特性RS-232C標(biāo)準(zhǔn)〔協(xié)議〕的全稱是EIA-RS-232C標(biāo)準(zhǔn),其中EIA(ElectronicIndustryAssociation)代表美國(guó)電子工業(yè)協(xié)會(huì),RS〔ecommededstandard〕代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào),C代表RS232的最新一次修改〔1969〕,在這之前,有RS232B、RS232A。。它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過(guò)程。常用物理標(biāo)準(zhǔn)還有有EIA�RS-232-C、EIA�RS-422-A、EIA�RS-423A、EIA�RS-485。這里只介紹EIA�RS-232-C〔簡(jiǎn)稱232,RS232〕。例如,目前在IBMPC機(jī)上的COM1、COM2接口,就是RS-232C接口。EIA-RS-232C對(duì)電器特性、邏輯電平和各種信號(hào)線功能都作了規(guī)定,如下:〔1〕在TxD和RxD上,邏輯1(MARK)=-3V~-15V;〔2〕邏輯0(SPACE)=+3~+15V;〔3〕在RTS、CTS、DSR、DTR和DCD等控制線上;〔4〕信號(hào)有效〔接通,ON狀態(tài),正電壓〕=+3V~+15V;〔5〕信號(hào)無(wú)效〔斷開(kāi),OFF狀態(tài),負(fù)電壓〕=-3V~-15V。以上規(guī)定說(shuō)明了RS-323C標(biāo)準(zhǔn)對(duì)邏輯電平的定義。對(duì)于數(shù)據(jù)〔信息碼〕:邏輯“1〞〔傳號(hào)〕的電平低于-3V,邏輯“0〞〔空號(hào)〕的電平告語(yǔ)+3V;對(duì)于控制信號(hào);接通狀態(tài)〔ON〕即信號(hào)有效的電平高于+3V,斷開(kāi)狀態(tài)(OFF)即信號(hào)無(wú)效的電平低于-3V,也就是當(dāng)傳輸電平的絕對(duì)值大于3V時(shí),電路可以有效地檢查出來(lái),介于-3~+3V之間的電壓無(wú)意義,低于-15V或高于+15V的電壓也認(rèn)為無(wú)意義,因此,應(yīng)保證電平在±(3~15)V之間。2.連接器的機(jī)械特性:連接器:由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類(lèi)型的連接器,其引腳的定義也各不相同。下面分別介紹兩種連接器?!?〕DB-25:PC和XT機(jī)采用DB-25型連接DB-25連接器定義了25根信號(hào)線,分為4組:①異步通信的9個(gè)電壓信號(hào)〔含信號(hào)地SG〕2,3,4,5,6,7,8,20,22;②20mA電流環(huán)信號(hào)9個(gè)〔12,13,14,15,16,17,19,23,24〕;③空6個(gè)〔9,10,11,18,21,25〕;④保護(hù)地〔PE〕1個(gè),作為設(shè)備接地端〔1腳〕?!?〕DB-9連接器:在AT機(jī)及以后,不支持20mA電流環(huán)接口,使用DB-9連接器,作為提供多功能I/O卡或主板上COM1和COM2兩個(gè)串行接口的連接器。它只提供異步通信的9個(gè)信號(hào)。DB-25型連接器的引腳分配與DB-25型引腳信號(hào)完全不同。因此,假設(shè)與配接DB-25型連接器的DCE設(shè)備連接,必須使用專(zhuān)門(mén)的電纜線。電纜長(zhǎng)度:在通信速率低于20kb/s時(shí),RS-232C所直接連接的最大物理距離為15m〔50英尺〕。最大直接傳輸距離說(shuō)明:RS-232C標(biāo)準(zhǔn)規(guī)定,假設(shè)不使用MODEM,在碼元畸變小于4%的情況下,DTE和DCE之間最大傳輸距離為15m〔50英尺〕。可見(jiàn)這個(gè)最大的距離是在碼元畸變小于4%的前提下給出的。為了保證碼元畸變小于4%的要求,接口標(biāo)準(zhǔn)在電氣特性中規(guī)定,驅(qū)動(dòng)器的負(fù)載電容應(yīng)小于2500pF。3.RS-232C的接口信號(hào)RS-232C規(guī)標(biāo)準(zhǔn)接口有25條線,4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線。在本設(shè)計(jì)中電路連接圖如圖8所示:圖8串行通信口連接圖如圖8所示,MAX232中電平轉(zhuǎn)換芯片。將差分電平,轉(zhuǎn)換成單片機(jī)等可識(shí)別的TTL電平,電路中RXD、TXD兩根線分別和單片機(jī)相連P3口的串行通訊口相連,RXD為數(shù)據(jù)據(jù)接收端,單片機(jī)通過(guò)這個(gè)端口讀取PC機(jī)等送來(lái)的信號(hào),TXD為數(shù)據(jù)發(fā)送端口,主要向PC等設(shè)備發(fā)送信號(hào)。圖右邊還有一個(gè)9針串行通信口,主要和PC機(jī)相連。四、系統(tǒng)軟件程序設(shè)計(jì)本設(shè)計(jì)程序共分成五個(gè)局部:鍵盤(pán)處理程序、LCD顯示程序、單片機(jī)內(nèi)部數(shù)據(jù)處程序、存貯程序、串口和PC機(jī)通信程序?!惨弧硢纹瑱C(jī)內(nèi)部數(shù)據(jù)處理程序單片機(jī)內(nèi)部數(shù)據(jù)處理程序,即是系統(tǒng)的主程序。當(dāng)插上電源后,單片機(jī)對(duì)系統(tǒng)進(jìn)行一系列的初始化,包括LCD顯示初始化,串口初始化和菜單的初始化,以及判斷有無(wú)按鍵按下,并做出相應(yīng)的處理。主程序流程圖如圖9:圖9主程序流程圖〔二〕鍵盤(pán)處理程序鍵盤(pán)處理程序,主要作用就是通過(guò)用戶的按鍵識(shí)別,判斷當(dāng)前的系統(tǒng)任務(wù),通過(guò)前面的硬件分析,采用4X4矩陣,一共十六組狀態(tài)。一方面是數(shù)字的輸入輸出,另一方面的一系列的功能操作。經(jīng)過(guò)鍵盤(pán)掃描程序掃描是否有按鍵按下,如果有再判斷是數(shù)字鍵還是功能鍵,并做出相應(yīng)的處理;如果沒(méi)有那么返回繼續(xù)檢查有克按鍵按下。鍵盤(pán)處理程序流程圖如圖10所示。圖10鍵盤(pán)處理程序流程圖〔三〕LCD液晶顯示程序LCD處理程序,完成信息的顯示,包括商品號(hào),單價(jià),數(shù)量,總計(jì)金額等這些資料。LCD根據(jù)鍵盤(pán)處理程序中按鍵的性質(zhì)〔數(shù)字鍵還是功能鍵〕來(lái)操作。流程圖如圖11圖11LCD顯示流程圖〔四〕串口通信程序串口通信程序,完成將完交的數(shù)量,以及總金額,賣(mài)出與進(jìn)入的商品告知PC機(jī)完成匯總。流程圖如圖12:圖12串口通信流程圖〔五〕存儲(chǔ)器程序存貯器程序,完成對(duì)24C64的數(shù)據(jù)讀取與寫(xiě)入,同時(shí)要有掉電保存的功能。流程圖如圖13:圖13存儲(chǔ)器流程圖五、設(shè)計(jì)總結(jié)本系統(tǒng)的制作,性能和效果都比擬好,通過(guò)鍵盤(pán)有操作,LCD直觀的顯示,和串口的通信及信息的存貯都能到達(dá)設(shè)計(jì)的要求,實(shí)現(xiàn)超市簡(jiǎn)易的收款工作。本設(shè)計(jì)的本錢(qián)較低,操作簡(jiǎn)單。但是,本設(shè)計(jì)也存在上些缺乏,比方LCD字符型液晶顯示器不帶有中文字庫(kù),不能顯示中文,這樣顯示的內(nèi)容不是很直觀。再如,系統(tǒng)沒(méi)有留出打印口,不能打印出憑條等等。不過(guò),在本設(shè)計(jì)的根底上很容易通過(guò)改善設(shè)備,對(duì)系統(tǒng)進(jìn)行升級(jí),使功能更齊全,設(shè)計(jì)更完美。通過(guò)這次的畢業(yè)設(shè)計(jì),我體會(huì)到應(yīng)該掌握豐富的理論知識(shí),理論知識(shí)是設(shè)計(jì)的前提。但同時(shí)又決不能局限于理論。在設(shè)計(jì)過(guò)程中,深深感受到自己在對(duì)一些器件的了解上,還存在很大差距,對(duì)他們的功能,參數(shù)都不是太熟悉。但是通過(guò)這次理論與實(shí)際的結(jié)合之后,認(rèn)識(shí)比以前有不少提高。六、致謝本畢業(yè)設(shè)計(jì),在設(shè)計(jì)過(guò)程中,從理論到實(shí)踐,從畫(huà)框圖,到具體電路,從學(xué)習(xí)認(rèn)識(shí)元器件,到最后完成一個(gè)系統(tǒng),從中學(xué)習(xí)了許多新的專(zhuān)業(yè)知識(shí),同時(shí)也學(xué)會(huì)了許多社會(huì)人文知識(shí)。在此,對(duì)我畢業(yè)設(shè)計(jì)提拱指導(dǎo)幫助的所有老師,表示是忠心的感謝,對(duì)在設(shè)計(jì)過(guò)程中遇到困難時(shí),得到同仁們幫助的朋友、同學(xué),表示誠(chéng)摯的謝意!真誠(chéng)感謝成都學(xué)院的領(lǐng)導(dǎo)和老師,感謝電信教研室的各位老師,他們?cè)谖移匠5膶W(xué)習(xí)與日常生活中,給了我許多關(guān)心與幫助。在此我表示深深的感謝!附錄附錄一硬件原理圖附錄二硬件PCB圖附錄三原程序代碼1、主程序代碼#include<regx52.h>unsignedcharw,cc=0;unsignedcharstr[16]={0}; //液晶顯示顯存#include"lcd.h" //包含液晶顯示器的一些操作函數(shù)#include"iic.h" /24C64的讀寫(xiě)函數(shù)#include"urat.h" //串行口的操作函數(shù)#include"manage.h" //按鍵功能函數(shù)#include"key4.h"http://按鍵檢測(cè)和鍵值讀取函數(shù)//bitw24c64,r24c64;voidmain(){initlcd(); //初始LCDiniturat();//初始串口menu(); //初始菜單 //inorder(0xc0);//indata(0x38); //測(cè)試LCD第二行是否顯示while(1){ key1();if(w!=0)//如果有鍵按下那么讀鍵值key2(w);//讀鍵值} }/********************************結(jié)束************************************/2、鍵盤(pán)代碼unsignedcharw1,w2;voidkey1(void){P1=0x0f;w1=P1&0x0f;if(w1!=0x0f)//按鍵{ delay(100); if(w1!=0x0f) //再一次檢測(cè)按鍵 {P1=0xf0;w2=P1&0xf0;w=(w1|w2); }}elsew=0; //未按鍵}////unsignedcharvoidkey2(unsignedcharj){unsignedchari;switch(j) { //以下為數(shù)字鍵 case0x77:i=0x30;indata(i);str[cc++]=0;break;case0x7b:i=0x31;indata(i);str[cc++]=1;break; case0x7d:i=0x32;indata(i);str[cc++]=2;break;case0x7e:i=0x33;indata(i);str[cc++]=3;break;case0xb7:i=0x34;indata(i);str[cc++]=4;break;case0xbb:i=0x35;indata(i);str[cc++]=5;break;case0xbd:i=0x36;indata(i);str[cc++]=6;break;case0xbe:i=0x37;indata(i);str[cc++]=7;break;case0xd7:i=0x38;indata(i);str[cc++]=8;break;case0xdb:i=0x39;indata(i);str[cc++]=9;break; //以下為功能鍵 case0xDD:manage_key1();i=0;break; //A寫(xiě)24C64case0xDE:manage_key2();i=0;break; //B讀24C64case0xE7:manage_key3();i=0;break; //C串行通訊,發(fā)送數(shù)據(jù) case0xeb:manage_key4();i=0;break; //D串行通訊,接受數(shù)據(jù)case0xED:manage_key5();i=0;break; //E顯示計(jì)算結(jié)果case0xEE:manage_key6();i=0;//f清屏} while(1) //等待按鍵的釋放 { key1(); if(w1==0x0f){ delay(10); if(w1==0x0f) break;} } }/********************************結(jié)束************************************/3、液晶顯示器代碼#include<intrins.h>#define RS P2_5 //定義LCD控制口#define RW P2_6#define E P2_7#define XSP0voidbusy(void) //檢查忙信號(hào){_nop_();do{XS=0xff;RS=0;RW=1;E=0;_nop_();E=1;}while(P0_7); }voidinorder(unsignedcharorder) //寫(xiě)命令{XS=order;RS=0;RW=0;E=0; busy();E=1; }voidindata(unsignedchardatar) //寫(xiě)數(shù)據(jù){ XS=datar;RS=1;RW=0; E=0; busy(); E=1;}voidinitlcd(void){ inorder(0x01);inorder(0X38); //8位2行5X7點(diǎn)陣inorder(0X0f);//顯示器開(kāi),光標(biāo)開(kāi),閃爍開(kāi)inorder(0X06); //文字不動(dòng),光標(biāo)自動(dòng)右移 inorder(0x01);//清顯示}//=================顯示處理程序=========================voidxianshi(void){unsignedlongx,y,z,sum; x=(str[0]*100+str[1]*10+str[2]); //得到“貨號(hào)〞 y=(str[3]*1000+str[4]*100+str[5]*10+str[6]); //得到“單價(jià)〞值〔3位數(shù)〕z=(str[7]*100+str[8]*10+str[9]); //得到“數(shù)量〞值〔3位數(shù)〕 sum=y*z; //總價(jià)==單價(jià)*數(shù)量 str[10]=sum/100000; //十萬(wàn)位 str[11]=(sum%100000)/10000; //萬(wàn)位 str[12]=((sum%100000)%10000)/1000; //千位 str[13]=(((sum%100000)%10000)%1000)/100; //百位 str[14]=((((sum%100000)%10000)%1000)%100)/10; //十位 str[15]=((((sum%100000)%10000)%1000)%100)%10; //個(gè)位}/*****************菜單顯示**************************///在第一行顯示NO.priceamountsum(¥〕voidmenu(void){inorder(0x80); //光標(biāo)指向LCD第二行首地址 indata(0x4e); //NO. indata(0x4f); indata(0x20); //空格 indata(0x44); //price indata(0x4A); indata(0x20); //空格 indata(0x20); //空格 indata(0x53); //amount indata(0x4C); indata(0x20); //空格 indata(0x53); //Sum(¥) indata(0x75); indata(0x6D); indata(0x28); indata(0x5C); indata(0x29); inorder(0xc0); //光標(biāo)指向LCD第二行首地址} /********************************結(jié)束************************************/4、串行口程序代碼#defineucharunsignedcharvoidinitial();voidsendd();voidreceived();/*****************串行口初始化*************/voidiniturat(void){TMOD=0x20;TL1=0xe8;TH1=0xe8;SCON=0x50;TR1=1;}/****************發(fā)送數(shù)據(jù)******************/voidsendd(){uchari;for(i=0;i<16;i++){TI=0;SBUF=str[i];while(TI==0);} }/****************接收數(shù)據(jù)**********************/voidreceived(){ uchari;// while((i=SBUF)!=0x01);//RI=0;while(RI==0);for(i=0;i<16;i++){RI=0;str[i]=SBUF;while(RI==0);} }/********************************結(jié)束************************************/5、24C64的讀寫(xiě)程序代碼#include<intrins.h>#defineucharunsignedchar#definesdaP3_6 //定義SDA口#definesclP3_7 //定義SCL口//voiddelay(uchara) //24C64和其他一些地方需要的延時(shí)函{ ucharb,c; for(b=0;b<a;b++)for(c=0;c<225;c++);}//voidstart(void) //開(kāi)始總線的活動(dòng){ sda=1; scl=1; _nop_();_nop_();_nop_();_nop_(); sda=0; _nop_();_nop_();_nop_();_nop_();}//voidstop(void) //停止總線活動(dòng),器件進(jìn)入低功耗狀態(tài){ sda=0; _nop_();_nop_();_nop_();_nop_(); scl=1; _nop_();_nop_();_nop_();_nop_(); sda=1; _nop_();_nop_();_nop_();_nop_();}//voidack(void) //應(yīng)答信號(hào){ sda=0; _nop_();_nop_();_nop_();_nop_(); scl=1; _nop_(

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論