2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(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)介

1、<p>  PS2鍵盤(pán)在單片機(jī)上的應(yīng)用</p><p>  摘 要:在嵌入式PC應(yīng)用系統(tǒng)中,作為人機(jī)交互設(shè)備的鍵盤(pán),往往采用結(jié)構(gòu)簡(jiǎn)單按鍵少的矩陣鍵盤(pán)。標(biāo)準(zhǔn)鍵盤(pán)雖然能直接與嵌入式PC機(jī)的PS/2接口相連,但是體積大,按鍵多,不能滿足需求,本文提出用一種AT89C52單片機(jī)實(shí)現(xiàn)具有標(biāo)準(zhǔn)PS/2接口的矩陣鍵盤(pán),具有便捷,實(shí)用的特點(diǎn)。</p><p>  關(guān)鍵詞:PS/2接口,PS/2

2、鍵盤(pán),撥號(hào)鍵,AT89C52,LCD1602</p><p>  Abstract: PS/2 interface is one of the most useful mouse interface.It was IBM’s patent named osulum before. It is the dedicate interface of mouse and keyboard. This text impli

3、ed a plan using PS/2 to make a system. PS/2 tansmit the data which was pressed, and AT89C52 receive it ,disposed it and transmit it to Lcd1602. Lcd1602 discover it to make us know which key has been pressed. PS/2 simulat

4、e a phone’s dial keyboard. This system’s feature is the circuit is sample and useful.</p><p>  Keywords: PS/2 keyboard, AT89C52, LCD1602,PS/2 interface,dial keyboard</p><p><b>  目錄</b&g

5、t;</p><p><b>  1、前言1</b></p><p>  2、整體方案設(shè)計(jì)2</p><p>  2.1 方案論證2</p><p>  2.2 方案比較3</p><p>  3、單元模塊設(shè)計(jì)4</p><p>  3.1 PS2鍵盤(pán)模塊4&l

6、t;/p><p>  3.2 單片機(jī)模塊6</p><p>  3.3 LCD顯示模塊7</p><p><b>  4 、軟件設(shè)計(jì)9</b></p><p>  5、系統(tǒng)技術(shù)指標(biāo)及精度和誤差分析10</p><p><b>  6 、結(jié)論11</b></p>

7、;<p><b>  7、設(shè)計(jì)小結(jié)12</b></p><p><b>  8、致謝14</b></p><p><b>  9、參考文獻(xiàn)14</b></p><p>  附錄1:電路總圖15</p><p>  附錄2:仿真圖16</p>

8、<p>  附錄3:軟件代碼17</p><p><b>  1、 前言</b></p><p>  單片機(jī)因其性價(jià)比高, 處理能力強(qiáng), 且抗干擾能力好, 在醫(yī)療器械、機(jī)電液控制、數(shù)據(jù)傳輸?shù)雀黝惞た叵到y(tǒng)和設(shè)備儀器中得到廣泛應(yīng)用。一方面, 在實(shí)際應(yīng)用中, 單片機(jī)經(jīng)常需要將采集到的數(shù)據(jù)發(fā)送給PC機(jī)進(jìn)行處理或保存等; 另一方面, 工控系統(tǒng)和設(shè)備儀器設(shè)計(jì), 因環(huán)

9、境或軟硬件資源的限制, 也往往需要不同的通信接口。比如, 很多工控PC機(jī)的鍵盤(pán)接口因受惡劣環(huán)境不利于鍵盤(pán)的使用而處于閑置狀態(tài)。因此, 設(shè)計(jì)一個(gè)具有通用性的PS/2鍵盤(pán)通信接口既方便PC機(jī)進(jìn)行外設(shè)擴(kuò)展, 又豐富了單片機(jī)的接口資源。單片機(jī)與PC機(jī)常用的數(shù)據(jù)通信協(xié)議為RS - 232通信協(xié)議, 傳輸數(shù)據(jù)格式是二進(jìn)制, 而單片機(jī)通過(guò)PS/2鍵盤(pán)協(xié)議傳輸?shù)臄?shù)據(jù)格式是ASC II碼, 可以直接以常用的文本文件和表格文件的形式進(jìn)行處理和保存。目前,

