2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  規(guī)則圖形繪制系統(tǒng)</b></p><p>  Rule drawing system</p><p>  專 業(yè):應(yīng)用電子技術(shù)</p><p><b>  二零壹二年六月</b></p><p>  畢業(yè)設(shè)計(jì)(論文)評(píng)語</p><p> 

2、 畢業(yè)設(shè)計(jì)(論文)答辯記錄成績及評(píng)語</p><p><b>  電子工程系</b></p><p>  畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書</p><p>  專業(yè):應(yīng)用電子技術(shù)        年級(jí):</p><p><b>  電子工程系</b></p><p>  畢 業(yè) 設(shè)

3、計(jì) 開 題 報(bào) 告</p><p><b>  摘 要</b></p><p>  目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾科很難找哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車折安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物

4、等等,這些都離不開單片機(jī)。</p><p>  LCD低壓微功耗平板型結(jié)構(gòu),被動(dòng)顯示(無眩光,不刺人眼,不會(huì)引起眼睛疲勞),顯示信息量大(因?yàn)橄袼乜梢宰龅煤苌伲?,晚于彩色化(在色譜上可以非常準(zhǔn)確的復(fù)現(xiàn)),無電磁輻射(對(duì)人體安全,利于信息保密),長壽命。</p><p>  大部分的數(shù)字便攜式設(shè)備是基于單片機(jī)系統(tǒng)開發(fā)的,在單片機(jī)系統(tǒng)中,除了需要特定的功能算法和傳感器等器件外,還需要輸入,輸出

5、裝置,在便攜式設(shè)備中,輸入裝置一般是鍵盤,而輸出裝置一般是液晶顯示模塊。主要完成工作有實(shí)現(xiàn)按鍵內(nèi)容的液晶顯示,實(shí)現(xiàn)按鍵功能的液晶顯示,實(shí)現(xiàn)便攜式設(shè)備的結(jié)果輸出。</p><p>  關(guān)鍵詞: 鍵盤 ;LCD12864;單片機(jī); </p><p><b>  Abstract</b></p><p>  MCU to infiltrate a

6、ll areas of life, a few subjects is difficult to find which areas of the traces of the microcontroller. Navigation device of the missile, aircraft, various instrument control, computer network communications and data tra

7、nsmission, industrial automation, process real-time control and data processing, widely used in a variety of smart card IC, civil limousine fold security system, VCR, cameras, the control of automatic washing machines, a

8、nd program-controlled toys, electronic pe</p><p><b>  目 錄</b></p><p>  第一章 有關(guān)液晶12864的一般介紹9</p><p>  1.1 12864 特性9</p><p>  1.2 12864模塊電路圖10</p>

9、<p>  1.3 極限參數(shù)10</p><p>  1.4 電參數(shù)10</p><p>  1.5 LCD 的驅(qū)動(dòng)方式………………………………………………………10</p><p>  1.5.1 靜 態(tài)驅(qū)動(dòng)方法……………………………………………………10</p><p>  1.5.2動(dòng)態(tài)驅(qū)動(dòng)方法……………………

10、…………………………………10</p><p>  1.6 液晶模塊指令系統(tǒng)11</p><p>  1.6.1 顯示開關(guān)控制(DISPLAY ON/OFF)11</p><p>  1.6.2 設(shè)置顯示起始行11</p><p>  1.6.3 設(shè)置頁地址11</p><p>  1.6.4 設(shè)置Y 地址(S

11、ET Y ADDRESS)12</p><p>  1.6.5 讀狀態(tài)(STATUS READ)12</p><p>  1.6.6 寫顯示數(shù)據(jù)(WRITE DISPLAY DATE)12</p><p>  1.6.7 讀顯示數(shù)據(jù)(READ DISPLAY DATE)13</p><p>  1.7 讀寫操作時(shí)序13</p&

12、gt;<p>  1.8.1 寫操作時(shí)序13</p><p>  1.8.2 讀操作時(shí)序13</p><p>  1.8.3 讀寫時(shí)序參數(shù)表13</p><p>  第二章 STC89C52芯片介紹15</p><p>  2.1時(shí)鐘電路16</p><p>  2.2復(fù)位及復(fù)位電路16&l

13、t;/p><p>  2.3 STC89C52具體介紹18</p><p>  第三章按鍵模塊20</p><p>  第四章電路框圖設(shè)計(jì)22</p><p>  4.1 系統(tǒng)框圖22</p><p>  4.2 工作原理22</p><p>  4.2.1 硬件工作原理22<

14、;/p><p>  4.2.2 軟件工作原理22</p><p>  第五章第硬件原理分析及設(shè)計(jì)24</p><p>  5.1 單片機(jī)時(shí)鐘電路24</p><p>  5.2 單片機(jī)復(fù)位電路24</p><p>  5.3 鍵盤電路25</p><p>  5.4 顯示電路25<

15、;/p><p>  第六章軟件設(shè)計(jì)27</p><p>  6.1 寄存器寫入………………………………………………………………27</p><p>  6.2 清屏………………………………………………………………………27</p><p>  6.3 光標(biāo)參數(shù)設(shè)置……………………………………………………………27</p>

16、<p>  6.4 R A M寫入…………………………………………………………………27</p><p>  6.5圖形顯示27</p><p>  第七章電路調(diào)試29</p><p>  7.1 硬件調(diào)試29</p><p>  7.2 軟件調(diào)試29</p><p><b>  第八章

17、小結(jié)30</b></p><p><b>  參考文獻(xiàn)31</b></p><p><b>  附錄32</b></p><p>  第一章 有關(guān)液晶12864的一般介紹</p><p>  液晶顯示器按其功能可分為筆段式和點(diǎn)矩陣式兩種。后者又可以分成字符點(diǎn)陣式和圖形點(diǎn)陣式,圖形

18、點(diǎn)陣式液晶顯示器不僅可顯示數(shù)字、字符等內(nèi)容,還能顯示漢字和任意圖形。在中規(guī)模圖形式液晶顯示模塊中,內(nèi)置T6963C 控制器的液晶顯示模塊是目前較為常用的一種。T6963C 是點(diǎn)陣式液晶圖形顯示器,可以圖形方式、字符方式、圖形和字符合成方式顯示,以及實(shí)現(xiàn)字符方式下的特征方式顯示,還可以像CAD 一樣進(jìn)行屏拷貝操作。本設(shè)計(jì)由于需要顯示西文、漢字還有圖形,所以采用的就是T6963C 是點(diǎn)陣式液晶圖形顯示器。</p><p&

