單片機(jī)原理與應(yīng)用技術(shù)_第1頁(yè)
單片機(jī)原理與應(yīng)用技術(shù)_第2頁(yè)
單片機(jī)原理與應(yīng)用技術(shù)_第3頁(yè)
單片機(jī)原理與應(yīng)用技術(shù)_第4頁(yè)
單片機(jī)原理與應(yīng)用技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩124頁(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、第10章 應(yīng)用系統(tǒng)設(shè)計(jì)及接口技術(shù) 課時(shí):12學(xué)時(shí)教學(xué)目的 了解單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)方法及開(kāi)發(fā)工具。掌握獨(dú)立式鍵盤和矩陣式鍵盤的原理與應(yīng)用。掌握LED顯示器的原理與靜態(tài)顯示和動(dòng)態(tài)顯示的特點(diǎn)。掌握LCD顯示器的原理與筆段型LCD的應(yīng)用。掌握D/A轉(zhuǎn)換常用芯片特性及應(yīng)用。掌握A/D轉(zhuǎn)換常用芯片特性及應(yīng)用。通過(guò)設(shè)計(jì)二個(gè)實(shí)例,了解工程設(shè)計(jì)中的一些方法和技巧。學(xué)習(xí)重點(diǎn)和難點(diǎn) 四個(gè)模塊技術(shù)(鍵盤、顯示、D/A轉(zhuǎn)換、A/D轉(zhuǎn)換)的掌握和綜合應(yīng)用。應(yīng)用系統(tǒng)的程序設(shè)計(jì)和調(diào)試。第10章 應(yīng)用系統(tǒng)設(shè)計(jì)及接口技術(shù) 10.1 單片機(jī)應(yīng)用系統(tǒng)概述 10.2 鍵盤接口 10.3 顯示器接口 10.4 數(shù)/模轉(zhuǎn)換接口 10.5

2、模/數(shù)轉(zhuǎn)換接口 10.6 單片機(jī)應(yīng)用系統(tǒng)實(shí)例 本章小結(jié)習(xí)題 10.1 單片機(jī)應(yīng)用系統(tǒng)概述10.1.1 單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu) 10.1.2 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法 10.1.3 單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具 10.1.1 單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)單片機(jī)應(yīng)用系統(tǒng)是為完成某項(xiàng)任務(wù)而研制開(kāi)發(fā)的用戶系統(tǒng),是以單片機(jī)為核心,配以外圍電路和軟件,能實(shí)現(xiàn)設(shè)定任務(wù)、功能的實(shí)際應(yīng)用系統(tǒng)。根據(jù)不同的用途和要求,單片機(jī)應(yīng)用系統(tǒng)的系統(tǒng)配置及軟件也就有所不同,但它們的開(kāi)發(fā)過(guò)程和方法大致相同。 一般的通用計(jì)算機(jī)系統(tǒng)大概包括以下一些主要設(shè)備:主機(jī)(有主板、CPU、內(nèi)存條)、人機(jī)交流設(shè)備(鍵盤、鼠標(biāo)、顯示器)、存儲(chǔ)器(光驅(qū)、軟驅(qū)、U

3、盤等)、網(wǎng)卡、打印機(jī)等。 10.1.1 單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)單片機(jī)應(yīng)用系統(tǒng)所需要的一般配置: 單片機(jī)。人機(jī)交流設(shè)備。輸入設(shè)備有鍵盤和按鍵,輸出設(shè)備有數(shù)碼管、液晶顯示模塊和指示燈等。信號(hào)采集的輸入通道。如出租車的測(cè)距、測(cè)速裝置,溫控系統(tǒng),溫度計(jì)的溫度傳感器、洗衣機(jī)的水位測(cè)量設(shè)備。向操作對(duì)象發(fā)出各種控制信號(hào)的輸出通道。如空調(diào)啟動(dòng)壓縮機(jī)的開(kāi)關(guān)電路,控制彩電的頻道切換、顏色、音量等的接口電路。如果需與其他計(jì)算機(jī)系統(tǒng)或智能設(shè)備實(shí)現(xiàn)信息交換,還需配置通信接口電路。有時(shí)還需擴(kuò)展外部RAM、EEPROM用于存放數(shù)據(jù)。如彩電遙控系統(tǒng)中存放系統(tǒng)數(shù)據(jù)的存儲(chǔ)器。10.1.1 單片機(jī)應(yīng)用系統(tǒng)的結(jié)構(gòu)單片機(jī)典型應(yīng)用系統(tǒng)的結(jié)

4、構(gòu) 10.1.2 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法單片機(jī)應(yīng)用系統(tǒng)的技術(shù)要求各不相同,針對(duì)具體的任務(wù),設(shè)計(jì)方法和步驟也不完全相同。這里我們只能討論單片機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法。為完成某一任務(wù)的單片機(jī)應(yīng)用系統(tǒng)需要包含硬件和軟件系統(tǒng)。硬件和軟件必須緊密結(jié)合,協(xié)調(diào)一致才能正常工作。在系統(tǒng)研制過(guò)程中,硬件設(shè)計(jì)和軟件設(shè)計(jì)不能截然分開(kāi)。硬件設(shè)計(jì)時(shí)應(yīng)考慮軟件設(shè)計(jì)方法,而軟件也一定是基于硬件根底上進(jìn)行設(shè)計(jì)的。這就是所謂的“軟硬結(jié)合。單片機(jī)應(yīng)用系統(tǒng)的研制過(guò)程包括確定任務(wù)、總體設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、系統(tǒng)調(diào)試、產(chǎn)品化等幾個(gè)階段。它們不是絕對(duì)分開(kāi)的,有時(shí)是交叉進(jìn)行的。 10.1.3 單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具單片機(jī)應(yīng)用系統(tǒng)開(kāi)

5、發(fā)必須經(jīng)過(guò)調(diào)試階段,只有經(jīng)過(guò)調(diào)試才能發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤,最終完成開(kāi)發(fā)任務(wù)。實(shí)際上,對(duì)于較復(fù)雜的程序,大多數(shù)情況下都不可能一次性就調(diào)試成功,即使是資深程序員也是如此。單片機(jī)只是一塊芯片而已,本身并無(wú)開(kāi)發(fā)能力,要借助開(kāi)發(fā)工具才能實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)。開(kāi)發(fā)工具主要包括電腦、編程器(又稱寫入器)、仿真機(jī)。如果使用EPROM作為存儲(chǔ)器還要配備紫外線擦除器。其中必不可少的工具是電腦和編程器(當(dāng)然對(duì)于在線可編程的單片機(jī),如89S51,也可以不用編程器,而通過(guò)下載電纜下載)。 10.1.3 單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具1. 仿真機(jī)及其使用(1) 開(kāi)發(fā)環(huán)境單片機(jī)程序的編寫、編譯、調(diào)試等都是在一定的集成開(kāi)發(fā)環(huán)境下進(jìn)行的。集成

6、開(kāi)發(fā)環(huán)境仿真軟件(ICE)將文件的編輯,匯編語(yǔ)言的匯編、連接,高級(jí)語(yǔ)言的編譯、連接高度集成于一體,能對(duì)匯編程序和高級(jí)程序進(jìn)行仿真調(diào)試。單片機(jī)程序如果是匯編編寫的,文件名后必須加后綴名“.ASM。如果是C51編寫的,必須加后綴名“.C。10.1.3 單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具(2) 仿真機(jī)的使用為了實(shí)現(xiàn)目標(biāo)系統(tǒng)的一次性完全開(kāi)發(fā),必須用到仿真機(jī)(也稱在線仿真機(jī))。在線仿真機(jī)的主要作用是能完全“逼真地扮演用戶單片機(jī)的角色,且能在集成開(kāi)發(fā)環(huán)境中對(duì)運(yùn)行程序進(jìn)行各種調(diào)試操作,即時(shí)發(fā)現(xiàn)問(wèn)題,即時(shí)修改程序,從而提高工作效率,縮短開(kāi)發(fā)周期。仿真機(jī)的種類很多,如南京偉福系列仿真機(jī)、南京萬(wàn)利MPE5103仿真機(jī)等,價(jià)