10、單片機(jī)采用PS/2協(xié)議進(jìn)行通信較多的是單片機(jī)接收PS/2鍵盤(pán)設(shè)備的數(shù)據(jù), 而以單片機(jī)做為鍵盤(pán)與PC機(jī)通信則較為少見(jiàn)。本文的新穎之處主要表現(xiàn)為:</p><p>  1.本文主要著眼于基于單片機(jī)的PS/2鍵盤(pán)通信模塊的實(shí)現(xiàn), 本模塊可通過(guò)RS -232、RS - 485接口或數(shù)據(jù)總線從其它系統(tǒng)上獲取要傳給PC機(jī)的數(shù)據(jù)。單片機(jī)把二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的鍵盤(pán)掃描碼后上傳給PC機(jī)。本模塊只需要簡(jiǎn)單的軟硬件改動(dòng)(甚至于有時(shí)不

11、需要改動(dòng)) 就可以擴(kuò)展大部分工控系統(tǒng)和設(shè)備儀器的通信功能, 具有較大的通用性。</p><p>  2. 本文比較深入地分析了PC機(jī)與鍵盤(pán)之間相互通信的時(shí)序, 并介紹了PC機(jī)開(kāi)機(jī)自檢時(shí)鍵盤(pán)模塊需要響應(yīng)的幾個(gè)主要命令。</p><p>  3. 本模塊在條形碼掃描系統(tǒng)中進(jìn)行了應(yīng)用測(cè)試, 實(shí)驗(yàn)證明了本模塊具有較好的穩(wěn)定性和可靠性, 有較廣泛的應(yīng)用范圍。</p><p>

12、<b>  2 、整體方案設(shè)計(jì)</b></p><p>  本設(shè)計(jì)的整體思路是:利用PS2鍵盤(pán),通過(guò)AT89C52單片機(jī)接收PS2鍵盤(pán)的鍵值,并顯示在LCD1602上,PS2鍵盤(pán)模擬電話的撥號(hào)鍵。</p><p><b>  2.1 方案論證</b></p><p>  設(shè)計(jì)中采用了三個(gè)方案,具體的方案見(jiàn)方案一、方案二和方

13、案三。</p><p>  方案一:普通鍵盤(pán)設(shè)計(jì)方案</p><p>  采用普通的4X4鍵盤(pán),通過(guò)鍵盤(pán)掃描得到鍵值,有單片機(jī)控制并顯示在LCD上,優(yōu)點(diǎn)是成本低,設(shè)計(jì)簡(jiǎn)單,缺點(diǎn)是鍵盤(pán)掃描效率不夠且容易出錯(cuò)。</p><p>  圖2.1 普通鍵盤(pán)整體方案一框圖</p><p>  方案二:數(shù)碼管顯示設(shè)計(jì)方案</p><p&

14、gt;  采用普通的PS2鍵盤(pán),通過(guò)鍵盤(pán)掃描得到鍵值,由單片機(jī)控制并顯示在數(shù)碼管上,優(yōu)點(diǎn)是成本低,設(shè)計(jì)簡(jiǎn)單,鍵盤(pán)自動(dòng)掃描,自動(dòng)識(shí)別,自動(dòng)編碼,有鍵按下時(shí)才發(fā)送數(shù)據(jù),因此減輕了CPU的負(fù)擔(dān),缺點(diǎn)是數(shù)碼管顯示不直觀。</p><p>  圖2.2 PS2鍵盤(pán)整體方案一框圖</p><p>  方案三:PS2鍵盤(pán)方案</p><p>  見(jiàn)圖2.2.利用PS2鍵盤(pán)設(shè)計(jì),優(yōu)

15、點(diǎn)是鍵盤(pán)自動(dòng)掃描,自動(dòng)識(shí)別,自動(dòng)編碼,有鍵按下時(shí)才發(fā)送數(shù)據(jù),因此減輕了CPU的負(fù)擔(dān),用LCD1602顯示方便直觀。</p><p>  圖2.3 PS2鍵盤(pán)整體方案二框圖</p><p><b>  2.2 方案比較</b></p><p>  由于方案一采用的是4X4鍵盤(pán),設(shè)計(jì)需要CPU不斷的掃描鍵盤(pán),占用了大量的CPU資源,方案二利用PS