19、gt;  1.1 12864 特性</p><p>  顯示內(nèi)容:128 x 64點(diǎn)</p><p>  驅(qū)動(dòng)方式:1/64D</p><p><b>  可供型號(hào):</b></p><p>  STN(黃綠模、灰模、黑白模)</p><p>  反射型, 帶EL或LED背光源&

20、lt;/p><p>  EL/100VAC,400HZ</p><p>  LED/4.2VDC</p><p>  1.2 12864模塊電路圖</p><p>  內(nèi)部電路見圖1-1。</p><p>  圖1-1 12864模塊內(nèi)部電路</p><p><b>  1.3 極限

21、參數(shù)</b></p><p>  極限電壓見表1-1。</p><p><b>  表1-1 極限電壓</b></p><p><b>  1.4 電參數(shù)</b></p><p>  表1-2 12864電參數(shù)</p><p>  1.5 LCD 的驅(qū)動(dòng)方式&

22、lt;/p><p>  液晶的顯示是由于在顯示像素上施加了電場的緣故,而這個(gè)電場則由顯示像素前后兩電極上的電位信號(hào)合成產(chǎn)生,在顯示像素上建立直流電場是非常容易的事,但直流電場將導(dǎo)致液晶材料的化學(xué)反應(yīng)和電極老化,從而迅速降低液晶的顯示壽命,因此必須建立交流驅(qū)動(dòng)電場,并且要求這個(gè)交流電場中的直流分量越小越好,通常要求直流分量小于50mV。在實(shí)際應(yīng)用中,由于采用了數(shù)字電路驅(qū)動(dòng),所以這種交流電場是通過脈沖電壓信號(hào)來建立的。

23、</p><p>  顯示像素上交流電場的強(qiáng)弱用交流電壓的有效值表示,當(dāng)有效值大于液晶的閾值電壓時(shí),像素呈顯示態(tài);當(dāng)有效值小于閾值電壓時(shí),像素不產(chǎn)生電光效應(yīng);當(dāng)有效值在閾值電壓附近時(shí),液晶將呈現(xiàn)較弱的電光效應(yīng),此時(shí)將會(huì)影響液晶顯示器件的對(duì)比度。 </p><p>  液晶顯示的驅(qū)動(dòng)就是用來調(diào)整施加在液晶顯示器件電極上的電位信號(hào)的相位、峰值、頻率等,建立驅(qū)動(dòng)電場,以實(shí)現(xiàn)液晶顯示器件的顯示效果

24、。液晶顯示的驅(qū)動(dòng)方式有許多種,常用的驅(qū)動(dòng)方法有:靜態(tài)驅(qū)動(dòng)法和動(dòng)態(tài)驅(qū)動(dòng)法。對(duì)于TN及STN-LCD一般采用靜態(tài)驅(qū)動(dòng)或多路驅(qū)動(dòng)方式。這兩種方式相比較各有優(yōu)缺點(diǎn)。靜態(tài)驅(qū)動(dòng)響應(yīng)速度快、耗電少、驅(qū)動(dòng)電壓低,但驅(qū)動(dòng)電極度數(shù)必須與顯示筆段數(shù)相同,因而用途不如多路驅(qū)動(dòng)廣。 </p><p>  1.5.1靜態(tài)驅(qū)動(dòng)法</p><p>  靜態(tài)驅(qū)動(dòng)法是獲得最佳顯示質(zhì)量的最基本的方法。它適用于筆段型液晶顯示器件

25、的驅(qū)動(dòng)。表2.3示出此類液晶顯示器件的電極結(jié)構(gòu),當(dāng)多位數(shù)字組合時(shí),各位的背電極BP是連接在一起的。振蕩器的脈沖信號(hào)經(jīng)分頻后直接施加在液晶顯示器件的背電極BP上,而段電極的脈沖信號(hào)是由顯示選擇信號(hào)A與時(shí)序脈沖通過邏輯異或合成產(chǎn)生,當(dāng)某位顯示像素被顯示選擇時(shí),A=1,該顯示像素上兩電極的脈沖電壓相位相差180,在顯示像素上產(chǎn)生2V的電壓脈沖序列,使該顯示像素呈現(xiàn)顯示特性;當(dāng)某位顯示像素為非顯示選擇時(shí),A=0,該顯示像素上兩電極的脈沖電壓相位

