畢業(yè)論文--基于單片機(jī)的自動(dòng)售貨機(jī)的系統(tǒng)設(shè)計(jì)_第1頁
已閱讀1頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)論文(設(shè)計(jì))</p><p>  基于單片機(jī)的自動(dòng)售貨機(jī)的系統(tǒng)設(shè)計(jì)</p><p>  姓 名: **** </p><p>  學(xué) 號(hào): ********* </p><p>  專 業(yè): ***** </p><p>  院

2、 系: *************** </p><p>  指導(dǎo)老師: ****** </p><p>  職稱學(xué)歷: ********* </p><p>  完成時(shí)間: **************** </p><p><b>  教務(wù)處制</b></p><p&

3、gt;  基于單片機(jī)的自動(dòng)售貨機(jī)的系統(tǒng)設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  本文設(shè)計(jì)了一種以STC89C52單片機(jī)為核心,采用集中控制方式實(shí)現(xiàn)了對自動(dòng)售貨機(jī)全過程的自動(dòng)控制。本系統(tǒng)選擇3×3矩陣式鍵盤作為控制按鍵,實(shí)現(xiàn)貨物的掉出、退幣以及貨幣數(shù)的LCD顯示等功能。</p><p>  關(guān)鍵詞: STC

4、89C52,自動(dòng)售貨機(jī),鍵盤控制,LCD顯示</p><p>  Design of automatic system of vending machine based on Microcontroller</p><p><b>  Abstract</b></p><p>  This paper introduces a design o

5、f STC89C52 microcontroller as the core, adopts the centralized control method to realize the automatic control of the whole process of automatic vending machine. In this system, 3 * 3 matrix keyboard as the control butto

6、n, realize the goods out of, the coin and currency number LCD display and other functions.</p><p>  Keywords:STC89C52, vending machine, keyboard control, LCD display</p><p><b>  目 錄</

7、b></p><p><b>  1 緒 論1</b></p><p>  2 自動(dòng)售貨機(jī)系統(tǒng)總體設(shè)計(jì)方案2</p><p>  2.1 工作原理2</p><p>  2.2 項(xiàng)目要求3</p><p>  2.2.1 硬件設(shè)計(jì)要求3</p><p>

8、  2.2.2 軟件設(shè)計(jì)要求4</p><p>  3 控制系統(tǒng)的硬件電路設(shè)計(jì)5</p><p>  3.1 硬件設(shè)計(jì)概述5</p><p>  3.2 微控制器5</p><p>  3.3 貨幣識(shí)別系統(tǒng)6</p><p>  3.3 LCD顯示系統(tǒng)模塊8</p><p>  3.

9、4 提示程序模塊9</p><p>  4 控制系統(tǒng)的軟件設(shè)計(jì)10</p><p>  4.1軟件設(shè)計(jì)概述10</p><p>  4.2 主程序10</p><p>  4.3 鍵盤程序設(shè)計(jì)12</p><p>  4.4 字符型液晶顯示模塊程序設(shè)計(jì)13</p><p>  4.5

10、 提示模塊程序設(shè)計(jì)16</p><p>  5 結(jié) 論18</p><p><b>  致 謝19</b></p><p><b>  參考文獻(xiàn)20</b></p><p>  附 錄1 主函數(shù)程序21</p><p>  附 錄2 TC1602AL

11、顯示程序24</p><p>  附 錄3 提示程序27</p><p>  附 錄4 總原理圖28</p><p><b>  1 緒 論</b></p><p>  自動(dòng)售貨機(jī)是一種全新的商業(yè)零售形式,20世紀(jì)70年代自日本和歐美發(fā)展起來。它又被稱為24小時(shí)營業(yè)的微型超市。從自動(dòng)售貨機(jī)的發(fā)展趨勢來看

12、,它的出現(xiàn)是由于勞動(dòng)密集型的產(chǎn)業(yè)構(gòu)造向技術(shù)密集型社會(huì)轉(zhuǎn)變的產(chǎn)物。大量生產(chǎn)、大量消費(fèi)以及消費(fèi)模式和銷售環(huán)境的變化,要求出現(xiàn)新的流通渠道;而相對的超市、百貨購物中心等新的流通渠道的產(chǎn)生,人工費(fèi)用也不斷上升;再加上場地的局限性以及購物的便利性等這些因素的制約,無人自動(dòng)售貨機(jī)作為一種必須的機(jī)器便應(yīng)運(yùn)而生了。</p><p>  從廣義來講投入硬幣、紙幣、信用卡等后便可以銷售商品的機(jī)械,從狹義來講就是自動(dòng)銷售商品的機(jī)械。從

13、供給的條件看,自動(dòng)售貨機(jī)可以充分補(bǔ)充人力資源的不足,適應(yīng)消費(fèi)環(huán)境和消費(fèi)模式的變化,24小時(shí)無人售貨的系統(tǒng)可以更省力,運(yùn)營時(shí)需要的資本少、面積小,有吸引人們購買好奇心的自身性能,可以很好地解決人工費(fèi)用上升的問題等各項(xiàng)優(yōu)點(diǎn)。 此次自動(dòng)售貨機(jī)的設(shè)計(jì)是以單片機(jī)為核心的自動(dòng)化控制裝置,它集按鍵選擇技術(shù)、單片機(jī)技術(shù)和顯示技術(shù)于一體。因此,在商業(yè)、生活中得到了廣泛的應(yīng)用。有些自動(dòng)售貨機(jī)不僅能夠自動(dòng)識(shí)別1元、5角硬幣,而且能夠自動(dòng)識(shí)別20元、10元、5

14、元紙幣,還會(huì)自動(dòng)找零,人機(jī)對話的應(yīng)用性提高使自動(dòng)售貨機(jī)在國內(nèi)外大面積普及成為可能。</p><p>  隨著科技的發(fā)展及人們生活水平的提高,自動(dòng)售貨機(jī)市場越來越呈現(xiàn)出多元化及個(gè)性化的需求。人們通過自動(dòng)售貨機(jī)自助購物,這種簡單、快捷的方式正逐漸成為市民的一種新的消費(fèi)時(shí)尚,并且滿足了人們在當(dāng)今科技高速發(fā)展的現(xiàn)代社會(huì)追求高品質(zhì)生活的需要。自動(dòng)售貨機(jī)在城市商業(yè)區(qū)、寫字樓大廳、風(fēng)景區(qū)、車站、碼頭、繁華街道等公共場所的布設(shè)能