16、2鍵盤(pán),有鍵按下時(shí)才發(fā)送數(shù)據(jù),減輕了CPU的負(fù)擔(dān),但是用數(shù)碼管顯示不夠直觀,交互界面不夠好,因此綜合方案一和方案二的優(yōu)點(diǎn),本設(shè)計(jì)采用了方案三。</p><p><b>  3、 單元模塊設(shè)計(jì)</b></p><p>  集成溫度傳感器實(shí)際上是一種半導(dǎo)體集成電路,它是利用晶體管的b—e結(jié)壓降的不飽和值Vbe與熱力學(xué)溫度T和通過(guò)。</p><p>

17、  3.1 PS2鍵盤(pán)模塊</p><p>  PS2模塊由PS2鍵盤(pán)和PS2接口組成,利用通信協(xié)議對(duì)PS2鍵盤(pán)進(jìn)行操作,PS2通訊協(xié)議是一種雙向同步串行通訊協(xié)議。PS2鍵盤(pán)連線圖如圖所示:</p><p>  圖3.1 PS2鍵盤(pán)連線圖</p><p>  PS2接口操作時(shí)序如下圖所示:</p><p><b>  圖3.2 時(shí)

18、序圖</b></p><p>  PS2接口通信協(xié)議表如下表所示:</p><p>  圖3.3 通信協(xié)議表</p><p>  表中,如果數(shù)據(jù)位中1的個(gè)數(shù)為偶數(shù),校驗(yàn)位就為1;如果數(shù)據(jù)位中1的個(gè)數(shù)為奇數(shù),校驗(yàn)位就為0;總之,數(shù)據(jù)位中1的個(gè)數(shù)加上校驗(yàn)位中1的個(gè)數(shù)總為奇數(shù),因此總進(jìn)行奇校驗(yàn)。</p><p>  由于PS/2設(shè)備能提

19、供串行同步時(shí)鐘,因此,如果PC機(jī)發(fā)送數(shù)據(jù),則PC機(jī)要先把時(shí)鐘線和數(shù)據(jù)線置為請(qǐng)求發(fā)送的狀態(tài)。PC機(jī)通過(guò)下拉時(shí)鐘線大于100μs來(lái)抑制通訊,并且通過(guò)下拉數(shù)據(jù)線發(fā)出請(qǐng)求發(fā)送數(shù)據(jù)的信號(hào),然后釋放時(shí)鐘。當(dāng)PS/2設(shè)備檢測(cè)到需要接收的數(shù)據(jù)時(shí),它會(huì)產(chǎn)生時(shí)鐘信號(hào)并記錄下面8?jìng)€(gè)數(shù)據(jù)位和一個(gè)停止位。主機(jī)此時(shí)在時(shí)鐘線變?yōu)榈蜁r(shí)準(zhǔn)備數(shù)據(jù)到數(shù)據(jù)線,并在時(shí)鐘上升沿鎖存數(shù)據(jù)。而PS/2設(shè)備則要配合PC機(jī)才能讀到準(zhǔn)確的數(shù)據(jù)。具體連接步驟如下:</p>&l

20、t;p>  (1)等待時(shí)鐘線為高電平。    (2)判斷數(shù)據(jù)線是否為低,為高則錯(cuò)誤退出,否則繼續(xù)執(zhí)行。    (3)讀地址線上的數(shù)據(jù)內(nèi)容,共8?jìng)€(gè)bit,每讀完一個(gè)位,都應(yīng)檢測(cè)時(shí)鐘線是否被PC機(jī)拉低,如果被拉低則要中止接收。    (4)讀地址線上的校驗(yàn)位內(nèi)容,1個(gè)bit。   

21、; (5)讀停止位。    (6)如果數(shù)據(jù)線上為0(即還是低電平),PS/2設(shè)備繼續(xù)產(chǎn)生時(shí)鐘,直到接收到1且產(chǎn)生出錯(cuò)信號(hào)為止(因?yàn)橥V刮皇牵?,如果PS/2設(shè)備沒(méi)有讀到停止位,則表明此次傳輸出錯(cuò)。              (7) 輸出應(yīng)答位。&