7、格通常在千元以上。每個(gè)仿真機(jī)都配有使用說(shuō)明書詳細(xì)介紹其使用方法,故在這里將不對(duì)仿真機(jī)進(jìn)行詳細(xì)介紹。 10.1.3 單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具(2) 仿真機(jī)的使用使用時(shí),在線仿真機(jī)通過(guò)RS-232插件與電腦的COM1或COM2端口相連。在斷電情況下,撥下用戶系統(tǒng)的單片機(jī)和EPROM,代之以仿真頭,如以下圖所示。運(yùn)行仿真調(diào)試程序,通過(guò)跟蹤執(zhí)行,能即時(shí)發(fā)現(xiàn)軟硬件方面的問(wèn)題并進(jìn)行修正。當(dāng)設(shè)計(jì)到達(dá)滿足系統(tǒng)要求后,將調(diào)試好的程序編譯時(shí)形成的二進(jìn)制文件用編程器燒寫到芯片中,一個(gè)應(yīng)用系統(tǒng)就調(diào)試成功了。單片機(jī)的在線仿真10.1.3 單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具2. 編程器當(dāng)我們編寫好的程序在集成開(kāi)發(fā)環(huán)境編譯通過(guò)后,會(huì)

8、形成一個(gè)二進(jìn)制文件(文件名與源程序文件名相同,后綴名為“.BIN)或十六進(jìn)制文件(后綴名為“.HEX),即形成所謂的目標(biāo)程序。這個(gè)目標(biāo)程序必須利用編程器才能將目標(biāo)文件燒寫到單片機(jī)的程序存儲(chǔ)器中,從而讓單片機(jī)系統(tǒng)的硬件和軟件真正結(jié)合起來(lái),組成一個(gè)完整的單片機(jī)系統(tǒng)。編程器的主要功能是將目標(biāo)程序燒寫到芯片中,其與電腦的連接如以下圖所示。編程器的使用比較簡(jiǎn)單,讀者只要有時(shí)機(jī)使用,在非常短的時(shí)間內(nèi)就能學(xué)會(huì)。 編程器與計(jì)算機(jī)的連接10.1.3 單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)工具2. 編程器編程器的種類也很多,不同檔次的編程器價(jià)格相差很大,從150元到7000多元不等;檔次的差異在于燒寫可編程芯片的類型的多少。目前巿

9、面上常見(jiàn)的有臺(tái)灣河洛生產(chǎn)的ALLXX系列、南京西爾特公司的SP系列、北京潤(rùn)飛的RF系列,廣州升洪的TOP系列等。如果僅僅是用于學(xué)習(xí)或是僅針對(duì)常用單片機(jī)的開(kāi)發(fā),一般買較低檔的編程器就可以,價(jià)格大概在200元左右。仿真器和編程器是單片機(jī)開(kāi)發(fā)的重要工具,熟練使用這些工具是每個(gè)單片機(jī)開(kāi)發(fā)人員必備的根本技能,而這些工具的使用只有通過(guò)實(shí)踐才能掌握。 10.2 鍵盤接口 10.2.1 鍵盤的結(jié)構(gòu)與原理 10.2.2 獨(dú)立式鍵盤應(yīng)用實(shí)例 10.2.3 矩陣式鍵盤應(yīng)用實(shí)例 10.2.1 鍵盤的結(jié)構(gòu)與原理鍵盤是單片機(jī)應(yīng)用系統(tǒng)中人機(jī)交流不可缺少的輸入設(shè)備。鍵盤由一組規(guī)那么排列的按鍵組成,一個(gè)按鍵實(shí)際上是一個(gè)開(kāi)關(guān)元件

10、。鍵盤通常使用機(jī)械觸點(diǎn)式按鍵開(kāi)關(guān),其主要功能是把機(jī)械上的通斷轉(zhuǎn)換為電氣上的邏輯關(guān)系(1和0)。常見(jiàn)的種類有:獨(dú)立式按鍵和矩陣式鍵盤。 10.2.1 鍵盤的結(jié)構(gòu)與原理1. 獨(dú)立式按鍵 結(jié)構(gòu)如以下圖所示,其特點(diǎn)是每個(gè)按鍵單獨(dú)占用一根I/O口線,每個(gè)按鍵工作不會(huì)影響其他I/O口線的狀態(tài)。多用于所需按鍵不多的場(chǎng)合。可采用JNB(或JB)來(lái)查詢哪一個(gè)按鍵按下,并轉(zhuǎn)向相應(yīng)的功能處理程序。 JNB P1.0, A0 ;如P1.0鍵按下,就跳到A0 JNB P1.1, A1 ;如P1.1鍵按下,就跳到A1 JNB P1.2, A2 ;如P1.2鍵按下,就跳到A2 JNB P1.3, A3 ;如P1.3鍵按下,

11、就跳到A3 JNB P1.4, A4 ;如P1.4鍵按下,就跳到A4 JNB P1.5, A5 ;如P1.5鍵按下,就跳到A5 JNB P1.6, A6 ;如P1.6鍵按下,就跳到A6 JNB P1.7, A7 ;如P1.7鍵按下,就跳到A710.2.1 鍵盤的結(jié)構(gòu)與原理2. 矩陣式鍵盤 單片機(jī)系統(tǒng)中,假設(shè)使用按鍵較多時(shí),通常采用矩陣式鍵盤,其結(jié)構(gòu)如以下圖所示。由圖可知,一個(gè)44的行、列結(jié)構(gòu),可以構(gòu)成一個(gè)含有16個(gè)按鍵的鍵盤,節(jié)省了很多I/O口。 控制方式:先判斷是否有鍵按下。 如有,再判斷哪一鍵按下,并得到 鍵碼值,然后根據(jù)鍵碼值轉(zhuǎn)向不同 的功能程序。矩陣式結(jié)構(gòu)鍵盤比獨(dú)立式按鍵要復(fù) 雜,識(shí)別

12、也要復(fù)雜一些。最常用的 識(shí)別方法是鍵盤掃描法,將在 小節(jié)進(jìn)行具體說(shuō)明。 10.2.1 鍵盤的結(jié)構(gòu)與原理3. 鍵盤設(shè)計(jì)應(yīng)注意的問(wèn)題機(jī)械式按鍵在按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有一定時(shí)間的觸點(diǎn)機(jī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來(lái)。其抖動(dòng)過(guò)程如右圖所示,抖動(dòng)時(shí)間的長(zhǎng)短與開(kāi)關(guān)的機(jī)械特性有關(guān),一般為510ms。 按鍵觸點(diǎn)的機(jī)械抖動(dòng)10.2.1 鍵盤的結(jié)構(gòu)與原理3. 鍵盤設(shè)計(jì)應(yīng)注意的問(wèn)題在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放被錯(cuò)誤地認(rèn)為是屢次操作。系統(tǒng)設(shè)計(jì)中如果開(kāi)關(guān)脈沖是作為外部中斷觸發(fā)信號(hào)或要對(duì)開(kāi)關(guān)脈沖進(jìn)行計(jì)數(shù)時(shí),這種情況是不允許出現(xiàn)的。為了克服按鍵觸點(diǎn)機(jī)械抖

13、動(dòng)所致的檢測(cè)誤判,必須采取去抖動(dòng)措施,可從硬件、軟件兩方面予以考慮。在鍵數(shù)較少時(shí),可采用硬件去抖;而當(dāng)鍵數(shù)較多時(shí),采用軟件去抖。 10.2.1 鍵盤的結(jié)構(gòu)與原理3. 鍵盤設(shè)計(jì)應(yīng)注意的問(wèn)題在硬件上可采用在鍵輸出端加R-S觸發(fā)器(雙穩(wěn)態(tài)觸發(fā)器)或單穩(wěn)態(tài)觸發(fā)器構(gòu)成去抖動(dòng)電路,如以下圖所示是一種由R-S觸發(fā)器構(gòu)成的去抖動(dòng)電路,當(dāng)觸發(fā)器翻轉(zhuǎn)時(shí),觸點(diǎn)抖動(dòng)不會(huì)對(duì)其產(chǎn)生任何影響。鍵盤輸出經(jīng)雙穩(wěn)態(tài)電路之后變?yōu)闃?biāo)準(zhǔn)的矩形方波。 雙穩(wěn)態(tài)去抖動(dòng)電路10.2.1 鍵盤的結(jié)構(gòu)與原理3. 鍵盤設(shè)計(jì)應(yīng)注意的問(wèn)題軟件上采取的措施是在檢測(cè)到有按鍵按下時(shí),執(zhí)行一個(gè)10ms左右(具體時(shí)間應(yīng)視所使用的按鍵進(jìn)行調(diào)整)的延時(shí)程序,再確認(rèn)該

