基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):29646570 上傳時(shí)間:2021-10-08 格式:DOC 頁數(shù):34 大小:1.18MB
收藏 版權(quán)申訴 舉報(bào) 下載
基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第1頁
第1頁 / 共34頁
基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第2頁
第2頁 / 共34頁
基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)_第3頁
第3頁 / 共34頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)(34頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、IXXXXXXXXXX 大學(xué)本科畢業(yè)設(shè)計(jì)大學(xué)本科畢業(yè)設(shè)計(jì)基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)學(xué)生姓名學(xué)生姓名 所所 在在 系系專業(yè)名稱專業(yè)名稱班班 級(jí)級(jí)學(xué)學(xué) 號(hào)號(hào)指導(dǎo)教師指導(dǎo)教師II基于單片機(jī)的簡(jiǎn)易收款機(jī)的設(shè)計(jì)學(xué)生: 指導(dǎo)教師:內(nèi)容摘要內(nèi)容摘要: :隨著全球信息化的發(fā)展,人們的生活水平也不斷在提高,人們所需要的商品也越來越多,各大規(guī)模的超市也隨之涌現(xiàn),超市里的商品品種和數(shù)量數(shù)不勝數(shù),以致于不可能完全依靠人來管理。本設(shè)計(jì)正是基于此,解決超市人工收款任務(wù)不方便的問題.本設(shè)計(jì)是基于 Atmel 公司 AT89C51 的簡(jiǎn)易超市收款機(jī)控制的設(shè)計(jì)。通過 4X4 矩陣鍵盤,液晶顯示器(字符型 1602) ,串行鐵

2、電存貯器(24C64) ,串行通訊口和單片機(jī)(AT89C51)的配合,以程控的方式完成收款的目的,系統(tǒng)采用 Atmel 公司 1989 年生產(chǎn)的 AT89C51 單片機(jī)為核心控制器,完成簡(jiǎn)易超市收款機(jī)的基本功能。通過矩陣鍵盤輸入商品號(hào),系統(tǒng)經(jīng)過一系列的分析處理,輸出商品號(hào),數(shù)量,單價(jià)和總價(jià)等基本信息.關(guān)鍵詞關(guān)鍵詞: 矩陣鍵盤 字符型液晶顯示 鐵電存貯 I2CIIISimple cash register based on single-designAbstractAbstract: With the development of global information, peoples livi

3、ng standards have also continued to improve, people need more and more merchandise, the large-scale supermarkets also the emergence of the supermarket variety and quantity of merchandise just to name a few that do not may completely rely on to manage people. The design is based on this, the settleme

4、nt of receivables design artificial supermarket. through the 4X4 matrix keyboard, liquid crystal display (character 1602), serial ferroelectric memory (24C64), using Atmel Corporation 1989 production AT89C51 single-chip microcomputer as the core controller, complete the summary of the basic function

5、s of supermarket cash registers, through the matrix keyboard input No. merchandise, the system through a series of analytical processing, the output of goods number, quantity, unit price, total price of such basic information.Key words:Matrix keyboard character LCD ferroelectric memory I2CIV目 錄一一、引言

6、、引言 .1 1(一)本設(shè)計(jì)的背景.1(二)本設(shè)計(jì)的目的和意義.1二、總體方案設(shè)計(jì)二、總體方案設(shè)計(jì) .2 2(一)方案設(shè)計(jì).2(二)方案論證與選擇.2三、系統(tǒng)硬件電路設(shè)計(jì)三、系統(tǒng)硬件電路設(shè)計(jì) .4 4(一)單片機(jī)及其外圍電路設(shè)計(jì).4(二)鍵盤電路的設(shè)計(jì).5(三) 、顯示電路的設(shè)計(jì).6(四)存儲(chǔ)器電路的設(shè)計(jì).10(五)串行通信接口電路的設(shè)計(jì).12四、系統(tǒng)軟件程序設(shè)計(jì)四、系統(tǒng)軟件程序設(shè)計(jì) .1414(一)單片機(jī)內(nèi)部數(shù)據(jù)處理程序.14(二)鍵盤處理程序.15(三)LCD 液晶顯示程序 .16(四)串口通信程序.17(五)存儲(chǔ)器程序.18五、設(shè)計(jì)總結(jié)五、設(shè)計(jì)總結(jié) .1919六、致謝六、致謝 .1919

7、附錄附錄 .2020附錄一 硬件原理圖.20附錄二 硬件 PCB 圖.21附錄三 原程序代碼.22參考文獻(xiàn)參考文獻(xiàn) .30301一、引言、引言(一)本設(shè)計(jì)的背景當(dāng)前,單片機(jī)被廣泛地應(yīng)用于人們生活的各個(gè)領(lǐng)域。單片機(jī)實(shí)際就是一臺(tái)微型計(jì)算機(jī),雖然功能沒有普通的計(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ù)器,串行通信口(

8、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)。由此來看,單片機(jī)有著微處理器所不具備的功能,它可單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。單片機(jī)在外觀上與常見的集成電路塊一樣,體積很小,多為黑色長條狀,條狀兩側(cè)各有一排金屬引腳,可與外電路連接。只需在電路中添加少許元器件,通過編寫程序就可以實(shí)現(xiàn)多種功能的單片機(jī)自動(dòng)控制。比如說,單片機(jī)接上鍵盤可以進(jìn)行信號(hào)輸入;接上顯示器可以實(shí)現(xiàn)數(shù)據(jù)顯示;接上喇叭可以實(shí)現(xiàn)聲音輸出等等。由于單片機(jī)體積小巧、功能

9、強(qiáng)大、應(yīng)用靈活、價(jià)格便宜,所以應(yīng)用十分廣泛。隨著人們的生活水平的不斷提高,對(duì)各種圍繞人們生活圈的設(shè)備要求也是越來越高,同時(shí)隨著工業(yè)化大發(fā)展,一切家用設(shè)備、工業(yè)設(shè)備和商業(yè)設(shè)備都要求智能化,傻瓜化,比如說數(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ī)等等。伴隨著人們生活水平的提高,人們所需要的必須品也越來越多,各種規(guī)模的超市也數(shù)不勝數(shù),超市里的商品品種和數(shù)量也太多,以致于不可能完全用人來管理。本設(shè)計(jì)正是基于此,研究超市現(xiàn)在流行的簡(jiǎn)易收款機(jī)。(二)本設(shè)計(jì)的目的和意義超市收款機(jī)的主要任務(wù)就是,將各種

