2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(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><b>  目 錄</b></p><p><b>  1概述1</b></p><p>  1.1課題的研究意義和目的1</p><p><b>  2方案論證1</b></p><p>  2.1 STC89C52主要功能特性1</p>

2、;<p><b>  2.2系統(tǒng)分析3</b></p><p>  3硬件系統(tǒng)的設(shè)計(jì)3</p><p><b>  3.1硬件介紹3</b></p><p>  3.2部分硬件原理圖4</p><p>  3.3最小單片機(jī)系統(tǒng)5</p><p>  4

3、系統(tǒng)的軟件設(shè)計(jì)5</p><p><b>  5軟硬件聯(lián)調(diào)7</b></p><p><b>  5.1正面圖7</b></p><p><b>  5.2反面接線8</b></p><p><b>  5.3測(cè)試結(jié)果8</b></p>

4、;<p><b>  結(jié)束語(yǔ)9</b></p><p><b>  參考文獻(xiàn)9</b></p><p><b>  附錄10</b></p><p>  附錄1 protel原理圖10</p><p>  附錄2 PCB圖11</p>&l

5、t;p>  附錄3 protues仿真圖12</p><p>  附錄4 程序清單12</p><p>  附錄5元器件清單17</p><p><b>  1概述</b></p><p>  1.1課題的研究意義和目的</p><p>  1、通過(guò)本實(shí)驗(yàn)的設(shè)計(jì)初步了解單片機(jī)工作原理和

6、各功能端口的相關(guān)設(shè)置;</p><p>  2、掌握PROTEUS軟件的安裝和配置過(guò)程;</p><p>  3、學(xué)會(huì)繪制電路原理圖;</p><p>  4、了解裝載程序和調(diào)試;</p><p>  5、PROTEUS VSM 與uVision3的聯(lián)調(diào);</p><p>  6、用單片機(jī)仿真軟件,并進(jìn)行調(diào)試;<

7、/p><p>  7、掌握單片機(jī)相應(yīng)的編程步驟,了解秒表相關(guān)的工作流程;</p><p>  8、熟悉KEIL\PROTEUS等相關(guān)軟件的使用。</p><p><b>  2方案論證</b></p><p>  2.1 STC89C52主要功能特性</p><p>  1、兼容MCS51指令系統(tǒng) &

8、lt;/p><p>  2、8k可反復(fù)擦寫(xiě)(大于1000次)Flash ROM; </p><p>  3、32個(gè)雙向I/O口; </p><p>  4、256x8bit內(nèi)部RAM; </p><p>  5、3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷; </p><p>  6、時(shí)鐘頻率0-24MHz; </p>

9、<p>  7、2個(gè)串行中斷,可編程UART串行通道; </p><p>  8、2個(gè)外部中斷源,共8個(gè)中斷源; </p><p>  9、2個(gè)讀寫(xiě)中斷口線,3級(jí)加密位; </p><p>  10、低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能; </p><p>  11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以

10、適應(yīng)不同產(chǎn)品的需求。</p><p>  STC89C52為8 位通用微處理器,采用工業(yè)標(biāo) 準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端

11、口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(32~39 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(

12、19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。</p><p>  P0 口:P0 口是一組8 位漏極開(kāi)路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門(mén)電路,對(duì)端口P0 寫(xiě)“1”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址

13、(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在Flash 編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。 </p><p>  P1 口:P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,

14、某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C51 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),F(xiàn)lash 編程和程序校驗(yàn)期間,P1 接收低8 位地址。表.P1.0和P1.1的第二功能 </p><p>  P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)T

15、TL 邏輯門(mén)電路。對(duì)端口P2 寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR 指令)時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問(wèn)8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX @RI 指令)時(shí),P2 口輸出P2 鎖存器的內(nèi)容。Flash 編程或校驗(yàn)時(shí),P2亦接收高

16、位地址和一些控制信號(hào)。 </p><p>  P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)P3 口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能 。P3 口還接收一些用于Flash 閃速存儲(chǔ)器編程

17、和程序校驗(yàn)的控制信號(hào)。 </p><p>  RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 </p><p>  ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外

18、部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE 脈沖。對(duì)Flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無(wú)效。 </p><p>  PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)

19、器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。 </p><p>  EA/VPP:外部訪問(wèn)允許。欲使CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H—FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc

20、端),CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash 存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V 編程電壓Vpp。 </p><p>  XTAL1:振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 </p><p>  XTAL2:振蕩器反相放大器的輸出端。</p><p><b>  2.2系統(tǒng)分析</b