22、#160;   (8) 檢測(cè)奇偶校驗(yàn)位,如果校驗(yàn)失敗,則產(chǎn)生錯(cuò)誤信號(hào)以表明此次傳輸出現(xiàn)錯(cuò)誤。    (9)延時(shí)45 μs,以便PC機(jī)進(jìn)行下一次傳輸。</p><p>  PS2鍵盤(pán)掃描方式:鍵盤(pán)的處理器如果發(fā)現(xiàn)有鍵被按下釋放或按住鍵盤(pán)將發(fā)送掃描碼的信息包到計(jì)算機(jī)掃描碼有兩種不同的類型通碼和斷碼,當(dāng)一個(gè)鍵被按下或按住就發(fā)送通碼,當(dāng)一個(gè)鍵被釋放就發(fā)送斷碼,每個(gè)按鍵被

23、分配了唯一的通碼和斷碼,這樣主機(jī)通過(guò)查找唯一的掃描碼就可以測(cè)定是哪個(gè)按鍵,每個(gè)鍵一整套的通斷碼組成了掃描碼集有三套標(biāo)準(zhǔn)的掃描碼集,分別是第一套、第二套、和第三套,所有現(xiàn)代的鍵盤(pán)默認(rèn)使用第二套掃描碼    雖然多數(shù)第二套通碼都只有一個(gè)字節(jié)寬但也有少數(shù)擴(kuò)展按鍵的通碼是兩字節(jié)或四字節(jié)寬這類的通碼第一個(gè)字節(jié)總是為E0h    正如鍵按下通碼就被發(fā)往計(jì)算機(jī)一樣,只

24、要鍵一釋放斷碼就會(huì)被發(fā)送,每個(gè)鍵都有它自己唯一的通碼,它們也都有唯一的斷碼,幸運(yùn)的是你不用總是通過(guò)查表來(lái)找出按鍵的斷碼在通碼和斷碼之間存在著必然的聯(lián)系,多數(shù)第二套斷碼有兩字節(jié)長(zhǎng)它們的第一個(gè)字節(jié)是F0h ,第二個(gè)字節(jié)是這個(gè)鍵的通碼,擴(kuò)展按鍵的斷碼通常有三個(gè)字節(jié),它們前兩個(gè)字節(jié)是E0h,F0h ,最后一個(gè)字節(jié)是這個(gè)按鍵通碼的最后一個(gè)字節(jié)。我在下面列出了幾個(gè)按鍵的第二套通碼和斷碼。</p><p>  3.2 單片機(jī)

25、模塊</p><p>  STC89C52單片機(jī)是Atmel公司生產(chǎn)的單片機(jī),51的內(nèi)核,具有處理能強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn)。最小系統(tǒng)包括單片機(jī),電源,復(fù)位電路。單片機(jī)接收PS2鍵盤(pán)的鍵值,并控制LCD的顯示。其系統(tǒng)框圖如下圖所示:</p><p>  圖3.4 單片機(jī)控制系統(tǒng)框圖</p><p>  STC89C52單片機(jī)有4X8個(gè)IO口,其中P0口需外接上

26、拉電阻,因此本次設(shè)計(jì)采用P1口作為PS2接口,P2口作為與LCD1602的接口,其電路圖如下圖所示:</p><p>  圖3.5 單片機(jī)最小系統(tǒng)圖</p><p>  3.3 LCD顯示模塊</p><p>  LCD1602采用8位并行數(shù)據(jù)傳輸,其操作時(shí)序如下圖所示:</p><p>  圖3.6 LCD單片機(jī)圖</p>&

27、lt;p>  LCD1602接口由8位數(shù)據(jù)線,電源地電源正,液晶顯示偏壓信號(hào)(VL),數(shù)據(jù)命令選擇端(RS),讀寫(xiě)選擇端(RW)組成。其接口信號(hào)說(shuō)明如下圖所示:</p><p>  圖3.7接口信號(hào)說(shuō)明圖</p><p>  可以在1602的液晶顯示偏壓信號(hào)端接一個(gè)可變電阻,調(diào)節(jié)顯示亮度,初始狀態(tài)時(shí),調(diào)至1602上面一排顯示12個(gè)黑塊為止,LCD1602電路圖如下圖所示:</p

