版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 實(shí) 驗(yàn) 報(bào) 告 </b></p><p> 實(shí)習(xí)名稱(chēng): C51程序設(shè)計(jì) </p><p> 學(xué)生姓名: </p><p> 學(xué)院名稱(chēng): 電氣與信息工程學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí): 電子1042班 <
2、;/p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p><b> 成 績(jī) 評(píng) 定</b></p><p> 2013 年 10月 16日</p><p> 本作業(yè)包含以下內(nèi)容:</p><
3、p> 一·8×8LED點(diǎn)陣屏仿電梯數(shù)字滾動(dòng)顯示</p><p> 二·LCD160128中文顯示溫度與時(shí)間</p><p> 三·用ADC0832設(shè)計(jì)的兩路電壓表</p><p> 四·可以調(diào)控的走馬燈</p><p> 五·高仿真數(shù)碼管電子鐘</p>
4、<p> 一·8×8LED點(diǎn)陣屏仿電梯數(shù)字滾動(dòng)顯示</p><p> 摘 要:伴隨著我國(guó)現(xiàn)代化程度的提高,電梯成為高層建筑中的重要交通工具,它是高層建筑中安全、可靠、垂直上下的運(yùn)載工具,對(duì)改善勞動(dòng)條件、減輕勞動(dòng)強(qiáng)度起到很大的作用。同時(shí)也給人們的生活帶來(lái)了便利,為我國(guó)現(xiàn)代化建設(shè)的加速發(fā)展提供了強(qiáng)大的保障。電梯的應(yīng)用范圍很廣,可用于賓館、飯店、辦公大樓、商場(chǎng)、娛樂(lè)場(chǎng)所,倉(cāng)庫(kù)以及居民
5、住宅大樓等。因此,在現(xiàn)代社會(huì)中電梯已成為人類(lèi)必不可少的垂直運(yùn)輸交通工具。利用單片機(jī)控制電梯有成本低,通用性強(qiáng),靈活性大以及易于實(shí)現(xiàn)復(fù)雜控制等優(yōu)點(diǎn)。</p><p> 基于單片機(jī)的電梯智能控制系統(tǒng)的設(shè)計(jì)分別從系統(tǒng)要求、硬件設(shè)計(jì)、軟件設(shè)計(jì)等幾個(gè)部分設(shè)計(jì),介紹了以AT89C51系列單片機(jī)為核心,并結(jié)合74LS245和LED等芯片以及與之相配套的匯編語(yǔ)言軟件等進(jìn)行電梯模擬的具體實(shí)現(xiàn)方法,該方法不僅可以實(shí)現(xiàn)電梯的基本功能
6、,而且可以設(shè)置電梯直達(dá)、急停、停電檢修等功能,從而可實(shí)現(xiàn)電梯的智能控制及相應(yīng)的最佳路線(xiàn)選擇,提高電梯的有效利用率。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);電梯;系統(tǒng);控制</p><p><b> 1.課題設(shè)計(jì)內(nèi)容</b></p><p> 本課題的主要任務(wù)是完成一個(gè)電梯系統(tǒng)的智能控制模塊,即根據(jù)每個(gè)樓層不同顧客的按鍵要求,讓電梯做出合理的判
7、斷,正確高效的指導(dǎo)電梯完成各項(xiàng)載客任務(wù)。設(shè)計(jì)基于單片機(jī)的電梯智能控制系統(tǒng)的硬件電路與軟件程序,給出硬件系統(tǒng)的電路原理圖,對(duì)硬件電路與軟件分別進(jìn)行調(diào)試,得到調(diào)試成功的基于單片機(jī)的電梯智能控制系統(tǒng)。</p><p> 根據(jù)此任務(wù),本課題需要研究的內(nèi)容有:</p><p> 1、根據(jù)系統(tǒng)的技術(shù)要求,進(jìn)行系統(tǒng)硬件的總體方案設(shè)計(jì);</p><p> 2、學(xué)習(xí)單片機(jī)的相關(guān)
8、知識(shí),并且加以運(yùn)用;</p><p> 3、選擇適當(dāng)?shù)男酒?duì)其內(nèi)部協(xié)議有所掌握,便于應(yīng)用。</p><p> 4、研究單片機(jī)C語(yǔ)言編程,并且規(guī)定電梯的工作規(guī)則,用C語(yǔ)言加以實(shí)現(xiàn);</p><p> 5、對(duì)軟件和硬件進(jìn)行調(diào)試,讓其協(xié)調(diào)工作,完成指定任務(wù)。</p><p> 圖1-1 硬件結(jié)構(gòu)框圖</p><p&g
9、t; 2. 硬件電路中器件選擇</p><p> A. AT89C51單片機(jī)</p><p> AT89C51是一個(gè)低電壓,高性能CMOS8位單片機(jī)帶有4K字節(jié)的可反復(fù)擦寫(xiě)的程序存儲(chǔ)器(PENROM)。和128字節(jié)的存取數(shù)據(jù)存儲(chǔ)器(RAM),這種器件采用ATMEL公司的高密度、不容易丟失存儲(chǔ)技術(shù)生產(chǎn),并且能夠與MCS-51系列的單片機(jī)兼容。片內(nèi)含有8位中央處理器和閃爍存儲(chǔ)單元,有較強(qiáng)
10、的功能的AT89C51單片機(jī)能夠被應(yīng)用到控制領(lǐng)域中。</p><p> 本設(shè)計(jì)采用AT89C51,它提供以下的功能標(biāo)準(zhǔn):4K字節(jié)閃爍存儲(chǔ)器,128字節(jié)隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,32個(gè)I/O口,2個(gè)16位定時(shí)/計(jì)數(shù)器,1個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),1個(gè)串行通信口,片內(nèi)震蕩器和時(shí)鐘電路。另外,AT89C51還可以進(jìn)行0HZ的靜態(tài)邏輯操作,并支持兩種軟件的節(jié)電模式。閑散方式停止中央處理器的工作,能夠允許隨機(jī)存取數(shù)據(jù)存儲(chǔ)器、定時(shí)/
11、計(jì)數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存隨機(jī)存取數(shù)據(jù)存儲(chǔ)器中的內(nèi)容,但震蕩器停止工作并禁止其它所有部件的工作直到下一個(gè)復(fù)位。引腳圖如圖1-2所示。</p><p> 圖1-2 AT89C51引腳</p><p> VCC:電源電壓 </p><p><b> GND:地</b></p><p>
12、P0口:P0口是一組8位漏極開(kāi)路雙向I/O口,即地址/數(shù)據(jù)總線(xiàn)復(fù)用口。作為輸出口時(shí),每一個(gè)管腳都能夠驅(qū)動(dòng)8個(gè)TTL電路。當(dāng)“1”被寫(xiě)入P0口時(shí),每個(gè)管腳都能夠作為高阻抗輸入端。P0口還能夠在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),轉(zhuǎn)換地址和數(shù)據(jù)總線(xiàn)復(fù)用,并在這時(shí)激活內(nèi)部的上拉電阻。P0口在閃爍編程時(shí),P0口接收指令,在程序校驗(yàn)時(shí),輸出指令,需要接電阻。</p><p> P1口:P1口一個(gè)帶內(nèi)部上拉電阻的8位雙向I/
13、O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的電阻把端口拉到高電平,此時(shí)可作為輸入口。因?yàn)閮?nèi)部有電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)輸出一個(gè)電流。閃爍編程時(shí)和程序校驗(yàn)時(shí),P1口接收低8位地址。</p><p> P2口:P2口是一個(gè)內(nèi)部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的電阻把端口拉到高電平,此時(shí),可作為輸入口。因?yàn)閮?nèi)部有電阻,某個(gè)引
14、腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址數(shù)據(jù)。在訪(fǎng)問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口線(xiàn)上的內(nèi)容在整個(gè)運(yùn)行期間不變。閃爍編程或校驗(yàn)時(shí),P2口接收高位地址和其它控制信號(hào)。</p><p> P3口:P3口是一組帶有內(nèi)部電阻的8位雙向I/O口,P3口輸出緩沖故可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)P3口寫(xiě)如“1”時(shí),它們被內(nèi)部電阻拉到高電平并可作為輸入端時(shí),被外部
15、拉低的P3口將用電阻輸出電流。P3口除了作為一般的I/O口外,更重要的用途是它的第二功能,如下表所示:</p><p><b> 表1-3</b></p><p> P3口還接收一些用于閃爍存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)震蕩器工作時(shí),RET引腳出現(xiàn)兩個(gè)機(jī)器周期以上的高電平將使單片機(jī)復(fù)位。</
16、p><p> ALE/ :當(dāng)訪(fǎng)問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪(fǎng)問(wèn)外部存儲(chǔ)器,ALE以時(shí)鐘震蕩頻率的1/16輸出固定的正脈沖信號(hào),因此它可對(duì)輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖時(shí),閃爍存儲(chǔ)器編程時(shí),這個(gè)引腳還用于輸入編程脈沖。如果必要,可對(duì)特殊寄存器區(qū)中的8EH單元的D0位置禁止ALE操作。這個(gè)位置后只有一條MOVX和MOVC
17、指令A(yù)LE才會(huì)被應(yīng)用。此外,這個(gè)引腳會(huì)微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無(wú)效。</p><p> PSEN:程序儲(chǔ)存允許輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C51由外部程序存儲(chǔ)器讀取指令時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN 信號(hào)不出現(xiàn)。</p><p> EA/VPP:外部訪(fǎng)問(wèn)允許。欲使中央處理器僅
18、訪(fǎng)問(wèn)外部程序存儲(chǔ)器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。閃爍存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電壓VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。</p><p> XTAL1:片內(nèi)振蕩器反相放大器和時(shí)鐘發(fā)生線(xiàn)路的輸入端。使用片內(nèi)振蕩器時(shí),連接外部石英晶體和微調(diào)電容。</p>&
19、lt;p> XTAL2:片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器時(shí),外接石英晶體和微調(diào)電容。</p><p> 圖1-4 74LS245</p><p> 74LS245是我們常用的芯片,用來(lái)驅(qū)動(dòng)LED或者其他的設(shè)備,它是8路相同三態(tài)雙向總線(xiàn)收發(fā)器,可雙向傳輸數(shù)據(jù)。</p><p> 74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。
20、當(dāng)8051單片機(jī)的P0口總線(xiàn)負(fù)載達(dá)到或超過(guò)P0口最大負(fù)載能力時(shí),必須接入74LS245等總線(xiàn)驅(qū)動(dòng)器。 當(dāng)片選端/CE低電平有效時(shí),DIR=“0”,信號(hào)由B向A傳輸;(接收)DIR=“1”,信號(hào)由A向B傳輸;(發(fā)送)當(dāng)CE為高電平時(shí),A、B均為高組態(tài)。 由于P2口始終輸出地址的高8位,接口時(shí)74LS245d 三態(tài)控制端1G和2G接地,P2口與驅(qū)動(dòng)器輸入線(xiàn)對(duì)應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線(xiàn)暢通。805
21、1的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時(shí),74LS245輸入(P0.1←D1),其他時(shí)間處于輸出(P01→D1)。</p><p><b> C.LED點(diǎn)陣</b></p><p> 圖1-5 LED點(diǎn)陣外觀</p><p> 顯示屏是由發(fā)光二極管行列組成的LED點(diǎn)陣模塊組成顯示屏體。本設(shè)計(jì)中選擇8*8的點(diǎn)陣是由64
22、個(gè)發(fā)光二極管按規(guī)律組成的。如圖1-6。</p><p> 圖1-6 LED點(diǎn)陣內(nèi)部結(jié)構(gòu)</p><p> 如圖1-6所示的發(fā)光二極管,行接高電平,列接低電平,發(fā)光二極管導(dǎo)通發(fā)光。8X8點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)發(fā)光二極管是放置在行線(xiàn)和列線(xiàn)的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一列置1電平,某一行置0電平,則相應(yīng)的二極管就亮。</p><p><b> 3
23、. 硬件設(shè)計(jì)</b></p><p> 基于單片機(jī)智能控制系統(tǒng)的設(shè)計(jì)系統(tǒng)電路原理圖如下2-2所示。系統(tǒng)由控制模塊,LED顯示模塊,電源模塊三部分組成。</p><p> 圖1-7 8×8LED點(diǎn)陣屏仿電梯數(shù)字滾動(dòng)顯示原理圖</p><p><b> 3.1 控制模塊</b></p><p>
24、; 圖1-8 控制模塊原理圖</p><p> 控制模塊原理圖如圖1-8所示。主控制器采用AT89C51。AT89C51是一個(gè)低電壓,高性能CMOS8位單片機(jī)帶有4K字節(jié)的可反復(fù)擦寫(xiě)的程序存儲(chǔ)器(PENROM)。它具有4K字節(jié)閃爍存儲(chǔ)器,128字節(jié)隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,32個(gè)I/O口,2個(gè)16位定時(shí)/計(jì)數(shù)器,1個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),1個(gè)串行通信口,片內(nèi)震蕩器和時(shí)鐘電路。</p><p>
25、 在本設(shè)計(jì)中,P1口用于對(duì)電梯按鈕的控制,連接輸入設(shè)備。P3口用于對(duì)LED點(diǎn)陣顯示器的控制。P0口用于連接鎖存器74LS245,以保護(hù)單片機(jī)的輸出端口。</p><p><b> 3.2按鍵模塊</b></p><p> 圖1-9按鍵模塊原理圖</p><p> 乘客可由按鍵控制電梯上升下降,按下對(duì)應(yīng)樓層按鍵,點(diǎn)陣屏數(shù)字將從當(dāng)前位置向下
26、或向上平滑滾動(dòng)顯示到指定樓層位置。</p><p> 3.3 LED顯示模塊</p><p> 圖1-10LED輸出顯示模塊</p><p> LED輸出顯示模塊如圖2-5所示,采用LED點(diǎn)陣顯示器,其中點(diǎn)陣列接單片機(jī)P3口,行接鎖存器74LS245。在單片機(jī)的輸出口接驅(qū)動(dòng)電路74LS245,以保護(hù)單片機(jī)的輸出端口。</p><p>&
27、lt;b> 3.4 電源電路</b></p><p> 整個(gè)系統(tǒng)采用的電源電壓只需+5V電壓,將交流電經(jīng)變壓器變換為12V交流電,再用整流橋得到8.5V左右的直流電,采用不可調(diào)的3端穩(wěn)壓器件LM7805將電源穩(wěn)定在5V直流輸出。</p><p><b> 4. 軟件設(shè)計(jì)</b></p><p> 圖1-11 電梯智能控
28、制功能實(shí)現(xiàn)流程圖</p><p><b> 4.1 主程序模塊</b></p><p> 系統(tǒng)主程序主要用于變量及其他部件的初始化,如定時(shí)器T0的初始化,以便能夠準(zhǔn)確的進(jìn)行相應(yīng)的操作。同時(shí)進(jìn)行相應(yīng)的功能鍵判斷,從而實(shí)現(xiàn)特殊功能。其相應(yīng)的流程圖如下:</p><p> 圖1-12主程序流程圖</p><p><
29、b> 4.2 判斷子程序</b></p><p> 系統(tǒng)判斷子程序的相應(yīng)流程圖如圖所示。</p><p> 在相應(yīng)的中斷子程序中,需要進(jìn)行相應(yīng)樓層的邏輯判斷,尤其是兩個(gè)樓層申請(qǐng)的時(shí)候,一般都需要根據(jù)現(xiàn)在的樓層狀態(tài)以及相應(yīng)的升降標(biāo)志位進(jìn)行相應(yīng)的處理,例如在上升狀態(tài)時(shí),若第二個(gè)樓層的申請(qǐng)較第一個(gè)申請(qǐng)離現(xiàn)在的樓層狀態(tài)更近,則應(yīng)先響應(yīng)第二個(gè)申請(qǐng)的響應(yīng),然后再對(duì)第一個(gè)申請(qǐng)進(jìn)行
30、響應(yīng);若有樓層申請(qǐng)?jiān)诋?dāng)前樓層的下面,也應(yīng)根據(jù)升降的標(biāo)志位進(jìn)行判斷,如果是上升狀態(tài),應(yīng)先響應(yīng)上面的樓層,然后再響應(yīng)其他的申請(qǐng)。當(dāng)然,如果處于下降狀態(tài),則以相反的順序進(jìn)行響應(yīng)。這里只是兩個(gè)樓層申請(qǐng)時(shí)的討論。當(dāng)有更多樓層響應(yīng)時(shí),還需進(jìn)一步進(jìn)行邏輯的思考與判斷。</p><p> 圖1-13 判斷子程序流程圖</p><p><b> 5. 結(jié)束語(yǔ)</b></p&g
31、t;<p> 本文設(shè)計(jì)了實(shí)現(xiàn)單片機(jī)控制下電梯智能控制系統(tǒng)的設(shè)計(jì)方案。由于條件的限制,沒(méi)有做成真正的電梯。但做成的電梯智能控制系統(tǒng)的硬件電路已能演示??梢园凑粘丝偷囊螅瑢⒊丝退偷揭サ哪康膶?。但是,電梯還有很多的擴(kuò)展的空間并未實(shí)現(xiàn),比如電梯自動(dòng)語(yǔ)音報(bào)站系統(tǒng)的設(shè)計(jì),樓層監(jiān)控系統(tǒng),節(jié)能設(shè)計(jì)以及其它更多的服務(wù)。</p><p><b> 參考文獻(xiàn)</b></p>&
32、lt;p> [1] 何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1999.</p><p> [2] 陳小忠.單片機(jī)接口技術(shù)使用子程序[M].北京:人民郵電出版社,2005.</p><p> [3] 丁元杰,吳大偉.單片機(jī)微機(jī)實(shí)題集與實(shí)驗(yàn)指導(dǎo)書(shū)[M].北京:機(jī)械工業(yè)出版社,2004.</p><p> [4] 51單片機(jī)C語(yǔ)言教程
33、[M].北京:電子工業(yè)出版社,2009.</p><p> [5] 黃宏安,Allegro PCB Layout.高速電路版設(shè)計(jì)[M].臺(tái)科大圖書(shū)股份有限公司,2003.</p><p> [6] 于海生.微型計(jì)算機(jī)控制技術(shù)[M].北京:清華大學(xué)出版社,1998.</p><p> [7] 李廣弟.單片機(jī)基礎(chǔ)[M].第3版,北京:國(guó)防工業(yè)出版社,2001.&l
34、t;/p><p> [8] 謝劍英,賈青.微型計(jì)算機(jī)控制技術(shù)[M].北京:清華大學(xué)出版社,1998.</p><p> [9] 蘇凱,劉國(guó)慶,陳國(guó)平.MCS-51系列單片機(jī)系統(tǒng)原理與設(shè)計(jì)[J].北京:冶金工業(yè)出版社,2003</p><p> [10] 潘新民,王艷芳.微型計(jì)算機(jī)控制技術(shù)[J].北京:電子工業(yè)出版社,2003.</p><p&g
35、t; [11] 張毅坤,陳善久,裘雪紅.單片微型機(jī)及應(yīng)用[M].西安:西安電子科技大學(xué)學(xué)出版大學(xué)出版社,1998.</p><p> [12] 全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽組委會(huì).全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品精選[M].北京:北京理工大學(xué)出版社,2000.</p><p> [13] 趙晶主.電路設(shè)計(jì)與制版Protel99 高級(jí)應(yīng)用[J].北京:人民郵電出版社,2000.</p&g
36、t;<p> [14] 何希才.新型實(shí)用電子電路400列[M].北京:電子工業(yè)出版社,2006.</p><p><b> 附錄1</b></p><p><b> 程序清單</b></p><p> #include <reg51.h> //52系列單片機(jī)頭文件</p>
37、<p> #include <intrins.h></p><p> #define uchar unsigned char </p><p> #define uint unsigned int</p><p> uchar code Table_OF_Digits[]=</p><p><b>
38、{</b></p><p> 0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00,//0</p><p> 0x00,0x08,0x38,0x08,0x08,0x08,0x3E,0x00,//1</p><p> 0x00,0x3C,0x04,0x04,0x3C,0x20,0x3C,0x00,//2 </p>
39、<p> 0x00,0x3C,0x04,0x3C,0x04,0x04,0x3C,0x00,//3 </p><p> 0x00,0x20,0x28,0x28,0x3C,0x08,0x08,0x00,//4 </p><p> 0x00,0x3C,0x20,0x20,0x3C,0x04,0x3C,0x00,//5 </p><p> 0x00,0
40、x20,0x20,0x20,0x3C,0x24,0x3C,0x00,//6 </p><p> 0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x00//7 </p><p><b> };</b></p><p> uint r = 0;</p><p> char offset = 0
41、;</p><p> uchar Current_Level = 1,Dest_Level = 1,x = 0,t = 0;</p><p> //------------------------------------------</p><p><b> //主程序</b></p><p> //------
42、------------------------------------</p><p> void main()</p><p><b> {</b></p><p> P3 = 0x80;</p><p> Current_Level = 1;</p><p> Dest_Level
43、 = 1;</p><p> TMOD = 0x01;</p><p> TH0 = -4000/256;</p><p> TL0 = -4000%256;</p><p><b> TR0 = 1;</b></p><p> IE = 0x82;</p><p&g
44、t;<b> while(1);</b></p><p><b> }</b></p><p> //------------------------------</p><p><b> // TO 中斷</b></p><p> //---------------
45、----------------</p><p> void LED_Screen_Display() interrupt 1</p><p><b> {</b></p><p><b> uchar i ;</b></p><p> if (P1 !=0xFF && Cu
46、rrent_Level==Dest_Level)</p><p><b> {</b></p><p> if (P1 == 0xFE) Dest_Level = 5;</p><p> if (P1 == 0xFD) Dest_Level = 4;</p><p> if (P1 == 0xFB) Dest_L
47、evel = 3;</p><p> if (P1 == 0xF7) Dest_Level = 2;</p><p> if (P1 == 0xEF) Dest_Level = 1;</p><p><b> }</b></p><p> TH0 = -4000/256;</p><p>
48、 TL0 = -4000%256;</p><p> P3 = _crol_(P3 , 1);</p><p> i = Current_Level * 8 + r + offset;</p><p> P0 = ~Table_OF_Digits[i];</p><p><b> //上升顯示</b><
49、/p><p> if (Current_Level < Dest_Level)</p><p><b> {</b></p><p> if( ++r == 8)</p><p><b> {</b></p><p><b> r = 0;</b&
50、gt;</p><p> if (++x == 4)</p><p><b> {</b></p><p><b> x = 0;</b></p><p> if (++offset == 8)</p><p><b> {</b></p
51、><p> offset = 0;</p><p> Current_Level++;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><
52、;b> }</b></p><p><b> //下降顯示</b></p><p><b> else</b></p><p> if (Current_Level > Dest_Level)</p><p><b> { </b></p
53、><p> if( ++r == 8)</p><p><b> {</b></p><p><b> r = 0;</b></p><p> if (++x == 4)</p><p><b> {</b></p><p&g
54、t;<b> x = 0;</b></p><p> if (--offset == -8)</p><p><b> {</b></p><p> offset = 0;</p><p> Current_Level--;</p><p><b> }
55、</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //停止?jié)L動(dòng),保持穩(wěn)定的刷新顯示</p><p><b> else</b
56、></p><p><b> {</b></p><p> if( ++r == 8) r = 0;</p><p><b> }</b></p><p><b> }</b></p><p> 附錄2:基于單片機(jī)的電梯智能控制系統(tǒng)的元器
57、件目錄表</p><p> 二·LCD160128中文顯示溫度與時(shí)間</p><p> 摘要:本文主要內(nèi)容是利用AT89C51單片機(jī)與160*128的液晶、DS18B20和DS1302組合設(shè)計(jì)的顯示溫度與時(shí)間系統(tǒng),在160*128的液晶上顯示當(dāng)前的時(shí)間、日期和DS18B20中的溫度值。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);溫度;時(shí)間;PG160128A
58、;DS18B20; DS1302</p><p><b> 0引言</b></p><p> 單片機(jī)又稱(chēng)單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。單片機(jī)應(yīng)用的重
59、要意義在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱(chēng)為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。 利用單片機(jī)顯示當(dāng)前時(shí)間與溫度是單片機(jī)與PG160128 、DS18B20和DS1302的組合應(yīng)用,對(duì)于開(kāi)發(fā)單片機(jī)更深層次應(yīng)用有非?,F(xiàn)實(shí)的意義。</p><p><b> 1系統(tǒng)總體方案設(shè)
60、計(jì)</b></p><p> 單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫(xiě)MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專(zhuān)用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。AT89C51作為單片機(jī)中最早的技術(shù)相對(duì)
61、成熟的產(chǎn)品,即使在各種更加高級(jí),功能更加強(qiáng)勁的芯片如MSP430,HCS12,已經(jīng)各種FPGA,ARM的日益成熟的今天,51以其易學(xué),易用,可擴(kuò)展性強(qiáng)仍然被廣泛用于簡(jiǎn)單工控系統(tǒng)和最佳的初學(xué)者芯片。</p><p> LCD160128液晶,作為與51單片機(jī)兼容的液晶,像素高達(dá)160*128,可尋址,可以通過(guò)編程實(shí)現(xiàn)字庫(kù)設(shè)置和圖像顯示,并有豐富的命令字可以實(shí)現(xiàn)各種豐富的顯示效果,用簡(jiǎn)單的51單片機(jī)結(jié)合軟件就能模擬
62、各種實(shí)際功能,本設(shè)計(jì)主要研究如何模擬使通過(guò)51單片機(jī)與PG160128LCD的聯(lián)合應(yīng)用,利用AT89C51單片機(jī)與160*128的液晶、DS18B20和DS1302組合設(shè)計(jì)的顯示溫度與時(shí)間系統(tǒng),在160*128的液晶上顯示當(dāng)前的時(shí)間、日期和DS18B20中的溫度值。</p><p><b> 2系統(tǒng)硬件方案設(shè)計(jì)</b></p><p> 整個(gè)硬件電路由單片機(jī)的復(fù)位
63、和晶振電路,PG160128液晶顯示器,電阻,2個(gè)獨(dú)立LED溫度警示燈,DS18B20和DS1302組成。本硬件系統(tǒng)的子系統(tǒng)下面單獨(dú)介紹。</p><p><b> 2.1實(shí)驗(yàn)原理圖</b></p><p> 圖2-1 系統(tǒng)原理圖</p><p> 2.2 AT89C51單片機(jī)</p><p> AT89C51
64、是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位C
65、PU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> 2.2.1 主要特性:·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫(xiě)/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-24Hz·三級(jí)
66、程序存儲(chǔ)器鎖定·128*8位內(nèi)部RAM·32可編程I/O線(xiàn)·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路 </p><p> 2.2.2管腳說(shuō)明:VCC:供電電壓。GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的
67、管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程
68、和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)</p>&l
69、t;p> 2.3振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p> 2.4芯片擦除: 整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正
70、確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms 來(lái)完成。在芯片擦操作中,代碼陣列全被寫(xiě)“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。 </p&g
71、t;<p> 2.5 PG160128LCD</p><p> 160 X 128 字符顯示點(diǎn)陣;</p><p> 并行 8 線(xiàn)數(shù)據(jù)通信;</p><p> 黑色點(diǎn)陣,黃色背景,獨(dú)立LED背光電源;</p><p> 工作溫度寬, 工業(yè)級(jí) LCM, 超薄外型設(shè)計(jì)。</p><p> 圖2-2
72、 PG160128LCD引腳圖</p><p> 2.6 DS18B20溫度系統(tǒng)</p><p> 2.6.1 主要特性</p><p> 1、適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù) 據(jù)線(xiàn)供電 </p><p> 2、獨(dú)特的單線(xiàn)接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線(xiàn)即可實(shí)現(xiàn)微處理器與DS
73、18B20的雙向通訊 </p><p> 3、 DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線(xiàn)上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫 </p><p> 4、DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) </p><p> 5、溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃
74、 </p><p> 6、可編程 的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫 </p><p> 7、在9位分辨率時(shí)最多在 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 </p><p> 8、測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一
75、線(xiàn)總線(xiàn)"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力 </p><p> 9、負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。</p><p> 2.6.2 DS18B20的外形和內(nèi)部結(jié)構(gòu)</p><p> DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM 、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL
76、、配置寄存器。DS18B20的外形及管腳排列如下圖1: </p><p> 圖2-3 DS18B20外形及管腳排列圖</p><p> 2.6.2.1 DS18B20引腳定義: </p><p> (1)DQ為數(shù)字信號(hào)輸入/輸出端; </p><p> (2)GND為電源地; </p><p> (3)VDD
77、為外接供電電源輸入端(在寄生電源接線(xiàn)方式時(shí)接地)。</p><p> 2.6.2.2 DS18B20內(nèi)部結(jié)構(gòu)圖</p><p> 圖2-4 DS18B20內(nèi)部結(jié)構(gòu)圖</p><p> 2.6.3 DS18B20的工作原理</p><p> DS18B20的讀寫(xiě)時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,
78、且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s 減為750ms。 DS18B20測(cè)溫原理如圖3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)所測(cè)溫度的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線(xiàn)性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。</p><p> 2.7 DS1302 時(shí)間系統(tǒng)</p><p> 2.7.1 DS1302的結(jié)構(gòu)及工作原理</p&g
79、t;<p> DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線(xiàn)接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加
80、了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。</p><p> 2.7.2 DS1302的引腳功能及結(jié)構(gòu)</p><p> DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2
81、是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線(xiàn),通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc>2.0V之前,RST
82、必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。SCLK為時(shí)鐘輸入端。 </p><p> 下圖為DS1302的引腳功能圖: </p><p> 圖2-5 DS1302引腳功能圖</p><p> DS1302的內(nèi)部結(jié)構(gòu)如下圖所示,主要組成部分為:移位寄存器、控制邏輯、振蕩器、實(shí)時(shí)時(shí)鐘以及
83、RAM。雖然數(shù)據(jù)分成兩種,但是對(duì)單片機(jī)的程序而言,其實(shí)是一樣的,就是對(duì)特定的地址進(jìn)行讀寫(xiě)操作。</p><p> 圖2-6 DS1302的內(nèi)部結(jié)構(gòu)圖</p><p> DS1302工作時(shí)為了對(duì)任何數(shù)據(jù)傳送進(jìn)行初始化,需要將復(fù)位腳(RST)置為高電平且將8位地址和命令信息裝入移位寄存器。數(shù)據(jù)在時(shí)鐘(SCLK)的上升沿串行輸入,前8位指定訪(fǎng)問(wèn)地址,命令字裝入移位寄存器后,在之后的時(shí)鐘周期,
84、讀操作時(shí)輸出數(shù)據(jù),寫(xiě)操作時(shí)輸出數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8(8位地址+8位數(shù)據(jù)),在多字節(jié)方式下為8加最多可達(dá)248的數(shù)據(jù)。</p><p><b> 3系統(tǒng)軟件方案設(shè)計(jì)</b></p><p> 本文主要內(nèi)容是利用AT89C51單片機(jī)與160*128的液晶、DS18B20和DS1302組合設(shè)計(jì)的顯示溫度與時(shí)間系統(tǒng),在160*128的液晶上顯示當(dāng)前的時(shí)間
85、、日期和DS18B20中的溫度值。</p><p><b> 4系統(tǒng)硬件設(shè)計(jì)方案</b></p><p><b> ?。?)時(shí)鐘電路</b></p><p> 單片機(jī)工作的時(shí)間基準(zhǔn)是由時(shí)鐘電路提供的。在單片機(jī)的XTAL1和XTAL2兩個(gè)引腳間,接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時(shí)鐘電路,</p><
86、;p> 電路中的器件選擇可以通過(guò)計(jì)算和實(shí)驗(yàn)確定,也可以參考一些典型電路的參數(shù)。電路中,電容器C1和C2對(duì)振蕩器頻率有微調(diào)作用,通常的取值范圍30±10pF;石英晶體選擇6MHZ或12MHZ都可以。其結(jié)果只是機(jī)器周期時(shí)間不同,影響計(jì)數(shù)器的計(jì)數(shù)初值。</p><p> 圖2-7 時(shí)鐘電路原理圖</p><p><b> 2)溫度檢測(cè)電路</b><
87、;/p><p> 該電路只是利用DS18B20模擬外界環(huán)境溫度的變化,從而實(shí)時(shí)顯示在液晶屏上。</p><p> 圖2-8 溫度檢測(cè)電路原理圖</p><p> LCD160128顯示電路</p><p> 圖2-9 顯示電路原理圖</p><p> 5總結(jié) </p><p>
88、 本次課程設(shè)計(jì)是通過(guò)AT89C51單片機(jī)原理來(lái)控制電路,并利用C語(yǔ)言進(jìn)行程序設(shè)計(jì)。基于選題要求,我們?cè)O(shè)計(jì)了溫度測(cè)量、時(shí)間測(cè)量、LCD顯示功能。硬件方面我們使用了PG160128ALCD、DS1302、DS18B20測(cè)溫元件。這種控制電路結(jié)構(gòu)簡(jiǎn)單,可靠性高,應(yīng)用性強(qiáng);軟件程序適應(yīng)范圍廣,對(duì)于不同的客戶(hù)只需要改變相應(yīng)的定時(shí)常數(shù)即可。對(duì)單片機(jī)以及日常生活中的推前事件的應(yīng)用有一定的借鑒價(jià)值</p><p> 系統(tǒng)軟件
89、部分采用MCS—51單片機(jī)匯編語(yǔ)言精心編寫(xiě),其數(shù)據(jù)流程清晰地反映在程序中,增強(qiáng)了軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而為其實(shí)用提供更好的軟件支持。從設(shè)計(jì)過(guò)程中我也學(xué)到了很多專(zhuān)業(yè)知識(shí)了解到了更多的元器件的使用。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 閻石主編:《數(shù)字電子技術(shù)基礎(chǔ)》[M],北京,高等教育出版社,2006.5</p>
90、;<p> [2] 康華光主編:《電子技術(shù)基礎(chǔ)》 [M],北京,高等教育出版社,1999.6[3]譚浩強(qiáng)主編:《C語(yǔ)言程序設(shè)計(jì)》[M],北京,清華大學(xué)出版社,2005.7</p><p> [4]高衛(wèi)東主編:《51單片機(jī)原理與實(shí)踐》[M],北京,北京航空航天大學(xué)出版社,2011.1</p><p> [5]彭偉主編:《單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例》[M],北京,電
91、子工業(yè)出版社,2009.6</p><p><b> 附錄</b></p><p><b> 附件一:源程序如下</b></p><p> //---------------LCD_160128.c----------------</p><p> //LCD_160128的C文件,內(nèi)含控制
92、函數(shù)</p><p> //------------------------------------------</p><p> #include <stdarg.h></p><p> #include <stdio.h></p><p> #include <math.h></p>
93、<p> #include <intrins.h></p><p> #include <absacc.h></p><p> #include <string.h></p><p> #include <LCD_160128.h></p><p> #define AS
94、C_CHR_WIDTH 8</p><p> #define ASC_CHR_HEIGHT 12</p><p> #define HZ_CHR_HEIGHT 12</p><p> #define HZ_CHR_WIDTH 12</p><p> uchar code LCD_WIDTH = 20;</p><
95、;p> uchar code LCD_HEIGHT = 128;</p><p> uchar code ASC_MSK[96*12]={</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,</p><p> 0x00,0x00,0x00,0x00,0x00,0x
96、00,0x00,0x00,0x00,0x00,0x00,0x00,// ' '</p><p> 0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,// '!'</p><p> 0x00,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x0
97、0,0x00,// '"'</p><p> 0x00,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0x00,0x00,// '#'</p><p> 0x30,0x30,0x7c,0xc0,0xc0,0x78,0x0c,0x0c,0xf8,0x30,0x30,0x00,// '$'
98、</p><p> 0x00,0x00,0x00,0xc4,0xcc,0x18,0x30,0x60,0xcc,0x8c,0x00,0x00,// '%'</p><p> 0x00,0x70,0xd8,0xd8,0x70,0xfa,0xde,0xcc,0xdc,0x76,0x00,0x00,// '&'</p><p>
99、 0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// '''</p><p> 0x00,0x0c,0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x0c,0x00,0x00,// '('</p><p> 0x00,0x60,0x30,0x18,0
100、x0c,0x0c,0x0c,0x18,0x30,0x60,0x00,0x00,// ')'</p><p> 0x00,0x00,0x00,0x66,0x3c,0xff,0x3c,0x66,0x00,0x00,0x00,0x00,// '*'</p><p> 0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x
101、00,0x00,0x00,// '+'</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x60,0x00,// ','</p><p> 0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,// '-'
102、;</p><p> 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x00,// '.'</p><p> 0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,// '/'</p><p> 0x
103、00,0x7c,0xc6,0xce,0xde,0xd6,0xf6,0xe6,0xc6,0x7c,0x00,0x00,// '0'</p><p> 0x00,0x10,0x30,0xf0,0x30,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,// '1'</p><p> 0x00,0x78,0xcc,0xcc,0x0c,0x1
104、8,0x30,0x60,0xcc,0xfc,0x00,0x00,// '2'</p><p> 0x00,0x78,0xcc,0x0c,0x0c,0x38,0x0c,0x0c,0xcc,0x78,0x00,0x00,// '3'</p><p> 0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xfe,0x0c,0x0c,0x1e,0x00
105、,0x00,// '4'</p><p> 0x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0x0c,0xcc,0x78,0x00,0x00,// '5'</p><p> 0x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,0x78,0x00,0x00,// '6'</p
106、><p> 0x00,0xfe,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x00,0x00,// '7'</p><p> 0x00,0x78,0xcc,0xcc,0xec,0x78,0xdc,0xcc,0xcc,0x78,0x00,0x00,// '8'</p><p> 0x00,0x78
107、,0xcc,0xcc,0xcc,0x7c,0x18,0x18,0x30,0x70,0x00,0x00,// '9'</p><p> 0x00,0x00,0x00,0x38,0x38,0x00,0x00,0x38,0x38,0x00,0x00,0x00,// ':'</p><p> 0x00,0x00,0x00,0x38,0x38,0x00,0x00,
108、0x38,0x38,0x18,0x30,0x00,// ';'</p><p> 0x00,0x0c,0x18,0x30,0x60,0xc0,0x60,0x30,0x18,0x0c,0x00,0x00,// '<'</p><p> 0x00,0x00,0x00,0x00,0x7e,0x00,0x7e,0x00,0x00,0x00,0x00,0x0
109、0,// '='</p><p> 0x00,0x60,0x30,0x18,0x0c,0x06,0x0c,0x18,0x30,0x60,0x00,0x00,// '>'</p><p> 0x00,0x78,0xcc,0x0c,0x18,0x30,0x30,0x00,0x30,0x30,0x00,0x00,// '?'</p&
110、gt;<p> 0x00,0x7c,0xc6,0xc6,0xde,0xde,0xde,0xc0,0xc0,0x7c,0x00,0x00,// '@'</p><p> 0x00,0x30,0x78,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0x00,0x00,// 'A'</p><p> 0x00,0xfc,
111、0x66,0x66,0x66,0x7c,0x66,0x66,0x66,0xfc,0x00,0x00,// 'B'</p><p> 0x00,0x3c,0x66,0xc6,0xc0,0xc0,0xc0,0xc6,0x66,0x3c,0x00,0x00,// 'C'</p><p> 0x00,0xf8,0x6c,0x66,0x66,0x66,0x66,0
112、x66,0x6c,0xf8,0x00,0x00,// 'D'</p><p> 0x00,0xfe,0x62,0x60,0x64,0x7c,0x64,0x60,0x62,0xfe,0x00,0x00,// 'E'</p><p> 0x00,0xfe,0x66,0x62,0x64,0x7c,0x64,0x60,0x60,0xf0,0x00,0x00,//
113、 'F'</p><p> 0x00,0x3c,0x66,0xc6,0xc0,0xc0,0xce,0xc6,0x66,0x3e,0x00,0x00,// 'G'</p><p> 0x00,0xcc,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,// 'H'</p>&l
114、t;p> 0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,// 'I'</p><p> 0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0xcc,0x78,0x00,0x00,// 'J'</p><p> 0x00,0xe6,0x66,0x
115、6c,0x6c,0x78,0x6c,0x6c,0x66,0xe6,0x00,0x00,// 'K'</p><p> 0x00,0xf0,0x60,0x60,0x60,0x60,0x62,0x66,0x66,0xfe,0x00,0x00,// 'L'</p><p> 0x00,0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0xc
116、6,0xc6,0x00,0x00,// 'M'</p><p> 0x00,0xc6,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0x00,0x00,// 'N'</p><p> 0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x00,0x00,// 'O
117、'</p><p> 0x00,0xfc,0x66,0x66,0x66,0x7c,0x60,0x60,0x60,0xf0,0x00,0x00,// 'P'</p><p> 0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xce,0xde,0x7c,0x0c,0x1e,0x00,// 'Q'</p><p>
118、 0x00,0xfc,0x66,0x66,0x66,0x7c,0x6c,0x66,0x66,0xe6,0x00,0x00,// 'R'</p><p> 0x00,0x78,0xcc,0xcc,0xc0,0x70,0x18,0xcc,0xcc,0x78,0x00,0x00,// 'S'</p><p> 0x00,0xfc,0xb4,0x30,0x30
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 8×8點(diǎn)陣led數(shù)碼圖形顯示的課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--4個(gè)8×8點(diǎn)陣led電子顯示屏的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---4個(gè)8×8點(diǎn)陣led電子顯示屏的設(shè)計(jì)
- 單片機(jī)綜合設(shè)計(jì)報(bào)告-led點(diǎn)陣屏仿電梯數(shù)字滾動(dòng)顯示
- led點(diǎn)陣顯示屏課程設(shè)計(jì)
- 8×8×8光立方畢業(yè)方案說(shuō)明書(shū)
- 單片機(jī)課程設(shè)計(jì)---led點(diǎn)陣屏滾動(dòng)
- 課程設(shè)計(jì)---點(diǎn)陣led圖文顯示屏的設(shè)計(jì)
- led16x16點(diǎn)陣課程設(shè)計(jì)--16×16點(diǎn)陣led電子顯示屏的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--16×16 led點(diǎn)陣顯示漢字
- 16×16led點(diǎn)陣屏顯示設(shè)計(jì)-課設(shè)論文
- 單片機(jī)課程設(shè)計(jì)--點(diǎn)陣led電子顯示屏
- 16x16點(diǎn)陣課程設(shè)計(jì)--16×16點(diǎn)陣led電子顯示屏的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---點(diǎn)陣led電子顯示屏
- 8x8led顯示課程設(shè)計(jì)報(bào)告
- led點(diǎn)陣顯示屏設(shè)計(jì)
- eda課程設(shè)計(jì)-8×9先進(jìn)先出(fifo)緩沖器設(shè)計(jì)
- led點(diǎn)陣顯示屏論文 led漢字點(diǎn)陣論文 led點(diǎn)陣顯示論文
- 16乘16led點(diǎn)陣電子顯示屏課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---led點(diǎn)陣電子顯示屏的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論