15、夠美化城市環(huán)境,方便群眾生活,它已經(jīng)成為城市各角落的一道亮麗風(fēng)景線。</p><p>  自動(dòng)售貨機(jī)必將在國內(nèi)普及,并成為城市現(xiàn)代文明程度的一種象征性標(biāo)志。 本文詳細(xì)介紹了如何控制、要求進(jìn)行自動(dòng)售貨機(jī)系統(tǒng)的方案設(shè)計(jì)、硬件選擇、軟件規(guī)劃和編寫,并重點(diǎn)描述了自動(dòng)售貨機(jī)系統(tǒng)的工作原理、系統(tǒng)設(shè)計(jì)、軟件編程的原則和技巧。</p><p>  2 自動(dòng)售貨機(jī)系統(tǒng)總體設(shè)計(jì)方案</p>&l

16、t;p>  該章節(jié)對自動(dòng)售貨機(jī)的控制系統(tǒng)進(jìn)行完整的功能需求分析,并確定總體設(shè)計(jì)方案,這是完成系統(tǒng)設(shè)計(jì)的前提。這不僅有助于時(shí)間的合理計(jì)劃和安排,還可以避免因盲目進(jìn)行設(shè)計(jì)而達(dá)不到要求的情況。</p><p><b>  2.1 工作原理</b></p><p>  自動(dòng)售貨機(jī)是集機(jī)、電的獨(dú)立智能化售貨設(shè)備,只需顧客進(jìn)行投幣、選貨、退幣等簡單的操作選擇,就能夠方便快捷

17、地購買到想要的商品。其工作程序如下圖2.1</p><p>  圖2.1 自動(dòng)售貨機(jī)的工作時(shí)序圖</p><p>  自動(dòng)售貨機(jī)的工作時(shí)序是:</p><p>  顧客從投幣口投入貨幣,然后通過貨幣識(shí)別器采集數(shù)據(jù)、識(shí)別判斷貨幣的真?zhèn)尾⑴袆e面值,并把信息數(shù)據(jù)傳給主控系統(tǒng)通信,啟動(dòng)售貨機(jī)的貨物選擇鍵和退幣按鈕,并等待顧客按鍵選擇貨物。顧客選擇貨物后,自動(dòng)售貨機(jī)把貨物準(zhǔn)確

18、送出領(lǐng)貨口,顧客再取走貨物。如果售貨機(jī)內(nèi)還有顧客未用完的貨幣,顧客可以選擇按下退幣按鈕進(jìn)行取零或者繼續(xù)買商品;如果款額不夠但還有余額,顧客依然可以按下退幣按鈕取零;如果沒有余額,售貨機(jī)將自動(dòng)調(diào)成售貨結(jié)束。最后系統(tǒng)復(fù)零,完成售貨。</p><p><b>  2.2 項(xiàng)目要求</b></p><p>  此次自動(dòng)售貨機(jī)設(shè)計(jì)將滿足一下幾點(diǎn)要求:主控制系統(tǒng)對貨幣識(shí)別器識(shí)別的

19、金額進(jìn)行記錄,根據(jù)金額數(shù)通過LCD顯示器跟蹤顯示,同時(shí)售貨機(jī)將貨物選擇權(quán)提供用戶,用戶選擇貨物后,單片機(jī)發(fā)出指令將所選商品從儲(chǔ)貨倉送到取物口。其功能描述:貨物種類一共設(shè)有8種,這8種物品分別對應(yīng)著8個(gè)不同的按鍵選擇,其中價(jià)格不等的物品各3種,1元的有3個(gè)可選按鍵,2元的有3個(gè)可選按鍵,3元的有2個(gè)可選按鍵;自動(dòng)售貨機(jī)將顧客投的貨幣進(jìn)行金額累加。投了幾次貨幣后,這樣機(jī)器就會(huì)把投入的貨幣總額數(shù)目大小輸入中央控制元器件,進(jìn)行處理。如果累計(jì)投入

20、的貨幣數(shù)目多于物品的設(shè)定價(jià)格,機(jī)器能夠?qū)崿F(xiàn)找錢功能,或者顧客可以繼續(xù)選擇貨物;如果投入的貨幣沒有達(dá)到所選擇物品的預(yù)設(shè)價(jià)格時(shí),投入的錢將全部退還。</p><p>  2.2.1 硬件設(shè)計(jì)要求</p><p>  控制系統(tǒng)要完成圖2-1中的各個(gè)環(huán)節(jié),應(yīng)具備中央處理模塊(微控制器),鍵盤輸入模塊,報(bào)警提示模塊,數(shù)額顯示模塊、貨幣識(shí)別模塊和電機(jī)驅(qū)動(dòng)模塊等,電機(jī)驅(qū)動(dòng)模塊是自動(dòng)售貨設(shè)計(jì)當(dāng)中比較重要的

21、一塊,涉及到送出貨物的功能。對于驅(qū)動(dòng)電機(jī)是如何設(shè)計(jì)、如何工作的,在這里將不做進(jìn)一步的研究。本課題設(shè)計(jì)主要是要實(shí)現(xiàn)自動(dòng)售貨機(jī)的投幣總數(shù)顯示、貨物選擇、出貨(用發(fā)光二極管替代)以及找零功能。在本次設(shè)計(jì)中用P2.0~P2.7作為送出貨物輸出接口,以發(fā)光二極管作為出貨狀態(tài)。這就需要控制系統(tǒng)提供如表2.1中所列的外設(shè)器件。</p><p>  表2.1 硬件電路接口列表</p><p>  這些外設(shè)

22、元器件的總體原理框架如圖2.2所示</p><p>  圖2.2 硬件系統(tǒng)總體框架圖</p><p>  2.2.2 軟件設(shè)計(jì)要求</p><p>  控制系統(tǒng)的軟件應(yīng)包括主程序、啟動(dòng)退幣系統(tǒng)程序、貨幣數(shù)額顯示程序以及提示程序四個(gè)部分。參照國內(nèi)外自動(dòng)售貨機(jī)的系統(tǒng)設(shè)計(jì)實(shí)例,結(jié)合自身硬件特點(diǎn),系統(tǒng)要編寫的程序需滿足以下特點(diǎn)和要求:1、友好的人機(jī)交互界面,簡易的操作步驟和