26、相同,在顯示像素上合成電壓脈沖為0V,從而實(shí)現(xiàn)不顯示的效果。這就是靜態(tài)驅(qū)動(dòng)法。為了提高顯示的對(duì)比度,適當(dāng)?shù)卣{(diào)整脈沖的電壓即可。</p><p>  表1-3 液晶顯示器件電機(jī)結(jié)構(gòu)</p><p><b>  1.動(dòng)態(tài)驅(qū)動(dòng)法</b></p><p>  當(dāng)液晶顯示器件上顯示像素眾多時(shí),如點(diǎn)陣型液晶顯示器件,為了節(jié)省龐大的硬件驅(qū) 動(dòng)電路,在液晶顯示

27、器件電極的制作與排列上作了加工,實(shí)施了矩陣型的結(jié)構(gòu),即把水平一組顯示像素的背電極都連在一起引出,稱之為行電極,把縱向一組顯示像素的段電極都連接起來一起引出,稱之為列電極。在液晶顯示器上每一個(gè)顯示像素都由其所在的列與行的位置唯一確定。在驅(qū)動(dòng)方式上相應(yīng)地采用了類同于CRT的光柵掃描方法。液晶顯示的動(dòng)態(tài)驅(qū)動(dòng)法是循環(huán)地給行電極施加選擇脈沖,同時(shí)所有為顯示數(shù)據(jù)的列電極給出相應(yīng)的選擇或非選擇的驅(qū)動(dòng)脈沖,從而實(shí)現(xiàn)某行所有顯示像素的顯示功能,這種行掃描

28、是逐行順序進(jìn)行的,循環(huán)周期很短,使得液晶顯示屏上呈現(xiàn)出穩(wěn)定的圖象。我們把液晶顯示的掃描驅(qū)動(dòng)方式稱為動(dòng)態(tài)驅(qū)動(dòng)法。</p><p>  1.6 液晶模塊指令系統(tǒng)</p><p>  1.6.1 顯示開關(guān)控制(DISPLAY ON/OFF) </p><p>  代碼 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 &l

29、t;/p><p>  形式 0 0 0 0 1 1 1 1 1 D </p><p>  D=1:開顯示(DISPLAY ON)意即顯示器可以進(jìn)行各種顯示操作 </p><p>  D=0:關(guān)顯示(DISPLAY OFF)意即不能對(duì)顯示器可以進(jìn)行各種顯示操作 </p><p>  1.6.

30、2 設(shè)置顯示起始行 </p><p>  代碼 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 </p><p>  形式 0 0 1 1 A5 A4 A3 A2 A1 A0 </p><p>  前面在Z 地址計(jì)數(shù)器一節(jié)已經(jīng)描述了顯示起始行是由Z 地址計(jì)數(shù)器控制的。A

31、5∽ A0 的6位地址自動(dòng)送入Z地址計(jì)數(shù)器,起始行的地址可以是0∽ 63 的任意一行。 </p><p><b>  例如: </b></p><p>  選擇A5∽ A0 是62, 則起始行與DDRAM 行的對(duì)應(yīng)關(guān)系如下: </p><p>  DDRAM 行: 62 63 0 1 2 3?????????????????????

32、28 29 </p><p>  屏幕顯示行: 1 2 3 4 5 6????????????????????? 31 32 </p><p>  1.6.3 設(shè)置頁地址 </p><p>  代碼 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 </p><p>  形式 0

33、0 1 0 1 1 1 A2 A1 A0 </p><p>  所謂頁地址就是DDRAM的行地址,8 行為一頁,模塊共64 行即8 頁, A2 ∽ A0 表示0∽ 7 頁。讀寫數(shù)據(jù)對(duì)地址沒有影響, 頁地址由本指令或RST 信號(hào) 改變復(fù)位后頁地址為0。頁地址與DDRAM 的對(duì)應(yīng)關(guān)系見DDRAM 地址表。 </p><p>  1.6.

34、4 設(shè)置Y 地址(SET Y ADDRESS) </p><p>  代碼 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 </p><p>  形式 0 0 0 1 A5 A4 A3 A2 A1 A0 </p><p>  此指令的作用是將A5∽ A0 送入Y 地址計(jì)

35、數(shù)器,作為DDRAM 的Y 地址指針。在對(duì)DDRAM 進(jìn)行讀寫操作后, Y 地址指針自動(dòng)加1, 指向下一個(gè)DDRAM 單元。 </p><p>  DDRAM 地址表: </p><p>  1.6.5 讀狀態(tài)(STATUS READ) </p><p>  代碼 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 &

36、lt;/p><p>  形式 1 0 BUSY 0 ON/OFF RET 0 0 0 0 </p><p>  當(dāng)R/W=1 D/I=0 時(shí), 在E 信號(hào)為“ H” 的作用下, 狀態(tài)分別輸出到數(shù)據(jù)總線( DB7∽ DB0) 的相應(yīng)位。 </p><p>  BF: 前面已敘述過( 見BF標(biāo)志位一節(jié))。 </p><

37、p>  ON/OFF: 表示DFF觸發(fā)器的狀態(tài)( 見DFF觸發(fā)器一節(jié))。 </p><p>  RST: RST=1 表示內(nèi)部正在初始化, 此時(shí)組件不接受任何指令和數(shù)據(jù)。 </p><p>  1.6.6 寫顯示數(shù)據(jù)(WRITE DISPLAY DATE) </p><p>  代碼 R/W D/I DB7 DB6 DB5 DB4 DB3 DB

38、2 DB1 DB0 </p><p>  形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0 </p><p>  D7∽ D0 為顯示數(shù)據(jù),此指令把D7∽ D0 寫入相應(yīng)的DDRAM 單元,Y地指針自動(dòng)加1。 </p><p>  1.6.7 讀顯示數(shù)據(jù)(READ DISPLAY DATE) </p><p&g

39、t;  代碼 R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 </p><p>  形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0 </p><p>  此指令把DDRAM 的內(nèi)容D7∽ D0 讀到數(shù)據(jù)總線DB7∽ DB0, Y 地址指針自動(dòng)加1。 </p><p>  1.8 讀

40、寫操作時(shí)序 </p><p>  1.8.1 寫操作時(shí)序 </p><p>  圖1-2 寫操作時(shí)序</p><p>  1.8.2 讀操作時(shí)序 </p><p>  圖1-3 讀操作時(shí)序</p><p>  1.7.3 讀寫時(shí)序參數(shù)表 </p><p>  表1-3讀寫時(shí)序參數(shù)表<

41、/p><p>  第二章 STC89C52芯片介紹</p><p>  STC89C52是一種帶8K字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(FPEROM-Flash Programable and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容

42、。</p><p>  單片機(jī)總控制電路如下圖2-1:</p><p>  圖2-1單片機(jī)總控制電路</p><p><b>  2.1時(shí)鐘電路</b></p><p>  STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。

43、內(nèi)部方式的時(shí)鐘電路如圖2—2(a) 所示,在RXD和TXD引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。</p><p>  外部方式的時(shí)鐘電路如圖2—2(b)所示,RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無特殊要求,只要求保證脈沖寬度,一般采用頻率

44、低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。</p><p>  RXD接地,TXD接外部振蕩器。對(duì)外部振蕩信號(hào)無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號(hào)。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘P1和P2,供單片機(jī)使用。</p><p> ?。╝)內(nèi)部方式時(shí)鐘電路 (b)外部方式時(shí)鐘電

45、路</p><p><b>  圖2—2時(shí)鐘電路</b></p><p>  2.2復(fù)位及復(fù)位電路</p><p><b>  (1)復(fù)位操作</b></p><p>  復(fù)位是單片機(jī)的初始化操作。其主要功能是把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之

46、外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。</p><p>  除PC之外,復(fù)位操作還對(duì)其他一些寄存器有影響,它們的復(fù)位狀態(tài)如表一所示。</p><p>  表2-1 一些寄存器的復(fù)位狀態(tài)</p><p> ?。?)復(fù)位信號(hào)及其產(chǎn)生</p><p>  RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位信號(hào)是高電

47、平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。若使用頗率為6MHz的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過4us才能完成復(fù)位操作。</p><p>  產(chǎn)生復(fù)位信號(hào)的電路邏輯如圖4—3所示:</p><p>  圖2—3復(fù)位信號(hào)的電路邏輯圖</p><p>  整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電

48、路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。</p><p>  復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式。</p><p>  上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,其電路如圖2—4(a)所示。這佯,只要電源Vcc的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。</p>&