28、><p>  圖3.8 LCD電路圖</p><p><b>  4、 軟件設(shè)計(jì)</b></p><p>  1、主程序設(shè)計(jì):首先初始化IO口和鍵盤(pán)、LCD1602,然后接收按鍵的鍵值,并通過(guò)8位并行傳輸方式傳送給LCD1602顯示。</p><p>  2、獲取鍵值程序:按照PS2鍵盤(pán)協(xié)議操作,鍵盤(pán)按下時(shí)發(fā)送通碼,彈起時(shí)發(fā)

29、送斷碼,在單片機(jī)中,將接收到的碼字與第二套掃描碼比較,得出鍵值。本次設(shè)計(jì)共采用12個(gè)鍵,模擬電話的撥號(hào)鍵。</p><p>  3、LCD顯示程序:首先初始化LCD1602端口和寄存器,然后接收單片機(jī)傳送的數(shù)據(jù),通過(guò)1602寫(xiě)操作時(shí)序顯示接收到的數(shù)據(jù)。</p><p>  4.1 程序整體設(shè)計(jì)框圖</p><p>  5、 系統(tǒng)技術(shù)指標(biāo)及精度和誤差分析</p

30、><p>  隨著計(jì)算機(jī)工業(yè)的發(fā)展,作為計(jì)算機(jī)最常用輸入設(shè)備的鍵盤(pán)也日新月異。IBM推出PS2鍵盤(pán)接口標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)定義了84~101鍵,采用6腳mini-DIN連接器,用雙向串行通訊協(xié)議并且提供有可選擇的第三套鍵盤(pán)掃描碼集,同時(shí)支持17個(gè)主機(jī)到鍵盤(pán)的命令。</p><p>  本系統(tǒng)利用PS2鍵盤(pán)作為交互接口,操作方便,比普通鍵盤(pán)精度高,在機(jī)械鍵盤(pán)中需要考慮鍵盤(pán)去抖的問(wèn)題,硬件去抖或軟件去抖,

31、但是在PS2鍵盤(pán)中不需要考慮鍵盤(pán)去抖,因?yàn)镻S2鍵盤(pán)采用按鍵發(fā)送通碼,彈起發(fā)送斷碼的方式,不易出錯(cuò)。只要將接口連線處理好,單片機(jī)處理數(shù)據(jù)時(shí)不出錯(cuò)。</p><p>  本次設(shè)計(jì)實(shí)現(xiàn)了軟件的設(shè)計(jì)和電路設(shè)計(jì)和仿真,實(shí)現(xiàn)了系統(tǒng)功能,完成了系統(tǒng)設(shè)計(jì)指標(biāo):按下一個(gè)鍵,準(zhǔn)確的顯示在LCD1602上。</p><p><b>  6 、結(jié)論</b></p><p

32、>  本系統(tǒng)采用第二套鍵盤(pán)掃描碼,利用PS2鍵盤(pán)作為輸入,準(zhǔn)確度比普通鍵盤(pán)高,完成了系統(tǒng)的仿真圖,電路圖和程序設(shè)計(jì),實(shí)現(xiàn)了系統(tǒng)的功能。</p><p>  很多品牌機(jī)上采用PS/2口來(lái)連接鼠標(biāo)和鍵盤(pán)。PS/2接口與傳統(tǒng)的鍵盤(pán)接口除了在接口外型、引腳有不同外,在數(shù)據(jù)傳送格式上是相同的?,F(xiàn)在很多主板用PS/2接口插座連接鍵盤(pán),傳統(tǒng)接口的鍵盤(pán)可以通過(guò)PS/2接口轉(zhuǎn)換器連接主板PS/2接口插座。</p>

33、<p>  采用PS2鍵盤(pán)比普通鍵盤(pán)精度更高,使用更方便,USB即插即用,與USB相比,穩(wěn)定性而言PS2比較好,但它不支持熱拔插,因此在使用時(shí)需注意不能經(jīng)常拔掉下PS2鍵盤(pán)。</p><p><b>  7、 設(shè)計(jì)小結(jié)</b></p><p>  本次設(shè)計(jì)完成后,在效果上能完全達(dá)到原先設(shè)計(jì)的功能。例如,通過(guò)按下按鍵“1”,能將數(shù)值“1”發(fā)送到LCD上顯示