23、可靠的銷售流程;2、鍵盤模塊能夠激活自動(dòng)售貨機(jī)的售貨系統(tǒng),同時(shí)完成對商品的選擇操作以及對貨幣識(shí)別器的退幣系統(tǒng)的啟動(dòng);3、語音提示模塊要實(shí)現(xiàn)選取貨物時(shí)金額不足的提示功能。本文第四章將重點(diǎn)講述軟件程序的設(shè)計(jì)。</p><p>  3 控制系統(tǒng)的硬件電路設(shè)計(jì)</p><p>  3.1 硬件設(shè)計(jì)概述</p><p>  硬件是控制系統(tǒng)的物理載體,硬件設(shè)計(jì)是整個(gè)設(shè)計(jì)的基礎(chǔ)環(huán)

24、節(jié)。根據(jù)對第2.2.1節(jié)的硬件設(shè)計(jì)要求可知,此次控制系統(tǒng)的構(gòu)成模塊應(yīng)包括:中央處理模塊(微控制器),鍵盤輸入模塊,語音提示模塊,LCD顯示模塊和MDB貨幣識(shí)別模塊。各元器件的選用質(zhì)量在此次設(shè)計(jì)中很重要,是否合理直接影響控制系統(tǒng)的設(shè)計(jì)質(zhì)量,要以經(jīng)濟(jì)適用、穩(wěn)定可靠為原則進(jìn)行設(shè)計(jì)。</p><p><b>  3.2 微控制器</b></p><p>  微控制器是將微型計(jì)

25、算機(jī)的主要部分集成在一個(gè)芯片上的單芯片微型計(jì)算機(jī)。微控制器誕生于20世紀(jì)70年代中期,經(jīng)過30多年的發(fā)展,其成本越來越低,而性能越來越強(qiáng)大,這使其應(yīng)用已經(jīng)無處不在,遍及各個(gè)領(lǐng)域。例如電機(jī)控制、條碼閱讀器/掃描器、消費(fèi)類電子、游戲設(shè)備、電話、HVAC、樓宇安全與門禁控制、工業(yè)控制與自動(dòng)化和白色家電(洗衣機(jī)、微波爐)等。微控制器主要分為單片機(jī)、DSP、ARM等等,其中單片機(jī)體積小、使用靈活方便、價(jià)格便宜,主要應(yīng)用于工業(yè)控制和智能儀表等領(lǐng)域;

26、DSP芯片具高速運(yùn)算能力,常用來處理大量數(shù)據(jù)或數(shù)字信號(hào);ARM憑借低功耗、高性能的特點(diǎn),廣泛應(yīng)用在移動(dòng)通信和手持設(shè)備領(lǐng)域。 </p><p>  綜合考慮技術(shù)指標(biāo)、接口需求和經(jīng)濟(jì)性等因素,本設(shè)計(jì)采單片機(jī)STC89C52最合理。STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-Flash Programable and Erasable Read Only Memory )的低電壓,高性

27、能COMOS8的微處理器,該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。</p><p>  該單片機(jī)具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。

28、</p><p>  該單片機(jī)的引腳配置如圖3.1所示:</p><p>  圖3.1 STC89C52引腳配置圖</p><p>  3.3 貨幣識(shí)別系統(tǒng)</p><p>  貨幣識(shí)別分別有對硬幣和紙幣的識(shí)別,由此在下文中分別介紹說明:</p><p>  我國目前發(fā)行的1元、5角和1角硬幣的金屬原材料是為造幣而專

29、門使用的特殊合金,因此在它通過投幣入口進(jìn)入由電感和電容組成的特定高頻振蕩線路所產(chǎn)生的磁場時(shí),金屬材質(zhì)和體積的體積的差別對電感量的影響大小也出現(xiàn)微弱差異,電感量的變化將引起振蕩頻率的變化,與設(shè)定值進(jìn)行比較,確定某種硬幣后,經(jīng)窄帶選頻電路將頻率信號(hào)變?yōu)殡妷盒盘?hào)輸出,完成對金屬硬幣的識(shí)別。金屬硬幣識(shí)別器種類繁多,但存幣退幣機(jī)構(gòu)基本上分為兩類:一類是平面是存幣,電磁閥退幣;另一類是圓筒式存幣,步進(jìn)機(jī)退幣。當(dāng)硬幣投入后經(jīng)過識(shí)別識(shí)別出電信號(hào)后,偽幣

30、和異物被排出真幣按面值由幾組分配電磁閥分配到不同存幣腔體內(nèi)備用。當(dāng)收到退幣找零電信號(hào)后,通過退幣電磁閥或者退幣電機(jī)拉桿,將存幣腔內(nèi)下部依電信號(hào)程序退出,完成自動(dòng)售貨機(jī)的退幣找零功能。硬件數(shù)據(jù)采集設(shè)備的電源為發(fā)光二極光,所發(fā)出的光的波長峰值在紅外線波段,但不是單光譜,其中紅外光成分達(dá)到90%以上,因此,光源輻射光中起主要作用的實(shí)際上是紅外輻射。實(shí)驗(yàn)中對各種紙幣的特征的識(shí)別也主要是根據(jù)紙幣的表面特征對紅外輻射的敏感。紅外輻射是光輻射中的一種

31、類型,它具有普通光輻射的共性。這主要是因?yàn)椴煌募垘疟砻嫣卣鞑?lt;/p><p>  作為整個(gè)貨幣識(shí)別系統(tǒng)的核心部分,紙幣控制器必須由一顆功能相對較強(qiáng)的嵌入式微處理器以及一系列外圍器件構(gòu)成。</p><p>  89C52擁有4個(gè)I/O口即P0、P1、P2、P3,它有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器,分別稱為定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1。它們都是16位加法計(jì)數(shù)結(jié)構(gòu),分別由TH0和TL0及TH