49、lt;p>  按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的,其電路如圖2—4(b)所示;而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的,</p><p>  其電路如圖2—4(c)所示:</p><p> ?。╝)上電復(fù)位 (b)按鍵電平復(fù)位 (c)按鍵脈沖復(fù)位</p><p&g

50、t;<b>  圖2—4復(fù)位電路</b></p><p>  上述電路圖中的電阻、電容參數(shù)適用于6MHz晶振,能保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。</p><p>  本系統(tǒng)的復(fù)位電路采用圖2—4(b)上電復(fù)位方式。</p><p>  2.3 STC89C52具體介紹</p><p>  ① 主電源引腳(2

51、根)</p><p>  VCC(Pin40):電源輸入,接+5V電源</p><p>  GND(Pin20):接地線</p><p>  ②外接晶振引腳(2根)</p><p>  XTAL1(Pin19):片內(nèi)振蕩電路的輸入端</p><p>  XTAL2(Pin20):片內(nèi)振蕩電路的輸出端</p>

52、<p><b> ?、劭刂埔_(4根)</b></p><p>  RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p>  ALE/PROG(Pin30):地址鎖存允許信號(hào)</p><p>  PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)</p><p> 

53、 EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。</p><p> ?、芸删幊梯斎?輸出引腳(32根)</p><p>  STC89C52單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。</p><p>  PO口(Pin39~Pin3

54、2):8位雙向I/O口線,名稱為P0.0~P0.7</p><p>  P1口(Pin1~Pin8):8位準(zhǔn)雙向I/O口線,名稱為P1.0~P1.7 </p><p>  P2口(Pin21~Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.0~P2.7 </p><p>  P3口(Pin10~Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0~P3.7</p

55、><p>  STC89C52主要功能如表2-2所示。</p><p>  表2-2 STC89C52主要功能</p><p><b>  按鍵模塊</b></p><p>  圖3-1是按鍵輸入電路。</p><p><b>  圖3-1 按鍵電路</b></p>

56、<p>  由于本次設(shè)計(jì)用到的I/O口較少,有足夠的多余I/O口用于按鍵設(shè)計(jì)。故采用比較簡單的獨(dú)立式鍵盤的接口設(shè)計(jì)。</p><p>  這種按鍵形式電路簡單,配置靈活,但是因?yàn)槊恳粋€(gè)按鍵需要占用一個(gè)I/O</p><p>  口,所以,I/O口占用量很大,它只適合于按鍵數(shù)量少的情況下使用。獨(dú)立式鍵盤按鍵的數(shù)量較少,并且各個(gè)按鍵相互獨(dú)立,每一個(gè)按鍵由一個(gè)獨(dú)立的I/O口控制,一

57、個(gè)按鍵改變的是一個(gè)相應(yīng)I/O口的輸入電平,而不會(huì)對(duì)其他I/O口電平產(chǎn)生影響。這樣,通過檢測各I/O口的電平變化,即可很容易地確定是否有按鍵按下及是何鍵按下。</p><p>  如上圖所示按鍵電路,一開始P1.0口是高電平,按鍵按下時(shí)即轉(zhuǎn)變?yōu)榻拥氐牡碗娖?,單片機(jī)檢測到該變化即可按程序規(guī)定的情況進(jìn)行運(yùn)轉(zhuǎn)。</p><p>  按鍵掃描的程序流程如圖3-2。該流程考慮了去抖動(dòng)。</p&g

58、t;<p>  圖3-2 按鍵掃描程序流程圖</p><p><b>  電路框圖設(shè)計(jì)</b></p><p><b>  4.1 系統(tǒng)框圖</b></p><p><b>  圖4.1 系統(tǒng)框圖</b></p><p><b>  4.2 工作原理&l

59、t;/b></p><p>  4.2.1 硬件工作原理</p><p>  硬件控制電路主要用了4*4 矩陣鍵盤、AT89S52 芯片處理器、LCD。由AT89S52 處理器處理從4*4 鍵盤發(fā)出的指令,通過LCD繪制出相應(yīng)按鍵的內(nèi)容。</p><p>  4.2.2 軟件工作原理</p><p>  軟件控制程序主要有主控程序、時(shí)間

60、程序、LCD 控制程序、時(shí)間及日期顯示程序、鍵盤掃描程序等組成。主控程序中對(duì)整個(gè)程序進(jìn)行控制,進(jìn)行了時(shí)間和LCD 初始化、LCD等控制。</p><p>  LCD 顯示程序是整個(gè)顯示部分中的重要部分,包括寫入命令、初始化、寫入數(shù)據(jù)、數(shù)據(jù)顯示、自定義GDRAM 顯示、繪圖顯示、反白顯示等。當(dāng)LCD 的RS=RW= 0,同時(shí)EN由1 變0 時(shí),可以對(duì)LCD 寫入基本指令和擴(kuò)充指令;當(dāng)RS=1,RW=0,同時(shí)EN 由

61、1 變0時(shí),可以對(duì)LCD 寫入數(shù)據(jù)。對(duì)LCD 端口寫入不同的命令可以寫入和顯示不同的數(shù)據(jù),具體命令請參考LCD12864 和數(shù)據(jù)手冊。</p><p>  LCD 時(shí)間控制程序是時(shí)間程序重要的部分,時(shí)間控制程序體現(xiàn)了年、月、日、時(shí)、分、秒的計(jì)算方法。此設(shè)計(jì)采用AT89S52 自帶的T0 計(jì)時(shí)器進(jìn)行計(jì)時(shí),中斷程序每隔50ms 中斷一次當(dāng)作一個(gè)計(jì)數(shù),每中斷一次則計(jì)數(shù)加1,當(dāng)計(jì)數(shù)20 次時(shí),則表示1 秒到了,秒變量加1

62、,同理再判斷是否1 分鐘到了,再判斷是否1 小時(shí)到了,再判斷是否1 天到了,再判斷是否1 月到了,再判斷是否1 年到了,若計(jì)數(shù)到了則相關(guān)變量清除0。先給出一般年份的每月天數(shù)。如果是閏年,第2 月天數(shù)為29 天,非閏年則有28 天。在我們的這個(gè)設(shè)計(jì)中只設(shè)有100 年的范圍,判斷是否閏年就只需要用該年份除以4 來判斷就行了。</p><p>  鍵盤掃描程序是整個(gè)設(shè)計(jì)的輸入控制程序,4*4 鍵盤占用單片機(jī)的8 個(gè)I/

