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

下載本文檔

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

文檔簡介

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

機AT89C51矩陣

鍵盤數(shù)據(jù)

存儲器LCD

顯示器串行

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

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論