10、商品的基本信息存貯起來,當(dāng)識(shí)別到外部輸入的商品后,自動(dòng)調(diào)出相關(guān)信息,比如說,商品的名稱,商品貨號(hào),商品單價(jià),商品數(shù)量。通過用單價(jià)來乘上相應(yīng)的商品的數(shù)量,計(jì)算出商品總價(jià),來達(dá)到收款的目的,完成整個(gè)收款的過程。根據(jù)上述,本設(shè)計(jì)的目的就是要完成超市收2款機(jī)簡(jiǎn)單的基本信息存貯,鍵盤輸入數(shù)據(jù),顯示器顯示相關(guān)內(nèi)容,數(shù)據(jù)能夠和PC 機(jī)通信的功能。二、總體方案設(shè)計(jì)(一)方案設(shè)計(jì)總體電路設(shè)計(jì)應(yīng)該完成五個(gè)部分電路:1、單片機(jī)及外圍電路,2、鍵盤電路,3、顯示電路,4、存儲(chǔ)器電路,5、串行通信接口電路。單片機(jī)采用較流行的八位機(jī) AT89C51,根據(jù)內(nèi)部的特性,完全能滿足功能要求;因?yàn)樾枰斎氲臄?shù)字量比較多,所以鍵盤

11、采用 4X4 矩陣鍵盤;顯示器使用液晶顯示器;存儲(chǔ)器采用鐵電存儲(chǔ)器,操作方便,可靠,掉電可保存數(shù)據(jù)。圖 1 為電路組成框圖。單片機(jī)AT89C51矩陣鍵盤數(shù)據(jù)存儲(chǔ)器LCD顯示器串行通信口圖 1 系統(tǒng)組成框圖(二)方案論證與選擇1鍵盤模塊的選擇鍵盤的作用有兩個(gè),一是輸入數(shù)據(jù),二是功能操作。基于此,有很多種方案實(shí)現(xiàn)這一操作。方案一、采用直接式獨(dú)立按鍵操作。這種方案的操作過程,就是直接從單片機(jī) I/O 口引出通上拉電阻,接一按鍵,當(dāng)按鍵按下時(shí),單片機(jī)該端口為“0” ,單片機(jī)通過對(duì)此端口邏輯“0”判斷,來完成按鍵的識(shí)別,達(dá)到數(shù)據(jù)的輸入,功能的實(shí)現(xiàn)。從這一過程可知,完成任務(wù)需要單片機(jī)很多 I/O 口,花費(fèi)

12、了很多 CPU 資源,此種方案不可取。方案二、矩陣鍵盤。矩陣鍵盤,這里采用 4X4 矩陣鍵盤,一共有 16 組情況,實(shí)現(xiàn)的方法也是利用單片機(jī)的 I/O 口,通過上拉電阻相接,4X4 正好用到了單片機(jī)一個(gè)端口。采用這種方案既節(jié)約資源又方便,而且能夠滿足本設(shè)計(jì)的需要。3綜上所述,在本設(shè)計(jì)中采用方案二。2顯示電路模塊的選擇顯示電路的主要任務(wù)是反應(yīng)出操作結(jié)果和相關(guān)商口的信息。根據(jù)此,有四種方案可完這一工作。方案一,可用七段共陽極 LED 數(shù)碼顯示,將商口名稱、單價(jià)等顯示出來,可以完成,將多個(gè) LED 數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè) 8 位 I/O 口控制,而各位的共陽極或共陰極分別由相應(yīng)的 I/

13、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ā)光太弱人眼無法看清,這個(gè)時(shí)間也不能太長,否占用 CPU 時(shí)間太長,由于人眼有視覺暫留現(xiàn)象,只要每一位顯示時(shí)間足夠短,就能夠造成多位同時(shí)顯示的假象,每一位顯示的時(shí)間間隔不能超過 20ms,若時(shí)間間隔太長,就會(huì)造成閃爍現(xiàn)象,采用動(dòng)態(tài)掃描方式,可降低功率消耗。此系統(tǒng),所需數(shù)碼管較多,操作麻煩,并且不直觀,當(dāng)然其發(fā)光數(shù)碼管價(jià)格較便易。在本系統(tǒng)中,此方案不可取。方案二,用 LED 數(shù)碼管矩陣方式顯示,這種方案的

14、顯示的原理和方案一都差不多,用 16X16 點(diǎn)陣排列,將字型分成上下兩個(gè)半部,上半部 16 列,每列用一個(gè)字節(jié)表示(8 個(gè)點(diǎn)) ,下半部也是 16 列,每列也用一個(gè)字節(jié)表示(8 個(gè)點(diǎn)) ,因此每個(gè)字需要 32 個(gè)字節(jié)來表示。當(dāng)然這樣主就可以顯示漢字,但時(shí)和單片機(jī)相連較為復(fù)雜,本系統(tǒng)要許多塊這樣的 16X16 點(diǎn)陣,同時(shí)這種 LED 點(diǎn)陣方式顯示,造價(jià)較高,作為本電路,也是不可取的。方案三,采用帶中文字庫的 LCD 液晶顯示器來完成顯示,128X64 這種顯示器作為本系統(tǒng)設(shè)計(jì),當(dāng)然最好。便考慮到系統(tǒng)成本的問題,帶中文字庫的 LCD 價(jià)格一般都比較貴,采用這種方案,勢(shì)必會(huì)增加設(shè)計(jì)成本。本文也不采用