63、O 口。本設(shè)計(jì)的鍵盤掃描程序采用行列反轉(zhuǎn)掃描法讀取按鍵鍵值。單片機(jī)先讓鍵盤行線輸出全為0,然后讀入列線值,再檢測有無按鍵按下,去抖,再讀入列線值,輸出當(dāng)前列線值,線值,最后組合行、列線值,得到鍵盤的碼值供調(diào)用。</p><p>  第硬件原理分析及設(shè)計(jì)</p><p>  5.1 單片機(jī)時(shí)鐘電路</p><p>  內(nèi)部時(shí)鐘電路如圖所示,在XTAL1 和XTAL2

64、引腳上外接定時(shí)元件,內(nèi)部振蕩電路就產(chǎn)生自激振蕩。定時(shí)元件通常石英晶體和電容組成的并聯(lián)諧振回路,晶體振蕩器選擇12MHZ,電容采用30PF。</p><p><b>  圖5.1 時(shí)鐘電路</b></p><p>  5.2 單片機(jī)復(fù)位電路</p><p>  影響單片機(jī)系統(tǒng)運(yùn)行穩(wěn)定性的因素可大體分為外因和內(nèi)因兩部分:</p>&l

65、t;p><b>  (1)外因</b></p><p>  射頻干擾,它是以空間電磁場的形式傳遞在機(jī)器內(nèi)部的導(dǎo)體(引線或零件引腳)感生出相應(yīng)的干擾,可通過電磁屏蔽和合理的布線/器件布局衰減該類干擾;</p><p>  電源線或電源內(nèi)部產(chǎn)生的干擾,它是通過電源線或電源內(nèi)的部件耦合或直接傳導(dǎo),可通過電源濾波、隔離等措施來衰減該類干擾。</p><

66、;p><b> ?。?)內(nèi)因</b></p><p>  振蕩源的穩(wěn)定性,主要由起振時(shí)間頻率穩(wěn)定度和占空比穩(wěn)定度決定 起振時(shí)間可由電路參數(shù)整定穩(wěn)定度受振蕩器類型溫度和電壓等參數(shù)影響復(fù)位電路的可靠性。</p><p><b>  5.3 鍵盤電路</b></p><p>  4*4 鍵盤電路由4*4=16 個(gè)按鍵組成,

67、其中4 列經(jīng)過4 個(gè)10K 電阻接入VCC 上拉,接入單片機(jī)的P3 口的高4 位口,4 行直接接入單片機(jī)低4 位,當(dāng)有按鍵按下時(shí),由單片機(jī)控制8 個(gè)I/O 口讀取出當(dāng)前鍵值。</p><p><b>  圖5.3 鍵盤電路</b></p><p><b>  5.4 顯示電路</b></p><p><b>  

68、LCD 顯示電路</b></p><p>  LCD12864 一共有20 個(gè)引腳,其中4-15、17 腳接入單片機(jī)的P0 全部I/O 口和P2 的三個(gè)I/O 口,是LCD 與單片機(jī)通訊的橋梁。16 號(hào)腳是空腳,1 和20 腳接地,2 和19 腳接VCC,其中3、18、19 三個(gè)腳接可調(diào)電位器和電阻,組成調(diào)節(jié)LCD 對(duì)比度電路。如圖5.4所示。</p><p><b>

69、;  圖5.3 顯示電路</b></p><p><b>  軟件設(shè)計(jì)</b></p><p>  此設(shè)計(jì)名為儀器儀表的鍵盤繪制模擬系統(tǒng),顧名思義軟件占很大比例。整個(gè)設(shè)計(jì)硬件比較簡單,主要就是程序的寫法,而軟件的調(diào)試也是此設(shè)計(jì)的重點(diǎn)和難點(diǎn)。整個(gè)軟件結(jié)構(gòu)分為主控程序、顯示部分程序、鍵盤掃描部分程序、時(shí)鐘部分程序和延時(shí)程序。</p><p&

70、gt;<b>  6.1寄存器寫入</b></p><p>  寫入液晶寄存器地址,根據(jù)寫入電平時(shí)序可以得到,先使CS和RS置低電平,然后在送上寄存器的地址,再將寫信號(hào)WR送一低電平脈沖,這樣P3口上的寄存器地址被液晶寫入,最后再恢復(fù)CS高電平,這樣寄存器地址就寫入了。</p><p>  寫入寄存器數(shù)據(jù),根據(jù)寫入脈沖時(shí)序可以得到,先使CS低電平先中芯片,使我RS置高

71、電平選中寄存器,然后在送上寄存器的數(shù)據(jù),再將寫信號(hào)WR上送一低電平脈沖,這樣P3口送出低8位數(shù)據(jù),P4口送入高位數(shù)據(jù),最后再恢復(fù)CS的高電平,這樣寄存器數(shù)據(jù)就寫入了。</p><p><b>  6.2清屏</b></p><p>  清屏程序,將光標(biāo)值(0,0)位置,先使CS置低電平選中芯片,使RS置高電平選中寄存器,然后在送上寄存器的數(shù)據(jù),然后調(diào)用LCD12864

72、函數(shù)送入RGB數(shù)據(jù),然后WR送出76800個(gè)脈沖,將128*64的液晶所有像點(diǎn)全部設(shè)置成一個(gè)顏色,這樣達(dá)到了清屏的目的。</p><p><b>  6.3光標(biāo)參數(shù)設(shè)置</b></p><p>  設(shè)置液晶的光標(biāo),根據(jù)輸入的X和Y的坐標(biāo)數(shù)據(jù),會(huì)調(diào)用到寫入寄存器的函數(shù),將X和Y的數(shù)據(jù)寫入控制光標(biāo)寄存器,將光標(biāo)設(shè)置在所要的地方,這樣光標(biāo)設(shè)置好了。</p>&

73、lt;p><b>  6.4 RAM寫入</b></p><p>  寫入液晶RAM的RGB數(shù)據(jù),先使CS置低電平選中芯片,使RS置高電平選中寄存,然后在送上寄存器的數(shù)據(jù),然后調(diào)用LCD12864函數(shù)送入RGB數(shù)據(jù),再向WR寫信號(hào)送一低電平脈沖,最后恢復(fù)CS的高電平,這樣寫入液晶的一次RGB數(shù)據(jù)就完成了。</p><p><b>  6.5圖形顯示&l