32、1和TL1兩個(gè)8位計(jì)數(shù)器組成。</p><p>  其主要功能是:處理器通過控制發(fā)光二極管發(fā)光,當(dāng)紙幣進(jìn)入時(shí),入口處發(fā)光二極光投射過紙幣的光強(qiáng)變化,被相應(yīng)入口處的光電三極管接受到后轉(zhuǎn)換為電信號(hào),傳給89C52處理器,經(jīng)過判斷,處理器直接控制;當(dāng)用戶按下退幣按鈕時(shí),單片機(jī)將信號(hào)發(fā)送到MDB中,再施行退幣功能。其中注意的是,當(dāng)選取貨物后,貨幣器能監(jiān)測到金額的減少,在退幣系統(tǒng)啟動(dòng)時(shí)退出相應(yīng)的金額。</p>

33、<p>  MDB的通信接口是全雙工的主從式接口,使用標(biāo)準(zhǔn)的專用6針插頭連接,其中4號(hào)接口與P3.0相連,CPU接收到信號(hào)并記錄金額,5號(hào)接口與P3.1相連,CPU通過發(fā)送信號(hào)控制退幣系統(tǒng)的運(yùn)行。由于貨幣識(shí)別器的核心內(nèi)容是保密的,可供參考的資料較少,因此本系統(tǒng)中的MDB的使用僅限1元的投幣、退幣方式,同時(shí)下一章的軟件設(shè)計(jì)中不做詳細(xì)的介紹。MDB接口電路設(shè)計(jì)如圖3.2所示。</p><p>  圖3.2

34、 MDB接口電路圖</p><p>  3.3 LCD顯示系統(tǒng)模塊</p><p>  在用戶操作自動(dòng)售貨機(jī)時(shí),為了讓用戶(顧客或運(yùn)營商)更加簡便、容易達(dá)成交易,本設(shè)計(jì)選用廣州捷勝吉電子科技公司的TC1602AL型液晶顯示模塊實(shí)現(xiàn)此功能。其規(guī)格參數(shù)如下:外形尺寸:80×36mm; 視域尺寸:64.5×13.8mm</p><p>  點(diǎn)尺寸:寬

35、×高=0.52×0.6mm </p><p>  本文設(shè)計(jì)的電路如圖3.3所示。</p><p>  圖3.3 液晶模塊電路圖</p><p>  表3.1 液晶顯示模塊接口說明</p><p>  目前,液晶顯示模塊在國內(nèi)已經(jīng)規(guī)范化。其引腳接口形式都是標(biāo)準(zhǔn)統(tǒng)一的,只要在指令設(shè)置上稍加改動(dòng),就可驅(qū)動(dòng)各規(guī)格的字符型液

36、晶顯示模塊,因此使用起來非常方便。關(guān)于圖3.3中各引腳的功能如表3.1中所描述。</p><p>  3.4 提示程序模塊</p><p>  提示模塊電路圖,如圖3.4所示。</p><p>  圖3.4 提示模塊電路圖</p><p>  1.此次提示電路的功能是當(dāng)用戶投入金額不夠并且按下貨物選擇按鍵時(shí),短暫發(fā)出提示音,會(huì)給用戶提示作用

37、。 2.參數(shù)計(jì)算:這是一個(gè)報(bào)警提示電路它由電阻、三極管、蜂鳴器組成,R4作為保護(hù)電阻它的阻值范圍:330~1K。</p><p>  4 控制系統(tǒng)的軟件設(shè)計(jì)</p><p><b>  4.1軟件設(shè)計(jì)概述</b></p><p>  C語言是編譯型程序設(shè)計(jì)語言的一種,它兼顧了各種高級(jí)語言和匯編語言的特點(diǎn)。使用C語言進(jìn)行程序設(shè)計(jì)已經(jīng)成為單片機(jī)軟件

38、開發(fā)的主流。其有以下優(yōu)點(diǎn):</p><p>  1、 C語言具有語法簡潔的特點(diǎn) 2 、運(yùn)算符豐富,奪得我有時(shí)后都分不清 3 、數(shù)據(jù)結(jié)構(gòu)類型豐富 4 、結(jié)構(gòu)化,就是想一小塊一小塊的程序,這樣寫起來容易 5 、語法要求不嚴(yán)格,這樣的話相對容易一些,但有時(shí)喉也不爽,有錯(cuò)的時(shí)候不知道語言的語法錯(cuò)了</p><p>  6 、功能強(qiáng)大,現(xiàn)在諸如nuix這樣的操作系統(tǒng)就

39、是用c 語言寫的</p><p>  本設(shè)計(jì)使用被廣泛應(yīng)用的Keil uVision2 C語言編譯器為開發(fā)環(huán)境,進(jìn)行了單片機(jī)的C語言程序設(shè)計(jì)。</p><p>  綜合考慮自動(dòng)售貨機(jī)的功能需求和硬件設(shè)計(jì),軟件程序的編寫應(yīng)該包括以下幾個(gè)內(nèi)容:主程序;鍵盤模塊程序;液晶顯示模塊的程序;提示模塊程序。</p><p><b>  4.2 主程序</b>

40、;</p><p>  在程序?qū)哟谓Y(jié)構(gòu)方面,當(dāng)系統(tǒng)上電之后,應(yīng)先對其進(jìn)行相關(guān)初始化(如對每種飲料價(jià)格的設(shè)定和商品原始庫存數(shù)量的設(shè)定等)。然后程序應(yīng)當(dāng)進(jìn)入無限循環(huán),再根據(jù)相應(yīng)的觸發(fā)條件進(jìn)入相應(yīng)的子程序,完成相應(yīng)的狀態(tài)下的工作。由于系統(tǒng)在多個(gè)狀態(tài)間跳轉(zhuǎn)切換,所以在程序編寫時(shí)比較適合應(yīng)用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。自動(dòng)售貨機(jī)工作的整個(gè)流程圖如圖4.1所示。</p><p><b>  N </

41、b></p><p><b>  N</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N Y</b></p><p><b>  Y&l