14、鍵電平是否仍保持閉合狀態(tài)電平,假設(shè)仍保持閉合狀態(tài)電平,那么確認(rèn)該鍵處于閉合狀態(tài);同理,在檢測(cè)到該鍵釋放后,也應(yīng)采用相同的步驟進(jìn)行確認(rèn),從而消除抖動(dòng)的影響。10.2.2 獨(dú)立式鍵盤應(yīng)用實(shí)例【例1】 監(jiān)視某開(kāi)關(guān)S,用發(fā)光二極管LED顯示開(kāi)關(guān)狀態(tài),如果開(kāi)關(guān)閉合,LED亮;如果開(kāi)關(guān)斷開(kāi),LED滅。解:設(shè)計(jì)電路圖如以下圖所示。開(kāi)關(guān)接P1.1,當(dāng)開(kāi)關(guān)斷開(kāi)時(shí),P1.1為+5V,對(duì)應(yīng)數(shù)字量為“1;開(kāi)關(guān)閉合時(shí),P1.1為0V,對(duì)應(yīng)數(shù)字量為“0,這樣就可以用JB指令對(duì)開(kāi)關(guān)狀態(tài)進(jìn)行檢測(cè)。P1.0輸出“1,LED亮。當(dāng)P1.0輸出“0,LED兩端電壓相等,熄滅。 參考程序如下: ORG 0000H CLR P1.0

15、; 使發(fā)光二極管滅NEXT: SETB P1.1 ; 先對(duì)P1.1寫1 JB P1.1, L1 ; 開(kāi)關(guān)斷開(kāi),跳至L1 SETB P1.0 ; 開(kāi)關(guān)合上,發(fā)光二極管亮 SJMP NEXT L1 : CLR P1.0 ; 開(kāi)關(guān)斷開(kāi),發(fā)光二極管滅 SJMP NEXT END10.2.2 獨(dú)立式鍵盤應(yīng)用實(shí)例開(kāi)關(guān)監(jiān)視控制電路圖 10.2.2 獨(dú)立式鍵盤應(yīng)用實(shí)例【例2】 信號(hào)燈控制電路如以下圖所示,其功能是當(dāng)按下不同的鍵時(shí)發(fā)光二極管有不同的亮滅規(guī)律。按1號(hào)鍵LED從左到右依次亮,按2號(hào)鍵從右到左依次亮,按3號(hào)鍵閃爍,按4號(hào)鍵呈流水追逐效果。 解:電路圖中P1口分別接了4個(gè)開(kāi)關(guān),每個(gè)開(kāi)關(guān)都有相對(duì)應(yīng)的功能,

16、當(dāng)某一開(kāi)關(guān)閉合時(shí),相應(yīng)的口線變?yōu)榈碗娖剑渌诰€依然為高電平,因此,可以用4條JNB指令對(duì)開(kāi)關(guān)狀態(tài)進(jìn)行檢測(cè)。如果某一按鍵按下,那么跳轉(zhuǎn)執(zhí)行其所對(duì)應(yīng)的控制功能。八個(gè)發(fā)光二極管經(jīng)74LS04接P2口,主要因單片機(jī)的驅(qū)動(dòng)能力較差,故用74LS04來(lái)加大驅(qū)動(dòng)能力。P2口輸出控制信號(hào)控制發(fā)光規(guī)律。 程序設(shè)計(jì)流程圖如以下圖所示。 信號(hào)燈控制電路 10.2.2 獨(dú)立式鍵盤應(yīng)用實(shí)例信號(hào)燈控制程序設(shè)計(jì)流程圖 ORG 0000H MOV SP, #60H MOV P2, #00H MOV P1, #0FH START: JNB P1.0, A0 ; 如P1.0鍵按下,就跳至A0 JNB P1.1, A1 ; 如

17、P1.1鍵按下,就跳至A1 JNB P1.2, A2 ; 如P1.2鍵按下,就跳至A2 JNB P1.3, A3 ; 如P1.3鍵按下,就跳至A3 SJMP START * 左移 * A0: MOV DPTR, #TAB ; 左移常數(shù)表首地址送DPTR ACALL DISP SJMP START * 右移 * A1: MOV DPTR, #TAB1 ; 右移常數(shù)表首地址送DPTR ACALL DISP SJMP START * 閃爍 * A2: MOV DPTR, #TAB2 ; 閃爍常數(shù)表首地址送DPTR ACALL DISP SJMP START 信號(hào)燈控制參考程序* 流水追逐 * A3:

18、 MOV DPTR, #TAB3 ; 流水追逐常數(shù)表首地址送DPTR ACALL DISP SJMP START * LED顯示控制子程序 * 功能:根據(jù)常數(shù)表控制P2口的LED發(fā)光 入口:常數(shù)表的地址送到DPTR 出口:無(wú)* DISP: CLR A MOVC A, A+DPTR CJNE A,#0AH,LOOP1 RET LOOP1: MOV P2,A MOV R3,#20 ACALL DELAY INC DPTR JMP DISP 信號(hào)燈控制參考程序 DELAY: MOV R4,#20 D1: MOV R5,#248 DJNZ R5, $ DJNZ R4, D1 DJNZ R3, DELA

19、Y RET TAB : DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0AH ; 左移 TAB1: DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,0AH ; 右移 TAB2: DB 0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0AH ; 閃爍 TAB3: DB 01H,02H,06H,08H,10H,20H,60H,80H,0AH ; 流水追逐 END信號(hào)燈控制參考程序說(shuō)明:本例中,根據(jù)所按下的鍵輸入不同的常數(shù)表地址到DPTR,然后再調(diào)用顯示子程序(DPTR為DISP程序的入口條件),從而根據(jù)不同的參數(shù)

20、控制發(fā)光二極管的變化規(guī)律。顯然通過(guò)改變常數(shù)表可任意設(shè)定發(fā)光規(guī)律,讀者可以試一下。調(diào)用子程序,可使程序設(shè)計(jì)實(shí)現(xiàn)模塊化,但必須明確子程序的功能、入口和出口參數(shù)。通過(guò)以上兩個(gè)實(shí)例可以看出獨(dú)立式鍵盤應(yīng)用的特點(diǎn):識(shí)別鍵盤比較容易,編程也比較簡(jiǎn)單,很適合于功能鍵較少的單片機(jī)應(yīng)用系統(tǒng)。但每一個(gè)按鍵上用一根口線,當(dāng)按鍵較多時(shí)(超過(guò)8個(gè))應(yīng)采用矩陣式鍵盤。 10.2.3 矩陣式鍵盤應(yīng)用實(shí)例【例3】 44鍵盤硬件電路如以下圖所示。設(shè)計(jì)采用鍵盤掃描法得到鍵碼值的程序。解:鍵盤輸入程序設(shè)計(jì)有以下幾個(gè)方面。(1) 判別鍵盤上有無(wú)鍵閉合 其方法為:P1.0P1.3輸出0,然后讀P1口,假設(shè)高4位P1.4P1.7全為1,那