74、t;/b></p><p>  顯示圖形程序,接到光標(biāo)的位置(xaddress,yaddress)和圖形的長寬還有整個(gè)圖形的數(shù)據(jù)data,然后開始從第一個(gè)光標(biāo)的位置開始掃描整張圖形,長度從0到picture_long,寬度從0到picture_wide,這些都是在主程序中輸入的,然后先引用LcD-setcursor()函數(shù)設(shè)置光標(biāo)設(shè)置,然后引用LCD-writeram-prepare()函數(shù)使RAM準(zhǔn)備好,

75、在每次寫入RAM前需要先調(diào)用這個(gè)函數(shù)。由于Image2lcd軟件的出來的是8位的2位進(jìn)制數(shù)據(jù),12864液晶用的是16位的數(shù)據(jù),所以要有2個(gè)8位合成1個(gè)16位的數(shù)據(jù)的運(yùn)算,然后再調(diào)用LcD_write-ram()送入RGB數(shù)據(jù),讓液晶顯示所要圖形,這樣的整個(gè)圖形就完成了</p><p><b>  程序見附錄</b></p><p>  圖6.1主程序流程圖</

76、p><p><b>  電路調(diào)試</b></p><p>  本設(shè)計(jì)的調(diào)試涉及到硬件和軟件的調(diào)試,硬件調(diào)試是建立在軟件調(diào)試的基礎(chǔ)上,只有保證硬件正常工作后才能對(duì)軟件進(jìn)行調(diào)試。</p><p><b>  7.1 硬件調(diào)試</b></p><p>  一塊電路板做好后,并不能保證不會(huì)出錯(cuò),在調(diào)試與檢測過程

77、中,利用萬能表檢測供電是否正常;線路是否有短路、斷路等現(xiàn)象。</p><p>  我們在硬件調(diào)試的時(shí)候發(fā)現(xiàn)單片機(jī)和液晶12864一切正常,比較順利。</p><p><b>  7.2 軟件調(diào)試</b></p><p>  我們做這個(gè)設(shè)計(jì)的時(shí)候碰到的最大的問題就是軟件的調(diào)試,編寫程序需要非常細(xì)心,邏輯思維要強(qiáng),頭腦要靈活,第一次接觸LCD128

78、64電路,而且單片機(jī)編程理解得不是很透,在一開始沒有一點(diǎn)眉目,在反復(fù)仔細(xì)翻閱了它的數(shù)據(jù)手冊,并參考網(wǎng)上別人的思路,在老師的幫助下,能實(shí)現(xiàn)了它的大部分功能。</p><p>  當(dāng)程序?qū)懞煤笥肁SP 下載線和AVR_fighter 軟件把寫好的程序燒錄進(jìn)單片機(jī)測試其工作情況和查找漏洞,并逐步完善整個(gè)設(shè)計(jì)功能。 </p><p><b>  小結(jié)</b></p&g

79、t;<p>  從設(shè)計(jì)題目下來到現(xiàn)在歷時(shí)兩個(gè)多星期,克服了硬件和軟件上各種問題,實(shí)現(xiàn)大部分的功能。因?yàn)楸驹O(shè)計(jì)硬件比較簡單,在硬件上比較順利,其他功能都正常。而主要的難題是在軟件設(shè)計(jì)上,在軟件上碰到以下幾點(diǎn)問題:</p><p> ?。?) 對(duì)LCD 寫入命令和數(shù)據(jù)的格式、時(shí)序弄亂。</p><p> ?。?) 對(duì)LCD 基本指令集、擴(kuò)充指令集比較模糊,在繪制圖形部分時(shí)滯留了很

80、久。</p><p> ?。?) 對(duì)圖形的改變位置大小抓不住頭緒,圖形實(shí)心虛心理解不透。</p><p>  (4) 在設(shè)計(jì)時(shí)鐘部分時(shí),單片機(jī)的定時(shí)器/計(jì)數(shù)器、中斷部分出錯(cuò)。</p><p>  而這些問題都是跟自己對(duì)單片機(jī)的掌握不夠深有關(guān),這也提醒了我們要抓好基礎(chǔ)功,基礎(chǔ)好了,對(duì)付起這些問題才會(huì)得心應(yīng)手。</p><p><b>

81、  參考文獻(xiàn)</b></p><p>  [1] 李維諟、郭強(qiáng)等, 液晶顯示應(yīng)用手冊, 電子工業(yè)出版社, 北京,2002</p><p>  [2] 劉永智、楊開愚等, 液晶顯示技術(shù),電子科技大學(xué)出版社,成都,2000</p><p>  [3] 郭強(qiáng),液晶顯示應(yīng)用技術(shù),電子工業(yè)出版社,北京,2000</p><p>  [4]

82、 范志新,液晶器件工藝基礎(chǔ),北京郵電大學(xué)出版社,北京,2000</p><p>  [5] 施善定等,液晶與顯示應(yīng)用,華東化工學(xué)院出版社,上海,1993</p><p>  [6] 李宏、張家田等,液晶顯示器件應(yīng)用技術(shù),機(jī)械工業(yè)出版社,北京,2004</p><p>  [7] 趙秀珍、單永磊,單片微型計(jì)算機(jī)原理及其應(yīng)用,中國水力出版社,北京,2001</p&

83、gt;<p>  [8] 楊光友、朱宏輝,單片微型計(jì)算機(jī)原理及接口技術(shù),中國水利水電出版社,北京,2002</p><p>  [9] 蘇偉斌,8051系列單片機(jī)應(yīng)用手冊,科學(xué)出版社,北京,1997</p><p>  [10] 胡漢才,單片機(jī)原理及其接口技術(shù),清華大學(xué)出版社,北京,1999</p><p>  [11] 王承發(fā) 劉巖,微機(jī)接口技術(shù),高

84、等教育出版社,北京,1996</p><p>  [12] 耿長清,單片機(jī)應(yīng)用技術(shù),化學(xué)工業(yè)出版社,北京,1996</p><p>  [13] 徐愛卿等,單片微型計(jì)算機(jī)及其應(yīng)用,北京航空學(xué)院出版社,北京,1986</p><p>  [14] 余永權(quán),F(xiàn)LASH單片機(jī)原理及應(yīng)用,電子工業(yè)出版社,北京,1997</p><p><b&g

85、t;  附錄</b></p><p><b>  附錄A 軟件程序</b></p><p>  //獨(dú)立按鍵檢測驅(qū)動(dòng)</p><p>  //說明:按鍵必須在同一組IOA或IOB口,按一次產(chǎn)生一個(gè)有效按鍵值</p><p>  #include "_my51.h"</p>&