15、這種方案。方案四,采用兩行字符型顯示器,這種顯示器,用英文顯示相關(guān)信息,操作方便,價(jià)格又較適中,二十多元錢一塊,作為本設(shè)計(jì),是最合適不過。因此,結(jié)合上述方案,在本設(shè)計(jì)中,采用兩行字符型 1602 顯示器。3存儲(chǔ)器電路模塊的選擇存儲(chǔ)器的作用在本設(shè)計(jì)中主要起到基本商品信息的存儲(chǔ),和最后商品的出入信息的存貯。完成這一項(xiàng)工作方案也是多種多樣的。方案一,用紫外線存儲(chǔ)器 ROM,這個(gè)存儲(chǔ)器操作不方便,同時(shí),本設(shè)計(jì)的數(shù)據(jù)4是不斷變化的,因此這種方案不可取。方案二,可以用海量存貯器來完,當(dāng)然這個(gè)完全是可行的,掉電后信息也不會(huì)掉失。它具有低功耗、大容量、擦寫速度快、可整片或分扇區(qū)在系統(tǒng)編程、擦除等特點(diǎn)。并且可由

16、內(nèi)部嵌入的算法完成對(duì)芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。作為一種非易失性存儲(chǔ)器,它在系統(tǒng)中通常用來存放程序代碼。這種存貯器當(dāng)然很好,但是,價(jià)格較貴,同時(shí)和本設(shè)計(jì)的單片機(jī)也不容易實(shí)現(xiàn)接口,因?yàn)閿?shù)據(jù)線和地址較復(fù)雜。 方案三,采用串行鐵電存貯器,可在系統(tǒng)中讀寫,掉電可保存數(shù)據(jù),用 I2C總線進(jìn)行操作,因此需用的單片機(jī)端口較少,站用 CPU 資源較少,同時(shí)價(jià)格也不貴,美中不足之處就是存貯容量沒有海量存貯器大。 根據(jù)上述三種方案,兼顧價(jià)格、容量和可操作性,本設(shè)計(jì)選用第三種方案,也就是用串 E2ROM。4串行通信接口電路的選擇串行通信接口標(biāo)準(zhǔn)經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在 RS-

17、232 標(biāo)準(zhǔn)的基礎(chǔ)上經(jīng)過改進(jìn)而形成的。所以,以 RS-232C 為主來討論。RS-323C 標(biāo)準(zhǔn)是美國 EIA(電子工業(yè)聯(lián)合會(huì))與 BELL 等公司一起開發(fā)的 1969 年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在 020000b/s 范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guā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ī)、鍵盤處理電路、顯示器電路、存儲(chǔ)器電路、串行通信口等。下面將詳細(xì)討論這幾部分電路的設(shè)計(jì)過程。(

18、一)單片機(jī)及其外圍電路設(shè)計(jì)微處理電路采用 AEMEL 公司的單片機(jī),價(jià)格便宜、功能齊全、可靠性高、使用普遍。AT89C51 單片機(jī)是 ATMEL 公司 8 位單片機(jī)系列產(chǎn)品之一,是一種40 引腳雙列直插式芯片。AT89C51 有 4K FLASH;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 工作,但允5許 RAM、定時(shí)器/計(jì)數(shù)器、串行口和中斷系統(tǒng)繼續(xù)工作。掉點(diǎn)方式保持

19、 RAM 內(nèi)容,但振蕩器停止工作,并禁止所有其他部件的工作直到下一個(gè)硬件復(fù)位。它含有 4KB 可反復(fù)燒錄及擦除內(nèi)存和 128 字節(jié)的 RAM,有 32 條可編程控制的 I/O 線,5 個(gè)中斷源,指令與 MCS-51 系列完全兼容。選用它作為核心控制新片,可使電路極大地簡(jiǎn)化,而且程序的編寫及固化也相當(dāng)方便、靈活。主要性能:4KB 可重編程 Flash 存儲(chǔ)器;耐久性:1000 次寫/擦除;2.76V的操作范圍;全靜態(tài)操作:0Hz24MHz;2 極加密程序存儲(chǔ)器;1288 位內(nèi)部RAM;32 條可編程 I/O 引線;2 個(gè) 16 位定時(shí)器/計(jì)數(shù)器;6 個(gè)中斷源;可編程串行UART 通道;直接 LE

20、D 驅(qū)動(dòng)輸出;片內(nèi)模擬比較器;低功耗空載和掉電方式。本系統(tǒng)設(shè)計(jì)電路圖 2 所示:圖 2 單片機(jī)電路圖如圖 2 所示,P0 口為 LCD 的八根數(shù)據(jù)總線,P2.5、P2.6、P2.7 三根線為LCD 的讀寫控制線和使能端。P3.6、P3.7 為存貯器的兩根總線,主要用于數(shù)據(jù)的讀取與存貯。P1 口為矩陣鍵盤列線與行線的接口,實(shí)現(xiàn) 4X4 鍵盤,完成相關(guān)的工能操作,比如說,數(shù)字的輸入,功能操作等。XTAL1 和 XTAL2 口接外部晶體振蕩器,保證單片機(jī)內(nèi)部各部分有序的工作。P3.0、P3.1 口接串行端口,分別作串行數(shù)據(jù)的接收端和發(fā)送端。RST 與 Vss 之間連接一個(gè)下拉電阻,與 Vcc 之間連

21、接一個(gè)電容,目的是保證可靠的復(fù)位。(二)鍵盤電路的設(shè)計(jì)這里采用的是矩陣鍵盤。如圖 3 所示:6圖 3 矩陣鍵盤實(shí)物圖矩陣鍵盤的實(shí)現(xiàn)可采用查詢的辦法,也可以采用中斷的方法。4X4 的意思即:4 根列線,4 根行線,列線通上拉電阻接到電源上,因此無按鍵按下時(shí),各列線均為高電平。當(dāng)行線分別輸出低電平時(shí),有健按下,相應(yīng)的列線上會(huì)出現(xiàn)低電平。根據(jù)此原理,CPU 對(duì)整個(gè)鍵盤進(jìn)行掃描。所謂掃描,即 CPU 不斷輪流對(duì)行線置低電平,然后檢查列線輸入狀態(tài),確定按鍵情況。電路如圖 4 所示:圖 4 矩陣鍵盤圖如圖 4 所示,4X4 矩陣鍵盤,一共有 16 個(gè)按鍵,用單片機(jī)的 P1 口,其內(nèi)部有上接電阻,在此可不用