21、么鍵盤上沒(méi)有閉合鍵,假設(shè)P1.4P1.7不全為1,那么有鍵處于閉合狀態(tài)。(2) 去除鍵的機(jī)械抖動(dòng) 其方法為:當(dāng)判別到鍵盤上有鍵閉合后,延時(shí)一段時(shí)間再判別鍵盤的狀態(tài),假設(shè)仍有鍵閉合,那么認(rèn)為鍵盤上有一個(gè)鍵處于穩(wěn)定的閉合狀態(tài),否那么認(rèn)為鍵抖動(dòng)。 10.2.3 矩陣式鍵盤應(yīng)用實(shí)例44鍵盤硬件電路圖 10.2.3 矩陣式鍵盤應(yīng)用實(shí)例(3) 判別閉合鍵的鍵號(hào) 其方法為:對(duì)鍵盤的行線進(jìn)行掃描,P1.3P1.0依次循環(huán)輸出1110、1101、1011和0111,相應(yīng)地讀P1口,假設(shè)高4位P1.7P1.4全為“1,那么說(shuō)明該行上沒(méi)有鍵閉合;否那么,這一行上有鍵閉合,而且就是行線為0,列線為0的交叉鍵。高4位和

22、低四位合并即得到鍵碼值。 例如,P1.3P1.0輸出“1110時(shí),讀入P1.7P1.4為“1101時(shí),即不全為“1,說(shuō)明有鍵按下,那一個(gè)鍵呢?顯然是P1.0與P1.5交叉的鍵。將高四位和低四位合并后的值為“11011110;也就是該鍵的鍵碼值。依此類推可得各鍵的健碼值。各鍵和對(duì)應(yīng)的鍵碼值如以下圖所示。(4) 使CPU對(duì)鍵的一次閉合僅作一次處理 采用的方法是等待閉合鍵釋放以后再作處理。 各鍵和對(duì)應(yīng)的鍵碼值 44鍵盤參考程序如下。該程序可作為子程序來(lái)調(diào)用,入口參數(shù)無(wú),出口參數(shù)為鍵碼值,存于A。 本例的另一種實(shí)現(xiàn)方法:以上程序所得到的鍵碼值,離散性較大,不利于用指令對(duì)按鍵進(jìn)行處理。可采用按鍵編碼為依

23、次排列鍵號(hào)的程序設(shè)計(jì)方法。詳見(jiàn)教材,這里不再贅述。 44鍵盤參考程序 KEY: MOV P1,#0F0H ; P1.0P1.3輸出0,P1.4P1.7輸出1 MOV A,P1 ; 讀鍵盤, 檢測(cè)有無(wú)鍵按下 ANL A,#0F0H ; 屏蔽P1.0P1.3,檢測(cè)P1.4P1.7是否全為1 CJNE A,#0F0H,HAVE ; P1.4P1.7不全為1,有鍵按下 SJMP KEY ; P1.4P1.7全為1,無(wú)鍵按下,重新檢測(cè)鍵盤 HAVE: MOV A,#0FEH ; 有鍵按下,逐行掃描鍵盤,置掃描初值 NEXT: MOV B,A ; 掃描碼暫存于B MOV P1,A ; 輸出掃描碼 READ

24、: MOV A,P1 ; 讀鍵盤 ANL A,#0F0H ; 屏蔽P1.0P1.3,檢測(cè)P1.4P1.7是否全為1 CJNE A,#0F0H,YES ; P1.4P1.7不全為1,該行有鍵按下 MOV A,B ; 被掃描行無(wú)鍵按下,準(zhǔn)備查下一行 RL A ; 置下一行掃描碼 CJNE A,#0EFH,NEXT ; 未掃描到最后一行,那么循環(huán) YES : ACALL DELAY ; 延時(shí),去抖動(dòng) ARED: MOV A,P1 ; 再讀鍵盤 ANL A,#0F0H ; 屏蔽P1.0P1.3,保存P1.4P1.7(列碼) MOV R2,A ; 暫存列碼 MOV A,B ANL A,#0FH ; 取行

25、掃描碼 ORL A,R2 ; 行碼、列碼合并為鍵碼 PUSH A ; 鍵碼入堆棧 KS: ACALL DELAY ; 延時(shí) MOV P1,#0F0H ; P1.0P1.4為0,檢測(cè)鍵是否放開(kāi) MOV A,P1 ; 讀P1 CPL A ; 鍵如果已松開(kāi),取反后P1高四位全為0 ANL A,#0F0H ; 保存高四位 JNZ KS ; 判斷,鍵松開(kāi)那么返回,否那么繼續(xù)等待 POP A ; 彈出鍵碼 RET ; 返回 DELAY: MOV R7,#60 ; 延時(shí)子程序 D2: MOV R6,#248 DJNZ R6,$ DJNZ R7,D2 RET END44鍵盤參考程序 10.2.3 矩陣式鍵盤應(yīng)

26、用實(shí)例編程說(shuō)明:在單片機(jī)應(yīng)用系統(tǒng)中,鍵盤掃描只是系統(tǒng)的局部程序。進(jìn)行軟件系統(tǒng)編程時(shí),一般作為子程序調(diào)用或中斷效勞程序使用。該子程序入口參數(shù)為無(wú),出口參數(shù)為鍵碼值,存于A。因此,其調(diào)用十分簡(jiǎn)單,但一定要注意返回的鍵碼值所對(duì)應(yīng)的鍵在鍵盤的哪個(gè)位置,即要掌握鍵碼分配表。矩陣式鍵盤盡管比獨(dú)立式鍵盤復(fù)雜。但有了上述子程序后,只要學(xué)會(huì)調(diào)用,你甚至不需要知道鍵盤掃描程序是如何編寫的,COPY即可,編程也就變得十分簡(jiǎn)單了。從這可以看出平時(shí)注意查閱資料,收集實(shí)用子程序,掌握子程序的調(diào)用,對(duì)提高編程效率是多么重要。 10.3 顯示器接口 10.3.1 LED顯示器的結(jié)構(gòu)與原理 10.3.2 LED顯示器靜態(tài)顯示及

27、應(yīng)用實(shí)例 10.3.3 LED顯示器動(dòng)態(tài)顯示及應(yīng)用實(shí)例 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用 10.3.1 LED顯示器的結(jié)構(gòu)與原理1. 結(jié)構(gòu)種類七段LED顯示器(數(shù)碼管)系發(fā)光器件的一種。常用的LED發(fā)光器件有兩類:數(shù)碼管和點(diǎn)陣。數(shù)碼管內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。常見(jiàn)數(shù)碼管有10根管腳。管腳排列如以下圖所示。其中COM為公共端,根據(jù)內(nèi)部發(fā)光二極管的接線形式可分為共陰極和共陽(yáng)極兩種。使用時(shí),共陰極數(shù)碼管公共端接地,共陽(yáng)極數(shù)碼管公共端接電源。每段發(fā)光二極管需510mA的驅(qū)動(dòng)電流才能正常發(fā)光,一般需加限流電阻控制電流的大小。 10.3.1

28、LED顯示器的結(jié)構(gòu)與原理 管腳排列 共陰極數(shù)碼管 共陽(yáng)極數(shù)碼管10.3.1 LED顯示器的結(jié)構(gòu)與原理2. 顯示原理LED數(shù)碼管的ag七個(gè)發(fā)光二極管。加正電壓的發(fā)光,加零電壓的不能發(fā)光,不同亮暗的組合就能形成不同的字型,這種組合稱為字型碼。共陽(yáng)極和共陰極的字型碼是不同的,如下表所示。 可采用硬件譯碼輸出字型碼控制顯示內(nèi)容,如采用74LS48、CD4511(共陰極)或74LS46(74LS47)、CD4513(共陽(yáng)極)。也可用單片機(jī)I/O口直接輸出字型碼控制數(shù)碼管的顯示內(nèi)容。用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管顯示有很多方法,按顯示方式分有靜態(tài)顯示和動(dòng)態(tài)顯示。 LED字型顯示代碼表 2. 顯示原理顯示 段 符