86、lt;p>  //%%%%%%%%%%%%%%移植修改該區(qū)域內(nèi)參數(shù)%%%%%%%%%%%%%%%%%%%//</p><p>  #define SCANTTIME 1000//按鍵延時(shí)檢測時(shí)間</p><p>  #define KEYWORD 0x0f</p><p>  extern bit Muen;</p><p>  ex

87、tern bit Slect;</p><p>  extern bit Adjadd;</p><p>  extern bit Adjsub;</p><p>  //功能:鍵盤檢測程序</p><p><b>  //輸入?yún)?shù):無</b></p><p>  //輸出參數(shù):輸出鍵盤檢測結(jié)果;

88、1表示對(duì)應(yīng)按鍵按下</p><p>  char scankey()</p><p><b>  {int key;</b></p><p>  P3|=KEYWORD;</p><p>  key=P3&KEYWORD;</p><p>  if(key!=KEYWORD)</p&

89、gt;<p>  {int i=SCANTTIME;</p><p>  while(i--);</p><p>  while((P3&KEYWORD)!=KEYWORD);</p><p><b>  }</b></p><p>  return key^=KEYWORD;</p>

90、<p><b>  }</b></p><p>  void getkey()</p><p>  {switch(scankey())</p><p>  {case 0x01:</p><p><b>  Muen=1;</b></p><p><b&g

91、t;  break;</b></p><p>  case 0x02:</p><p><b>  Slect=1;</b></p><p><b>  break;</b></p><p>  case 0x04:</p><p><b>  Adja

92、dd=1;</b></p><p><b>  break;</b></p><p>  case 0x08:</p><p><b>  Adjsub=1;</b></p><p><b>  break;</b></p><p><

93、b>  default:</b></p><p><b>  break;</b></p><p><b>  }}</b></p><p><b>  My51</b></p><p>  STC89C52頭文件</p><p>  

94、#ifndef __MY51_H__</p><p>  #define __MY51_H__</p><p>  /* BYTE Registers */</p><p>  sfr P0 = 0x80; //P0口寄存器</p><p>  sfr P1 = 0x90; //P1口寄存器</p><

95、p>  sfr P2 = 0xA0; //P2口寄存器</p><p>  sfr P3 = 0xB0; //P3口寄存器</p><p>  /* P3 */</p><p>  sbit RD = P3^7;</p><p>  sbit WR = P3^6;</p><p>

96、  sbit T1 = P3^5;</p><p>  sbit T0 = P3^4;</p><p>  sbit INT1 = P3^3;</p><p>  sbit INT0 = P3^2;</p><p>  sbit TXD = P3^1;</p><p>  sbit RXD =

97、P3^0;</p><p>  sfr PSW = 0xD0; //處理器的狀態(tài)寄存器</p><p>  /* PSW */</p><p>  sbit CY = PSW^7;//進(jìn)位標(biāo)志位</p><p>  sbit AC = PSW^6;//輔助進(jìn)位標(biāo)志位</p><p>  sbi

98、t F0 = PSW^5;//通用標(biāo)志位</p><p>  sbit RS1 = PSW^4;//寄存器組選擇位高位</p><p>  sbit RS0 = PSW^3;//寄存器組選擇位低位</p><p>  sbit OV = PSW^2;//溢出標(biāo)志位</p><p>  sbit P = PS

99、W^0; //奇偶標(biāo)志位;8052 only</p><p>  sfr ACC = 0xE0; //A寄存器</p><p>  sfr B = 0xF0; //B寄存器</p><p>  sfr SP = 0x81; //堆棧指針寄存器</p><p>  sfr DPL = 0x82; //數(shù)據(jù)地址寄存器

100、低字節(jié)</p><p>  sfr DPH = 0x83; //數(shù)據(jù)地址寄存器高字節(jié)</p><p>  sfr PCON = 0x87; //電源控制寄存器,不可位尋址,</p><p>  //bit7:SMOD,串行口通信波特率控制位置位使波特率翻倍;</p><p>  //bit3:GF1通用標(biāo)志位;</p>

101、<p>  //bit2:GF0通用標(biāo)志位;</p><p>  //bit1:PDWN低功耗標(biāo)志位置位進(jìn)入低功耗模式;</p><p>  //bit0:空閑標(biāo)志位置位進(jìn)入空閑模式;</p><p>  sfr TCON = 0x88; //定時(shí)器控制寄存器</p><p>  /* TCON */</p>

102、<p>  sbit TF1 = TCON^7; //定時(shí)器1溢出中斷標(biāo)志,響應(yīng)中斷后由處理器清零</p><p>  sbit TR1 = TCON^6; //定時(shí)器1控制位,置位時(shí)定時(shí)器1工作,復(fù)位時(shí)定時(shí)器1停止工作</p><p>  sbit TF0 = TCON^5; //定時(shí)器0溢出標(biāo)志位,定時(shí)器0溢出時(shí)置位。處理器響應(yīng)中斷后清除該位</p>

103、<p>  sbit TR0 = TCON^4; //定時(shí)器0控制位,置位時(shí)定時(shí)器0工作。復(fù)位時(shí)定時(shí)器0停止工作</p><p>  sbit IE1 = TCON^3; //外部中斷1觸發(fā)標(biāo)志位,當(dāng)檢測到P3.3有從高到低的跳變電平時(shí)置位,處理器響應(yīng)中斷后,由硬件清除該位。</p><p>  sbit IT1 = TCON^2; //中斷1觸發(fā)方式控制位,置位

104、時(shí)為跳變觸發(fā),復(fù)位時(shí)為低電平觸發(fā)</p><p>  sbit IE0 = TCON^1; //外部中斷0觸發(fā)標(biāo)志位,當(dāng)檢測到P3.2有從高到低的跳變電平時(shí)置位,處理器響應(yīng)中斷后,由硬件清除該位。</p><p>  sbit IT0 = TCON^0; //中斷0觸發(fā)方式控制位,置位時(shí)為跳變觸發(fā),復(fù)位時(shí)為低電平觸發(fā)</p><p>  sfr TMOD

105、= 0x89; //定時(shí)器控制寄存器,不可位尋址</p><p>  //bit7:GATE,當(dāng)GATE置位時(shí),定時(shí)器1僅當(dāng)TR1=1并且INT1=1時(shí)才工作,如果GATE=0 置位,TR1定時(shí)器1就開始工作</p><p>  //bit6:C/T,定時(shí)器1方式選擇,如果C/T=1定時(shí)器1以計(jì)數(shù)方式工作,C/T=0時(shí)以定時(shí)方式工作</p><p>  //bit