42、t;/b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p>  圖4.1自動(dòng)售貨機(jī)的流程圖</p><p>  主程序?qū)⒄{(diào)用其他子程序以達(dá)到自動(dòng)售貨機(jī)的完整工作

43、。例如,當(dāng)用戶按下按鍵并順利取得貨物時(shí),主程序?qū)⒄{(diào)用TC1602AL顯示程序,以達(dá)到顯示余額的功能,再讓用戶選擇是否繼續(xù)交易。主程序詳見附錄。</p><p>  4.3 鍵盤程序設(shè)計(jì)</p><p>  主程序中將直接對鍵盤實(shí)施控制,當(dāng)用戶在與自動(dòng)售貨機(jī)進(jìn)行交易時(shí),鍵盤則是重要的人機(jī)交互設(shè)備,對鍵盤的識(shí)別流程如圖4.2。</p><p>  圖4.2 按鍵識(shí)別模塊

44、原理圖</p><p>  此次的鍵盤設(shè)計(jì)是以3X3矩陣形式,其中前八個(gè)按鍵是貨物選擇鍵,第九個(gè)鍵盤是作為退幣系統(tǒng)啟動(dòng)按鍵,當(dāng)用戶按下鍵盤,程序通過去抖動(dòng)的方法來解除干擾,再以行掃描的方式來確定所按鍵盤,并確定鍵值,最后再等待顧客釋放。</p><p>  4.4 字符型液晶顯示模塊程序設(shè)計(jì)</p><p>  TC1602AL液晶模塊的功能相對簡單,而控制器的設(shè)置

45、也不多,下面就介紹常用的控制驅(qū)動(dòng)特性。</p><p>  TC1602AL的基本操作分為以下4種,如表3-1所示。</p><p>  表3-1 TC1602AL的基本操作</p><p>  TC1602AL指令的描述(其中:L=0,H=1,X=0/1)</p><p>  1、清顯示 CODE:</p><p>

46、;  功能:送20H“空代碼”到所有的DDRAM中,清楚所有的顯示數(shù)據(jù),并將DDRAM地址計(jì)算器(AC)清零,光標(biāo)返回到原始狀態(tài),設(shè)置I/D=H,AC為自動(dòng)加一的輸入方式。</p><p>  2、返回 CODE:</p><p>  功能:設(shè)DDRAM地址為零,顯示回原位,DDRAM內(nèi)容不變。</p><p>  3、輸入方式設(shè)置 CODE:</p>

47、;<p>  功能:設(shè)置光標(biāo)移動(dòng)方向并指定整體顯示是否移動(dòng)。</p><p>  I/D表示地址的修改方式,也是光標(biāo)的移動(dòng)方式:</p><p>  I/D=1:光標(biāo)由左向右移動(dòng)且AC自動(dòng)加一;</p><p>  I/D=0:光標(biāo)由右向左移動(dòng)且AC自動(dòng)減一。</p><p>  SH表示是否允許顯示畫面的滾動(dòng)方式:</p

48、><p>  SH=0::禁止?jié)L動(dòng);SH=1:允許滾動(dòng)。</p><p>  SH=1且I/D=0:顯示畫面向右移動(dòng)一個(gè)字符。</p><p>  SH=1且I/D=1:顯示畫面向左移動(dòng)一個(gè)字符。</p><p>  4、顯示開關(guān)控制 CODE:</p><p>  功能:控制整體顯示開關(guān)(D),光標(biāo)開關(guān)(C)及閃爍開關(guān)

49、(B)的開關(guān)。 </p><p>  D=1:整體顯示開;D=0:整體顯示關(guān)。</p><p>  C=1:光標(biāo)顯示開;C=0:光標(biāo)顯示關(guān)。</p><p>  B=1:光標(biāo)閃爍;B=0:光標(biāo)不閃爍。</p><p>  5、光標(biāo)或整體顯示移位位置 CODE:</p><p>  功能:移動(dòng)光標(biāo)或整體顯示,同時(shí)不改變

50、DDRAM內(nèi)容,S/C和R/L置位不同時(shí)對應(yīng)的操作:</p><p>  00:光標(biāo)左移;01:光標(biāo)右移。</p><p>  10:所有顯示左移:11:所有顯示右移。</p><p>  6、功能設(shè)置 CODE:</p><p>  功能:設(shè)置接口數(shù)據(jù)位數(shù)(DL)、顯示行數(shù)(N)以及字形(F)。</p><p> 

51、 DL=1:8位數(shù)據(jù)接口模式,DL=0:4位數(shù)據(jù)接口模式(DB4-7有效,在這種模式下,傳送的方式為先高4位,后低4位)。</p><p>  N=1:兩行顯示;N=0:單行顯示。</p><p>  F=1:5×10點(diǎn)陣模式加光標(biāo);F=0:5×7點(diǎn)陣模式加光標(biāo)。</p><p>  7、設(shè)置CGRAM地址 CODE:</p>&

52、lt;p>  功能:將CGRAM地址送入AC中。設(shè)置后MCU對數(shù)據(jù)的操作是對DDRAM的讀/ 寫操作。</p><p>  8、設(shè)置DDRAM地址 CODE:</p><p>  功能:DDRAM地址送入AC中。</p><p>  當(dāng)N=0時(shí),DDRAM地址范圍為:80H-FFH;</p><p>  當(dāng)N=1時(shí):第一行的DDRAM

53、地址范圍為:80H-BFH;</p><p>  第二行的DDRAM地址范圍為:C0H-FFH。</p><p>  9、讀忙狀態(tài)位(BF)及地址 CODE:</p><p>  功能:讀最高位(BF)判斷內(nèi)部操作是否正在執(zhí)行,并讀低7位地址計(jì)數(shù)器的內(nèi)容。</p><p>  10、寫數(shù)據(jù) CODE:</p><p&g

54、t;  功能:寫數(shù)據(jù)到CGRAM或是DDRAM.。</p><p>  如果寫數(shù)據(jù)到CGRAM,要先執(zhí)行“設(shè)置CGRAM地址”命令;</p><p>  如果寫數(shù)據(jù)到DDRAM,則要先執(zhí)行“設(shè)置DDRAM地址”命令。</p><p>  11、讀數(shù)據(jù) CODE:</p><p>  功能:從CGRAM或是DDRAM讀出數(shù)據(jù)。</p&g

55、t;<p>  如果從CGRAM讀數(shù)據(jù),要先執(zhí)行 “設(shè)置CGRAM地址”命令;</p><p>  如果寫數(shù)據(jù)到DDRAM,則要先執(zhí)行“設(shè)置DDRAM地址”命令。執(zhí)行讀操作后,地址自動(dòng)加/減1(根據(jù)輸入方式設(shè)置指令)。</p><p>  TC1602AL顯示器在交易過程能起到金額顯示作用,對顯示器的識(shí)別流程如圖4.3。顯示模塊程序詳見附錄。</p><p

