




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單原及接片理口技術(shù)機(jī)第1章緒論.pptx第2章單片機(jī)學(xué)習(xí)必要工具.pptx第3章51單片機(jī)C語(yǔ)言基礎(chǔ)知識(shí).pptx第4章顯示器件原理及應(yīng)用實(shí)現(xiàn).pptx第5章鍵盤(pán)檢測(cè)原理及應(yīng)用.pptx第6章中斷.pptx第7章串行口通訊及應(yīng)用.pptx第8章單總線通信協(xié)議與典型電路應(yīng)用.pptx第9章SPI通信協(xié)議與典型電路應(yīng)用.pptx第10章IIC通信協(xié)議與典型電路應(yīng)用.pptx全套可編輯PPT課件12第一章
緒論01單片機(jī)概述02單片機(jī)預(yù)備知識(shí)PrincipleandinterfacetechnologyofMicrocomputer01單片機(jī)概述?什么是單片機(jī)單片機(jī)是一種集成電路芯片(也稱為微控制器,嵌入式控制器),是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。與通用的計(jì)算機(jī)不同,單片機(jī)的指令功能是按照工業(yè)控制的要求設(shè)計(jì)的,因此它又被稱為微控制器(MicroControllerUnit)。隨著集成電路技術(shù)的發(fā)展,單片機(jī)片內(nèi)集成的功能越來(lái)越強(qiáng)大,并朝著SOC(片上系統(tǒng))方向發(fā)展。近幾年單片機(jī)以其體積微小,價(jià)格低廉,可靠性高,廣泛應(yīng)用于工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、通信設(shè)備及日常消費(fèi)類產(chǎn)品等。單片機(jī)技術(shù)開(kāi)發(fā)和應(yīng)用水平已成為衡量一個(gè)國(guó)家工業(yè)化發(fā)展水平的標(biāo)志之一。1.1單片機(jī)的特點(diǎn)1.2單片機(jī)作為微型計(jì)算機(jī)的一個(gè)分支,與一般的微型計(jì)算機(jī)沒(méi)有本質(zhì)上的區(qū)別,同樣具有快速、精確、記憶功能和邏輯判斷能力等特點(diǎn)。但單片機(jī)是集成在一塊芯片上的微型計(jì)算機(jī),它與一般的微型計(jì)算機(jī)相比,在硬件結(jié)構(gòu)和指令設(shè)置上均有獨(dú)到之處,主要特點(diǎn)有:1、體積小,重量輕;價(jià)格低,功能強(qiáng);電源單一,功耗低;可靠性高,抗干擾能力強(qiáng)。這是單片機(jī)得到迅速普及和發(fā)展的主要原因。同時(shí)由于它的功耗低,使后期投入成本也大大降低。2、使用方便靈活、通用性強(qiáng)。由于單片機(jī)本身就構(gòu)成一個(gè)最小系統(tǒng),只要根據(jù)不同的控制對(duì)象作相應(yīng)的改變即可,因而它具有很強(qiáng)的通用性。3、目前大多數(shù)單片機(jī)采用哈佛(Harvard)結(jié)構(gòu)體系。單片機(jī)的數(shù)據(jù)存儲(chǔ)器空間和程序存儲(chǔ)器空間相互獨(dú)立。單片機(jī)主要面向測(cè)控對(duì)象,通常有大量的控制程序和較少的隨機(jī)數(shù)據(jù),將程序和數(shù)據(jù)分開(kāi),使用較大容量的程序存儲(chǔ)器來(lái)固化程序代碼,使用少量的數(shù)據(jù)存儲(chǔ)器來(lái)存取隨機(jī)數(shù)據(jù)。程序在只讀存儲(chǔ)器ROM中運(yùn)行,不易受外界侵害,可靠性高。4、突出控制功能的指令系統(tǒng)。單片機(jī)的指令系統(tǒng)中有大量的單字節(jié)指令,以提高指令運(yùn)行速度和操作效率;有豐富的位操作指令,滿足了對(duì)開(kāi)關(guān)量控制的要求;有豐富的轉(zhuǎn)移指令,包括有無(wú)條件轉(zhuǎn)移指令和條件轉(zhuǎn)移指令。5、較低的處理速度和較小的存儲(chǔ)容量。因?yàn)閱纹瑱C(jī)是一種小而全的微型機(jī)系統(tǒng),它是犧牲運(yùn)算速度和存儲(chǔ)容量來(lái)?yè)Q取其體積小、功耗低等特色。單片機(jī)應(yīng)用1.3單片機(jī)計(jì)算機(jī)技術(shù)的快速發(fā)展是基于集成電路技術(shù)發(fā)展而來(lái)的,價(jià)格也越來(lái)越得到廣大用戶接受,因此在工業(yè)生產(chǎn)等領(lǐng)域中得到了廣泛應(yīng)用。其系列在逐漸發(fā)展變化,功能也越來(lái)越強(qiáng)大;單片機(jī)目前被視為嵌入式微控制器,它最明顯的優(yōu)勢(shì)就是可以嵌入到各種儀器、設(shè)備中,這一點(diǎn)是巨型機(jī)不可能做到的。由于單片機(jī)所具有的顯著優(yōu)點(diǎn),它已成為科技領(lǐng)域的有力工具,人類生活的得力助手。它的應(yīng)用遍及各個(gè)領(lǐng)域,主要表現(xiàn)在以下幾個(gè)方面:1、單片機(jī)在智能儀表中的應(yīng)用。單片機(jī)作為微處理器在智能儀器儀表中的應(yīng)用,就是將一些部件的功能集中整合在一塊芯片中,使得計(jì)算機(jī)系統(tǒng)看起來(lái)不是很復(fù)雜,形成了完整的單片計(jì)算機(jī)的應(yīng)用系統(tǒng),由于其體積小等特點(diǎn),使儀器儀表的測(cè)量功能大為擴(kuò)展,方便了維護(hù)工作,自檢與測(cè)量互不干擾。例如:數(shù)字濾波,數(shù)字濾波是通過(guò)數(shù)字設(shè)備的算法來(lái)處理信號(hào),將某個(gè)頻段的信號(hào)經(jīng)過(guò)篩選濾除出去,得到新的信號(hào),通過(guò)對(duì)單片機(jī)的有效控制,提高了可利用信號(hào)的使用價(jià)值,以平滑加工的形式對(duì)信號(hào)進(jìn)行采樣,消除噪聲等各種干擾因素,使系統(tǒng)運(yùn)行更加可靠。2、單片機(jī)在機(jī)電一體化產(chǎn)品中的應(yīng)用?;趩纹瑱C(jī)技術(shù)的機(jī)電一體化技術(shù),自動(dòng)化水平明顯提高,機(jī)電一體化的水平更趨于穩(wěn)定和徹底。同時(shí),隨著單片機(jī)的廣泛運(yùn)用,使機(jī)電一體化技術(shù)更具智能化特征。例如,微機(jī)控制的機(jī)床、機(jī)器人等。單片機(jī)在機(jī)電一體化產(chǎn)品中的應(yīng)用,極大地提高了設(shè)備的智能化,提高了處理能力和處理效率,而且無(wú)需占用很大的空間和復(fù)雜的設(shè)備。3、單片機(jī)在實(shí)時(shí)控制中的應(yīng)用。單片機(jī)具有較強(qiáng)的實(shí)時(shí)數(shù)據(jù)處理能力和控制功能,可滿足大多數(shù)實(shí)時(shí)控制系統(tǒng),使系統(tǒng)保持在最佳工作狀態(tài),提高系統(tǒng)的工作效率和產(chǎn)品質(zhì)量;同時(shí),它的快速響應(yīng)性和可靠性使得單片機(jī)廣泛地用于各種實(shí)時(shí)控制系統(tǒng)中。例如,在工業(yè)測(cè)控、航空航天、尖端武器、機(jī)器人等各種實(shí)時(shí)控制系統(tǒng)中,都可以用單片機(jī)作為控制器。4、單片機(jī)在分布式系統(tǒng)中的應(yīng)用。由于單片機(jī)具有通信距離遠(yuǎn)、實(shí)時(shí)性強(qiáng)、抗干擾能力強(qiáng)、通訊接口簡(jiǎn)單、成本低等優(yōu)點(diǎn),在比較復(fù)雜的分布式控制系統(tǒng)中以單片機(jī)為核心,單片機(jī)在這種系統(tǒng)中往往作為一個(gè)下位機(jī),安裝在系統(tǒng)的節(jié)點(diǎn)上,對(duì)現(xiàn)場(chǎng)信息進(jìn)行實(shí)時(shí)的測(cè)量和控制。例如各部件獨(dú)立控制的機(jī)器人,常常采用RS-232C轉(zhuǎn)RS-485,實(shí)現(xiàn)一對(duì)多控制。5、單片機(jī)在日常生活中的應(yīng)用。隨著單片機(jī)集成度的提高、價(jià)格的降低,其已經(jīng)滲透進(jìn)我們?nèi)粘I畹姆椒矫婷妫焕?,手機(jī)、洗衣機(jī)、電冰箱、電子玩具、收錄機(jī)等家用電器配上單片機(jī)后,提高了智能化程度,增加了功能,倍受人們喜愛(ài)。單片機(jī)使人類生活更加方便、舒適、豐富多彩。綜上所述,單片機(jī)已成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方面。單片機(jī)的知識(shí)可以在很多場(chǎng)合得以應(yīng)用,學(xué)好單片機(jī)可以更好的融入現(xiàn)代化生活。單片機(jī)的發(fā)展單片機(jī)作為微型計(jì)算機(jī)的一個(gè)重要分支,應(yīng)用廣,發(fā)展快。如果將8位單片機(jī)的推出作為起點(diǎn),那么單片機(jī)的發(fā)展歷史大致可分為以下幾個(gè)階段:孕育階段(1971-1976):1971年Intel公司研制出世界上第一個(gè)4位的微處理器;Intel公司的霍夫研制成功世界上第一塊4位微處理器芯片Intel4004,標(biāo)志著第一代微處理器問(wèn)世,微處理器和微機(jī)時(shí)代從此開(kāi)始。因發(fā)明微處理器,霍夫被英國(guó)《經(jīng)濟(jì)學(xué)家》雜志列為“二戰(zhàn)以來(lái)最有影響力的7位科學(xué)家”之一。第一階段(1976-1978):?jiǎn)纹瑱C(jī)的初級(jí)階段。以Intel公司的MCS-48為代表。MCS-48的推出是在工控領(lǐng)域的探索,參與這一探索的公司還有Motorola、Zilog等,都取得了滿意的效果。這是SCM的誕生年代,“單片機(jī)”一詞即由此而來(lái)。這個(gè)系列的單片機(jī)內(nèi)集成有8位CPU、I/O接口、8位定時(shí)器/計(jì)數(shù)器,尋址范圍不大于4K字節(jié),簡(jiǎn)單的中斷功能,無(wú)串行接口。1.4第二階段(1978-1982):?jiǎn)纹瑱C(jī)的完善階段。Intel公司在MCS-48基礎(chǔ)上推出了完善的、典型的單片機(jī)系列MCS一51。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu):完善的外部總線,MCS-51設(shè)置了經(jīng)典的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有多機(jī)通信功能的串行通信接口;CPU外圍功能單元的集中管理模式;體現(xiàn)工控特性的位地址空間及位操作方式;指令系統(tǒng)趨于完善,并且增加了許多突出控制功能的指令。第三階段(1982-1992):8位單片機(jī)的鞏固發(fā)展及16位單片機(jī)的推出階段,也是單片機(jī)向微控制器發(fā)展的階段。Intel公司推出的MCS-96系列單片機(jī),將一些用于測(cè)控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制器等納入片中,體現(xiàn)了單片機(jī)的微控制器特征。隨著MCS-51系列的廣泛應(yīng)用,許多廠商競(jìng)相使用8051為內(nèi)核,將許多測(cè)控系統(tǒng)中使用的電路、接口、多通道AD轉(zhuǎn)換部件、可靠性技術(shù)等應(yīng)用到單片機(jī)中,增強(qiáng)了外圍電路的功能,強(qiáng)化了智能控制的特征。第四階段(1993-現(xiàn)在):微控制器的全面發(fā)展階段。隨著單片機(jī)在各個(gè)領(lǐng)域全面深入地發(fā)展和應(yīng)用,出現(xiàn)了高速、大尋址范圍、強(qiáng)運(yùn)算能力的8位/16位/32位通用型單片機(jī),以及小型廉價(jià)的專用型單片機(jī)。單片機(jī)的發(fā)展方向目前,現(xiàn)在可以說(shuō)單片機(jī)是百花齊放的時(shí)期,世界上各大芯片制造公司都推出了自己的單片機(jī),從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供廣闊的天地,單片機(jī)發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等方面發(fā)展。1、低功耗CMOS化。CMOS電路具有許多優(yōu)點(diǎn),如極寬的工作電壓范圍,極佳的低功耗及功耗管理特性等,MCS-51系列的8031推出時(shí)的功耗達(dá)630mW,而現(xiàn)在的單片機(jī)普遍都在100mW左右,現(xiàn)在的各個(gè)單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點(diǎn),這些特征,更適合于在要求低功耗,電池供電的應(yīng)用場(chǎng)合。所以這種工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑。1.52、多功能集成化和微型化。現(xiàn)在單片機(jī)開(kāi)始將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(chǔ)(RAM)、只讀程序存儲(chǔ)器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路、A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門(mén)狗)、有些單片機(jī)將LCD(液晶)驅(qū)動(dòng)電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的集成型單片機(jī)芯片。此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中SMD(表面封裝)越來(lái)越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。3、片內(nèi)存儲(chǔ)器的改進(jìn)與發(fā)展。目前新型的單片機(jī)一般在片內(nèi)集成兩種類型的存儲(chǔ)器:一種是隨機(jī)讀寫(xiě)存儲(chǔ)器(常用的為SRAM,StaticRandomAccessMemory,靜態(tài)RAM),作為臨時(shí)數(shù)據(jù)存儲(chǔ)器存放工作數(shù)據(jù)用;另一種是只讀存儲(chǔ)器ROM(ReadOnlyMemory),作為程序存儲(chǔ)器存放系統(tǒng)控制程序和固定不變的數(shù)據(jù)。片內(nèi)存儲(chǔ)器的改進(jìn)與發(fā)展的方向是擴(kuò)大容量、數(shù)據(jù)的易寫(xiě)和保密等。4、以串行總線方式為主的外圍擴(kuò)展。在很長(zhǎng)一段時(shí)間里,通用型單片機(jī)通過(guò)三總線結(jié)構(gòu)擴(kuò)展外圍器件成為單片機(jī)應(yīng)用的主流結(jié)構(gòu)。隨著低價(jià)位0TP(OneTimeProgramble)及各種特殊類型片內(nèi)程序存儲(chǔ)器的發(fā)展,加之處圍接口不斷進(jìn)入片內(nèi),推動(dòng)了單片機(jī)“單片”應(yīng)用結(jié)構(gòu)的發(fā)展。特別是I2C、SPI等串行總線的引入,可以使單片機(jī)的引腳設(shè)計(jì)得更少,單片機(jī)系統(tǒng)結(jié)構(gòu)更加簡(jiǎn)化及規(guī)范化。5、單片機(jī)向片上系統(tǒng)SOC的發(fā)展。SOC(SystemOnChip)是一種高度集成化、固件化的芯片級(jí)集成技術(shù),其核心思想是把除了無(wú)法集成的某些外部電路和機(jī)械部分之外的所有電子系統(tǒng)電路全部集成在一片芯片中。現(xiàn)在一些新型的單片機(jī)已經(jīng)是SOC的雛形,在一片芯片中集成了各種類型和更大容量的存儲(chǔ)器,更多性能完善和強(qiáng)大的功能電路接口,這使得原來(lái)需要幾片甚至十幾片芯片組成的系統(tǒng),現(xiàn)在只用一片就可以實(shí)現(xiàn)。其優(yōu)點(diǎn)是不僅減小了系統(tǒng)的體積和成本,而且大大提高了系統(tǒng)硬件的可靠性和穩(wěn)定性。單片機(jī)預(yù)備知識(shí)02數(shù)制及其轉(zhuǎn)換2.1二進(jìn)制數(shù)的運(yùn)算電子計(jì)算機(jī)一般采用二進(jìn)制數(shù)。二進(jìn)制數(shù)只有0和1兩個(gè)基本數(shù)字,容易通過(guò)開(kāi)關(guān)兩個(gè)狀態(tài)實(shí)現(xiàn)。二進(jìn)制數(shù)的運(yùn)算公式:十進(jìn)制和二進(jìn)制間的轉(zhuǎn)換十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制將十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)時(shí),只要將它一次一次地被2除,得到的余數(shù)(從最后一個(gè)余數(shù)讀起)就是二進(jìn)制表示的數(shù)。二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)將一個(gè)二進(jìn)制數(shù)的整數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),只要將它的最后一位乘以2n-1,最后第二位乘以2n-2......以此類推(n為二進(jìn)制位數(shù)),然后將各項(xiàng)相加就得到用十進(jìn)制表示的數(shù)。例:(101011)2=1×2?+0×2?+1×23+0×22+1×21+1×20=(44)10;如果將一個(gè)帶有小數(shù)的二進(jìn)制數(shù),轉(zhuǎn)換成十進(jìn)制數(shù),小數(shù)點(diǎn)后的第一位乘以2-1,第二位乘以2-2,以此類推,小數(shù)點(diǎn)前的轉(zhuǎn)換方法與整數(shù)轉(zhuǎn)換方法相同,然后將各項(xiàng)相加就得到用十進(jìn)制表示的數(shù)。例:(100001.101)2:=1×25+0×24+0×23+0×22+0×21+1×20+1×2-1+0×2-2+1×2-3=(33.625)10 不同進(jìn)制數(shù)的轉(zhuǎn)換二進(jìn)制數(shù)和八進(jìn)制數(shù)互換:二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)時(shí),只要從小數(shù)點(diǎn)位置開(kāi)始,向左或向右每三位二進(jìn)制劃分為一組(不足三位時(shí)可補(bǔ)0),然后寫(xiě)出每一組二進(jìn)制數(shù)所對(duì)應(yīng)的八進(jìn)制數(shù)碼即可。例:將二進(jìn)制數(shù)(10110001.111)轉(zhuǎn)換成八進(jìn)制數(shù):二進(jìn)制數(shù)(10110001.111)2轉(zhuǎn)換成八進(jìn)制數(shù)是(261.7)8。反過(guò)來(lái),將每位八進(jìn)制數(shù)分別用三位二進(jìn)制數(shù)表示,就可完成八進(jìn)制數(shù)和二進(jìn)制數(shù)的轉(zhuǎn)換。二進(jìn)制數(shù)和十六進(jìn)制數(shù)互換:二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)時(shí),只要從小數(shù)點(diǎn)位置開(kāi)始,向左或向右每四位二進(jìn)制劃分為一組(不足四位時(shí)可補(bǔ)0),然后寫(xiě)出每一組二進(jìn)制數(shù)所對(duì)應(yīng)的十六進(jìn)制數(shù)碼即可。例:將二進(jìn)制數(shù)(11011100110.1101)轉(zhuǎn)換成十六進(jìn)制數(shù):二進(jìn)制數(shù)(11011100110.1101)2轉(zhuǎn)換成十六進(jìn)制數(shù)是(6E6.D)16。反過(guò)來(lái),將每位十六進(jìn)制數(shù)分別用三位二進(jìn)制數(shù)表示,就可完成十六進(jìn)制數(shù)和二進(jìn)制數(shù)的轉(zhuǎn)換。八進(jìn)制數(shù)、十六進(jìn)制數(shù)和十進(jìn)制數(shù)的轉(zhuǎn)換:這三者轉(zhuǎn)換時(shí),可把二進(jìn)制數(shù)作為媒介,先把代轉(zhuǎn)換的數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),然后將二進(jìn)制數(shù)轉(zhuǎn)換成要求轉(zhuǎn)換的數(shù)制形式。BCD碼和ASCII碼2.21、BCD碼(BinaryCodedDecimal)計(jì)算機(jī)內(nèi)部以二進(jìn)制的表示為基礎(chǔ),但在日常生活和工作中,我們習(xí)慣的卻是十進(jìn)制。怎樣來(lái)解決這一矛盾呢?有兩種方法可供選擇。一種方法是采用“十轉(zhuǎn)二”和“二轉(zhuǎn)十”的程序。輸入十進(jìn)制后用“十轉(zhuǎn)二”把其轉(zhuǎn)換為二進(jìn)制,在計(jì)算機(jī)內(nèi)運(yùn)算,輸出時(shí)用“二轉(zhuǎn)十”的程序把二進(jìn)制轉(zhuǎn)換為十進(jìn)制,以方便人們的使用。另一種方法是直接采用“二一十”進(jìn)制,BCD碼就是“二一十”進(jìn)制,即用二進(jìn)制代碼表示的十進(jìn)制數(shù)。顧名思義,它既是逢十進(jìn)一,又是一組二進(jìn)制代碼。用4位二進(jìn)制代碼表示十進(jìn)制的一位數(shù),一個(gè)字節(jié)可以表示兩個(gè)十進(jìn)制數(shù),稱為壓縮的BCD碼,如10000111表示87;也可以用一個(gè)字節(jié)表示一位十進(jìn)制的數(shù),這種BCD稱為非壓縮的BCD碼,如00000111表示十進(jìn)制的7。多進(jìn)制與BCD碼的對(duì)應(yīng)關(guān)系見(jiàn)表1-1。2、ASCII碼(AmericanStandardCodeforInformationInterchange)由于計(jì)算機(jī)中使用的是二進(jìn)制數(shù),所以計(jì)算機(jī)中使用的字母、字符也要用特定的二進(jìn)制表示。目前普遍采用的是ASCII碼。它采用7位二進(jìn)制編碼表示128個(gè)字符,其中包括數(shù)碼0~9以及英文字母等可打印的字符,見(jiàn)表1-2??梢?jiàn),在計(jì)算機(jī)中一個(gè)字節(jié)可以表示一個(gè)英文字母。由于單個(gè)的漢字太多,所以要用兩個(gè)字節(jié)才能表示一個(gè)漢字,目前也有國(guó)標(biāo)的漢字計(jì)算機(jī)編碼表——漢碼表。從表中可以查到“6”的ASCII碼為“36H”,“R”的ASCII碼為“52H”。電平2.3常用電平簡(jiǎn)介常用的邏輯電平有TTL、CMOS、LVTTL、ECL、PECL、GTL;RS232、RS422、LVDS等。其中TTL和CMOS的邏輯電平按典型電壓可分為四類:5V系列(5VTTL和5VCMOS)、3.3V系列,2.5V系列和1.8V系列。5VTTL(Transister-Transister-Logic,晶體管一晶體管邏輯)和5VCMOS(ComplementaryMetalOxideSemiconductor,互補(bǔ)金屬氧化物半導(dǎo)體邏輯電平)是通用的邏輯電平。3.3V及以下的邏輯電平被稱為低電壓邏輯電平,常用的為L(zhǎng)VTTL電平。TTL電平與CMOS電平的區(qū)別TTL電平是5V,CMOS電平一般是12V。5V的電平不能觸發(fā)CMOS電路,12V的電平會(huì)損壞TTL電路,因此兩者不能互相兼容匹配。TTL電平:輸出L:<0.4v,>2.4V。輸入L:<0.8v,>2.0VTTL。即:器件輸出低電平要小于0.4V,高電平要大于2.4V。輸入,低于0.8V就認(rèn)為是0,高于2.0就認(rèn)為是1。CMOS電平:輸出L:<0.1,Vcc>0.9Vcc。輸入L:<0.3Vcc,>0.7Vcc。即:器件輸出低電平要小于0.1Vcc,高電平要高于0.9Vcc。輸入:低于0.3Vcc就認(rèn)為是0,高于0.7Vcc就認(rèn)為是1。TTL和CMOS轉(zhuǎn)換常用的方法有晶體管或OC/OD器件結(jié)合上拉電阻進(jìn)行電平轉(zhuǎn)換,將一個(gè)雙極型三極管(MOSFET)或OC/OD器件,C/D極接一個(gè)上拉電阻到正電源,輸入電平很靈活,輸出電平大致就是正電源電平。74xHCT系列芯片升壓(3.3V→5V)凡是輸入與5VTTL電平兼容的5VCMOS器件都可以用作3.3V→5V電平轉(zhuǎn)換。這是由于3.3VCMOS的電平剛好和5VTTL電平兼容(巧合),而CMOS的輸出電平總是接近電源電平的。超限輸入降壓法(5V→3.3V,3.3V→1.8V,...),凡是允許輸入電平超過(guò)電源的邏輯器件,都可以用作降低電平。這里的“超限”是指超過(guò)電源,許多較古老的器件都不允許輸入電壓超過(guò)電源,但越來(lái)越多的新器件取消了這個(gè)限制(改變了輸入級(jí)保護(hù)電路)。例如,74AHC/VHC系列芯片,其datasheets明確注明“輸入電壓范圍為0~5.5V”,如果采用3.3V供電,就可以實(shí)現(xiàn)5V→3.3V電平轉(zhuǎn)換。如何學(xué)習(xí)單片機(jī)03單片機(jī)是一門(mén)實(shí)用技術(shù),學(xué)習(xí)它的目的是增強(qiáng)能力,根據(jù)教學(xué)團(tuán)隊(duì)近二十年教學(xué)經(jīng)驗(yàn),總結(jié)了單片機(jī)的學(xué)習(xí)方法是:一個(gè)目標(biāo),四個(gè)過(guò)程。學(xué)習(xí)單片機(jī)的目標(biāo)就是:通過(guò)單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)鍛煉,增強(qiáng)自身實(shí)力,獲尋就業(yè)方向。學(xué)習(xí)單片機(jī)的四個(gè)過(guò)程是:鸚鵡學(xué)舌、照葫蘆畫(huà)瓢、借力打力和理實(shí)結(jié)合。第一步:鸚鵡學(xué)舌。大家剛開(kāi)始接觸單片機(jī)的時(shí)候,屬于單片機(jī)行業(yè)的新生兒。單片機(jī)的樣子,單片機(jī)外圍的各種器件,單片機(jī)內(nèi)部的各種結(jié)構(gòu),單片機(jī)使用C語(yǔ)言的編程方法,初學(xué)者可能都沒(méi)有見(jiàn)過(guò),腦子里全無(wú)概念。沒(méi)關(guān)系,有些概念和方法你不理解也沒(méi)有關(guān)系,甚至不需要你去理解,你只需要跟著我去鸚鵡學(xué)舌式的學(xué)習(xí),第一遍學(xué)習(xí)某一節(jié)課的內(nèi)容時(shí),對(duì)于程序,大家就可以完全跟著抄下來(lái),甚至抄兩三遍,過(guò)一段你會(huì)發(fā)現(xiàn),好多東西你也認(rèn)識(shí)了,好多概念你也慢慢的理解清楚了,你也能大概看懂別人的小程序了,切忌覺(jué)得自己看會(huì)了,而簡(jiǎn)單復(fù)制粘貼。第二步:照葫蘆畫(huà)瓢。很多同學(xué)學(xué)習(xí)的時(shí)候喜歡看,看網(wǎng)絡(luò)流傳的視頻,看網(wǎng)絡(luò)貼吧的程序,甚至看別人的程序,都能看懂,覺(jué)得自己就會(huì)了,等到自己寫(xiě)程序的時(shí)候,感覺(jué)就是老鼠啃天,不知道從哪里下手了,這是初學(xué)者很容易犯的“眼高手低”的毛病,所以第二步的內(nèi)容就非常重要了。課程團(tuán)隊(duì)的要求是,每一位同學(xué),在學(xué)完了當(dāng)前課的內(nèi)容,把第一步順利完成以后,然后關(guān)掉視頻教程,關(guān)掉源代碼,自己通過(guò)看電路圖和查找非源代碼的其他任何資料,把當(dāng)節(jié)課課程團(tuán)隊(duì)寫(xiě)的程序代碼重新默寫(xiě)出來(lái),邊寫(xiě)邊多少理解那么一點(diǎn)點(diǎn),不是純粹的背誦,應(yīng)該說(shuō)是背誦加理解的結(jié)合體。甚至學(xué)過(guò)幾節(jié)課以后,可以回頭把前邊曾經(jīng)這樣實(shí)現(xiàn)過(guò)的課程,再按照這種方法做一遍。千萬(wàn)不要認(rèn)為這一步?jīng)]必要,這一步是你能否真正學(xué)會(huì)單片機(jī)的一個(gè)關(guān)鍵,在學(xué)完本教程之前,每一課內(nèi)容都要這樣做,如果每一個(gè)程序你都能夠完美的完成,那么可以說(shuō),當(dāng)節(jié)課的內(nèi)容,百分之七八十你已經(jīng)掌握了。第三步:借力打力。單片機(jī)技術(shù)的最大特點(diǎn)就是可以通過(guò)修改程序來(lái)實(shí)現(xiàn)不同的功能,因此舉一反三的能力就必不可少了。每一節(jié)課的例程后邊,課程團(tuán)隊(duì)一般都會(huì)布置幾個(gè)作業(yè),大家盡量去獨(dú)立完成這個(gè)作業(yè)。在完成這個(gè)作業(yè)的過(guò)程中,都可以參考課程團(tuán)隊(duì)的程序思路,在這個(gè)基礎(chǔ)上通過(guò)動(dòng)腦思考去構(gòu)建你自己的程序框架,最終將程序完成。在工程師實(shí)際產(chǎn)品研發(fā)的時(shí)候,很多種情況下也是如此。比如一個(gè)產(chǎn)品,我們?nèi)绻麖牧闫鸩降脑挘赡軙?huì)走很多彎路,遭遇很多前人已曾遭遇過(guò)的挫折,所以我們通常的做法是尋找購(gòu)買(mǎi)幾款同類產(chǎn)品,然后先研究他們的各自優(yōu)缺點(diǎn),學(xué)習(xí)他們的長(zhǎng)處,然后在同類產(chǎn)品基礎(chǔ)上再來(lái)設(shè)計(jì)我們自己的產(chǎn)品,這就是“他山之石,可以攻玉”。初學(xué)者在學(xué)習(xí)的時(shí)候,往往遇到的問(wèn)題很多,你應(yīng)該想到,你遇到的問(wèn)題,可能前輩們?cè)缇陀龅竭^(guò)了,所以遇到問(wèn)題后,不要慌張,首先利用谷歌或者百度這些搜索引擎在網(wǎng)上搜一下,要做什么新東西,先去網(wǎng)上找相關(guān)資料了解一下,不管是編程還是硬件設(shè)計(jì),多多參考別人的東西,只要把別人的東西分析明白了,自己用起來(lái)了,也就成為自己的知識(shí)了。第四步:理實(shí)結(jié)合。當(dāng)大家把所有的課程都按照前邊三步完成后,這個(gè)時(shí)候不妨再把書(shū)打開(kāi),再看看書(shū),經(jīng)過(guò)了自己的實(shí)戰(zhàn)經(jīng)歷,再看書(shū)的時(shí)候,對(duì)很多知識(shí)點(diǎn)會(huì)有一種恍然大悟的感覺(jué)。甚至視頻教程、書(shū)籍都可以反復(fù)看幾遍,可能有的知識(shí)點(diǎn)當(dāng)時(shí)學(xué)習(xí)的時(shí)候不明白,過(guò)了一段時(shí)間,回過(guò)頭來(lái)再學(xué)習(xí)的時(shí)候,一下就明白了。單片機(jī)學(xué)習(xí)的準(zhǔn)備工作04第一:足夠的信心、恒心和耐心。首先,心態(tài)上藐視它。通過(guò)教學(xué)和實(shí)訓(xùn)工作,很多同學(xué)做出來(lái)小車,超聲波測(cè)距,甚至做出來(lái)機(jī)器人。單片機(jī)在邏輯上的關(guān)系,只有小學(xué)的水平,不復(fù)雜。只要認(rèn)真踏實(shí)堅(jiān)持學(xué)下去,肯定能學(xué)好這么技術(shù)。其次,過(guò)程上重視它。很多網(wǎng)絡(luò)教程吹噓十天八天就學(xué)會(huì)了,這是不現(xiàn)實(shí)的,更是不可能的,如果一個(gè)技術(shù)很簡(jiǎn)單就被學(xué)會(huì),那么很多人都會(huì)這個(gè)技術(shù),肯定也沒(méi)什么前途和錢(qián)途。那究竟多久能學(xué)會(huì)呢?如果每天2個(gè)小時(shí)左右的學(xué)習(xí)時(shí)間,大概1~3個(gè)月可以入門(mén)。入門(mén)的概念是給你一個(gè)單片機(jī)開(kāi)發(fā)任務(wù),你起碼知道要努力的方向和解決問(wèn)題的大概方法了。第二:實(shí)用的教材和視頻教程。要學(xué)習(xí)單片機(jī)這門(mén)技術(shù),良好的教材和教程必不可少。單片機(jī)方面,除了本教材而外,推薦學(xué)習(xí)《新概念51單片機(jī)C語(yǔ)言教程入門(mén)、提高、開(kāi)發(fā)、拓展全攻略(第2版))》教材和相關(guān)視頻教程,如果C語(yǔ)言基礎(chǔ)不好,最好能再有一本純C語(yǔ)言的教材,推薦學(xué)習(xí)《學(xué)習(xí)零基礎(chǔ)學(xué)C語(yǔ)言》。第三:電腦一臺(tái)、單片機(jī)開(kāi)發(fā)板一塊。電腦,是學(xué)習(xí)單片機(jī)必不可少的工具,因?yàn)榫帉?xiě)程序,查閱資料都得用到。開(kāi)發(fā)板,這也必須。學(xué)校實(shí)驗(yàn)室有開(kāi)發(fā)板,可以借一個(gè),也可以自行購(gòu)置,開(kāi)發(fā)板需要和教材或者教程相適應(yīng),本教材提倡的是使用仿真軟件Proteus對(duì)單片機(jī)及周邊硬件進(jìn)行模擬仿真,對(duì)開(kāi)發(fā)板使用率不高。這也是本次編寫(xiě)本教材的特點(diǎn)之一。但是并不代表不動(dòng)手就能學(xué)好單片機(jī),拿起烙鐵焊電路,動(dòng)手寫(xiě)程序,才是單片機(jī)學(xué)習(xí)的終極目標(biāo)。1、什么是單片機(jī)?它與一般的計(jì)算機(jī)有何區(qū)別?2、簡(jiǎn)述單片機(jī)的發(fā)展歷史,目前單片機(jī)主要朝哪幾個(gè)方面發(fā)展?3、單片機(jī)的主要應(yīng)用是哪幾個(gè)方面?請(qǐng)舉一些你知道的例子?4、單片機(jī)內(nèi)部采用什么數(shù)制?為什么在計(jì)算機(jī)硬件編程中常用十六進(jìn)制?5、什么是ASCII碼?寫(xiě)出0-9,a-z和A-Z的ASCII碼。6、什么是電平?7、你應(yīng)該如何學(xué)習(xí)單片機(jī)?習(xí)題05單原及接片理口技術(shù)機(jī)42第二章
單片機(jī)學(xué)習(xí)和開(kāi)發(fā)必要工具01硬件方面必要開(kāi)發(fā)工具02單片機(jī)開(kāi)發(fā)軟件方面必要工具03習(xí)題PrincipleandinterfacetechnologyofMicrocomputer萬(wàn)用表工具簡(jiǎn)介萬(wàn)用表(也稱作多用表、復(fù)用表等)是單片機(jī)開(kāi)發(fā)最基本也最不可或缺的測(cè)量工具。它的基本功能包括:測(cè)量交直流電壓、交直流電流、電阻阻值,檢測(cè)二極管極性,測(cè)試電路通斷等。有些高檔一點(diǎn)的還會(huì)包含電容容值測(cè)量、三極管測(cè)試、脈沖頻率測(cè)量等。萬(wàn)用表大體可分為兩類:指針萬(wàn)用表和數(shù)字萬(wàn)用表,目前,指針萬(wàn)用表基本上已經(jīng)被淘汰了,數(shù)字萬(wàn)用表是當(dāng)今的絕對(duì)主流。圖2-1是為兩種數(shù)字萬(wàn)用表,功能完全一致,推薦使用右圖所示萬(wàn)用表。1.1萬(wàn)用表工具使用下面就以圖2-1所示數(shù)字萬(wàn)用表為例,來(lái)講解萬(wàn)用表的使用方法。萬(wàn)用表配有兩支表筆,表筆通常都是一只黑色、一只紅色,黑色表筆要插到標(biāo)有“COM”的黑色插孔里,而紅色表筆根據(jù)測(cè)量項(xiàng)目的不同,插到不同的插孔:測(cè)量小電流(≤200mA)信號(hào)時(shí)插到“mA”插孔,測(cè)量大電流(大于200mA)信號(hào)時(shí)插到“20A”插孔,其余測(cè)量項(xiàng)目均插到標(biāo)有“VΩ”的插孔。1.2示波器工具簡(jiǎn)介示波器就是顯示波形的機(jī)器,它還被譽(yù)為“電子工程師的眼睛”。它的核心功能就是為了把被測(cè)信號(hào)的實(shí)際波形顯示在屏幕上,它的發(fā)展同樣經(jīng)歷了模擬和數(shù)字兩個(gè)時(shí)代,目前,數(shù)字示波器應(yīng)用場(chǎng)景大于模擬示波器,如圖2-2所示為數(shù)字示波器。1.3示波器工具使用1.4要使用示波器,首先也得把它和被測(cè)系統(tǒng)相連,用的是示波器探頭,如右圖所示。示波器一般都會(huì)有2個(gè)或4個(gè)通道(通常都會(huì)標(biāo)有1~4的數(shù)字,而多余的那個(gè)探頭插座是外部觸發(fā),一般用不到它),它們的低位是等同的,可以隨便選擇,把探頭插到其中一個(gè)通道上,探頭另一頭的小夾子連接被測(cè)系統(tǒng)的參考地(這里一定要注意一個(gè)問(wèn)題:示波器探頭上的夾子是與大地即三插插頭上的地線直接連通的,所以如果被測(cè)系統(tǒng)的參考地與大地之間存在電壓差的話,將會(huì)導(dǎo)致示波器或被測(cè)系統(tǒng)的損壞),探針接觸被測(cè)點(diǎn),這樣示波器就可以采集到該點(diǎn)的電壓波形了(普通的探頭不能用來(lái)測(cè)量電流,要測(cè)電流得選擇專門(mén)的電流探頭)。單片機(jī)開(kāi)發(fā)軟件方面必要工具02KeiluVision4簡(jiǎn)介2.1KeiluVision4是一個(gè)優(yōu)秀的軟件集成開(kāi)發(fā)環(huán)境,它支持眾多不一樣公司的MCS-51架核的芯片。uVision4IDE基于Windows的開(kāi)發(fā)平臺(tái),包含一個(gè)高效的編輯器、一個(gè)項(xiàng)目管理器和一個(gè)MAKE工具。利用本工具可以用來(lái)編譯C源代碼,匯編源程序,連接和重定位目標(biāo)文件和庫(kù)文件,創(chuàng)建HEX文件調(diào)試目標(biāo)程序。KeiluVision4使用方法2.2雙擊桌面上的KeiluVision4快捷圖標(biāo),或者單擊屏幕左下方的“開(kāi)始”→“程序”→“KeiluVision4”,進(jìn)入KeiluVision4集成環(huán)境,KeiluVision4啟動(dòng)界面示意圖如圖2-6所示。1、啟動(dòng)KeiluVision4KeiluVision4界面提供一個(gè)菜單和一個(gè)工具條(可以快速選擇命令按鈕)以及源代碼的顯示窗口、對(duì)話框和信息顯示。KeiluVision4的工作界面如圖2-7所示。2、建立項(xiàng)目單擊“Project”菜單,在彈出的下拉式菜單中選擇“NewuVisionProject”,如圖2-6所示。接著彈出一個(gè)標(biāo)準(zhǔn)Windows文件對(duì)話窗口,選擇自定義工程路徑,如圖2-9所示,在“文件名”中輸入您的第一個(gè)程序項(xiàng)目名稱,這里我們用“Pr_LED”,路徑和文件名可以根據(jù)自己想法自定義,只要符合Windows文件規(guī)則的文件名都行?!氨4妗焙蟮奈募U(kuò)展名為uv4,這是KeiluVision4項(xiàng)目文件擴(kuò)展名,以后可以直接單擊此文件打開(kāi)先前所做的項(xiàng)目。點(diǎn)擊“OK”→選擇“是”完成上面步驟后,項(xiàng)目文件就建立成功了,界面如圖2-11所示。下面我們就可以開(kāi)始創(chuàng)建程序文件了。選擇所要的單片機(jī),這里我們選擇常用的Atmel公司的AT89S51,界面如圖2-10所示。3、創(chuàng)建或修改程序接下來(lái)我們要在項(xiàng)目中創(chuàng)建新的程序文件或加入一個(gè)已存在的程序文件;創(chuàng)建新的程序文件具體操作:?jiǎn)螕簟癋ile”→“New”命令,或者單擊工具欄的新建文件圖標(biāo)。加入一個(gè)已存在的程序文件具體操作:?jiǎn)螕簟癋ile”→“Open”命令,打開(kāi)一個(gè)舊文件或按快捷鍵<Crl>+<0>或工具欄中的工具按鈕,就會(huì)打開(kāi)一個(gè)已存在的程序文件文字編輯窗口等待我們編輯程序。上述兩種情況都能得到如圖2-11所示界面,到此就可以開(kāi)始編寫(xiě)對(duì)應(yīng)的程序文件了。4、保存程序當(dāng)程序編寫(xiě)完成,選擇“File”→“Save”命令,或按快捷鍵<Ctrl>+<S>或保存圖標(biāo)進(jìn)行保存。若是新文件,一般在編寫(xiě)程序之前保存一次并對(duì)程序進(jìn)行命名,用C語(yǔ)言編寫(xiě)后綴應(yīng)為.c,將文件保存在項(xiàng)目所在的目錄中,這時(shí)編寫(xiě)程序單詞才會(huì)有不同的顏色,說(shuō)明Keil的語(yǔ)法檢查生效了,此時(shí)屏幕如圖2-12所示。完成上面步驟后,即可進(jìn)行程序文件的加載了。5、加載程序如圖2-13,在屏幕左邊的SourceGroup1文件夾圖標(biāo)上右擊鼠標(biāo),彈出快捷菜單,選擇其中某一命令,可執(zhí)行相關(guān)操作,選中“AddexistingFilestoGroup‘SourceGroup1’”,選擇剛剛保存的文件,按“Add”按鈕,關(guān)閉對(duì)話框,程序文件已加到項(xiàng)目中了。工程建立好以后,還要對(duì)工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。首先單擊左邊Project窗口的Target1,然后執(zhí)行菜單命令“Project”→“OptionforTarget“Targetl”或快捷操作同時(shí)按下“Alt”+“F7”,即出現(xiàn)對(duì)工程設(shè)置的對(duì)話框如圖2-14所示。仿真軟件Proteus簡(jiǎn)介和特點(diǎn)2.3Proteus具有和其他EDA工具一樣的原理圖編輯、印刷電路板(PCB)設(shè)計(jì)及電路仿真功能,最大的特色是其電路仿真的交互化和可視化,如圖2-1所示。通過(guò)Proteus軟件的VSM(虛擬仿真模式),用戶可以對(duì)模擬電路、數(shù)字電路、模數(shù)混合電路、單片機(jī)及外圍元器件等電子線路進(jìn)行系統(tǒng)仿真,Proteus軟件由ISIS和ARES兩部分構(gòu)成,其中ISIS是一款便捷的電子系統(tǒng)原理設(shè)計(jì)和仿真平臺(tái)軟件,ARES是一款高級(jí)的PCB布線編輯軟件。 Proteus軟件的性能特點(diǎn):1、智能原理圖設(shè)計(jì);2、豐富的器件庫(kù):超過(guò)8000種元器件,可方便地創(chuàng)建新元件;3、智能的器件搜索:通過(guò)模糊搜索可以快速定位所需要的器件;4、智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡(jiǎn)單快捷,大大縮短繪圖時(shí)間;5、支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡(jiǎn)明清晰;6、可輸出高質(zhì)量圖紙:通過(guò)個(gè)性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供Word、PowerPoint等多種文檔使用。 完善的仿真功能:1、混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真。2、超過(guò)6000個(gè)仿真器件:可以通過(guò)內(nèi)部原型或使用廠家的SPICE文件自行設(shè)計(jì)仿真器件,也在不斷地發(fā)布新的仿真器件,還可導(dǎo)人第三方發(fā)布的仿真器件。3、豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號(hào)發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖形發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、IIC調(diào)試器等。4、生動(dòng)的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對(duì)地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀、生動(dòng)。?高級(jí)圖形仿真功能:基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進(jìn)行一致性分析。5、獨(dú)特的單片機(jī)協(xié)同仿真功能:支持主流的CPU類型,如ARM7、8051/51、AVR、PIC10/12、PIC16/18、HC11、BasicStamp等,CPU類型隨著版本升級(jí)還在繼續(xù)增加。 6、支持通用外設(shè)模型,如字符LCD模塊、圖形LCD模塊、LED點(diǎn)陣、LED七段顯示模塊、鍵盤(pán)/按鍵、直流/步進(jìn)/伺服電機(jī)、RS232虛擬終端、電子溫度計(jì)等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過(guò)PC機(jī)串口和外部電路實(shí)現(xiàn)雙向異步串行通信。7、實(shí)時(shí)仿真支持UART/USART/EUSART仿真、中斷仿真、SPIVI2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。 8、實(shí)用的PCB設(shè)計(jì)平臺(tái)仿真軟件ProteusISIS的使用方法2.4ProteusISIS設(shè)計(jì)界面介紹三大窗口:編輯窗口、器件工具窗口和瀏覽窗口兩大菜單:主菜單和輔助工具菜單主菜單:文件菜單、編輯菜單、瀏覽菜單、工具菜單、設(shè)計(jì)菜單、圖表分析菜單、調(diào)試菜單、庫(kù)操作菜單、模板菜單、系統(tǒng)菜單和幫助菜單,ProteusISIS設(shè)計(jì)界面示意圖如圖2-20所示。1、簡(jiǎn)述示波器的使用方法和步驟?2、簡(jiǎn)述萬(wàn)用表的使用方法和步驟?3、單片機(jī)最小系統(tǒng)包含哪些組成部分?4、試著講述如何使用KEIL軟件建立一個(gè)項(xiàng)目且編寫(xiě)和運(yùn)行程序。5、試著講述如何使用Proteus軟件建立一個(gè)項(xiàng)目且與KEILC結(jié)合運(yùn)行程序。習(xí)題03單原及接片理口技術(shù)機(jī)64第三章
51單片機(jī)C語(yǔ)言基礎(chǔ)知識(shí)01C語(yǔ)言變量與常量02定時(shí)器/計(jì)數(shù)器03中斷、定時(shí)器/計(jì)數(shù)器應(yīng)用編程04習(xí)題PrincipleandinterfacetechnologyofMicrocomputer常量常量是指固定值,其數(shù)值在程序運(yùn)行過(guò)程中不改變,分為數(shù)值型常量(包括整型常量和實(shí)型常量)、字符型常量、符號(hào)常量三類。1、整型常量整型常量是指直接使用的整型常數(shù),如0、128、-128等,有十進(jìn)制、八進(jìn)制、十六進(jìn)制三種類型的整數(shù)。2、實(shí)型常量實(shí)型常量是浮點(diǎn)型的常量,由整數(shù)和小數(shù)部分構(gòu)成,有兩種表示方式。3、字符型常量字符型常量有兩種,一種是字符常量,一種是字符串常量。1.1變量變量是在程序運(yùn)行過(guò)程中其值可以變化的量,可以存儲(chǔ)任意數(shù)據(jù)類型的值。在程序中一般用含有一定意義的方式來(lái)表示變量名。變量名是由字母開(kāi)始的字母、數(shù)字、下劃線組成,且區(qū)分大小寫(xiě)。C語(yǔ)言中的變量類型有整型變量、實(shí)型變量和字符型變量。1、整型變量整型變量是存儲(chǔ)整型數(shù)值的變量,分為基本整型(int),占4個(gè)字節(jié);短整型(shortint),占2個(gè)字節(jié);長(zhǎng)整型(longint),占4個(gè)字節(jié)。2、實(shí)型變量實(shí)型變量是存儲(chǔ)實(shí)型數(shù)值的變量,實(shí)型數(shù)值由整數(shù)和小數(shù)兩部分組成。在C語(yǔ)言中又可分為單精度和雙精度兩種類型。3、字符型變量字符型變量是用來(lái)存儲(chǔ)字符常量的變量。將一個(gè)字符常量存儲(chǔ)到一個(gè)字符變量中,實(shí)際上是將該字符的ASCII碼值存儲(chǔ)到內(nèi)存單元中。字符型常量的關(guān)鍵字是char,占1個(gè)字節(jié)。1.2運(yùn)算符與表達(dá)式02運(yùn)算符2.1運(yùn)算符用于數(shù)據(jù)和變量的操作,包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、遞增遞減運(yùn)算符、條件運(yùn)算符、位運(yùn)算符以及特殊運(yùn)算符。表達(dá)式2.2C語(yǔ)言的表達(dá)式由操作符和操作數(shù)組成,通過(guò)運(yùn)算返回結(jié)果值。運(yùn)算順序是根據(jù)運(yùn)算符的優(yōu)先級(jí)別,較高優(yōu)先級(jí)的運(yùn)算符先計(jì)算,相同優(yōu)先級(jí)的運(yùn)算符根據(jù)級(jí)別按“從左到右”或“從右到左”的順序計(jì)算。C語(yǔ)言中運(yùn)算符的優(yōu)先級(jí)別從高到低排列情況如下:括號(hào)()、數(shù)組元素引用[]、成員運(yùn)算符->;一元加+、一元減-、遞增++、遞減--、邏輯非!、指針引用*、地址符&、長(zhǎng)度運(yùn)算符sizeof、類型轉(zhuǎn)換(type);乘法×、除法/、取模%;加法+、減法-;小于<、小于等于<=、大于>、大于等于>=;等于==、不等于!=;邏輯與&&、邏輯或||;條件運(yùn)算符?:;賦值運(yùn)算符=;逗號(hào)運(yùn)算符,等。程序結(jié)構(gòu)03順序結(jié)構(gòu)3.1順序結(jié)構(gòu)是指程序中的語(yǔ)句是按照從上到下的順序逐行排列,程序的執(zhí)行是按語(yǔ)句的排列順序進(jìn)行,是最簡(jiǎn)單的程序設(shè)計(jì)。完成順序結(jié)構(gòu)程序設(shè)計(jì)的語(yǔ)句包括:賦值語(yǔ)句、復(fù)合語(yǔ)句、函數(shù)調(diào)用語(yǔ)句等。選擇結(jié)構(gòu)3.2選擇結(jié)構(gòu)的程序設(shè)計(jì)中使用了用于條件判斷的語(yǔ)句,增加程序功能,增強(qiáng)了程序的邏輯性和靈活性。實(shí)現(xiàn)選擇結(jié)構(gòu)的有if語(yǔ)句、if…else語(yǔ)句、switch語(yǔ)句、條件運(yùn)算符語(yǔ)句和goto語(yǔ)句等。switch語(yǔ)句3.3若選項(xiàng)很多的情況,多次嵌套使用if…else語(yǔ)句的層數(shù)就很多,程序比較冗余,代碼可讀性不好,此類情況可采用switch多路判斷語(yǔ)句輕松實(shí)現(xiàn)。循環(huán)結(jié)構(gòu)3.4程序除了在運(yùn)行時(shí)根據(jù)判斷、檢驗(yàn)條件做出相應(yīng)的選擇,還可以反復(fù)執(zhí)行某一段指令代碼,直到滿足某個(gè)條件為止。這種重復(fù)的執(zhí)行過(guò)程即成為循環(huán)。C語(yǔ)言的循環(huán)語(yǔ)句有while語(yǔ)句、do…while語(yǔ)句、for語(yǔ)句三種。一個(gè)完整的循環(huán)過(guò)程包括這樣幾個(gè)部分,一是需要設(shè)置并初始化條件變量,二是具體運(yùn)行的循環(huán)體中語(yǔ)句塊,三是用指定的值測(cè)試條件變量,以判斷是否再次運(yùn)行循環(huán)體,四是設(shè)置變量的改變值。數(shù)組04數(shù)組是C語(yǔ)言的一種常用構(gòu)造類數(shù)據(jù)類型,是指具有相同數(shù)據(jù)類型的數(shù)據(jù)的有序集合,數(shù)組中的一個(gè)數(shù)據(jù)項(xiàng)稱為一個(gè)數(shù)組元素,每一個(gè)數(shù)組元素由數(shù)組名及下標(biāo)唯一表示,這是描述數(shù)組的基本要素。一維數(shù)組4.11、一維數(shù)組的定義:定義一維數(shù)組的一般形式為:類型名數(shù)組名[常量表達(dá)式];其中,類型名指定了數(shù)組中每一個(gè)元素的類型,可以是int、char、float、double等基本數(shù)據(jù)類型,也可以是C語(yǔ)言中的構(gòu)造類型,比如結(jié)構(gòu)體類型、枚舉類型等,還可以是通過(guò)typedef定義的數(shù)據(jù)類型。2、一維數(shù)組的引用數(shù)組遵循先定義后引用的原則,C語(yǔ)言中只能逐個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。引用數(shù)組元素時(shí)要指明數(shù)組名和數(shù)組下標(biāo),引用形式為:數(shù)組名[下標(biāo)]3、一維數(shù)組的初始化定義數(shù)組時(shí)給數(shù)組元素賦值,即為數(shù)組的初始化。其一般形式為:類型說(shuō)明符數(shù)組名[整型常量或常量表達(dá)式]={初始化列表}二維數(shù)組4.2二維數(shù)組的定義二維數(shù)組定義的一般形式為:類型名數(shù)組名[常量或常量表達(dá)式1][常量或常量表達(dá)式2];類型說(shuō)明符、數(shù)組名和常量表達(dá)式的意義與一維數(shù)組相同;常量或常量表達(dá)式1稱為行下標(biāo),常量或常量表達(dá)式2稱為列下標(biāo)。二維數(shù)組的引用二維數(shù)組也只能逐個(gè)引用元素,不能引用整個(gè)數(shù)組,其引用一般形式為:數(shù)組名[行下標(biāo)][列下標(biāo)]注意引用時(shí)行下表和列下標(biāo)的范圍,不能越界引用。二維數(shù)組的初始化(1)分行初始化初始化的一般形式為:類型名數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]={{第0行元素初值表},{第1行元素初值表}…};其中每一對(duì)花括號(hào)內(nèi)的值賦給一行元素,并且數(shù)據(jù)與數(shù)據(jù)之間用逗號(hào)分隔。(2)按排列順序給各數(shù)組元素初始化初始化的一般形式為:類型名數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]={初值表};初值表中的數(shù)值按照二維數(shù)組中元素的排列順序直接給出,數(shù)據(jù)之間仍然用逗號(hào)分隔。(3)對(duì)部分元素初始化分行初始化和按排列順序初始化都可以實(shí)現(xiàn)對(duì)二維數(shù)組的部分元素進(jìn)行初始化。系統(tǒng)默認(rèn)將未被賦值的數(shù)組元素值置為0。多維數(shù)組4.3C語(yǔ)言支持多維數(shù)組,多維數(shù)組的定義與二維數(shù)組相同,只是下標(biāo)更多,n維數(shù)組定義的一般形式為:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]…[常量表達(dá)式n];例如,inta1[3][4][10];floata1[3][6][4][5];其中a1是一個(gè)三維數(shù)組,共有120個(gè)整型數(shù)組元素;a2是一個(gè)四位數(shù)組,共含有360個(gè)浮點(diǎn)型數(shù)組元素。字符數(shù)組4.4字符數(shù)組的定義一般形式為:char數(shù)組名[常量表達(dá)式];例如,charcArray[5];定義了一個(gè)字符數(shù)組cArray,包含5個(gè)字符型的元素,cArray[0]~cArray[4]。字符數(shù)組的引用字符數(shù)組的引用與其他類型數(shù)據(jù)的引用一樣,也是通過(guò)數(shù)組名加下標(biāo)的形式實(shí)現(xiàn)。例如,引用上面定義的數(shù)組cArray,cArray[0]、cArray[1]、cArray[2]、cArray[3]、cArray[4]。字符數(shù)組的初始化對(duì)字符數(shù)組的初始化操作有以下兩種方式。(1)逐個(gè)字符初始化一般形式為:char數(shù)組名[數(shù)組長(zhǎng)度]={字符初值表};(2)利用字符串給字符數(shù)組初始化字符串是用雙引號(hào)括起來(lái)的一串字符,C語(yǔ)言中的字符串是看作字符數(shù)組來(lái)處理的,因此可以用字符串來(lái)給定義的字符數(shù)組初始化。其一般形式為:char數(shù)組名[數(shù)組長(zhǎng)度]={字符串常量};或?yàn)椋篶har數(shù)組名[數(shù)組長(zhǎng)度]=字符串常量;函數(shù)05函數(shù)是C語(yǔ)言程序中的基本單元,是執(zhí)行某特定任務(wù)的代碼塊。函數(shù)的定義5.1函數(shù)要在定義中完成其特定的功能,才能被其他函數(shù)進(jìn)行調(diào)用。函數(shù)定義的基本形式如下:返回值類型函數(shù)名(參數(shù)列表){函數(shù)體;}其中第一行為函數(shù)頭,是函數(shù)的人口;返回值類型為函數(shù)最后返回的值的所屬類型,若函數(shù)沒(méi)有返回值可省略返回值類型或者用void表示;函數(shù)名為標(biāo)識(shí)符,用于表示該函數(shù);函數(shù)名后面一對(duì)括號(hào)中的參數(shù)列表是這個(gè)函數(shù)的形式參數(shù),可以是一個(gè)或多個(gè)參數(shù)構(gòu)成,多個(gè)形參之間用逗號(hào)分隔,也可以為空(括號(hào)不能省略)。函數(shù)的調(diào)用5.2對(duì)定義好的函數(shù)進(jìn)行使用的過(guò)程即為函數(shù)的調(diào)用。函數(shù)調(diào)用的基本形式為:函數(shù)名(實(shí)參列表);實(shí)參列表中的參數(shù)個(gè)數(shù)、數(shù)據(jù)類型必須與函數(shù)對(duì)應(yīng)的形參一致,強(qiáng)制類型轉(zhuǎn)換除外。調(diào)用函數(shù)通過(guò)實(shí)參,實(shí)現(xiàn)與被調(diào)用函數(shù)之間的參數(shù)傳遞。函數(shù)的調(diào)用可以是函數(shù)語(yǔ)句調(diào)用,可以是在表達(dá)式中調(diào)用、也可以是函數(shù)參數(shù)的調(diào)用。函數(shù)的參數(shù)5.3函數(shù)的參數(shù)有形式參數(shù)和實(shí)際參數(shù)之分。在定義函數(shù)時(shí),函數(shù)名后面括號(hào)中的變量名稱為形式參數(shù);在調(diào)用函數(shù)時(shí),函數(shù)名后面括號(hào)中的變量名為實(shí)際參數(shù)。函數(shù)的調(diào)用即為主調(diào)函數(shù)向被調(diào)用函數(shù)傳遞數(shù)據(jù),并實(shí)現(xiàn)被調(diào)用函數(shù)的函數(shù)體功能。調(diào)用函數(shù)間參數(shù)的傳遞有兩種不同方式,一是值傳遞,一是地址傳遞。值傳遞是單向傳遞,當(dāng)函數(shù)形參的數(shù)據(jù)類型為基本數(shù)據(jù)類型,主調(diào)函數(shù)在調(diào)用時(shí)給形參分配存儲(chǔ)單元,把實(shí)參具體的值傳遞給形參,在調(diào)用結(jié)束后,形參的存儲(chǔ)單元被釋放,而形參值的任何變化都不會(huì)影響到實(shí)參的值,實(shí)參的存儲(chǔ)單元仍保留并維持?jǐn)?shù)值不變;當(dāng)函數(shù)形參的數(shù)據(jù)類型為地址類型時(shí),如數(shù)組、指針等,函數(shù)參數(shù)傳遞為地址傳遞方式;此時(shí),形參接收到的是實(shí)參變量的地址,即指向?qū)崊⒌拇鎯?chǔ)單元;形參在取得該首地址之后,與實(shí)參共同擁有一段內(nèi)存空間,形參的變化也就是實(shí)參的變化。函數(shù)的嵌套調(diào)用5.4函數(shù)的定義是互相獨(dú)立的,一個(gè)函數(shù)體內(nèi)不能包含另一個(gè)函數(shù)的定義,但是在一個(gè)函數(shù)體中允許調(diào)用另一個(gè)函數(shù),即函數(shù)的嵌套調(diào)用。函數(shù)的遞歸調(diào)用5.5在函數(shù)內(nèi)直接或間接調(diào)用該函數(shù)本身稱為函數(shù)的遞歸調(diào)用。遞歸調(diào)用程序?qū)嶋H上是一種“大事化小,小事化了”的設(shè)計(jì)方法,是程序設(shè)計(jì)中的一種基本技術(shù)。將復(fù)雜問(wèn)題一步步化簡(jiǎn)為能夠?qū)崿F(xiàn)的小問(wèn)題,小問(wèn)題與復(fù)雜問(wèn)題有共同的特征或性質(zhì),只是規(guī)模大大縮小了,這樣的問(wèn)題都可以通過(guò)函數(shù)的遞歸調(diào)用來(lái)實(shí)現(xiàn)。局部變量與全局變量5.6前一節(jié)函數(shù)的遞歸調(diào)用之所以能夠?qū)崿F(xiàn),是因?yàn)楹瘮?shù)在其每個(gè)執(zhí)行過(guò)程內(nèi)都有自己的形式參數(shù)和局部變量數(shù)據(jù)的副本,這些數(shù)據(jù)副本和函數(shù)的其他執(zhí)行過(guò)程不產(chǎn)生任何關(guān)系。那什么稱之為局部變量?局部變量和全局變量是根據(jù)代碼的作用域來(lái)區(qū)分的。作用域是在程序中可見(jiàn)性的范圍,包括局部作用域和全局作用域。局部變量具有局部作用域,全局變量具有全局作用域。結(jié)構(gòu)體06在解決具體問(wèn)題時(shí),經(jīng)常需要用一組關(guān)系密切但是類型不相同的數(shù)據(jù)來(lái)描述一個(gè)實(shí)體。比如要管理班級(jí)學(xué)生的成績(jī),學(xué)生的信息數(shù)據(jù)包括學(xué)號(hào)、姓名、性別、成績(jī)等,這些信息的數(shù)據(jù)類型不完全相同,但是都屬于同一個(gè)學(xué)生的數(shù)據(jù)信息,是一個(gè)整體。C語(yǔ)言中構(gòu)造了一種結(jié)構(gòu)體類型,用來(lái)表示集不同數(shù)據(jù)類型于一體的一種數(shù)據(jù)類型。結(jié)構(gòu)體的聲明6.1結(jié)構(gòu)體類型聲明一般形式為:struct結(jié)構(gòu)體名{成員列表};其中,struct是結(jié)構(gòu)體類型的關(guān)鍵字;結(jié)構(gòu)體名必須符合標(biāo)識(shí)符的命名規(guī)則;大括號(hào)內(nèi)的成員列表由多個(gè)成員的定義組成;大括號(hào)后以分號(hào)結(jié)束該結(jié)構(gòu)體類型的聲明。結(jié)構(gòu)體變量的定義6.2由于結(jié)構(gòu)體是根據(jù)具體問(wèn)題自行定義的類型,因此結(jié)構(gòu)體類型變量的定義相比其他基本數(shù)據(jù)類型變量的定義,形式更加靈活,一般有以下三種定義方式。先聲明結(jié)構(gòu)體類型,再定義變量定義的形式如下:struct結(jié)構(gòu)體名變量名表;聲明結(jié)構(gòu)體類型的同時(shí)定義變量將結(jié)構(gòu)體類型的聲明和變量定義代碼結(jié)合在一起,一般形式如下:struct結(jié)構(gòu)體名{成員列表}變量名表;直接定義結(jié)構(gòu)體類型變量一般形式如下:struct{成員列表}變量名表;這是一種無(wú)名的結(jié)構(gòu)體類型變量定義方式,在結(jié)構(gòu)體聲明中不給出結(jié)構(gòu)體名,而是直接定義結(jié)構(gòu)體的變量。這種方式中沒(méi)有顯示給出結(jié)構(gòu)體名,所以除了形式中的變量名表外,不能再定義其他結(jié)構(gòu)體變量。結(jié)構(gòu)體變量的引用6.3結(jié)構(gòu)體變量在定義后可以直接引用,在引用時(shí)要注意以下幾點(diǎn)。 引用的是結(jié)構(gòu)體變量成員結(jié)構(gòu)體中各個(gè)成員的數(shù)據(jù)類型不一定相同,因此不能直接整體引用結(jié)構(gòu)體變量,一般是引用結(jié)構(gòu)體變量的成員。在沒(méi)有結(jié)構(gòu)體嵌套定義情況下,引用結(jié)構(gòu)體變量成員的一般形式為:結(jié)構(gòu)體變量名.成員名其中“.”為結(jié)構(gòu)體成員運(yùn)算符,它的優(yōu)先級(jí)別在所有運(yùn)算符中為最高。這樣引用的結(jié)構(gòu)體成員相當(dāng)于成員對(duì)應(yīng)數(shù)據(jù)類型的一個(gè)普通變量。結(jié)構(gòu)體嵌套定義的引用當(dāng)有結(jié)構(gòu)體嵌套定義,通過(guò)變量引用結(jié)構(gòu)體變量成員時(shí)要連用多個(gè)成員運(yùn)算符訪問(wèn)到最底層成員(又叫基本成員),只有基本成員才能直接存放數(shù)據(jù),其一般形式為:結(jié)構(gòu)體變量名.結(jié)構(gòu)體成員名.….結(jié)構(gòu)體成員名.基本成員名結(jié)構(gòu)體變量的運(yùn)算對(duì)結(jié)構(gòu)體變量的賦值只能對(duì)其成員進(jìn)行賦值,例外的是當(dāng)兩個(gè)結(jié)構(gòu)體變量所有成員的類型都完全一致時(shí),也可以兩個(gè)結(jié)構(gòu)體變量之間整體賦值;結(jié)構(gòu)體變量的成員可以像普通變量一樣參與各種運(yùn)算。結(jié)構(gòu)體變量的初始化6.4結(jié)構(gòu)體類型和其他基本數(shù)據(jù)類型一樣,可以在定義結(jié)構(gòu)體變量時(shí)直接指定初始值,進(jìn)行初始化操作。例如:structstudentstu1={110036,”LiHua”,’F’,89.6};上面語(yǔ)句定義了結(jié)構(gòu)體student的變量stu1,同時(shí)直接在變量后使用等號(hào),再將其成員對(duì)應(yīng)的值放在一對(duì)大括號(hào)里進(jìn)行初始化。需要注意的是初始化數(shù)據(jù)必須與結(jié)構(gòu)體變量的各成員順序一一對(duì)應(yīng)。若是嵌套的結(jié)構(gòu)體變量,初始化仍然是對(duì)變量的各個(gè)基本成員賦初值。1、什么是C語(yǔ)言?C語(yǔ)言的特點(diǎn)是什么?2、為什么在單片機(jī)編程中藥使用C語(yǔ)言?3、C語(yǔ)言的變量有哪些,在單片機(jī)中常用的變量是哪些?4、C語(yǔ)言程序的結(jié)構(gòu)有哪些,請(qǐng)寫(xiě)程序代碼一一舉例說(shuō)明?5、什么是數(shù)組,數(shù)組在單片機(jī)編程中如何使用?6、什么是結(jié)構(gòu)體,結(jié)構(gòu)體在單片機(jī)編程中如何使用?習(xí)題07單原及接片理口技術(shù)機(jī)101第四章
顯示器件原理及應(yīng)用實(shí)現(xiàn)01LED數(shù)碼管的顯示原理及應(yīng)用028×8點(diǎn)陣顯示及應(yīng)用03LCD1602顯示原理及應(yīng)用04習(xí)題PrincipleandinterfacetechnologyofMicrocomputer顯示器件原理及應(yīng)用實(shí)現(xiàn)顯示器件屬于計(jì)算機(jī)的輸出設(shè)備,也是人機(jī)交互的重要組件,可以通過(guò)顯示相關(guān)信息來(lái)說(shuō)明單片機(jī)系統(tǒng)的狀態(tài)。單片機(jī)系統(tǒng)的顯示器件通常有LED數(shù)碼管、8×8的點(diǎn)陣、字符點(diǎn)陣液晶1602等。01LED數(shù)碼管的顯示原理及應(yīng)用LED數(shù)碼管的結(jié)構(gòu)及編碼LED數(shù)碼管的結(jié)構(gòu)LED數(shù)碼管(LEDSegmentDisplays)由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè),這些段分別由字母a、b、c、d、e、f、g、Dp來(lái)表示。也稱為8段數(shù)碼管。LED數(shù)碼管外形及引腳分布如圖4-1。1.1根據(jù)8段數(shù)碼管的公共端連接的是高電平還是低電平將LED數(shù)碼管分為兩大類,一類是共陰極接法,另一類是共陽(yáng)極接法。共陰極就是8段的顯示字碼共用一個(gè)電源的負(fù)極,可以用高電平點(diǎn)亮對(duì)應(yīng)的段;共陽(yáng)極就是8段的顯示字碼共用一個(gè)電源的正極,可以用低電平點(diǎn)亮對(duì)應(yīng)的段??梢酝ㄟ^(guò)控制其中各段LED的亮滅來(lái)顯示相應(yīng)的數(shù)字、字母或符號(hào)。共陰極與共陽(yáng)極數(shù)碼管的內(nèi)部結(jié)構(gòu)如圖4-2。單片機(jī)系統(tǒng)中還常使用7段數(shù)碼管,它與8段數(shù)碼管唯一不同的是沒(méi)有小數(shù)點(diǎn)這一段,也就是沒(méi)有8段數(shù)碼管的Dp部分。數(shù)碼管的編碼要使數(shù)碼管顯示出相應(yīng)的數(shù)字或字符,必須使數(shù)碼管的各段輸入與數(shù)字或字符對(duì)應(yīng)的高低電平,為了方便單片機(jī)的控制,我們將單片機(jī)數(shù)據(jù)口輸出的高低電平進(jìn)行相應(yīng)的字形編碼。對(duì)照表4-1,字型碼各位定義為:數(shù)據(jù)線D0與a字段對(duì)應(yīng),D1與b字段對(duì)應(yīng)……,依此類推。如使用共陽(yáng)極數(shù)碼管,數(shù)據(jù)為0表示對(duì)應(yīng)字段亮,數(shù)據(jù)為1表示對(duì)應(yīng)字段暗;如使用共陰極數(shù)碼管,數(shù)據(jù)為0表示對(duì)應(yīng)字段暗,數(shù)據(jù)為1表示對(duì)應(yīng)字段亮。如要顯示“0”,需要點(diǎn)亮a、b、c、d、e、f段的發(fā)光二極管,共陽(yáng)極數(shù)碼管需要給這些段輸入低電平,g、Dp段輸入高電平,于是共陽(yáng)極數(shù)碼管顯示“0”的字型編碼應(yīng)為:11000000B(即C0H);而共陰極數(shù)碼管需要給這些段輸入高電平,其它不顯示的g、Dp段輸入低電平,于是共陰極數(shù)碼管顯示“0”的字型編碼應(yīng)為:00111111B(即3FH)。其它要顯示的字符類推可以得到相應(yīng)的編碼。8段數(shù)碼管顯示字符的編碼如表4-2。7段數(shù)碼管的編碼與8段數(shù)碼管類似。LED數(shù)碼管顯示方式單片機(jī)系統(tǒng)可以像數(shù)字電路一樣用硬件(加相應(yīng)的硬件驅(qū)動(dòng)芯片)來(lái)驅(qū)動(dòng)數(shù)碼管顯示,但為了控制方便與節(jié)約成本,單片機(jī)系統(tǒng)常采用軟件的方式來(lái)驅(qū)動(dòng)數(shù)碼管。數(shù)碼管要正常顯示只需要單片機(jī)輸出相應(yīng)的段碼,從而就可以讓數(shù)碼管顯示出需要顯示的字符。根據(jù)數(shù)碼管的驅(qū)動(dòng)方式不同,可以分為靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。1.2靜態(tài)顯示方式靜態(tài)顯示是指數(shù)碼管顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止。這種顯示方式的各位數(shù)碼管相互獨(dú)立,公共端恒定接地(共陰極)或接正電源(共陽(yáng)極),其連接電路如圖4-3。每個(gè)數(shù)碼管的8個(gè)字段分別與單片機(jī)的一個(gè)8位I/O口地址相連,I/O口只要有段碼輸出,相應(yīng)字符即顯示出來(lái),并保持不變,直到I/O口輸出新的段碼。采用靜態(tài)顯示方式,較小的電流即可獲得較高的亮度,且占用CPU時(shí)間少,編程簡(jiǎn)單,顯示便于監(jiān)測(cè)和控制,但由于每個(gè)數(shù)碼管的8個(gè)字段分別與單片機(jī)的一個(gè)8位I/O口地址相連,所以在需要多個(gè)數(shù)碼管顯示時(shí)占用的口線多,硬件電路復(fù)雜,成本高,只適合于顯示位數(shù)較少的場(chǎng)合。動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示是指一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常將各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的位選線(公共陰極或陽(yáng)極)由另外的I/O口線控制,其連接電路如圖4-4。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通。要使其穩(wěn)定顯示,必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼。依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示需要要顯示的字符。雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺(jué)暫留現(xiàn)象以及發(fā)光二極管的余輝效應(yīng),只要每位顯示間隔的時(shí)間足夠短就可以給人以同時(shí)顯示的感覺(jué)。一般每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,數(shù)碼管的位數(shù)越多,每位點(diǎn)亮的時(shí)間相對(duì)就較短。如果每位掃描的時(shí)間太長(zhǎng),就會(huì)看到數(shù)碼管的各位顯示的字符有明顯地閃爍。在使用多位數(shù)碼管顯示時(shí),采用動(dòng)態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示方式簡(jiǎn)單,但由于是分時(shí)顯示各位數(shù)碼管,其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時(shí)單片機(jī)要依次掃描,需要占用CPU的時(shí)間較多。LED數(shù)碼管顯示應(yīng)用1.3例1
電路如圖4-5,在數(shù)碼管上間隔一段時(shí)間循環(huán)顯示0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F十六個(gè)字符。元件清單如表4-3所示。解:首先要確定數(shù)碼管的類型,根據(jù)4-5的電路圖數(shù)碼管,可以看出數(shù)碼管公共端接的是電源,因此得出是共陽(yáng)極數(shù)碼管。要顯示0~F字符就需要根據(jù)表4-2共陽(yáng)極數(shù)碼管的段碼列舉出來(lái),將其保存到一個(gè)一維數(shù)組,方便調(diào)用,流程如圖4-6,仿真結(jié)果如圖4-7、4-8、4-9、4-10。解電路如圖4-11,在8位數(shù)碼管上顯示2018.10.23,元件清單如表4-4所示。例2解:由圖4-11可以看出,用了兩個(gè)74LS373鎖存器分別控制8位數(shù)碼管的段選控制端和位選控制端。根據(jù)數(shù)字電路的知識(shí),74LS373鎖存器正常工作時(shí),輸入端輸入什么信號(hào),輸出端就得到什么信號(hào)。U2鎖存器接在單片機(jī)的P0口上,U3鎖存器接在單片機(jī)的P3口上,因此屬于單片機(jī)動(dòng)態(tài)顯示的連接方法,要用動(dòng)態(tài)顯示的方法來(lái)驅(qū)動(dòng)這8位數(shù)碼管。同時(shí),由于74LS373鎖存器可以承受較大的電流,所以可以較好地保護(hù)單片機(jī)的I/O口。其次本例有小數(shù)點(diǎn)的顯示,而由于題目上每一位顯示的數(shù)字是固定不變的,小數(shù)點(diǎn)的位置也是固定的,所以可以在段編碼中直接加上小數(shù)點(diǎn)就行。而實(shí)際過(guò)程中數(shù)碼管顯示的各位數(shù)都有可能在變化,因此先將要顯示的數(shù)字轉(zhuǎn)化到暫存數(shù)組中,小數(shù)點(diǎn)的顯示放到數(shù)碼管顯示時(shí)根據(jù)顯示的位置來(lái)合理安排。圖中電路的接法可以看出8段數(shù)碼管為共陰極數(shù)碼管。對(duì)于共陰極數(shù)碼管要點(diǎn)亮小數(shù)點(diǎn),由于采用的是最高位來(lái)控制小數(shù)點(diǎn)的點(diǎn)亮,所以高位必須為高電平才能點(diǎn)亮,只需數(shù)字的編碼或上0x80就能實(shí)現(xiàn)帶小數(shù)點(diǎn)的數(shù)字顯示。其流程如圖4-12,仿真結(jié)果如圖4-13。解電路如圖4-14,用延時(shí)方式在數(shù)碼管(共陰極)上實(shí)現(xiàn)顯示0.00~59.99s的秒表,要求每10ms數(shù)碼管的顯示變化一次,秒的十位為0時(shí)不顯示。元件清單如表4-5。例3解:該題與例2類似,但是該題數(shù)字10ms要變化一次,為了減少變量,因此我們只用一個(gè)計(jì)數(shù)器每10ms加一次的值。根據(jù)題秒的十位為0時(shí),這時(shí)高位的0不顯示,也就是要將顯示秒的十位上的數(shù)碼管不顯示,可以將共陰極數(shù)碼管不顯示的編碼也放到數(shù)組中去。同時(shí)秒的個(gè)位的位置有小數(shù)點(diǎn),在顯示方法上可以借用例2的方法,其流程如圖4-15,仿真結(jié)果如圖4-16。解8×8點(diǎn)陣顯示及應(yīng)用028×8點(diǎn)陣的顯示原理2.18×8點(diǎn)陣的實(shí)際外觀圖如圖4-17(a),一共64個(gè)發(fā)光點(diǎn)構(gòu)成,上下兩排引腳,每排8個(gè),一共16個(gè)。有的點(diǎn)陣后面標(biāo)有第一腳,有的沒(méi)有標(biāo),現(xiàn)在大家習(xí)慣跟IC的管腳順序一樣,讀法是第1腳一般在側(cè)面有字的那一面,字是正向時(shí)左邊第一腳為1,然后按逆時(shí)針排序至16腳。賣(mài)家所說(shuō)8×8點(diǎn)陣的共陰或者共陽(yáng)確切的說(shuō)應(yīng)該是行共陰或者行共陽(yáng),內(nèi)部結(jié)構(gòu)如圖4-17(b)、(c)所示。點(diǎn)陣LED一般采用掃描方式顯示,實(shí)際運(yùn)用主要有兩種方式:行掃描方式和列掃描方式。使用行掃描和列掃描時(shí),則頻率必須大于16×8=128Hz,周期小于7.8ms即可符合視覺(jué)暫留要求。點(diǎn)陣LED的掃描方式有點(diǎn)類似于數(shù)碼管的動(dòng)態(tài)顯示,行掃描方式就是先將某一行置高電平(或低電平),然后所有的列置低電平(或高電平)來(lái)點(diǎn)亮對(duì)應(yīng)的LED;列掃描方式就是先將某一列置低電平(或高電平),然后所有的行置高電平(或低電平)來(lái)點(diǎn)亮對(duì)應(yīng)的LED。對(duì)于共陽(yáng)型的8×8點(diǎn)陣當(dāng)對(duì)應(yīng)的某一行置高電平,某一列置低電平,則相應(yīng)的二極管就亮;對(duì)于共陰型的8×8點(diǎn)陣當(dāng)對(duì)應(yīng)的某一行置低電平,某一列置高電平,則相應(yīng)的二極管就亮。此外一次驅(qū)動(dòng)一列或一行(8顆LED)時(shí)需外加驅(qū)動(dòng)電路提高電流,否則電流太小LED亮度就會(huì)不足。8×8點(diǎn)陣的字模代碼2.2
為了弄清楚漢字的點(diǎn)陣組成規(guī)律,我們先來(lái)通過(guò)列(豎柱)掃描方法獲取漢字的代碼。先將8行分成4位的上、下兩部分,下為高4位,上為低4位,把發(fā)光的象素位編為1(圖4-18與圖4-19中的黑色的點(diǎn)),不發(fā)光的象素位編為0(圖4-18與圖4-19中的白色的點(diǎn))。根據(jù)這個(gè)規(guī)律,圖4-18中五的十六進(jìn)制編碼為:0x42,0x4A,0x4A,0x7E,0x4A,0x7A,0x42,0x00。其次,我們又通過(guò)行(橫柱)掃描方法來(lái)獲取漢字的代碼。先將8列分成4位的左、右兩部分,右為高4位,左為低4位,把發(fā)光的象素位編為1,不發(fā)光的象素位編為0,根據(jù)這個(gè)規(guī)律,圖4-19中→的編碼為:0x00,0x08,0x18,0x3f,0x7f,0x3f,0x18,0x08。每一個(gè)字由8行8列的點(diǎn)陣組成顯示,可以把每一個(gè)點(diǎn)理解為一個(gè)象素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上8×8點(diǎn)陣不僅可以顯示漢字,也可以顯示在64象素范圍內(nèi)的任何圖形,如圖4-18與圖4-19。當(dāng)然也可以直接使用漢字庫(kù)中的編碼來(lái)點(diǎn)亮需要顯示的漢字。8×8點(diǎn)陣顯示應(yīng)用2.3例1
在8×8點(diǎn)陣上顯示“王”字符,電路如圖4-20所示,元件清單如表4-6。解:根據(jù)點(diǎn)陣掃描顯示原理,可以知道點(diǎn)陣的顯示類似于前面的數(shù)碼管動(dòng)態(tài)顯示,數(shù)碼管的段碼對(duì)應(yīng)于點(diǎn)陣的行,數(shù)碼管的位碼對(duì)應(yīng)于點(diǎn)陣的列。74HC573鎖存器與74LS373鎖存器的功能基本一樣,使用方法相同??梢宰远x畫(huà)出點(diǎn)陣顯示“王”的圖形如圖4-21所示,對(duì)于行共陽(yáng)點(diǎn)陣,列為低電平,行為高電平點(diǎn)亮相應(yīng)發(fā)光二極管,把發(fā)光的象素位編為1,不發(fā)光的象素位編為0,根據(jù)列掃描方式編碼原理,于是得到代碼為:0x82,0x92,0x92,0xfe,0x92,0x92,0x82,0x00;根據(jù)行掃描方式編碼原理,于是得到代碼為:0x00,0x7f,0x08,0x08,0x3e,0x08,0x08,0x7f(此時(shí)要點(diǎn)亮相應(yīng)的LED,必須對(duì)前面的編碼要逐位取反)。由于圖4-20中選用的點(diǎn)陣為共陰型,對(duì)于共陰點(diǎn)陣,行為低電平,列為高點(diǎn)亮,才能點(diǎn)亮相應(yīng)的LED。根據(jù)行掃描方式編碼原理,黑色圓點(diǎn)為點(diǎn)亮的LED,由于列信號(hào)為高電平才能點(diǎn)亮,所以把發(fā)光LED的像素編為1,得到的代碼為:0x00,0x7f,0x08,0x08,0x3e,0x08,0x08,0x7f。根據(jù)列掃描方式編碼原理,黑色圓點(diǎn)為點(diǎn)亮的LED,由于行信號(hào)為低電平才能點(diǎn)亮,所以把發(fā)光LED的像素編為0,得到的代碼為:0x7d,0x6d,0x6d,0x01,0x6d,0x6d,0x7d,0xff;若是此時(shí)仍把發(fā)光LED(黑色部分)的像素編為1,得到的代碼為:0x82,0x92,0x92,0xfe,0x92,0x92,0x82,0x00,相當(dāng)于對(duì)前面的每個(gè)代碼進(jìn)行逐位取反(編程時(shí)要對(duì)得到的代碼依次取反才能點(diǎn)亮相應(yīng)的LED)。流程如圖4-22,仿真結(jié)果如圖4-23列掃描方式與圖4-24行掃描方式所示。解在8×8點(diǎn)陣上顯示“→”字符,其點(diǎn)陣圖如圖4-18所示,讓其從圖上的位置向右移動(dòng)出點(diǎn)陣,如此循環(huán)下去。電路如圖4-20,元件清單如表4-6所示。例2解:要使“→”字符從圖4-19的位置向右移動(dòng)出點(diǎn)陣,要弄清“→”在點(diǎn)陣上是如何移動(dòng)的。其移動(dòng)過(guò)程和行掃描代碼如圖4-25所示。從圖4-25中可以看出由九幅圖構(gòu)成其移動(dòng)過(guò)程,每幅圖的圖形由行掃描八次實(shí)現(xiàn),編程時(shí)把由九幅圖構(gòu)成其移動(dòng)過(guò)程可以看成九個(gè)動(dòng)作,每個(gè)動(dòng)作由八次掃描形成,共形成72個(gè)編碼。將所有編碼一一執(zhí)行一遍就能實(shí)現(xiàn)要表現(xiàn)的意圖,其流程如圖4-26,仿真結(jié)果如圖4-27所示。解LCD1602顯示原理及應(yīng)用03液晶顯示器簡(jiǎn)稱LCD顯示器。它是利用液晶經(jīng)過(guò)處理后能改變光線的傳輸方向的特性實(shí)現(xiàn)顯示信息。液晶顯示器按其功能可分為三類:筆段式液晶顯示器、字符點(diǎn)陣式液晶顯示器和圖形點(diǎn)陣式液晶顯示器。前兩種可顯示數(shù)字、字符和符號(hào)等,而圖形點(diǎn)陣式液晶顯示器還可以顯示漢字和任意圖形,達(dá)到圖文并茂的效果。LCD1602屬于字符點(diǎn)陣式液晶顯示器,一般只能顯示ASCⅡ字符。市面上各種形式的液晶通常是按照顯示字符的行數(shù)或液晶點(diǎn)陣的行、列數(shù)來(lái)命名的。1602是指每行顯示16個(gè)字符,最多可以顯示兩行。LCD1602液晶顯示器是廣泛使用的一種字符型液晶顯示模塊。它是由字符型液晶顯示屏(LCD)、控制驅(qū)動(dòng)主電路HD44780及其擴(kuò)展驅(qū)動(dòng)電路HD44100,以及少量電阻、電容元件和結(jié)構(gòu)件等裝配在PCB板上而組成。不同廠家生產(chǎn)的LCD1602芯片可能有所不同,但使用方法都是一樣的。LCD1602概述3.1LCD1602主要技術(shù)參數(shù)顯示容量:16×2個(gè)字符芯片工作電壓:4.5~5.5V工作電流:2.0mA(5.0V)模塊最佳的工作電壓:5.0V字符尺寸:2.95mm×4.35mm(寬×高)LCD1602引腳功能LCD1602采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表4-8所示。第1腳:VSS為電源地。第2腳:VDD接+5V電源。第3腳:VL為液晶顯示對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最強(qiáng),使用時(shí)可以通過(guò)一個(gè)10k的電位器調(diào)整對(duì)比度。第4腳:RS為數(shù)據(jù)/命令選擇端,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀/寫(xiě)選擇端,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7,為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。RAM地址映射圖控制器內(nèi)部帶有80字節(jié)的RAM緩沖區(qū),對(duì)應(yīng)關(guān)系如圖4-29。向圖4-29中的00H~0FH、40H~4FH地址中的任意處寫(xiě)顯示數(shù)據(jù)時(shí),液晶都可以顯示出來(lái);但寫(xiě)入到10H~27H或50H~67H地址處時(shí),必須通過(guò)移屏指令將它們移入可顯示區(qū)域才能正常顯示。在實(shí)際操作中向LCD1602寫(xiě)入地址時(shí),第一行第一列寫(xiě)入的顯示地址應(yīng)該為00H+80H,第二行第一列寫(xiě)入的顯示地址應(yīng)該為40H+80H。HD44780內(nèi)藏的字符發(fā)生存儲(chǔ)器(ROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形。這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)等,每一個(gè)字符都有一個(gè)固定的代碼。比如數(shù)字“1”的代碼是00110001B(31H),又如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),可以看出英文字母的代碼與ASCII編碼相同。要顯示“1”時(shí),我們只需將ASCII碼31H存入DDRAM指定位置,顯示模塊將在相應(yīng)的位置把數(shù)字“1”的點(diǎn)陣字符圖形顯示出來(lái)。LCD1602的指令1602液晶模塊內(nèi)部的控制器共有11條指令。(1)清屏命令清屏命令格式如表4-9所示。功能:清除屏幕,將顯示緩沖區(qū)DDRAM的內(nèi)容全部寫(xiě)入空格(ASCII20H)。光標(biāo)復(fù)位,回到顯示器的左上角。地址計(jì)數(shù)器AC清零。(2)光標(biāo)復(fù)位命令光標(biāo)復(fù)位命令格式如表4-10所示。功能:地址計(jì)數(shù)器AC清零,光標(biāo)和畫(huà)面回到初始位置(Home)。(3)輸入方式設(shè)置命令輸入方式設(shè)置命令格式如表4-11所示。功能:設(shè)置光標(biāo)、畫(huà)面的移動(dòng)方式。當(dāng)I/D=1時(shí),光標(biāo)從左向右移動(dòng);I/D=0時(shí),光標(biāo)從右向左移動(dòng)。當(dāng)S=1時(shí),畫(huà)面移動(dòng),S=0時(shí),畫(huà)面不移動(dòng)。(4)顯示開(kāi)關(guān)控制命令顯示開(kāi)關(guān)控制命令格式如表4-12所示。功能:設(shè)置顯示、光標(biāo)及閃爍開(kāi)、關(guān)。D表示顯示開(kāi)關(guān):當(dāng)D=1時(shí)顯示開(kāi),D=0時(shí)不顯示。C表示光標(biāo)開(kāi)關(guān):當(dāng)C=1時(shí)光標(biāo)顯示,C=0時(shí)光標(biāo)不顯示。B表示字符是否閃爍:當(dāng)B=1時(shí)字符閃爍,B=0時(shí)字符不閃爍。(5)光標(biāo)、畫(huà)面位移命令光標(biāo)、畫(huà)面位移命令格式如表4-13所示。功能:移動(dòng)光標(biāo)或整個(gè)顯示字幕移位。當(dāng)S/C=1時(shí)整個(gè)顯示字幕移位,S/C=0時(shí)只光標(biāo)移位。當(dāng)R/L=1時(shí)光標(biāo)右移,R/L=0時(shí)光標(biāo)左移。(6)功能設(shè)置命令功能設(shè)置命令格式如表4-14所示。功能:工作方式設(shè)置(初始化指令)。DL設(shè)置數(shù)據(jù)位數(shù):DL=1時(shí)數(shù)據(jù)位為8位,DL=0時(shí)數(shù)據(jù)位為4位。N設(shè)置顯示行數(shù):N=1時(shí)雙行顯示,N=0時(shí)單行顯示。F設(shè)置字形大?。篎=1時(shí)5×10點(diǎn)陣,F(xiàn)=0時(shí)為5×7點(diǎn)陣。(7)設(shè)置字庫(kù)CGRAM地址命令設(shè)置字庫(kù)CGRAM地址命令格式如表4-15所示。功能:設(shè)置用戶自定義CGRAM的地址,對(duì)用戶自定義CGRAM訪問(wèn)時(shí),要先設(shè)定CGRAM的地址,地址范疇00H~3FH。(8)顯示緩沖區(qū)DDRAM地址設(shè)置命令顯示緩沖區(qū)DDRAM地址設(shè)置命令格式如表4-16所示。功能:設(shè)置當(dāng)前顯示緩沖區(qū)DDRAM的地址,對(duì)DDRAM訪問(wèn)時(shí),要先設(shè)定DDRAM的地址。N=0時(shí),一行顯示的地址范疇00H~4FH;N=1時(shí),首行顯示的地址范疇00H~2FH,第二行顯示的地址范疇40H~67H。(9)讀忙標(biāo)志BF及地址計(jì)數(shù)器AC命令讀忙標(biāo)志BF及地址計(jì)數(shù)器AC命令格式如表4-17所示。功能:讀忙標(biāo)志及地址計(jì)數(shù)器AC。當(dāng)BF=1時(shí)則表示忙,這時(shí)不能接收命令和數(shù)據(jù);BF=0時(shí)表示不忙。此時(shí)AC值意義為最近一次的地址設(shè)置(CGRAM或DDRAM)定義。BF的功能是告訴單片機(jī),LCD內(nèi)部是否正忙著處理數(shù)據(jù)。當(dāng)BF=1時(shí),表示LCD內(nèi)部正在處理數(shù)據(jù),不接受單片機(jī)送來(lái)的指令或數(shù)據(jù)。LCD設(shè)置BF的原因是因?yàn)閱纹瑱C(jī)處理一個(gè)指令的時(shí)間很短,只需幾u(yù)s左右,而LCD得花上40us~1.64ms的時(shí)間,所以單片機(jī)要寫(xiě)數(shù)據(jù)或指令到LCD之前,必須先查看BF是否為0。(10)寫(xiě)DDRAM或CGRAM命令寫(xiě)DDRAM或CGRAM命令格式如表4-18所示。功能:向DDRAM或CGRAM當(dāng)前位置中寫(xiě)入數(shù)據(jù)。對(duì)DDRAM或CGRAM寫(xiě)入數(shù)據(jù)之前須設(shè)定DDRAM或CGRAM的地址。(11)讀DDRAM或CGRAM命令讀DDRAM或CGRAM命令格式如表4-19所示。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大班冬季交通安全課件
- 行政事業(yè)單位合同
- 項(xiàng)目推進(jìn)時(shí)間表與工作計(jì)劃書(shū)
- 泥工裝修詳細(xì)合同
- 大型體育賽事組織協(xié)議
- 能源互聯(lián)網(wǎng)項(xiàng)目戰(zhàn)略合作協(xié)議
- 農(nóng)業(yè)機(jī)械維修技術(shù)作業(yè)指導(dǎo)書(shū)
- 季度運(yùn)營(yíng)策略及任務(wù)部署會(huì)議紀(jì)要
- 設(shè)計(jì)行業(yè)設(shè)計(jì)方案修改免責(zé)協(xié)議
- 企業(yè)互聯(lián)網(wǎng)應(yīng)用服務(wù)推廣合作協(xié)議
- 深靜脈血栓形成的診斷和治療指南(第三版)解讀資料講解課件
- 人教版小學(xué)一年級(jí)美術(shù)上冊(cè)全冊(cè)課件
- 統(tǒng)編人教部編版道德與法治四年級(jí)下冊(cè)教材解讀教師教材培訓(xùn)課件
- 履約專項(xiàng)檢查表
- 人教版數(shù)學(xué)四年級(jí)下冊(cè)第一單元測(cè)試卷
- 模具保養(yǎng)記錄表
- 2023國(guó)家自然科學(xué)基金申請(qǐng)書(shū)
- 原始狩獵圖 (2)
- 《色彩構(gòu)成——色彩基礎(chǔ)知識(shí)》PPT課件
- 鍍層的結(jié)合力
- 霍尼韋爾DDC編程軟件(CARE)簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論