22、,在確定有按鍵按下后,先把 H1 置為低電平,其它都為高電平,再讀入 H5、H6、H7、H8 的值。若 H5 為“1” ,其它都為“0” ,則“F”按下。依次類推,當(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 液晶顯示屏7LCD 的應(yīng)用很廣泛,簡(jiǎn)單如手表上的液晶顯示屏,儀表儀器上的液晶顯

23、示器或者是電腦筆記本上的液晶顯示器,都使用了 LCD。在一般的辦公設(shè)備上也很常見,如傳真機(jī),復(fù)印機(jī),以及一些娛樂器材玩具等也常常見到 LCD 的足跡。本設(shè)計(jì)要介紹的 LCD 為字符型點(diǎn)陣式 LCD 模塊(Liquid Crystal Display Module)簡(jiǎn)稱 LCM,或者是字符型 LCD。字符型液晶顯示模塊是一類專門用于顯示字母,數(shù)字,符號(hào)等的點(diǎn)陣式液晶顯示模塊。在顯示器件上的電極圖型設(shè)計(jì),它是由若干個(gè) 5*7 或 5*11 等點(diǎn)陣符位組成。每一個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。點(diǎn)陣字符位之間有一空點(diǎn)距的間隔起到了字符間距和行距的作用。目前市面上常用的有 16 字*1 行,16 字*2

24、 行,20 字*2 行和 40 字*2 行等的字符模塊組。這些 LCM 雖然顯示字?jǐn)?shù)各不相同,但是都具有相同的輸入輸出界面。本設(shè)計(jì)將以 WINTECH 16*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 所示:圖 5 LCD 內(nèi)部結(jié)構(gòu)圖目前大多數(shù)的 LCD 液晶顯示器的控制

25、器都有采用一顆型號(hào)為 HD44780 的集成電路作控制器。HD44780 是集控制器,驅(qū)動(dòng)器于一體,專用于字符顯示控制驅(qū)動(dòng)集成電路。HD44780 是字符型液晶顯示控制器的代表電路,HD44780 集成電路的特點(diǎn)有:(1) HD44780 不僅作為控制器而且還具有驅(qū)動(dòng) 40*16 點(diǎn)陣液晶像素的能力,并且 HD44780 的驅(qū)動(dòng)能力可通過外接驅(qū)動(dòng)器擴(kuò)展 360 列驅(qū)動(dòng)。8(2)HD44780 的顯示緩沖區(qū)及用戶自定義的字符發(fā)生器 CGRAM 全部?jī)?nèi)藏在芯片內(nèi)。(3)HD44780 具有適用于 M6800 系列 MPU 的接口,并且接口數(shù)據(jù)傳輸可為 8 位數(shù)據(jù)和 4 位數(shù)據(jù)傳輸兩種方式。(4)H

26、D44780 具有簡(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ù)字、英文字母的

27、大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。比如數(shù)字“1”的代碼是00110001B(31H) ,又如大寫的英文字母“A”代碼是 01000001B(41H) 。表 1 WM-C1602N 的 CGRAM 字符圖形代碼對(duì)應(yīng)表3. LCD 的應(yīng)用9液晶顯示模塊 LCD1602 在顯示“1”時(shí),則只需將 ASCII 碼 31H 存入 DDRAM 即可。顯示時(shí)模塊把地址 31H 中的點(diǎn)陣字符圖形顯示出來,就能看到數(shù)字“1”了。DDRAM 有 80bytes 空間,共可顯示 80 個(gè)字,地址與實(shí)際顯示位置的排列順序跟LCD 的型號(hào)有關(guān)。1602 采用標(biāo)準(zhǔn)的 16 腳接口,如表 2

28、所示。其中 VSS 為地電源,VDD 接 5V 正電源,VL 為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè) 10K 的電位器調(diào)整對(duì)比度。RS 為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。RW 為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng) RS 和 RW 共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng) RS 為低電平 RW 為高電平時(shí)可以讀忙信號(hào),當(dāng) RS 為高電平 RW 為低電平時(shí)可以寫入數(shù)據(jù)。E 端為使能端,當(dāng) E 端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。D0-D7 為 8 位雙向數(shù)據(jù)線。表

29、 2 LCD1602引腳說明表編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2Data I/O2VDD電源正極10D3Data I/O3VL液晶顯示偏壓信號(hào)11D4Data I/O4RS數(shù)據(jù)/命令選擇端(H/L)12D5Data I/O5R/W讀/寫選擇端(H/L)13D6Data I/O6E使能信號(hào)14D7Data I/O7D0Data I/O15BLA背光源正極8D1Data I/O16BLK背光源正極本設(shè)計(jì)電路如圖 6 所示:圖 6 LCD1602 電路連接圖10如圖 6 所示,有八根數(shù)據(jù)線與單片機(jī)的 P0 口相連,三根讀寫控制線,背光調(diào)節(jié)電位器,可調(diào)節(jié)背光亮度。(四)存儲(chǔ)器電路的設(shè)