34、驅(qū)動(dòng)程序經(jīng)Keil uVision3編譯,在AT89C52上單片機(jī)通過(guò),該模擬鍵盤(pán)接口可以作為一個(gè)接口模塊嵌入到其他設(shè)備儀器和工程控制系統(tǒng),增加了與PC機(jī)的通信途徑。在應(yīng)用和測(cè)試結(jié)果分析中,該接口模塊具有較高的可靠性與穩(wěn)定性。</p><p>  由于時(shí)間倉(cāng)促和我們自身水平有限,本設(shè)計(jì)在功能上也只是完成了一些基本功能,對(duì)于電路的可靠性,穩(wěn)定性等參數(shù)還未做過(guò)詳細(xì)的測(cè)試。仿真中出現(xiàn)的一些問(wèn)題,也尚未解決。</p

35、><p><b>  8、 致謝</b></p><p>  在***老師辛勤指導(dǎo)下,我與小組同學(xué)積極討論和思考,完成本此課程設(shè)計(jì),此次設(shè)計(jì),使我們受益匪淺。在此我要感謝電氣信息學(xué)院提供這次課程設(shè)計(jì)的機(jī)會(huì);感謝電氣信息學(xué)院各位老師的幫助。在這里我要特別感謝***老師,在我們的設(shè)計(jì)過(guò)程中,至始至終都得到了***老師的悉心指導(dǎo),我們的設(shè)計(jì)才得以順利完成。</p>

36、<p><b>  9、 參考文獻(xiàn)</b></p><p>  [1] 張培仁.基于 C 語(yǔ)言編程 MCS-51 單片機(jī)原理與應(yīng)用[M]. 北京:清華大學(xué)出版社,2003. </p><p>  [2] 楊振江、杜鐵軍.流行單片機(jī)實(shí)用子程序及應(yīng)用實(shí)例[M].西安電子科技大學(xué)出版社,2002. </p><p>  [3] 蔡美琴、張

37、為民.MCS-51 系列單片機(jī)系統(tǒng)及其應(yīng)用(第二版)[M]. 北京:高等教育出版社,2004.</p><p>  [4] 蘇家健.單片機(jī)原理及應(yīng)用技術(shù)[M]. 北京:高等教育出版社,2004.</p><p>  [5] C語(yǔ)譚浩強(qiáng).言程序設(shè)計(jì)(第三版)[M].北京:清華大學(xué)出版社,2005.</p><p><b>  附錄1:電路總圖</b&g

38、t;</p><p>  圖 附錄1 電路總圖</p><p><b>  附錄2:仿真圖</b></p><p><b>  圖 附錄2仿真圖</b></p><p><b>  附錄3:軟件代碼</b></p><p><b>  main

39、.c:</b></p><p>  #include<reg52.h> </p><p>  #include "KEY4x4_MODE.h"</p><p>  #include <string.h></p><p>  #include "type.h"<

40、/p><p>  #include "lcd1602.h"</p><p>  uchar Dis_buffer[12]="0123456789*#";</p><p>  uchar key_flag=0;</p><p>  void main()</p><p><b&g