56、>  圖4.3 LCD顯示原理圖</p><p>  4.5 提示模塊程序設(shè)計(jì)</p><p>  本系統(tǒng)的提示模塊將實(shí)現(xiàn)的功能是:當(dāng)客戶按下選貨按鍵后,如果金額足夠,蜂鳴器不工作;如果金額不足,蜂鳴器將工作兩秒,以提示余額不足,之后再停止工作。提示模塊程序原理如圖4.4。提示模塊程序詳見附錄。</p><p>  圖4.4 提示模塊原理圖</p>

57、<p><b>  5 結(jié) 論</b></p><p>  本次的畢業(yè)設(shè)計(jì)是一次真正的理論與實(shí)際相結(jié)合,通過這次基于單片機(jī)的自動(dòng)售貨機(jī)系統(tǒng)的設(shè)計(jì),不僅更加深入的了解了單片機(jī)等方面的理論知識(shí),而且通過實(shí)際的動(dòng)手操作,也更加成功地將理論知識(shí)與實(shí)際設(shè)計(jì)相結(jié)合在一起,全方面地提升了所學(xué)專業(yè)基礎(chǔ)知識(shí)的理解和解決實(shí)際問題的能力,同時(shí)也提高我查閱文獻(xiàn)資料、設(shè)計(jì)規(guī)范以及電腦制圖等其他專業(yè)能

58、力水平,而且通過對整體的掌控,對局部的取舍,以及對細(xì)節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗(yàn)得到了豐富,雖然畢業(yè)設(shè)計(jì)內(nèi)容多,我的收獲卻更加豐富。通過幾個(gè)月的不斷努力,我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),理論知識(shí)和實(shí)際設(shè)計(jì)的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)專業(yè)基礎(chǔ)知識(shí)的能力,使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計(jì)思路技巧(特別是C語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。</p

59、><p><b>  致 謝</b></p><p>  在畢業(yè)設(shè)計(jì)期間,每次的工作方案的確定、資料的收集還是論文的撰寫,我都打到了指導(dǎo)老師*老師的全力幫助和耐心指導(dǎo)。*老師學(xué)識(shí)淵博、治學(xué)嚴(yán)謹(jǐn)而且還為人謙和、易于親近,是我們學(xué)習(xí)和生活的榜樣,在此我特向*老師表示最崇高的敬意和由衷的感謝。其次,我要感謝每個(gè)曾經(jīng)教導(dǎo)過我的所有老師們,他們廣博精湛的學(xué)識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度使我

60、學(xué)到的不僅是知識(shí),還有對知識(shí)孜孜不倦的追求精神及做人的品質(zhì)。同時(shí),我也要感謝其他同學(xué)的幫助,從他們身上我學(xué)到了很多理論知識(shí),自己的實(shí)踐能力也得到了很大的提高。</p><p>  在未來的學(xué)習(xí)和工作中,我會(huì)繼續(xù)努力,不斷地實(shí)現(xiàn)自己的人生價(jià)值,以更好的成績來回報(bào)母校,回報(bào)社會(huì)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [

61、1]張毅剛等.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱工業(yè)大學(xué)出版社,2008</p><p>  [2]張志良.單片機(jī)原理與控制技術(shù).機(jī)械工業(yè)出版社,2011</p><p>  [3]陳濤等.貨幣識(shí)別器的原理與設(shè)計(jì).貴州大學(xué)電氣工程學(xué)院,2006年(第35卷)第6期</p><p>  [4]王瓊.單片機(jī)原理及應(yīng)用.合肥工業(yè)大學(xué)出版社,2008</p>

62、<p>  [5]彭保基.Keil C51入門教程.西安交通大學(xué),2005</p><p>  [6]朱清慧,王志奎等.Protues教程.清華大學(xué)出版社,2011</p><p>  [7]陳慧.基于嵌入式單片機(jī)的智能自動(dòng)售貨機(jī)控制系統(tǒng).華東交通大學(xué)學(xué)報(bào),2008,第25卷第6期:78-82</p><p>  [8]丁昊.自動(dòng)售貨機(jī)控制系統(tǒng)的設(shè)計(jì)與

63、實(shí)現(xiàn).東南大學(xué)碩士學(xué)位論文,2008</p><p>  [9]蔡美琴,張為民等.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用.北京.高等教育出版社,2004:1-156,234-268</p><p>  [10]張建龍.一種新型自動(dòng)售貨機(jī)控制系統(tǒng)研發(fā).浙江工業(yè)大學(xué)碩士學(xué)位論文,2009</p><p>  [11]宋瀟,李佩佩等.自動(dòng)售貨機(jī)控制器設(shè)計(jì).科技信息,2009,

64、第3期:119-120</p><p>  [12]余世明,晁岳磊等.自動(dòng)售貨機(jī)研究現(xiàn)狀及展望.中國工程科學(xué),2008,第10卷第7期:51-55</p><p>  [13]侯連宏.自動(dòng)售貨機(jī)主控系統(tǒng)的研制.東南大學(xué)碩士學(xué)位論文,2009</p><p>  [14]李明.C語言程序設(shè)計(jì)教程.上海交通大學(xué),2008</p><p>  [1

65、5]廣州捷勝吉電子科技.字符液晶模塊使用手冊.www.gzjsjdz.com.2013</p><p>  [16]廣州致遠(yuǎn)電子有限公司.ZY1730使用指南.www.embedcontrol.com.2013</p><p>  [17]洪強(qiáng)寧,齊國生等.基于MDB/ICP協(xié)議的自動(dòng)售賣系統(tǒng)的主控實(shí)現(xiàn). 計(jì)算機(jī)應(yīng)用.2002,第9期:28-30</p><p> 

66、 附 錄1 主函數(shù)程序</p><p>  #include <reg52.h></p><p>  #include <intrins.h></p><p>  # include <absacc.h></p><p>  sbit IN0=P3^2;</p><p> 

67、 #define uchar unsigned char // 宏定義</p><p>  #define uint unsigned int</p><p>  sbit TuiBi=P3^1; </p><p>  uchar m=0;</p><p><b>  uchar a;</b>

68、</p><p>  /********************************按鍵拐角定義*********************************/ </p><p>  sbit Row1=P1^0; </p><p>  sbit Row2=P1^1; </p><p>  sbit Row3=P1^2; </p

69、><p>  sbit Line1=P1^3; </p><p>  sbit Line2=P1^4; </p><p>  sbit Line3=P1^5; </p><p>  uchar code chuhuo[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};</p><

70、p>  /********************************延時(shí)程序*************************************/ </p><p>  void delay(uint count)</p><p><b>  { </b></p><p><b>  uint i ;</b&

71、gt;</p><p>  while (--count!=0)</p><p>  for(i=0;i<125;i++);</p><p><b>  }</b></p><p>  /********************************主程序初始化**************************

72、*******/ </p><p>  void main( ) </p><p><b>  { </b></p><p><b>  LCD();</b></p><p><b>  a=Data;</b></p>&l

73、t;p>  EA=1; EX0=1; IT0=1; //開中斷</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  Row1=0;Row2=0;Row3=0;</p><p>  Line1=1;Line2=1;Lin

74、e3=1;</p><p><b>  TuiBi=1;</b></p><p>  P2=chuhuo[m]; </p><p>  delay (500) ;</p><p><b>  }</b></p><p><b>  }</b></