29、 號(hào)十六進(jìn)制代碼dp gfedcba共陰極共陽(yáng)極0123456789AbCdEFHP0000000000000000000011111011110111111000111011111011111010001010111111111011011011011110001101111111110100101111100111100100111011011111101011013FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71H76HF3HC0HF9HA4HB0H99H92H82HF8H80H90H88H83HC6HA1H86H8EH89H8CH10.3.2

30、 LED顯示器靜態(tài)顯示及應(yīng)用實(shí)例1. 靜態(tài)顯示的特點(diǎn)靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出去后,數(shù)碼管始終顯示該數(shù)據(jù)(不變),CPU不再控制LED。到下一次顯示時(shí),再傳送一次新的顯示數(shù)據(jù)。靜態(tài)顯示的接口電路采用一個(gè)并行口接一個(gè)數(shù)碼管,數(shù)碼管的公共端按共陰極或共陽(yáng)極分別接地或接VCC。這種接法,每個(gè)數(shù)碼管都要單獨(dú)占用一個(gè)并行I/O口,以便單片機(jī)傳送字形碼到數(shù)碼管控制數(shù)碼管的顯示。顯然其缺點(diǎn)就是當(dāng)顯示位數(shù)多時(shí),占用I/O口過(guò)多。為了解決靜態(tài)顯示I/O口占用過(guò)多的問(wèn)題,可采用串行接口擴(kuò)展LED數(shù)碼管的技術(shù)。靜態(tài)顯示方式的優(yōu)點(diǎn)是顯示的數(shù)據(jù)穩(wěn)定,無(wú)閃爍,占用CPU時(shí)間少。其

31、缺點(diǎn)是由于數(shù)碼管始終發(fā)光,功耗比較大。 10.3.2 LED顯示器靜態(tài)顯示及應(yīng)用實(shí)例2. 應(yīng)用實(shí)例【例5】 用一位數(shù)碼管顯示開(kāi)關(guān)來(lái)回?fù)軇?dòng)的次數(shù)。 解:電路如以下圖所示,89S51的P1口經(jīng)74LS373接一個(gè)共陰極數(shù)碼管,數(shù)碼管的公共端接地。P1口輸出字型碼送至數(shù)碼管,就能控制數(shù)碼管的顯示內(nèi)容。74LS373為8D鎖存器,在電路中起驅(qū)動(dòng)作用。兩個(gè)與非門組成的RS觸發(fā)器主要起消抖作用,用來(lái)消除開(kāi)關(guān)按下及彈起過(guò)程中的抖動(dòng)所引起的判斷錯(cuò)誤。開(kāi)關(guān)信號(hào)經(jīng)消抖動(dòng)電路后接單片機(jī)的INT1引腳。每來(lái)回?fù)軇?dòng)一次將產(chǎn)生一個(gè)下降沿信號(hào),通過(guò)INT1向CPU申請(qǐng)中斷。 軟件設(shè)計(jì)時(shí),可用R0作為記錄中斷次數(shù)的指針(每中

32、斷一次R0加1),然后根據(jù)R0用查表程序查出對(duì)應(yīng)的字形碼,再由P1口送出,控制數(shù)碼管顯示中斷次數(shù)值。 一位數(shù)碼管顯示電路圖 ORG 000H AJMP MAIN ORG 0013H AJMP INT1 ; 外部中斷1入口地址 * 主程序 * MAIN: SETB EA ; 開(kāi)通中斷開(kāi)關(guān) SETB EX1 ; 開(kāi)外部中斷 SETB IT1 ; 下降沿觸發(fā) MOV R0,#0 ; 計(jì)數(shù)指針清0 MOV P1,#3FH ; 開(kāi)始顯示0 MOV DPTR,#TAB ; 字形碼地址送DPTR SJMP $ ; 等待中斷(開(kāi)關(guān)來(lái)回?fù)軇?dòng)一次產(chǎn)生一次中斷) * 外部中斷處理程序 * INT1: INC R0

33、; 開(kāi)關(guān)每來(lái)回?fù)軇?dòng)一次計(jì)數(shù)指針加1 MOV A,R0 MOVC A,A+DPTR ; 查字形碼 MOV P1,A ; 字形碼送P1顯示 CJNE R0,#0FH,RE ; 是否等于15次 MOV R0,#00H ; 計(jì)數(shù)指計(jì)清0 RE: RETI TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ; 字形碼 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END 一位數(shù)碼管顯示參考程序10.3.3 LED顯示器動(dòng)態(tài)顯示及應(yīng)用實(shí)例1. 動(dòng)態(tài)顯示的特點(diǎn)動(dòng)態(tài)掃描方法是用其接口電路把所有數(shù)碼管的8個(gè)筆劃段ag和dp同名端連在一起,而每一個(gè)數(shù)碼管的公共

34、極COM各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有數(shù)碼管接收到相同的字形碼。但究竟是哪個(gè)數(shù)碼管亮,那么取決于COM端,COM端與單片機(jī)的I/O口相連接,由單片機(jī)輸出位碼到I/O控制何時(shí)哪一位數(shù)碼管亮。動(dòng)態(tài)掃描用分時(shí)的方法輪流控制各個(gè)數(shù)碼管的COM端,使各個(gè)數(shù)碼管輪流點(diǎn)亮。在輪流點(diǎn)亮數(shù)碼管的掃描過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間極為短暫。但由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù)。10.3.3 LED顯示器動(dòng)態(tài)顯示及應(yīng)用實(shí)例1. 動(dòng)態(tài)顯示的特點(diǎn)優(yōu)點(diǎn):當(dāng)顯示位數(shù)較多時(shí),采用動(dòng)態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡(jiǎn)單。缺點(diǎn):其穩(wěn)定度不如靜態(tài)顯

35、示方式。而且在顯示位數(shù)較多時(shí)CPU要輪番掃描,占用CPU較多的時(shí)間。 10.3.3 LED顯示器動(dòng)態(tài)顯示及應(yīng)用實(shí)例2. 應(yīng)用實(shí)例【例8】 采用兩位數(shù)碼管動(dòng)態(tài)掃描顯示按鍵來(lái)回?fù)軇?dòng)次數(shù)。解:硬件電路設(shè)計(jì)如以下圖所示。7407的兩個(gè)輸出引腳分別接至兩位數(shù)碼管(共陰)的公共端,控制每位數(shù)碼管的分時(shí)顯示,實(shí)現(xiàn)動(dòng)態(tài)掃描顯示。 軟件設(shè)計(jì)以單片機(jī)內(nèi)部RAM的30H、31H作為顯示數(shù)據(jù)緩存,兩位段碼的獲取及每位數(shù)碼管的顯示控制由顯示子程序完成。參考程序如下。 兩位數(shù)碼管動(dòng)態(tài) 掃描顯示電路 AD0EQU 30H ; 個(gè)位顯存 AD1EQU 31H ; 十位顯存 ORG 0000H AJMP MAIN ORG 00

36、13H ; 外部中斷入口地址 AJMP INT1 *主程序* MAIN:MOV SP,#60HMOV AD0,#0 ; 顯存清0MOV AD1,#0 SETB EA ; 開(kāi)通中斷開(kāi)關(guān)SETB EX1 ; 開(kāi)外部中斷SETB IT1 ; 下降沿觸發(fā) LOOP:MOV R2,#0FDH ; 顯示位碼(十位)初值送R2ACALL DISP ; 調(diào)兩位顯示子程序SJMP LOOP兩位數(shù)碼管動(dòng)態(tài)掃描顯示參考程序 *外部中斷處理程序* 完成計(jì)算開(kāi)關(guān)來(lái)回?fù)軇?dòng)的次數(shù),并進(jìn)行BCD碼調(diào)整* INT1:INC AD0 ; 每中斷一次(開(kāi)關(guān)來(lái)回?fù)軇?dòng)一次) 計(jì)數(shù)加1MOV A,AD0 CJNE A,#10,LOOP1