106、5:M1,定時(shí)器1模式選擇位高位</p><p>  //bit4:M0,定時(shí)器1模式選擇位低位</p><p>  //bit3:GATE,當(dāng)GATE置位時(shí),定時(shí)器0僅當(dāng)TR0=1并且INT0=1時(shí)才工作,如果GATE=0 置位,TR0定時(shí)器0就開始工作</p><p>  //bit2:C/T,定時(shí)器0方式選擇,如果C/T=1定時(shí)器0以計(jì)數(shù)方式工作,C/T=0時(shí)

107、以定時(shí)方式工作</p><p>  //bit1:M1,定時(shí)器0模式選擇位高位</p><p>  //bit0:M0,定時(shí)器0模式選擇位低位</p><p>  //方式0:為十三位定時(shí)/計(jì)數(shù)器方式,定時(shí)器溢出時(shí)置位TF0或TF1并產(chǎn)生中斷</p><p>  //方式1:將以十六位定時(shí)/計(jì)數(shù)器方式工作,定時(shí)器溢出時(shí)置位TF0或TF1并產(chǎn)生

108、中斷</p><p>  //方式2:8位自動(dòng)重裝工作方式,定時(shí)器的低8位TL0或TL1用來計(jì)數(shù),高8位TH0或TH1用來存放重裝數(shù)值,</p><p>  //當(dāng)定時(shí)器溢出時(shí),TH中的數(shù)值被裝入TL中定時(shí)器0和定時(shí)器1在方式2時(shí)是同樣的定時(shí)器1常用此方式來產(chǎn)生波特率。</p><p>  //方式3:定時(shí)器0成為兩個(gè)8位定時(shí)/計(jì)數(shù)器,TH0和TL0 TH0對(duì)應(yīng)于T

109、MOD中定時(shí)器0的控制位,而TL0占據(jù)了TMOD中定時(shí)器1的控制位,這樣定時(shí)器1將不能產(chǎn)生溢出中斷了,</p><p>  //但可用于其它不需產(chǎn)生中斷的場合,如作為波特率發(fā)生器或作為定時(shí)計(jì)數(shù)器被軟件查詢,當(dāng)系統(tǒng)需要用定時(shí)器1來產(chǎn)生波特率而又同時(shí)需要兩個(gè)定時(shí)/計(jì)數(shù)器時(shí)這種工作方式十分有用,</p><p>  //當(dāng)定時(shí)器1設(shè)置為工作方式3時(shí)將停止工作。</p><p&

110、gt;  sfr TL0 = 0x8A; //定時(shí)器0低字節(jié)</p><p>  sfr TL1 = 0x8B; //定時(shí)器1低字節(jié)</p><p>  sfr TH0 = 0x8C; //定時(shí)器0高字節(jié)</p><p>  sfr TH1 = 0x8D; //定時(shí)器1高字節(jié)</p><p>  sfr IE =

111、 0xA8; //中斷使能寄存器;</p><p>  /* IE */</p><p>  sbit EA = IE^7; //使能標(biāo)志位置位則所有中斷使能復(fù)位則禁止所有中斷</p><p>  sbit ET2 = IE^5; //定時(shí)器2中斷使能;8052 only</p><p>  sbit ES = IE^4

112、; //串行通信中斷使能</p><p>  sbit ET1 = IE^3; //定時(shí)器1中斷使能</p><p>  sbit EX1 = IE^2; //外部中斷1使能</p><p>  sbit ET0 = IE^1; //定時(shí)器0中斷使能</p><p>  sbit EX0 = IE^0; //外部中斷0使能&l

113、t;/p><p>  sfr IP = 0xB8; //中斷優(yōu)先級(jí)寄存器,從低比特到高比特,中斷優(yōu)先級(jí)從高到低</p><p>  /* IP */</p><p>  sbit PT2 = IP^5; //定時(shí)器2中斷優(yōu)先級(jí);8052 only</p><p>  sbit PS = IP^4; //串行通信中斷優(yōu)先級(jí)&l

114、t;/p><p>  sbit PT1 = IP^3; //定時(shí)器1中斷優(yōu)先級(jí)</p><p>  sbit PX1 = IP^2; //外部中斷1優(yōu)先級(jí)</p><p>  sbit PT0 = IP^1; //定時(shí)器0中斷優(yōu)先級(jí)</p><p>  sbit PX0 = IP^0; //外部中斷0優(yōu)先級(jí)</p>

115、<p>  sfr SCON = 0x98; //串行控制寄存器</p><p>  /* SCON */</p><p>  sbit SM0 = SCON^7;//串行模式選擇</p><p>  sbit SM1 = SCON^6;//串行模式選擇</p><p>  sbit SM2 = SCON^5;/

116、/多機(jī)通訊允許位,當(dāng)模式0時(shí)此位應(yīng)該為0模式1時(shí)當(dāng)接收到停止位時(shí)該位將置位模式2或模式3時(shí)當(dāng)接收的第9位數(shù)據(jù)為1時(shí)將置位</p><p>  sbit REN = SCON^4;//串行接收允許位</p><p>  sbit TB8 = SCON^3;//在模式2和模式3中將被發(fā)送數(shù)據(jù)的第9位</p><p>  sbit RB8 = SCON^2;/

117、/在模式0中該位不起作用,在模式1中該位為接收數(shù)據(jù)的停止位,在模式2和模式3中為接收數(shù)據(jù)的第9位。</p><p>  sbit TI = SCON^1;//發(fā)送中斷標(biāo)志位,由軟件清零</p><p>  sbit RI = SCON^0;//接收中斷標(biāo)志位,由軟件清零</p><p>  //SM0SM1工作方式功能波特率</p&

118、gt;<p>  //00方式08位同步移位寄存器fosc/12</p><p>  //01 方式110位UART可變</p><p>  //10 方式211位UARTfosc/64或fosc/32</p><p>  //110 方式311位UART可變</p>&

119、lt;p>  sfr SBUF = 0x99; //串口數(shù)據(jù)緩沖器</p><p>  /* 8052 Extensions */</p><p>  sfr T2CON = 0xC8; //定時(shí)器2控制寄存器</p><p>  /* T2CON */</p><p>  sbit TF2 = T2CON^7;//

溫馨提示

  • 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論