75、p><p>  void into_ISR(void) interrupt 0</p><p><b>  {</b></p><p>  if (IN0==0)</p><p><b>  { </b></p><p>  delay (10); //延時(shí)消抖<

76、/p><p>  if (IN0==0)</p><p><b>  { </b></p><p>  Row1=0;Row2=1;Row3=1; </p><p>  if(Line1==0) //按鍵K1被按下</p><p><b>  { </b>

77、</p><p><b>  if (a>=1)</b></p><p><b>  { </b></p><p>  m=1; a=a-1; Data=a;</p><p><b>  LCD();</b></p><p><b> 

78、 }</b></p><p>  else Tishi();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  else if (Line2==0) //按鍵K2被按下</p><p>

79、;<b>  {</b></p><p><b>  If (a>=1)</b></p><p><b>  {</b></p><p>  m=2; a=a-1; Data=a;</p><p><b>  LCD();</b></p>

80、;<p><b>  }</b></p><p>  else Tishi();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  else if(Line3==0) //按鍵K3被按

81、下</p><p><b>  {</b></p><p><b>  If (a>=1)</b></p><p><b>  {</b></p><p>  m=3; a=a-1; Data=a;</p><p><b>  LCD(

82、);</b></p><p><b>  }</b></p><p>  else Tishi();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  Row1=1;Row2=

83、0;Row3=1; </p><p>  if(Line1==0) //按鍵K4被按下</p><p><b>  { </b></p><p><b>  if (a>=2)</b></p><p><b>  { </b></p>

84、<p>  m=4; a=a-2; Data=a;</p><p><b>  LCD();</b></p><p><b>  }</b></p><p>  else Tishi();</p><p><b>  return;</b></p>

85、<p><b>  }</b></p><p>  else if (Line2==0) //按鍵K5被按下</p><p><b>  {</b></p><p><b>  If (a>=2)</b></p><p><b>  {

86、</b></p><p>  m=5; a=a-2; Data=a;</p><p><b>  LCD();</b></p><p><b>  }</b></p><p>  else Tishi();</p><p><b>  return

87、;</b></p><p><b>  }</b></p><p>  else if(Line3==0) //按鍵K6被按下</p><p><b>  {</b></p><p><b>  If (a>=2)</b></p>

88、<p><b>  {</b></p><p>  m=6; a=a-2; Data=a;</p><p><b>  LCD();</b></p><p><b>  }</b></p><p>  else Tishi();</p><p

89、><b>  return;</b></p><p><b>  }</b></p><p>  Row1=1;Row2=1;Row3=0; </p><p>  if(Line1==0) //按鍵K7被按下</p><p><b>  { </b>

90、</p><p><b>  if (a>=3)</b></p><p><b>  { </b></p><p>  m=7; a=a-3; Data=a;</p><p><b>  LCD();</b></p><p><b> 

91、 }</b></p><p>  else Tishi();</p><p><b>  return;</b></p><p><b>  }</b></p><p>  else if (Line2==0) //按鍵K8被按下</p><p>

92、;<b>  {</b></p><p><b>  If (a>=3)</b></p><p><b>  {</b></p><p>  m=8; a=a-3; Data=a;</p><p><b>  LCD( );</b></p&g

93、t;<p><b>  }</b></p><p>  else Tishi( );</p><p><b>  return;</b></p><p><b>  }</b></p><p>  else if(Line3==0) //按鍵Tu

94、iBi被按下</p><p><b>  { </b></p><p>  TuiBi=0; // 啟動(dòng)退幣系統(tǒng)</p><p>  String_s1="We appreciate your";</p><p>  String_s2= "business,bye!";<

95、;/p><p><b>  LCD();</b></p><p><b>  return; </b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b

96、></p><p><b>  }</b></p><p>  附 錄2 TC1602AL顯示程序</p><p>  #include <reg52.h></p><p>  # include <absacc.h></p><p>  #include <

97、;intrins.h> </p><p>  sbit LCD_EP=P3^6;</p><p>  sbit LCD_RW=P3^5;</p><p>  sbit LCD_RS=P3^4;</p><p>  #define uchar unsigned char ; // 宏定義</p><p>

98、;  #define uint unsigned int </p><p>  #define LCD_Out P0</p><p>  #define LCD_In P0</p><p>  code uchar LCD_addr[18]={ //共18行顯示的首地址</p><p>  0x85,0xc5,0x86,0xc1,<

99、;/p><p>  0x82,0xc3,0x83,0xc3,</p><p>  0x83,0xc0,0x81,0xc0,</p><p>  0x82,0xc6,0x84,0xc6, 0x81,0xc3};</p><p>  code uchar LCD_InitialCode[]={0x30,0x30,0x30,0x38,0x01,0x06

100、,0x0c}; //初始化代碼</p><p>  uchar *string_s1,*string_s2;</p><p>  uchar i,j;</p><p>  /******************************************************************************</p><p&