21、></p><p>  設(shè)計(jì)的電路主要是能多次記時(shí)和查詢(xún)時(shí)間,記時(shí)的多少通過(guò)顯示電路顯示出來(lái),每一次計(jì)時(shí)可以通過(guò)控制電路查詢(xún)出來(lái)。設(shè)計(jì)框圖如圖2-1所示; </p><p><b>  圖2-1</b></p><p><b>  3硬件系統(tǒng)的設(shè)計(jì)</b></p><p><b> 

22、 3.1硬件介紹</b></p><p>  根據(jù)設(shè)計(jì)要求和設(shè)計(jì)思路,硬件電路有兩部分組成,即單片機(jī)按鍵電路,LCD顯示器電路。圖2-2 為硬件電路設(shè)計(jì)框圖。</p><p><b>  圖2-2</b></p><p>  系統(tǒng)硬件電路根據(jù)課題設(shè)計(jì)要求,它由以下幾個(gè)部件組成:?jiǎn)纹瑱C(jī)89C52RC、電源、時(shí)分秒顯示模塊。</p

23、><p>  時(shí)分秒顯示采用動(dòng)態(tài)掃描,以降低對(duì)單片機(jī)端口數(shù)的要求,同時(shí)也降低系統(tǒng)的功耗。顯示模塊中時(shí)分秒顯示驅(qū)動(dòng)、校時(shí)模塊都通過(guò)89C52RC的I/O口控制。顯示模塊中的復(fù)位電路由89C52RC的RESET端控制。</p><p>  電源部分:電源部分有二部分組成。一部分是由220V的市電通過(guò)變壓、整流穩(wěn)壓來(lái)得到+5V電壓,維持系統(tǒng)的正常工作;另一部分是由5V的電池供電,以保證停電時(shí)正常走時(shí)

24、。正常情況下電池是不提供電能的,以保證電池的壽命。</p><p>  3.2部分硬件原理圖</p><p>  3.2.1STC89C52管腳圖</p><p><b>  如圖3-1所示:</b></p><p><b>  圖3-1</b></p><p>  3.2.

25、2 1602LCD液晶硬件圖</p><p><b>  如圖3-2所示:</b></p><p><b>  圖3-2</b></p><p>  3.3最小單片機(jī)系統(tǒng)</p><p><b>  如圖3-3所示:</b></p><p><b

26、>  圖3-3</b></p><p><b>  4系統(tǒng)的軟件設(shè)計(jì)</b></p><p>  此部分主要介紹顯示模塊,顯示模塊是實(shí)現(xiàn)數(shù)字鐘的重要部分,在顯示時(shí),首先將時(shí)間十進(jìn)制數(shù)據(jù)轉(zhuǎn)化為顯示段碼,然后送往液晶顯示。顯示段碼采用動(dòng)態(tài)掃描的方式。在要求改變顯示數(shù)據(jù)的類(lèi)別時(shí),只須改變@R1(指向數(shù)據(jù)緩沖區(qū)的指針)指向的十進(jìn)制數(shù)據(jù)緩沖區(qū)即可。如圖4-1所

27、示:</p><p><b>  圖4-1</b></p><p><b>  5軟硬件聯(lián)調(diào)</b></p><p><b>  5.1正面圖</b></p><p><b>  5.2反面接線</b></p><p><b&

28、gt;  5.3測(cè)試結(jié)果</b></p><p><b>  結(jié)束語(yǔ)</b></p><p>  通過(guò)這次實(shí)驗(yàn),我學(xué)會(huì)了熟練運(yùn)用protues,keil,protel等軟件,在做本次課程設(shè)計(jì)的過(guò)程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十分必要的,同時(shí)也是必不可少的。</p><p>

29、;  其次,在這次課程設(shè)計(jì)中,我們運(yùn)用到了以前所學(xué)的專(zhuān)業(yè)課知識(shí)。雖然過(guò)去從未獨(dú)立應(yīng)用過(guò)它們,但在學(xué)習(xí)的過(guò)程中帶著問(wèn)題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的又一收獲后,要做好一個(gè)課程設(shè)計(jì),就必須做到:在設(shè)計(jì)程序之前,對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;在設(shè)計(jì)課程過(guò)程中遇到問(wèn)題是

30、很正常德,但我們應(yīng)該將每次遇到的問(wèn)題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問(wèn)題的課程設(shè)計(jì)結(jié)束了,但是從中學(xué)到的知識(shí)會(huì)讓我受益終身。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]陳益飛.單片機(jī)原理及應(yīng)用技術(shù)[M].北京:國(guó)防工業(yè)出版社,2011.</p><p>  [2]彭偉.單片機(jī)C語(yǔ)言設(shè)程序設(shè)計(jì)實(shí)訓(xùn)100例[

31、M]. 北京:電工業(yè)出版社,2009.</p><p>  [3] 趙亮. 液晶顯示模塊LCD1602應(yīng)用[J]. 電子制作,2007.</p><p>  [4] 于志贛,劉國(guó)平,張旭斌. 液晶LCD1602模塊的應(yīng)用[J].機(jī)電技術(shù),2009.</p><p><b>  附錄</b></p><p>  附錄1 p