30、計(jì)本設(shè)計(jì)采用串行鐵電存貯器 FRAM,采用 I2C 總線工作方式。FRAM 鐵電存儲(chǔ)器的核心技術(shù)是美國 Ramtron 公司研制的鐵電晶體材料。這一特殊材料使得鐵電存儲(chǔ)產(chǎn)品同時(shí)擁有隨機(jī)存儲(chǔ)器(RAM)和非易失性存儲(chǔ)器(EPROM、E2ROM、FLash)的特性。1. 鐵電晶體材料的工作原理當(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。中心原子在常溫下沒有電場(chǎng)的作用時(shí)停留在此狀態(tài)達(dá)一百年以上,鐵電存儲(chǔ)器不需要定時(shí)刷新,斷電情況下能保存數(shù)據(jù)不變。由于在整個(gè)物理過程中沒有任何原子碰撞,鐵電存儲(chǔ)器(FRAM)擁有高速讀寫,

31、超低功耗和無限次寫入等特性。2. 存儲(chǔ)器的基礎(chǔ)知識(shí)傳統(tǒng)存儲(chǔ)器有兩大類:易失存儲(chǔ)器(volatile memory)和非易失存儲(chǔ)器(non-volatile memory) ,易失性存儲(chǔ)器像 SRAM 和 DRAM 存儲(chǔ)器在沒有電源的情況下都不能保存數(shù)據(jù),但這種存儲(chǔ)器擁有高性能,存取速度快和無限次的寫入次數(shù),易用等優(yōu)點(diǎn)。非易失性存儲(chǔ)器像 EPROM、E2ROM 和 FLash 能在斷電后保存數(shù)據(jù)不變,但由于所有這些存儲(chǔ)器均起源只讀存儲(chǔ)器(ROM)技術(shù),因此它們都有寫入速度慢,寫入次數(shù)有限和使用時(shí)功耗大等缺點(diǎn)。 表 3 是 16K 位鐵電存儲(chǔ)器(FRAM)的性能和 16K 位 E2ROM 性能比較

32、情況,F(xiàn)RAM 第一個(gè)最明顯的優(yōu)點(diǎn)是:FRAM 可以跟隨總線速度寫入,無需任何等候時(shí)間,而 E2ROM 需等幾毫秒(ms)才能寫入一下數(shù)據(jù)。FRAM 第二大優(yōu)點(diǎn)是幾乎無限次的寫入。E2ROM 的寫入次數(shù)是每百萬次(10 的 6 次方) ,而新一代的鐵電存儲(chǔ)器(FRAM)卻是一億億次(10 的 6 次方)寫入壽命。FRAM 的第三大優(yōu)點(diǎn)是超低功能。E2ROM 的慢速和高電流寫入一個(gè)字節(jié)令它需要高出 FRAM2500 倍的能量。表 3 性能比較表型號(hào)待機(jī)電流寫入電流寫入次數(shù)字節(jié)寫入時(shí)間整片寫入時(shí)間FM2401610UA150US1E1372US47AMSAT24C1618UA3mA1E610MS1

33、.3S11ST24C16300UA3mA1E610MS1.3S24AA16100UA3mA1E610MS1.3SX24C16150UA3mA1E610MS1.3S3. 鐵電存貯器 FRAM 的應(yīng)用FRAM 無限次快速擦寫和非易性的特點(diǎn),令它的系統(tǒng)工程師可以把現(xiàn)在在電路上分離的 SRAM 和 E2ROM 兩種存儲(chǔ)器整合到一個(gè) FRAM 里,為整個(gè)系統(tǒng)節(jié)省了功耗,降低了成本,減小了體積,同時(shí)增加了整個(gè)系統(tǒng)的可靠性。 典型應(yīng)用包括:儀器儀表、工業(yè)控制、家用電器、復(fù)印機(jī)、打印機(jī)、機(jī)頂盒、網(wǎng)絡(luò)設(shè)備、游戲機(jī)、計(jì)算機(jī)等等。 4. I2C 總線知識(shí)該存貯器采用 I2C 總線方式工作,在軟件操作時(shí),就得用 I2

34、C 總線方式進(jìn)行讀寫。I2C 總線是由 PHILIPS 公司發(fā)明的一種高性能芯片間串行同步傳輸總線。與SPI、MicroWire 接口不同,它僅僅需要兩根信號(hào)線(串行數(shù)據(jù)線 SDA 和串行時(shí)鐘線 SCL) ,就實(shí)現(xiàn)了完善的雙工同步數(shù)據(jù)傳送,能夠極其方便地構(gòu)成多機(jī)系統(tǒng)和外圍器件擴(kuò)展系統(tǒng)。I2C 總線采用了器件地址的硬件設(shè)置方法,通過軟件尋址完全避免了器件的片選線尋址端,從而使硬件系統(tǒng)具有更簡(jiǎn)單、更靈活的擴(kuò)展方法。鑒于 I2C 總線的眾多功能優(yōu)越性,目前,以 PHILIPS 公司為主的許多著名半導(dǎo)體制造公司,紛紛研制出了大量的種類繁多的(已經(jīng)達(dá)數(shù)百種型號(hào))帶有 I2C總線硬件接口的單片機(jī)、通用外圍

35、器件,例如RAM、EEPROM、NVRAM、I/O、ADC、DAC、日歷時(shí)鐘 RTC、LED 驅(qū)動(dòng)器、LCD 驅(qū)動(dòng)器、溫度傳感器等等。另外,還開發(fā)了面向一些特殊應(yīng)用系統(tǒng)中專用配套的 I2C 總線芯片,例如無線電、無繩電話、移動(dòng)手機(jī)、電視機(jī)、音響系統(tǒng)、家庭影院等系統(tǒng)中的雙音多頻(DTMF)撥號(hào)器、語音合成器、數(shù)字調(diào)諧器、編碼器、解碼器、圖像處理器、頻率合成器、音調(diào)控制器、立體聲處理器等等。本設(shè)計(jì)電路如圖 7:12圖 7 存儲(chǔ)器電路圖如圖 7 所示,電路用 24C64 存貯器,A0、A1、A2 為地址選擇端,主要作用是用于級(jí)連,在總線上掛接多個(gè)這樣的存貯器時(shí)使用,VSS 為接地端,VCC 為電源正

36、極連接端,WP 為寫保護(hù)控制端,SCL、SDA 分別為 I2C 總線的串行時(shí)鐘連接端和串行數(shù)據(jù)連接端,數(shù)據(jù)的寫入與讀出就是通過這個(gè)端兩個(gè)端操作的,同時(shí)電路中在這兩個(gè)端口加了兩只上接電阻,作用是由于存貯器內(nèi)部是采用開漏輸出的。(五)串行通信接口電路的設(shè)計(jì)串行通信接口標(biāo)準(zhǔn)經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在 RS-232C 標(biāo)準(zhǔn)的基礎(chǔ)上經(jīng)過改進(jìn)而形成的。RS-323C 標(biāo)準(zhǔn)是美國 EIA(電子工業(yè)聯(lián)合會(huì))與BELL 等公司一起開發(fā)的 1969 年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在020000b/s 范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問題,如信號(hào)線功能、電器特性都作了明確規(guī)定。由于通

37、行設(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(Electronic Industry Association)代表美國電子工業(yè)協(xié)會(huì),RS(ecommeded standard)代表推薦標(biāo)準(zhǔn),232 是標(biāo)識(shí)號(hào),C 代表 RS232 的最新一次修改(1969),在這之前,有 RS232B、RS232A。它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過程。常用物理標(biāo)準(zhǔn)還有有 EIARS-232-C、EIARS-422-A、EIARS-423A、EIARS

38、-485。 這里只介紹 EIARS-232-C(簡(jiǎn)稱 232,RS232)。 例如,目前在 IBM PC 機(jī)上的 COM1、COM2 接口,就是 RS-232C 接口。1. RS-232C 電氣特性RS-232C 標(biāo)準(zhǔn)(協(xié)議)的全稱是 EIA-RS-232C 標(biāo)準(zhǔn),其中 EIA(Electronic Industry Association)代表美國電子工業(yè)協(xié)會(huì),RS(ecommeded standard)代表推薦標(biāo)準(zhǔn),232 是標(biāo)識(shí)號(hào),C 代表 RS232 的最新一次修改(1969),在這之前,13有 RS232B、RS232A。它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過程。常用物理標(biāo)

39、準(zhǔn)還有有 EIARS-232-C、EIARS-422-A、EIARS-423A、EIARS-485。 這里只介紹 EIARS-232-C(簡(jiǎn)稱 232,RS232)。 例如,目前在 IBM PC 機(jī)上的 COM1、COM2 接口,就是 RS-232C 接口。EIA-RS-232C 對(duì)電器特性、邏輯電平和各種信號(hào)線功能都作了規(guī)定,如下:(1)在 TxD 和 RxD 上,邏輯 1(MARK)=-3V-15V;(2)邏輯 0(SPACE)=+315V;(3)在 RTS、CTS、DSR、DTR 和 DCD 等控制線上;(4)信號(hào)有效(接通,ON 狀態(tài),正電壓)+3V+15V;(5)信號(hào)無效(斷開,OF

40、F 狀態(tài),負(fù)電壓)=-3V-15V。以上規(guī)定說明了 RS-323C 標(biāo)準(zhǔn)對(duì)邏輯電平的定義。對(duì)于數(shù)據(jù)(信息碼):邏輯“1”(傳號(hào))的電平低于-3V,邏輯“0”(空號(hào))的電平告語+3V;對(duì)于控制信號(hào);接通狀態(tài)(ON)即信號(hào)有效的電平高于+3V,斷開狀態(tài)(OFF)即信號(hào)無效的電平低于-3V,也就是當(dāng)傳輸電平的絕對(duì)值大于 3V時(shí),電路可以有效地檢查出來,介于-3+3V 之間的電壓無意義,低于-15V 或高于+15V 的電壓也認(rèn)為無意義,因此,應(yīng)保證電平在(315)V 之間。2. 連接器的機(jī)械特性:連接器:由于 RS-232C 并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15 和 DB-9

41、各種類型的連接器,其引腳的定義也各不相同。下面分別介紹兩種連接器。(1)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 腳) 。(2)DB-9 連接器:在 AT 機(jī)及以后,不支持 20mA 電流環(huán)接口,使用 DB-9 連接器,作為提供14多功能 I/O 卡或主板

42、上 COM1 和 COM2 兩個(gè)串行接口的連接器。它只提供異步通信的 9 個(gè)信號(hào)。DB-25 型連接器的引腳分配與 DB-25 型引腳信號(hào)完全不同。因此,若與配接 DB-25 型連接器的 DCE 設(shè)備連接,必須使用專門的電纜線。電纜長度:在通信速率低于 20kb/s 時(shí),RS-232C 所直接連接的最大物理距離為 15m(50 英尺)。最大直接傳輸距離說明:RS-232C 標(biāo)準(zhǔn)規(guī)定,若不使用 MODEM,在碼元畸變小于 4%的情況下,DTE 和 DCE 之間最大傳輸距離為 15m(50 英尺) ??梢娺@個(gè)最大的距離是在碼元畸變小于 4%的前提下給出的。為了保證碼元畸變小于 4%的要求,接口標(biāo)準(zhǔn)

43、在電氣特性中規(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ī)通過這個(gè)端口讀取 PC 機(jī)等送來的信號(hào),TXD 為數(shù)據(jù)發(fā)送端口,主要向 PC 等設(shè)備發(fā)送信號(hào)。圖右邊還有一個(gè) 9 針串行通信口,主要和 PC 機(jī)相

44、連。15四、系統(tǒng)軟件程序設(shè)計(jì) 本設(shè)計(jì)程序共分成五個(gè)部分:鍵盤處理程序、LCD 顯示程序、單片機(jī)內(nèi)部數(shù)據(jù)處程序、存貯程序、串口和 PC 機(jī)通信程序。(一)單片機(jī)內(nèi)部數(shù)據(jù)處理程序單片機(jī)內(nèi)部數(shù)據(jù)處理程序,即是系統(tǒng)的主程序。當(dāng)插上電源后,單片機(jī)對(duì)系統(tǒng)進(jìn)行一系列的初始化,包括 LCD 顯示初始化,串口初始化和菜單的初始化,以及判斷有無按鍵按下,并做出相應(yīng)的處理。主程序流程圖如圖 9:圖 9 主程序流程圖(二)鍵盤處理程序鍵盤處理程序,主要作用就是通過用戶的按鍵識(shí)別,判斷當(dāng)前的系統(tǒng)任務(wù),通過前面的硬件分析,采用 4X4 矩陣,一共十六組狀態(tài)。一方面是數(shù)字的輸入輸出,另一方面的一系列的功能操作。經(jīng)過鍵盤掃描

45、程序掃描是否有按鍵按下,如果有再判斷是數(shù)字鍵還是功能鍵,并做出相應(yīng)的處理;如果沒有則返回繼續(xù)檢查有克按鍵按下。鍵盤處理程序流程圖如圖 10 所示。16圖 10 鍵盤處理程序流程圖(三)LCD 液晶顯示程序LCD 處理程序,完成信息的顯示,包括商品號(hào),單價(jià),數(shù)量,總計(jì)金額等這些資料。LCD 根據(jù)鍵盤處理程序中按鍵的性質(zhì)(數(shù)字鍵還是功能鍵)來操作。流程圖如圖 1117圖 11 LCD 顯示流程圖(四)串口通信程序串口通信程序,完成將完交的數(shù)量,以及總金額,賣出與進(jìn)入的商品告知 PC機(jī)完成匯總。流程圖如圖 12:18圖 12 串口通信流程圖(五)存儲(chǔ)器程序存貯器程序,完成對(duì) 24C64 的數(shù)據(jù)讀取與

46、寫入,同時(shí)要有掉電保存的功能。流程圖如圖 13:圖 13 存儲(chǔ)器流程圖19五、設(shè)計(jì)總結(jié)本系統(tǒng)的制作,性能和效果都比較好,通過鍵盤有操作,LCD 直觀的顯示,和串口的通信及信息的存貯都能達(dá)到設(shè)計(jì)的要求,實(shí)現(xiàn)超市簡(jiǎn)易的收款工作。本設(shè)計(jì)的成本較低,操作簡(jiǎn)單。但是,本設(shè)計(jì)也存在上些不足,比如 LCD 字符型液晶顯示器不帶有中文字庫,不能顯示中文,這樣顯示的內(nèi)容不是很直觀。再如,系統(tǒng)沒有留出打印口,不能打印出憑條等等。不過,在本設(shè)計(jì)的基礎(chǔ)上很容易通過改善設(shè)備,對(duì)系統(tǒng)進(jìn)行升級(jí),使功能更齊全,設(shè)計(jì)更完美。通過這次的畢業(yè)設(shè)計(jì),我體會(huì)到應(yīng)該掌握豐富的理論知識(shí),理論知識(shí)是設(shè)計(jì)的前提。但同時(shí)又決不能局限于理論。在設(shè)

47、計(jì)過程中,深深感受到自己在對(duì)一些器件的了解上,還存在很大差距,對(duì)他們的功能,參數(shù)都不是太熟悉。但是通過這次理論與實(shí)際的結(jié)合之后,認(rèn)識(shí)比以前有不少提高。六、致謝本畢業(yè)設(shè)計(jì),在設(shè)計(jì)過程中,從理論到實(shí)踐,從畫框圖,到具體電路,從學(xué)習(xí)認(rèn)識(shí)元器件,到最后完成一個(gè)系統(tǒng),從中學(xué)習(xí)了許多新的專業(yè)知識(shí),同時(shí)也學(xué)會(huì)了許多社會(huì)人文知識(shí)。在此,對(duì)我畢業(yè)設(shè)計(jì)提拱指導(dǎo)幫助的所有老師,表示是忠心的感謝,對(duì)在設(shè)計(jì)過程中遇到困難時(shí),得到同仁們幫助的朋友、同學(xué),表示誠摯的謝意!真誠感謝成都學(xué)院的領(lǐng)導(dǎo)和老師,感謝電信教研室的各位老師,他們?cè)谖移匠5膶W(xué)習(xí)與日常生活中,給了我許多關(guān)心與幫助。在此我表示深深的感謝!20附錄附錄一 硬件原