101、gt;  函數(shù): void LCD_DataWrite(unsigned char Data)</p><p>  描述: 寫一個(gè)字節(jié)的顯示數(shù)據(jù)至LCD中的顯示緩沖RAM當(dāng)中</p><p>  參數(shù): Data 寫入的數(shù)據(jù)</p><p>  *************************************************************

102、*****************/</p><p>  void LCD_DataWrite(unsigned char Data)</p><p>  { unsigned int Read_Dat=0;</p><p>  LCD_EP = 0; //EP、RS端口為低,RW為高</p><p>  LCD_RS =

103、 0;</p><p>  LCD_RW = 1;</p><p>  do{ //RS=0,RW=1時(shí),在E高電平作用下,BF輸出到總線DB7上</p><p>  LCD_In = 0xff; </p><p>  LCD_EP = 1; </p><p> 

104、 Read_Dat = LCD_In&0x80;</p><p>  LCD_EP = 0;</p><p>  }while(Read_Dat!=0); //讀狀態(tài)字(BF位)并判斷是否可進(jìn)行讀寫操作</p><p>  LCD_RW = 0; </p><p>  LCD_RS = 1;

105、 </p><p>  LCD_Out = Data;</p><p>  LCD_EP = 1; </p><p>  LCD_EP = 0; </p><p><b>  }</b></p><p>  /******

106、************************************************************************</p><p>  函數(shù): void LCD_RegWrite(uchar Command)</p><p>  描述: 寫一個(gè)字節(jié)的數(shù)據(jù)至LCD中的控制寄存器當(dāng)中</p><p>  參數(shù): Command 寫入的數(shù)據(jù)(

107、byte)</p><p>  ******************************************************************************/</p><p>  void LCD_RegWrite(uchar Command)</p><p>  { uint Read_Dat=0;</p>&

108、lt;p>  LCD_EP = 0; //EP、RS置低,RW置高,表為讀狀態(tài)字</p><p>  LCD_RS = 0;</p><p>  LCD_RW = 1;</p><p>  do{ LCD_In = 0xff;</p><p>  LCD_EP = 1;</p><p>  Re

109、ad_Dat = LCD_In&0x80;</p><p>  LCD_EP = 0;</p><p>  }while(Read_Dat!=0); //讀狀態(tài)字并判斷是否可進(jìn)行讀寫操作</p><p>  LCD_RW = 0; //RW to Low,表為寫指令</p><p>  LCD_Out =

110、Command;</p><p>  LCD_EP = 1; //EP to Hight</p><p>  LCD_EP = 0;</p><p><b>  }</b></p><p>  /*****************************************************

111、*************************</p><p>  函數(shù): unsigned char LCD_StatusRead(void)</p><p>  描述: 從LCD中的顯示緩沖RAM當(dāng)中讀一個(gè)字節(jié)的顯示數(shù)據(jù)</p><p>  返回: 讀出的數(shù)據(jù),低八位有效(byte)</p><p>  ***************

112、***************************************************************/</p><p>  unsigned char LCD_StatusRead(void)</p><p>  { unsigned char Read_Dat=0;</p><p>  LCD_EP = 0; //EP、RS置低,R

113、W置高,表為讀狀態(tài)字</p><p>  LCD_RS = 0;</p><p>  LCD_RW = 1;</p><p>  LCD_In = 0xff;</p><p>  LCD_EP = 1;</p><p>  Read_Dat = LCD_In; //讀狀態(tài)字</p><p>  

114、LCD_EP = 0;</p><p>  return Read_Dat;</p><p><b>  }</b></p><p>  /******************************************************************************</p><p>  函數(shù)

115、: void LCD_Init(void)</p><p>  描述: LCD初始化程序,在里面會(huì)完成LCD初始所需要設(shè)置的許多寄存器</p><p>  ******************************************************************************/</p><p>  void LCD_Init(vo

116、id)</p><p>  { uchar uiTemp=0,i;</p><p>  uchar *Point;</p><p>  Point = (uchar *)LCD_InitialCode; //獲取初始化序列數(shù)據(jù)的首地址</p><p>  LCD_EP = 0;</p><p>  LCD_

117、RS = 0;</p><p>  LCD_RW = 0;</p><p>  for(i=0;i<4;i++)</p><p>  { uiTemp = *Point++;</p><p>  LCD_Out = uiTemp;</p><p>  LCD_EP = 1; //EP to Hight&l

118、t;/p><p>  LCD_EP = 0; //EP to Hight</p><p>  delay(5); //延時(shí)5ms,一般要求4.5ms以上就可以,沒有那么嚴(yán)格的了</p><p><b>  }</b></p><p>  LCD_RegWrite(*Point++);</p>&l

119、t;p>  LCD_RegWrite(*Point++);</p><p>  LCD_RegWrite(*Point++);</p><p><b>  }</b></p><p>  /***************************************************************************

120、***</p><p>  函數(shù): void LCD()</p><p>  描述: LCD初始化程序,在里面會(huì)完成LCD初始所需要設(shè)置的許多寄存器</p><p><b>  參數(shù): 4個(gè)</b></p><p>  ***************************************************

121、***************************/</p><p>  void LCD()</p><p>  { uchar uiTemp=0;</p><p>  LCD_Init();</p><p>  uiTemp = LCD_StatusRead(); //無意義,只是測試讀狀態(tài)字的子程序 </p&g

122、t;<p>  LCD_RegWrite(LCD_addr[i]); //設(shè)置地址為第一行第一個(gè)字符的位置</p><p>  while((*String_s1)!=0) //顯示字符串</p><p>  { LCD_DataWrite(*String_s1);</p><p>  String_s1++;</p>

123、<p><b>  }</b></p><p>  LCD_RegWrite(LCD_addr[j]); </p><p>  while((*String_s2)!=0) //顯示字符串</p><p>  { LCD_DataWrite(*String_s2);</p><p>  Stri

124、ng_s2++;</p><p><b>  } </b></p><p><b>  }</b></p><p>  附 錄3 提示程序</p><p>  #include <reg52.h></p><p>  #define uchar unsign

125、ed char</p><p>  #define uint unsigned int</p><p>  void Tishi( )</p><p>  { sbit d=P3^3;</p><p>  sbit c=P3^7; </p><p><b>  sbit f;</b></

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論