41、t;  {</b></p><p>  uchar loca,key_value=0;</p><p>  Init_1602(); //初始化1602</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>

42、  key_value = Get_key(); //鍵盤(pán)掃描</p><p>  if(key_flag)</p><p><b>  {</b></p><p>  lcd_dis(Dis_buffer,key_value,loca++); //顯示</p><p>  key_flag=0;//標(biāo)志位清零<

43、;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  Lcd1602.c:</p><p>  #include<reg52.h></p><

44、;p>  #include <string.h></p><p>  #include "type.h"</p><p>  #include "lcd1602.h"</p><p>  void Init_1602(void) //初始化</p><p><b>  {

45、</b></p><p>  Lcd_write_CMD(0x38,0); </p><p>  Lcd_write_CMD(0x38,1); //設(shè)置顯示模式</p><p>  Lcd_write_CMD(0x08,1); //顯示關(guān)閉</p><p>  Lcd_write_CMD(0x01,1); //清屏</p

46、><p>  Lcd_write_CMD(0x06,1); //光標(biāo)從左向右移,文本不移</p><p>  Lcd_write_CMD(0x0f,1); //顯示開(kāi) </p><p><b>  }</b></p><p>  void delay_ms(UCHAR i) //延時(shí) ms級(jí)</p>&l

47、t;p><b>  {</b></p><p>  unsigned int j;</p><p>  for(;i>0;i--)</p><p>  for(j=0;j<125;j++)</p><p><b>  {;}</b></p><p

48、><b>  }</b></p><p>  void Lcd_write_CMD(UCHAR DATA_output,UCHAR If_Check) //寫(xiě)指令</p><p><b>  {</b></p><p>  if(If_Check)</p><p>  Check_ifbus

49、y(); </p><p>  RS_1602=0;</p><p>  RW_1602=0;</p><p>  DATA_out=DATA_output; </p><p><b>  E_1602=1;</b></p><p>  delay_ms(1); </p>&

50、lt;p>  E_1602=0; //鎖存數(shù)據(jù)</p><p>  RS_1602=1;</p><p>  RW_1602=1;</p><p><b>  }</b></p><p>  void Check_ifbusy(void) //讀狀態(tài)</p><p><b&g

51、t;  {</b></p><p>  DATA_out=0xff;</p><p>  RS_1602=0;</p><p>  RW_1602=1;</p><p><b>  E_1602=1;</b></p><p>  while(DATA_out & 0x80)&l

52、t;/p><p><b>  {</b></p><p>  E_1602=0; //這兩句protues仿真必須加</p><p>  E_1602=1; //</p><p><b>  }</b></p><p><b>  E_1602=0;<

53、/b></p><p><b>  }</b></p><p>  void Lcd_1602_Display(UCHAR *dis_p) //顯示</p><p><b>  {</b></p><p>  UCHAR i,len; //定義要放在前面</p><p&

54、gt;  len=strlen(dis_p); </p><p>  Lcd_Set_XY(0,0); </p><p>  if( len>16)</p><p><b>  {</b></p><p>  for( i=0;i<16;i++)</p><p><b> 

55、 {</b></p><p>  Lcd_write_DATA(dis_p[i],1);</p><p><b>  }</b></p><p>  Lcd_Set_XY(0,1);</p><p>  for( i=16;i<len;i++)</p><p><b&g

56、t;  {</b></p><p>  Lcd_write_DATA(dis_p[i],1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>&

57、lt;b>  {</b></p><p>  for( i=0;i<len;i++)</p><p><b>  {</b></p><p>  Lcd_write_DATA(dis_p[i],1);</p><p><b>  }</b></p><p&

58、gt;<b>  } </b></p><p><b>  }</b></p><p>  void lcd_dis(UCHAR *dis_p,UCHAR i,UCHAR location)</p><p><b>  {</b></p><p>  Lcd_Set_XY(l

59、ocation,0); </p><p>  Lcd_write_DATA(dis_p[i],1);</p><p><b>  }</b></p><p>  void Lcd_Set_XY(UCHAR x,UCHAR y) //設(shè)置顯示的初始坐標(biāo)</p><p><b>  {</b><

60、;/p><p>  x &= 0x0f;</p><p>  y &= 0x01;</p><p>  delay_ms(1);</p><p><b>  if(y)</b></p><p><b>  {</b></p><p>  

61、Lcd_write_CMD(0X80+0X40+x,1);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Lcd_write_CMD(0X80+x,1);</p>

62、;<p><b>  } </b></p><p><b>  }</b></p><p>  void Lcd_write_DATA(UCHAR DATA_output,UCHAR If_Check)//寫(xiě)數(shù)據(jù)</p><p><b>  {</b></p><

63、p>  if(If_Check)Check_ifbusy();</p><p>  RS_1602=1;</p><p>  RW_1602=0;</p><p>  DATA_out=DATA_output;</p><p><b>  E_1602=1;</b></p><p>  d

溫馨提示

  • 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ù)僅提供信息存儲(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)論