37、 ; 個(gè)位小于10 ?MOV AD0,#0 ; 等于10,個(gè)位調(diào)整為0十位加1INC AD1MOV A,AD1CJNE A,#10,LOOP1 ; 計(jì)數(shù)是否等于100?MOV AD1,#0 ; 等于100,個(gè)位十位調(diào)整為0LOOP1:RETI ; 返回 兩位數(shù)碼管動(dòng)態(tài)掃描顯示參考程序 *兩位動(dòng)態(tài)顯示子程序*功能:兩位數(shù)碼動(dòng)態(tài)顯示(P1口送字形碼,P2口送位碼)入口:顯存地址AD1,AD0,位顯碼初值R2(0FDH)* DISP: MOV DPTR,#TAB ; 字形碼首地址MOV R0,#AD1 ; 十位顯存地址送R0NEXT: MOV A,R0 MOVC A,A+DPTR ; 查字形碼MOV

38、 P1,A ; 字形碼送P1MOV P2,R2 ; 位顯碼送P2ACALL DELAY ; 延時(shí)DEC R0 ; 指向下一地址MOV A,R2 RR A ; 指向下一位顯MOV R2,A CJNE R2,#07FH,NEXT ; 2位數(shù)碼顯示完?RET ; 顯示完返回DELAY: ; 延時(shí)子程序(略)TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ,7FH,6FH ; 字形碼兩位數(shù)碼管動(dòng)態(tài)掃描顯示參考程序 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用1. LCD顯示器簡(jiǎn)介(1) LCD顯示器的結(jié)構(gòu)和原理液晶顯示器的結(jié)構(gòu)圖如以下圖所示。不同類型的液晶顯示器件其組成

39、可能會(huì)有所不同,但是所有液晶顯示器件都可以認(rèn)為是由兩片光刻有透明導(dǎo)電電極的基板,夾持一個(gè)液晶層,封接成一個(gè)扁平盒,有時(shí)在外外表還可能貼裝上偏光片等構(gòu)成。玻璃基板是一種外表極其平整的浮法生產(chǎn)薄玻璃片。外表蒸鍍有一層 In2O3或SnO2透明導(dǎo)電層,即ITO膜層。經(jīng)光刻加工制成透明導(dǎo)電圖形。這些圖形由像素圖形和外引線圖形組成。因此,外引線不能進(jìn)行傳統(tǒng)的錫焊,只能通過(guò)導(dǎo)電橡膠條或?qū)щ娔z帶等進(jìn)行連接。如果劃傷、割斷或腐蝕,那么會(huì)造成器件報(bào)廢。 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用1. LCD顯示器簡(jiǎn)介(1) LCD顯示器的結(jié)構(gòu)和原理 液晶顯示器的結(jié)構(gòu)圖 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及

40、應(yīng)用1. LCD顯示器簡(jiǎn)介(1) LCD顯示器的結(jié)構(gòu)和原理液晶材料是液晶顯示器件的主體。不同器件所用液晶材料不同,液晶材料大都是由幾種乃至十幾種單體液晶材料混合而成。每種液晶材料都有自己固定的清亮點(diǎn)TL和結(jié)晶點(diǎn)TS。因此也要求每種液晶顯示器件必須使用和保存在TSTL之間的一定溫度范圍內(nèi),如果使用或保存溫度過(guò)低,結(jié)晶會(huì)破壞液晶顯示器件的定向?qū)樱欢鴾囟冗^(guò)高,液晶會(huì)失去液晶態(tài),也就失去了液晶顯示器件的功能。液晶顯示的原理是液晶在電場(chǎng)的作用下,液晶分子的排列方式發(fā)生了改變,從而使其光學(xué)性質(zhì)發(fā)生了變化。 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用1. LCD顯示器簡(jiǎn)介(2) LCD顯示器分類 從顯示的

41、形式上通??煞止P段型、字符型和點(diǎn)陣圖形型。筆段型。筆段型 LCD是以長(zhǎng)條狀顯示像素組成一位顯示。 在形狀上總是圍繞數(shù)字“8的結(jié)構(gòu)變化,廣泛用于電子表、數(shù)字儀表中。字符型。字符型液晶顯示模塊是專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶顯示模塊。在電極圖形設(shè)計(jì)上它是由假設(shè)干個(gè) 5 8或 511點(diǎn)陣組成,每一個(gè)點(diǎn)陣顯示一個(gè)字符。這類模塊廣泛應(yīng)用于尋呼機(jī)、 、電子記事本等類電子設(shè)備中。點(diǎn)陣圖形型。點(diǎn)陣圖形型是在一平板上排列多行和多列,形成矩陣形式的晶格點(diǎn),點(diǎn)的大小可根據(jù)顯示的清晰度來(lái)設(shè)計(jì)。這類液晶顯示器可廣泛用于圖形顯示如游戲機(jī)、筆記本電腦和彩色電視等設(shè)備中。10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)

42、用1. LCD顯示器簡(jiǎn)介(2) LCD顯示器分類 液晶顯示器件在使用時(shí)必須選配相應(yīng)的控制器和驅(qū)動(dòng)器才能工作。將液晶顯示器件、控制器、PCB線路板、背光源、結(jié)構(gòu)件裝配在一起的組件稱之為液晶顯示模塊。只需通過(guò)控制器接口外接數(shù)字信號(hào)或模擬信號(hào)即可驅(qū)動(dòng)LCD顯示。因液晶顯示模塊使用方便、簡(jiǎn)潔,在字符型LCD和點(diǎn)陣圖形型LCD中得到廣泛應(yīng)用。 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用2. 8051與筆段型LCD的接口及應(yīng)用(1) 液晶顯示控制器ICM7211簡(jiǎn)介 ICM7211是MAXIM公司推出的四位七段碼LCD液晶顯示驅(qū)動(dòng)器。該器件內(nèi)部含有輸入數(shù)據(jù)鎖存器、BCD碼到七段碼的譯碼器、基準(zhǔn)時(shí)鐘信號(hào)發(fā)

43、生器和位選電路。采用40腳雙列直插式封裝。 ICM7211中的RC振蕩器的工作方式:將36腳懸空可產(chǎn)生19kHz方波信號(hào);如果希望用較低的頻率來(lái)驅(qū)動(dòng)大顯示器,可在36腳與1腳或35腳之間接一個(gè)電容,外接電容越大,頻率越?。灰部梢栽?6腳接一個(gè)外部時(shí)鐘源來(lái)鼓勵(lì)振蕩器。如果將36腳接地,那么BP腳將作輸入用,此時(shí)可用另一片ICM7211的背極輸出來(lái)驅(qū)動(dòng),這種情況一般適用于兩片ICM7211級(jí)聯(lián)的情況。 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用ICM7211各引腳的功能具體說(shuō)明如下:V+(1腳):接+5V電源。GND(35腳):接地端。OSC(36腳):內(nèi)部振蕩控制。懸空時(shí)振蕩器工作,接地時(shí)振蕩

44、器不工作。BP(5腳):LCD公共驅(qū)動(dòng)極(背光極)。當(dāng)OSC引腳懸空時(shí)輸出125Hz脈沖,當(dāng)OSC引腳接地時(shí)是系統(tǒng)的工作脈沖輸入極。B3B0(3027腳):BCD碼輸入。DS1、DS2和CS1、CS2(不帶“后綴的器件為D1D4,為位選信號(hào),3134腳):這四個(gè)端口中的前、后兩腳分別為位選和片選信號(hào)端。A1G1(3740、24腳):第一位(個(gè)位) LCD七段碼輸出。A2G2(612腳):第二位(十位) LCD七段碼輸出。A3G3(1319腳):第三位(百位) LCD七段碼輸出。A4G4(2026腳):第四位(千位) LCD七段碼輸出。 10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用2. 8051