48、理圖21附錄二 硬件 PCB 圖22附錄三 原程序代碼1、主程序代碼#include unsigned char w,cc=0;unsigned char str16=0;/液晶顯示顯存#include lcd.h /包含液晶顯示器的一些操作函數(shù)#include iic.h /24C64 的讀寫函數(shù)#include urat.h /串行口的操作函數(shù)#include manage.h /按鍵功能函數(shù)#include key4.h /按鍵檢測(cè)和鍵值讀取函數(shù) /bit w24c64,r24c64;void main() initlcd(); /初始 LCD initurat(); /初始串口 men

49、u(); /初始菜單 /inorder(0 xc0);/indata(0 x38);/測(cè)試 LCD 第二行是否顯示 while(1) key1(); if(w!=0) /如果有鍵按下則讀鍵值 key2(w); /讀鍵值 /*結(jié)束*/2、鍵盤代碼unsigned char w1,w2;void key1(void) P1=0 x0f; w1=P1&0 x0f; if(w1!=0 x0f) / 按鍵 delay(100); if(w1!=0 x0f) /再一次檢測(cè)按鍵 P1=0 xf0; w2=P1&0 xf0; w=(w1 | w2); else w=0; /未按鍵23/-/unsigned c

50、harvoid key2(unsigned char j) unsigned char i; switch(j) /-以下為數(shù)字鍵 case 0 x77: i=0 x30;indata(i);strcc+=0;break; case 0 x7b: i=0 x31;indata(i);strcc+=1;break; case 0 x7d: i=0 x32;indata(i);strcc+=2;break; case 0 x7e: i=0 x33;indata(i);strcc+=3;break; case 0 xb7: i=0 x34;indata(i);strcc+=4;break; case