32、rotel原理圖</p><p><b>  附錄2 PCB圖</b></p><p>  附錄3 protues仿真圖</p><p><b>  附錄4 程序清單</b></p><p>  #include <reg51.h></p><p>  #incl

33、ude <intrins.h></p><p>  #define uchar unsigned char</p><p>  #define unit unsigned int </p><p>  #define delayNOP() {_nop_();_nop_();_nop_();_nop_();}</p><p><

34、;b>  //LCD 控制</b></p><p>  void LCD_Initialize();</p><p>  void LCD_Set_POS(uchar);</p><p>  void LCD_Write_Data(uchar);</p><p>  void Display_String(uchar *,

35、uchar);</p><p>  sbit K1=P1^0;</p><p>  sbit K2=P1^1;</p><p>  sbit BEEP=P3^0;</p><p>  sbit LCD_RS=P2^0;</p><p>  sbit LCD_RW=P2^1;</p><p>  

36、sbit LCD_EN=P2^2;</p><p>  uchar KeyCount=0;</p><p>  uchar code msg1[]={"Second Watch 0"};</p><p>  uchar code msg2[]={">>>> "};</p>&

37、lt;p>  uchar code Prompts[][16]=</p><p><b>  { </b></p><p>  {"::1----> "},</p><p>  {"::1----> ::2 "},</p><p>  {":

38、:1->2 ::3--> "},</p><p>  {"::1->2 ::3-->4"}</p><p><b>  };</b></p><p>  //計(jì)時(shí)緩沖與顯示緩沖</p><p>  uchar Time_Buffer[] ={0,0,0,0}

39、;</p><p>  uchar LCD_Display_Buffer[]={"00:00:00:00"};</p><p><b>  //蜂鳴器</b></p><p>  void Beep()</p><p><b>  {</b></p><p&g

40、t;  uchar i,j=70;</p><p>  for (i=0;i<180;i++)</p><p><b>  {</b></p><p>  while(--j);BEEP=~BEEP;</p><p><b>  }</b></p><p><b&

41、gt;  BEEP=0;</b></p><p><b>  }</b></p><p><b>  //延時(shí)</b></p><p>  void DelayX(unit ms)</p><p><b>  {</b></p><p>&l

42、t;b>  uchar i;</b></p><p>  while(ms--) for(i=0;i<120;i++);</p><p><b>  }</b></p><p><b>  //顯示計(jì)時(shí)</b></p><p>  void Show_Second()&l

43、t;/p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  LCD_Set_POS(0x45);//設(shè)置LCD顯示起點(diǎn)</p><p>  for(i=3;i!=0xff;i--)</p><p><b>  {&

44、lt;/b></p><p>  //將兩位整數(shù)的1/100s,秒,分,時(shí)轉(zhuǎn)換為8位數(shù)字字符</p><p>  LCD_Display_Buffer[2*i+1]=Time_Buffer[i]/10+'0';</p><p>  LCD_Display_Buffer[2*i ]=Time_Buffer[i]%10+'0';&

45、lt;/p><p>  //在i=3,2,1,0時(shí)分別顯示時(shí),分,秒,1、100s</p><p>  LCD_Write_Data(LCD_Display_Buffer[2*i+1]);</p><p>  LCD_Write_Data(LCD_Display_Buffer[2*i]);</p><p>  LCD_Write_Data(

46、9;:');</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //Time0中斷</b></p><p>  void Time0() interrupt 1 using 0</p><p&

47、gt;<b>  {</b></p><p>  TH0=-10000/256;</p><p>  TL0=-10000%256;</p><p>  Time_Buffer[0]++;</p><p>  if(Time_Buffer[0]==100)</p><p><b>  {

48、</b></p><p>  Time_Buffer[0]=0; Time_Buffer[1]++;</p><p><b>  }</b></p><p>  if(Time_Buffer[1]==60) //秒</p><p><b>  {</b></p>&l

49、t;p>  Time_Buffer[1]=0;Time_Buffer[2]++;</p><p><b>  }</b></p><p>  if(Time_Buffer[2]==60) //分</p><p><b>  {</b></p><p>  Time_Buffer[2]=0;

50、Time_Buffer[3]++;</p><p><b>  }</b></p><p>  if(Time_Buffer[3]==24) //時(shí)</p><p>  Time_Buffer[3]=0;</p><p><b>  }</b></p><p><b

51、>  //主函數(shù)</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p><b>  IE=0x82;</b></p><p> 