45、與筆段型LCD的接口及應(yīng)用(1) 液晶顯示控制器ICM7211簡(jiǎn)介 ICM7211(A)M接口使用的位選信號(hào)是兩條地址線和兩條片選信號(hào)線,其真值表如下表所示。 DS2DS1CS2CS1功 能0000數(shù)據(jù)存儲(chǔ)在D40100數(shù)據(jù)存儲(chǔ)在D31000數(shù)據(jù)存儲(chǔ)在D21100數(shù)據(jù)存儲(chǔ)在D2XX其他未選中ICM7211(A)M真值表10.3.4 LCD顯示器的結(jié)構(gòu)與原理及應(yīng)用2. 8051與筆段型LCD的接口及應(yīng)用(2) 應(yīng)用實(shí)例【例10】 用LCD顯示器顯示開(kāi)關(guān)來(lái)回?fù)軇?dòng)的次數(shù)(4位)。解:硬件電路設(shè)計(jì)如以下圖所示,采用ICM7211(A)M驅(qū)動(dòng)4位半液晶顯示器YXY4501。 ICM7211(A)M的OS

46、C懸空,產(chǎn)生方波。P0.0P0.3接ICM7211(A)M的BCD碼輸入端送顯示數(shù)據(jù)。P2.0、P2.1接位選引腳DS1、DS2作為4位LCD的位選擇。P2.7接片選端CS1,P2.7為0選中ICM7211(A)M。WR接片選端CS2,當(dāng)執(zhí)行指令“MOVX DPTR,A時(shí),WR送出一負(fù)脈沖使CS2有效,從而選中ICM7211(A)M。 軟件設(shè)計(jì)時(shí),先把相應(yīng)的位選擇碼作為高八位地址送到DPH,再把顯存存放的BCD碼數(shù)據(jù)作為低八位地址送入到DPL。然后執(zhí)行“MOVX DPTR,A控制LCD的顯示。 這種程序設(shè)計(jì)方法巧妙地將BCD碼值作為低位地址,而將ICM7211作為“只寫外部RAM使用,這一設(shè)計(jì)

47、大大地簡(jiǎn)化了顯示子程序設(shè)計(jì)。LCD顯示器接口電路 D0 EQU 30H ; 個(gè)位計(jì)數(shù)及顯存地址 D1 EQU 31H ; 十位計(jì)數(shù)及顯存地址 D2 EQU 32H ; 百位計(jì)數(shù)及顯存地址 D3 EQU 33H ; 千位計(jì)數(shù)及顯存地址 AD0 EQU 40H ; 存放個(gè)位顯示選通碼地址 AD1 EQU 41H ; 存放十位顯示選通碼地址 AD2 EQU 42H ; 存放百位顯示選通碼地址 AD3 EQU 43H ; 存放千位顯示選通碼地址 ORG 0000H AJMP MAIN ORG 0013H LJMP INT1 ORG 0030H MAIN:MOV SP,#60H MOV AD0,#03H

48、 ; 個(gè)位顯示選通碼 MOV AD1,#02H ; 十位顯示選通碼 MOV AD2,#01H ; 百位顯示選通碼 MOV AD3,#00H ; 千位顯示選通碼 SETB EA ; 開(kāi)通中斷 SETB IT1 ; 下跳沿觸發(fā) SETB EX1 ; 開(kāi)通外部中斷1參考程序* 顯示程序 * DISPLAY: MOV R2,#4 ; 顯示4位 MOV R0,#D0 ; 顯存首地址送R0 MOV R1,#AD0 ; 選通碼首地址送R0 LOOP: MOV A,R1 MOV DPH,A ; 顯示位碼送高八位 MOV A,R0 MOV DPL,A ; 要顯示的數(shù)據(jù)送低八位 MOVX DPTR,A ; 靠地址

49、碼控制顯示 INC R0 INC R1 DJNZ R2,LOOP SJMP DISPLAY * 外部中斷處理程序,完成計(jì)數(shù)指針加1并進(jìn)行各位計(jì)數(shù)指針的調(diào)整(最大只能到9) * (略,可參考例9) END參考程序10.4 數(shù)/模轉(zhuǎn)換接口 10.4.1 數(shù)/模轉(zhuǎn)換器概述 10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例10.4.1 數(shù)/模轉(zhuǎn)換器概述測(cè)控系統(tǒng)是單片機(jī)應(yīng)用的重要領(lǐng)域。在測(cè)控系統(tǒng)中,除數(shù)字量之外還會(huì)遇到另一種物理量,即模擬量。例如:溫度、速度、電壓、電流、壓力等,它們都是連續(xù)變化的物理量。單片機(jī)系統(tǒng)中但凡遇到有模擬量的地方,就要進(jìn)行模擬量向數(shù)字量、數(shù)字量向模擬量的轉(zhuǎn)換,也就要涉及到單片機(jī)的數(shù)/模(D

50、/A)和模/數(shù)(A/D)轉(zhuǎn)換的接口技術(shù)。數(shù)/模轉(zhuǎn)換主要用于將單片機(jī)的數(shù)字量輸出轉(zhuǎn)化為實(shí)際的模擬量控制外接設(shè)備。 10.4.1 數(shù)/模轉(zhuǎn)換器概述D/A轉(zhuǎn)換器輸入的是數(shù)字量,經(jīng)轉(zhuǎn)換后輸出的是模擬量。數(shù)/模轉(zhuǎn)換器集成電路芯片種類很多。按輸入的二進(jìn)制數(shù)的位數(shù)分類,有八位、十位、十二位和十六位等。按輸出是電流還是電壓分類,分為電壓輸出器件和電流輸出器件。 10.4.1 數(shù)/模轉(zhuǎn)換器概述1. D/A轉(zhuǎn)換器的技術(shù)指標(biāo) 有關(guān)D/A轉(zhuǎn)換器的技術(shù)性能指標(biāo)很多,例如絕對(duì)精度、相對(duì)精度、線性度、輸出電壓范圍、溫度系數(shù)、輸入數(shù)字代碼種類(二進(jìn)制或BCD碼)等。D/A轉(zhuǎn)換器與接口有關(guān)的技術(shù)性能指標(biāo):分辯率。數(shù)/模轉(zhuǎn)換的分

51、辯率是指最小輸出電壓(對(duì)應(yīng)的輸入二進(jìn)制數(shù)為1)與最大輸出電壓(對(duì)應(yīng)的輸入二進(jìn)制數(shù)的所有位全為1)之比。例如8位數(shù)的分辨率為1/2560.004,10位數(shù)分辨率為1/1024,約等于0.001。由此可見(jiàn)數(shù)字量位數(shù)越多,分辨率也就越高。分辨率通常用數(shù)字輸入信號(hào)的位數(shù)表示,有8位、10位、12位等。10.4.1 數(shù)/模轉(zhuǎn)換器概述1. D/A轉(zhuǎn)換器的技術(shù)指標(biāo)建立時(shí)間。也稱穩(wěn)定時(shí)間,它是指從數(shù)字量輸入到建立穩(wěn)定的輸出電流的時(shí)間,是描述D/A轉(zhuǎn)換速率的一個(gè)重要參數(shù)。轉(zhuǎn)換精度。由于轉(zhuǎn)換器內(nèi)部的誤差等原因,當(dāng)送一個(gè)確定的數(shù)字量給DAC后,它的實(shí)際輸出值與該數(shù)值應(yīng)產(chǎn)生的理想輸出值之間會(huì)有一定的誤差,它就是D/A

52、轉(zhuǎn)換器的精度。 10.4.1 數(shù)/模轉(zhuǎn)換器概述2. D/A轉(zhuǎn)換芯片DAC0832 DAC0832是一個(gè)8位D/A轉(zhuǎn)換器。單電源供電,從+5V+15V均可正常工作。基準(zhǔn)電壓的范圍為-10V+10V;電流建立時(shí)間為1s;采用CMOS工藝,低功耗20mW。 DAC0832轉(zhuǎn)換器芯片為20引腳,雙列直插式封裝。 其引腳排列如右圖所示。DAC0832引腳圖10.4.1 數(shù)/模轉(zhuǎn)換器概述DAC0832引腳的功能定義如下:DI7DI0 :8位的數(shù)據(jù)輸入端,DI7為最高位。IOUT1 :模擬電流輸出端1,當(dāng)DAC存放器中數(shù)據(jù)全為1時(shí),輸出電流最大,當(dāng) DAC存放器中數(shù)據(jù)全為0時(shí),輸出電流為0。IOUT2 :模