51、 0 xbb: i=0 x35;indata(i);strcc+=5;break; case 0 xbd: i=0 x36;indata(i);strcc+=6;break; case 0 xbe: i=0 x37;indata(i);strcc+=7;break; case 0 xd7: i=0 x38;indata(i);strcc+=8;break; case 0 xdb: i=0 x39;indata(i);strcc+=9;break; /以下為功能鍵 case 0 xDD: manage_key1();i=0;break;/A 寫 24C64 case 0 xDE: manage_

52、key2();i=0;break;/B 讀 24C64 case 0 xE7: manage_key3();i=0;break;/C 串行通訊,發(fā)送數(shù)據(jù) case 0 xeb: manage_key4();i=0;break;/D 串行通訊,接受數(shù)據(jù) case 0 xED: manage_key5();i=0;break;/E 顯示計(jì)算結(jié)果 case 0 xEE: manage_key6();i=0; /f 清屏 while(1) /等待按鍵的釋放 key1(); if(w1=0 x0f) delay(10); if(w1=0 x0f) break; /*結(jié)束*/3、液晶顯示器代碼#inclu

53、de#define RS P2_5 /定義 LCD 控制口#define RW P2_6#define E P2_7#define XS P024void busy(void) /檢查忙信號(hào) _nop_(); do XS=0 xff; RS=0; RW=1; E=0; _nop_(); E=1; while(P0_7); void inorder(unsigned char order)/寫命令 XS=order; RS=0; RW=0; E=0;busy();E=1; void indata(unsigned char datar) /寫數(shù)據(jù) XS=datar; RS=1; RW=0; E=