52、 TMOD=0x01;</p><p>  TH0=-10000/256;</p><p>  TL0=-10000%256;</p><p>  LCD_Initialize();</p><p>  Display_String(msg1,0x00);</p><p>  Display_String(msg2,0

53、x40);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  if(K1==0)</b></p><p><b>  {</b></p><p>  Delay

54、X(100);</p><p>  i=++KeyCount;</p><p><b>  switch(i)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  case 3:TR0

55、=1;</p><p>  Display_String(Prompts[i-1],0);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  case 4:TR0 =0;</p><p>  Displa

56、y_String(Prompts[i-1],0);</p><p><b>  break;</b></p><p>  default:TR0=0;</p><p><b>  break;</b></p><p><b>  }</b></p><p&g

57、t;  while (K1==0) ; //等待釋放K1鍵</p><p><b>  Beep();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  if(K2==0)</b

58、></p><p><b>  {</b></p><p><b>  TR0=0;</b></p><p>  KeyCount=0;</p><p>  for(i=0;i<4;i++)</p><p>  Time_Buffer[i]=0; //清零計(jì)

59、時(shí)緩沖</p><p>  Display_String(msg1,0);</p><p><b>  Beep();</b></p><p>  DelayX(100);</p><p>  while (K2==0) ; //等待釋放K2鍵</p><p><b>  }

60、</b></p><p>  Show_Second();</p><p><b>  }</b></p><p><b>  }</b></p><p>  //1602LCD顯示驅(qū)動(dòng)函數(shù) e</p><p>  #include&

61、lt;reg51.h></p><p>  #include<intrins.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  #define DelayNOP(){_nop_();_nop_();_n

62、op_();_nop_();}</p><p>  bit LCD_Busy_Check();</p><p>  void LCD_Initialize();</p><p>  void LCD_Set_POS(uchar);</p><p>  void LCD_Write_Command(uchar); </p>&l

63、t;p>  void LCD_Write_Data(uchar);</p><p><b>  //延時(shí)</b></p><p>  void DelayMS(uint ms)</p><p><b>  {</b></p><p><b>  uchar t;</b>

64、</p><p>  while(ms--)for (t=0;t<120;t++);</p><p><b>  }</b></p><p><b>  //LCD忙檢查</b></p><p>  bit LCD_Busy_Check()</p><p><b

65、>  {</b></p><p>  bit Result;</p><p>  LCD_RS=0;LCD_RW=1;LCD_EN=1;DelayNOP();</p><p>  Result=(bit)(P0&0x80);</p><p><b>  LCD_EN=0;</b></p&g

66、t;<p>  return Result;</p><p><b>  }</b></p><p><b>  //向LCD寫(xiě)指令</b></p><p>  void LCD_Write_Command(uchar cmd)</p><p><b>  {</b&g

67、t;</p><p>  while (LCD_Busy_Check());</p><p>  LCD_RS=0;LCD_RW=0;LCD_EN=0;</p><p>  _nop_(); _nop_();</p><p>  P0=cmd; DelayNOP();</p><p>  LCD_EN=1;De

68、layNOP();</p><p><b>  LCD_EN=0;</b></p><p><b>  }</b></p><p>  //向LCD寫(xiě)數(shù)據(jù)‘</p><p>  void LCD_Write_Data(uchar str)</p><p>  {

69、</p><p>  while (LCD_Busy_Check()) ;</p><p>  LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=str;DelayNOP();</p><p>  LCD_EN=1;DelayNOP();LCD_EN=0;</p><p><b>  }</b><

70、/p><p><b>  //初始化LCD</b></p><p>  void LCD_Initialize()</p><p><b>  {</b></p><p>  DelayMS(5);LCD_Write_Command(0x38);</p><p>  DelayM

71、S(5);LCD_Write_Command(0x0c);</p><p>  DelayMS(5);LCD_Write_Command(0x06);</p><p>  DelayMS(5);LCD_Write_Command(0x01);</p><p>  DelayMS(5);</p><p><b>  }</b&g

72、t;</p><p><b>  //設(shè)置顯示位置</b></p><p>  void LCD_Set_POS(uchar Position)</p><p><b>  {</b></p><p>  LCD_Write_Command(Position|0x80);</p>&l

73、t;p><b>  }</b></p><p>  //顯示函數(shù),在LCD指令行上顯示字符串</p><p>  void Display_String(uchar*str,uchar LineNo)</p><p><b>  {</b></p><p><b>  uchar k

74、;</b></p><p>  LCD_Set_POS(LineNo);</p><p>  for (k=0;k<16;k++) LCD_Write_Data (str[k]);</p><p><b>  }</b></p><p><b>  附錄5元器件清單</b><

溫馨提示

  • 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)論