53、擬電流輸出端2,IOUT2與IOUT1的和為一個(gè)常數(shù), 即IOUT1+IOUT2=常數(shù)。RFB:反響電阻引出端,DAC0832是電流輸出,為了取得電壓輸出,需在電壓輸出端接運(yùn)算放大器。DAC0832內(nèi)部已經(jīng)有反響電阻,所以 RFB端可以直接接到外部運(yùn)算放大器的輸出端,這樣相當(dāng)于將一個(gè)反響電阻接在運(yùn)算放大器的輸出端和輸入端之間。 VREF :參考電壓輸入端,此端可接一個(gè)正電壓,也可接一個(gè)負(fù)電壓,它決定0至255的數(shù)字量轉(zhuǎn)化出來(lái)的模擬量電壓值的幅度,VREF范圍為(+10-10)V。VREF端與D/A內(nèi)部T形電阻網(wǎng)絡(luò)相連。VCC:芯片供電電壓,范圍為(+515)V。AGND:模擬量地,即模擬電路接

54、地端。DGND:數(shù)字量地。 10.4.1 數(shù)/模轉(zhuǎn)換器概述DAC0832內(nèi)部結(jié)構(gòu)框圖如以下圖所示。從圖中可見(jiàn),在DAC0832中有兩個(gè)數(shù)據(jù)緩沖器:輸入存放器和DAC存放器。其控制端分別受ILE、CS、WR1和WR2、XFER的控制。 DAC0832內(nèi)部結(jié)構(gòu)框圖10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例 DAC0832有三種不同的工作方式:直通方式、單緩沖方式、雙緩沖方式。1. 直通方式的接口與應(yīng)用當(dāng)ILE接高電平,CS、WR1、WR2和XFER都接數(shù)字地時(shí),DAC處于直通方式,8位數(shù)字量一旦到達(dá)DI7DI0輸入端,就立即加到8位D/A轉(zhuǎn)換器,被轉(zhuǎn)換成模擬量。DAC0832直通方式輸出連接圖如以下圖所

55、示。運(yùn)放U3輸出電壓為 UOUT=-(D/256)*VREF,圖中如果向DAC0832傳送的8位數(shù)據(jù)量為40H(01000000B),那么輸出電壓UOUT=-(64/256)*5V=-1.25V(反相),其輸出過(guò)程可用“MOV P0,#40H一條指令完成。 10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例【例11】 直通方式產(chǎn)生鋸齒波電壓信號(hào)(波形如以下圖所示)。解:電路如以下圖所示。 集成運(yùn)放在電路中的作用是把DAC0832輸出電流轉(zhuǎn)換為電壓。即實(shí)現(xiàn)電流電壓轉(zhuǎn)換。 鋸齒波電壓信號(hào)隨時(shí)間變化而上升,到達(dá)最大值后,又從0開(kāi)始上升,再到最大值如此循環(huán)下去。因此,只要讓DAC0832輸入的數(shù)字量也如此變化就可使

56、輸出端輸出鋸齒波。10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例單片機(jī)和DAC0832直通方式輸出連接圖 10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例對(duì)鋸齒波的產(chǎn)生作如下說(shuō)明: 程序每循環(huán)一次,(R0)加1,因此實(shí)際上鋸齒波的上升沿是由256個(gè)小階梯構(gòu)成的。但由于階梯很小,所以看上去就如上圖所表示的線性增長(zhǎng)鋸齒波。 延遲時(shí)間不同,波形周期不同,鋸齒波的斜率就不同。 參考程序如下: ORG 0000H MOV R0,#0 ;置轉(zhuǎn)換初值 DAC: MOV P0,R0 ;送數(shù)據(jù)到P0口,DAC0832同時(shí)進(jìn)行轉(zhuǎn)換 INC R0 ;轉(zhuǎn)換數(shù)字量加1,當(dāng)加到最大值0FFH時(shí),再加1,R0變?yōu)? ACALL DELAY ;延

57、時(shí)量決定鋸齒波周期 AJMP DACDELAY: (略) END10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例2. 單緩沖方式的接口與應(yīng)用單緩沖方式就是使DAC0832的兩個(gè)輸入存放器中有一個(gè)處于直通方式,而另一個(gè)處于受控的鎖存方式,或者說(shuō)兩個(gè)輸入存放器同時(shí)受控的方式。在實(shí)際應(yīng)用中,如果只有一路模擬量輸出,或雖有幾路模擬量但并不要求同步輸出的情況,就可采用單緩沖方式。接口電路如以下圖所示。10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例單緩沖方式接口電路 10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例2. 單緩沖方式的接口與應(yīng)用【例12】 單緩沖方式產(chǎn)生鋸齒波。解:電路連接如上圖所示。 WR2=0和XFER=0,因此DAC存

58、放器處于直通方式。而輸入存放器處于受控鎖存方式,WR1接8051的WR,ILE接高電平,CS接P2.7故輸入存放器地址為07FFFH。 軟件設(shè)計(jì)思路與例11相同,只是改為用“MOVX DPTR,A來(lái)發(fā)送數(shù)據(jù)和啟動(dòng)轉(zhuǎn)換。 10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例 單緩沖方式產(chǎn)生鋸齒波的源程序如下: MOV DPTR,#7FFFH ; 指向0832地址 MOV R0,#00H ; 置轉(zhuǎn)換數(shù)字初值 DA1: MOV A,R0 MOVX DPTR,A ; 啟動(dòng)轉(zhuǎn)換 INC R0 ; 轉(zhuǎn)換數(shù)字量加1 ACALL DELAY ; 延時(shí) AJMP DA1DELAY: MOV R7,#7DH ; 延時(shí)子程序 DL

59、1: NOP NOP DJNZ R7,DL1 RET10.4.2 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例2. 單緩沖方式的接口與應(yīng)用【例13】 利用0832輸出一個(gè)從-5V開(kāi)始逐漸上升到0V再升至5V,再?gòu)?V逐漸降至0V,再降至-5V的鋸齒波電壓。解:硬件電路如以下圖所示。 同圖中集成運(yùn)放U4接成一加法電路。 輸出電壓UO=-(5+2Ui)。當(dāng)0832輸出-5V時(shí)(最大值),UO=-(5-10)=+5V;輸出-2.5V時(shí),UO=0V;輸出0V時(shí),UO=-5V。 軟件設(shè)計(jì)時(shí),與例10.14有點(diǎn)不同的是,當(dāng)數(shù)字量到達(dá)最大(0FFH)時(shí)要進(jìn)行減1運(yùn)算。而不是變?yōu)?。當(dāng)數(shù)字量減至0時(shí),又開(kāi)始加1運(yùn)算。 10.4.2

60、 數(shù)/模轉(zhuǎn)換芯片應(yīng)用實(shí)例鋸齒波形成電路 ORG 0000H HA6S: MOV SP,#53H ;設(shè)置堆棧HA6S1: MOV R6,#00H ;數(shù)字量初值HA6S2: MOV DPTR,#7FFFH ;地址 MOV A,R6 ;數(shù)字量送A MOVX DPTR,A ;進(jìn)行D/A轉(zhuǎn)換 MOV R2,#0BH LCALL DELAY ;延時(shí) INC R6 ;數(shù)字量加1 CJNE R6,#0FFH,HA6S2 ;數(shù)字量增加到0FFH?不是,那么繼續(xù), 是那么開(kāi)始減1HA6S3: MOV DPTR,#7FFFH ;0832地址 DEC R6 ;數(shù)字量減1 MOV A,R6 MOVX DPTR,A ;數(shù)

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論