54、0; busy(); E=1;void initlcd (void) inorder(0 x01); inorder(0X38);/8 位 2 行 5X7 點(diǎn)陣 inorder(0X0f);/顯示器開,光標(biāo)開,閃爍開 inorder(0X06);/文字不動(dòng),光標(biāo)自動(dòng)右移 inorder(0 x01);/清顯示/=顯示處理程序=void xianshi(void) unsigned long x,y,z,sum;x=(str0*100+str1*10+str2); /得到“貨號(hào)”y=(str3*1000+str4*100+str5*10+str6); /得到“單價(jià)”值(3 位數(shù)) z=(str7

55、*100+str8*10+str9); /得到“數(shù)量”值(3 位數(shù))25sum= y*z; /總價(jià)=單價(jià)*數(shù)量str10=sum/100000; /十萬位str11=(sum%100000)/10000; /萬位str12=(sum%100000)%10000)/1000; /千位str13=(sum%100000)%10000)%1000)/100; /百位str14=(sum%100000)%10000)%1000)%100)/10; /十位str15=(sum%100000)%10000)%1000)%100)%10; /個(gè)位/*菜單顯示*/在第一行顯示 NO. price amount

56、 sum(¥)void menu(void) inorder(0 x80); /光標(biāo)指向 LCD 第二行首地址 indata(0 x4e); /NO. indata(0 x4f); indata(0 x20); /空格 indata(0 x44); /price indata(0 x4A); indata(0 x20); /空格 indata(0 x20); /空格 indata(0 x53); /amount indata(0 x4C); indata(0 x20); /空格 indata(0 x53); /Sum(¥) indata(0 x75); indata(0 x6D); indat

57、a(0 x28); indata(0 x5C); indata(0 x29); inorder(0 xc0);/光標(biāo)指向 LCD 第二行首地址/*結(jié)束*/4、串行口程序代碼#define uchar unsigned charvoid initial();void sendd();void received();/*串行口初始化*/void initurat(void) TMOD=0 x20; TL1=0 xe8; TH1=0 xe8; SCON=0 x50;26 TR1=1; /*發(fā)送數(shù)據(jù)*/void sendd( ) uchar i;for(i=0;i16;i+) TI=0; SBUF=s

58、tri; while(TI=0); /*接收數(shù)據(jù)*/void received()uchar i; /while(i=SBUF)!=0 x01); / RI=0; while(RI=0);for(i=0;i16;i+) RI=0; stri=SBUF; while(RI=0); /*結(jié)束*/5、24C64 的讀寫程序代碼#include#define uchar unsigned char#define sda P3_6 /定義 SDA 口#define scl P3_7/定義 SCL 口/-void delay(uchar a)/24C64 和其他一些地方需要的延時(shí)函 uchar b,c;

59、for(b=0;ba;b+) for(c=0;c225;c+);/-void start(void) /開始總線的活動(dòng) sda=1; scl=1;27_nop_();_nop_(); _nop_(); _nop_(); sda=0; _nop_();_nop_();_nop_(); _nop_(); /- void stop(void) /停止總線活動(dòng),器件進(jìn)入低功耗狀態(tài) sda=0; _nop_();_nop_();_nop_();_nop_(); scl=1; _nop_();_nop_();_nop_();_nop_(); sda=1; _nop_();_nop_();_nop_();_

60、nop_(); /- void ack(void) /應(yīng)答信號(hào) sda=0; _nop_();_nop_();_nop_();_nop_(); scl=1;_nop_();_nop_();_nop_();_nop_(); scl=0; /允許從器件改變當(dāng)前 SDA 的狀態(tài),以便于下一次的讀入 /- void noack(void)/無應(yīng)答信號(hào) sda=1; _nop_();_nop_();_nop_();_nop_(); scl=1; _nop_();_nop_();_nop_();_nop_(); scl=0; /- void checkack(void) _nop_();_nop_();_

61、nop_();_nop_(); scl=1; if(sda) scl=0; else _nop_();_nop_();_nop_();_nop_(); scl=0;28 /- void send(uchar kk) /寫入一個(gè)字節(jié) uchar bitcounter=8; uchar temp; do temp=kk; scl=0; _nop_();_nop_();_nop_();_nop_(); if(temp&0 x80)=0 x80) /數(shù)據(jù)的發(fā)送為高位在前,低位在后 sda=1; elsesda=0; scl=1; temp=kk1; kk=temp; bitcounter-; whil

62、e(bitcounter); scl=0; uchar read(void) /讀出一個(gè)字節(jié) uchar temp=0; uchar temp1=0; uchar bitcounter=8; sda=1; do scl=0; _nop_();_nop_();_nop_();_nop_(); scl=1; _nop_();_nop_();_nop_();_nop_(); if(sda) temp=temp|0 x01; /數(shù)據(jù)的讀入為高位在前,低位在后 else temp=temp&0 xfe; if(bitcounter-1) temp1=temp1; temp=temp1; bitcount

63、er- while(bitcounter); /讀入 8 位29 return temp;/發(fā)送命令和操作對(duì)象給 24c64void writenbyte(uchar *adata,uchar address) uchar bb; /定義寫字節(jié)數(shù)變量 bb for(bb=0;bb16;bb+) /寫入 16 個(gè)字節(jié) start(); /器件地址 send(0 xa0);checkack(); send(0 x00); /從器件內(nèi)部高地址 checkack(); send(address+bb); /從器件內(nèi)部地址低位 checkack(); send(adatabb); checkack();

64、 stop(); delay(40); void readnbyte(uchar *adata,uchar address) uchar i; /定義讀字節(jié)數(shù)變量 i for(i=0;i16;i+) start();send(0 xa0);ack();send(0 x00); /從器件內(nèi)部高地址ack();send(address+i); /從器件內(nèi)部地址低位ack();start();send(0 xa1);ack(); adatai=read(); /讀取操作數(shù)scl=0;noack();stop(); /*結(jié)束*/30參考文獻(xiàn)1 余永權(quán).ATMEL89 系列單片機(jī)應(yīng)用技術(shù).北京航空航天大學(xué)出版社2 何立民.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù).北京航空航天大學(xué)出版社3 康光華.數(shù)字電路.華中科技大學(xué)出版社 4 康光華.模擬電路.華中科技大學(xué)出版社5 寧改娣,危建國.C51 程序設(shè)計(jì).科學(xué)出版社6 譚浩強(qiáng).C 語音程序設(shè)計(jì)(第二版).清華大學(xué)出版社

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