




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)綜合實踐項目名稱 基于單片機的光立方設(shè)計 專業(yè)班級 學(xué)生姓名 指導(dǎo)教師 年 月 日精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)摘 要本課程設(shè)計制作出一個三維立體顯示圖案的 LED 光立方。主要采用 8*8*8 led 組成的模式。距離是 14cm*14cm*20cm(長.寬.高),主要分為三個模塊:主控模塊、驅(qū)動模塊、顯示模塊;我們所做的光立方驅(qū)動電路,主控電路等都是純手工焊接。采用的主控芯片 32K STC89C58 芯片,驅(qū)動電路是采用我們常用的 74HC574 數(shù)字芯片。光立方工作過程中,通過程序?qū)﹄娐返目刂疲梢栽?LED 組成的立方體上顯示出各
2、種圖形。軟件采用自上而下的模塊化設(shè)計思想,使系統(tǒng)朝著分布式、小型化方向發(fā)展,增強系統(tǒng)的可擴展性和運行的穩(wěn)定性。關(guān)鍵詞關(guān)鍵詞:LED 光立方; 74HC574; 51單片機精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)ABSTRACTThis design produced a three-dimensional pattern of the LED light cube. This product can not only like a light-emitting diode dot matrix display plane static or dynamic screen can also d
3、isplay three-dimensional static or dynamic images,and to break the traditional program.While increasing the display patterns and three-dimensional effect can be widely used to display and decorative display for future progress and development to guide the direction,light cube display more visual eff
4、ects than the light-emitting diode dot matrix,and the picture is more rich colorful. With a combination of graphics and characters more perfect display characteristics.The design is STC89C58 MCU core controller,eight D edge flip-flop 74HC574 (tri-state) expansion I/O port completion of the hardware
5、circuit design. Programmed by software to control the data is downloaded to the MCU to complete the designs of the show. This design software is a top-down modular design,the system moving in the direction of distributed,small development,enhance the stability of the systems scalability and running.
6、Keywords: :52single-chip;74HC573latch;8*8*8 LED;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)目 錄精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第 1 章 緒論1.1 目的與要求(1)目的:轉(zhuǎn)眼間我們學(xué)習(xí)單片機已經(jīng)有大半學(xué)期了,也是到了期末的考試時間了,感到安慰的是不用考試,但是要做一個實物,做這個實物的目的是主要回顧我們學(xué)習(xí)的單片機知識和提高我們的焊接和其他的動手實操能力(包括了數(shù)字電路和模擬電路的知識) 。(2)要求:要有自主創(chuàng)新,其中我們的開關(guān)是采用觸摸型開關(guān),只要由一個 I/O 口和 VCC 組成。1.
7、2 電路的設(shè)計與元件的選擇1.2.1 電路設(shè)計 主要分為三個模塊分別是主控模塊,驅(qū)動模塊,顯示模塊。其中 P1 位一個觸摸型的開關(guān),C3 為去耦電容防止高頻干擾。驅(qū)動電路:在驅(qū)動電路上,每個鎖存芯片的電源端都加了一個瓷片電容,主要的作用是防止高頻干擾顯示電路:所有的燈的負端都是接在一起的,下面的每一組都是控制光立方的一個面,控制的是光立方的豎起來的面,而橫著的面由圖 3 的 74LS138 控制。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)1.2.2 元件的選擇(1)由于光立方的程序量比較大,而且要求相對比較高,因此經(jīng)過考慮之后我們決定用 51 系列的增強型芯片 STC89C58,選擇的理由:S
8、TC89C58RD+是單時鐘/機器周期(IT)的單片機,采集速度較普通 51 單片機快 8 一 12 倍,此外,較寬的電壓范圍(5.5一 3.3V)增強了系統(tǒng)的適應(yīng)性。(2)串行移位芯片采用 74LS138,它還有亮度調(diào)整功能,通過調(diào)節(jié) R_EXT 端的電阻大小或者 PWM,就可輕松做到亮度可控。層切換是通過 3-8 線譯碼器 74HC138可代換芯片:74138 系列。對控制器輸出的層信號譯碼,然后通過 P 溝道 MOS 管放大后驅(qū)動 LED 光立方一層的二極管陽極,此時對應(yīng)移位后的并行數(shù)據(jù)就被顯示出來了。然后通過協(xié)調(diào)層的數(shù)據(jù)和層的選通,動態(tài)顯示后就能做到立體控制與顯示。(3)由于在剛剛接觸
9、鎖存器的時候,就接觸了 74HC574,對它的使用也比較成熟,因此在驅(qū)動部分使用了熟悉的 74HC574,其優(yōu)點有:1.高阻態(tài);就是輸出既不是高電平,也不是低電平,而是高阻抗的狀態(tài);在這種狀態(tài)下,可以多個芯片并聯(lián)輸出2.數(shù)據(jù)鎖存;當輸入的數(shù)據(jù)消失時,在芯片的輸出端,數(shù)據(jù)仍然保持3.數(shù)據(jù)緩沖; 加強驅(qū)動能力4.這 8 片 74LM574 構(gòu)成了 64 位的靜態(tài)顯示,可顯示一層的圖像也就是一個二維畫面。(4)LED 燈的選擇,出于外觀和整體的形狀美觀,我們放棄我們經(jīng)常用的草帽型 LED,采用的是方形高亮的 LED 燈由于草帽的光發(fā)散比較厲害容易影響視角效果,從而使用方形的,同時方形的也比較聚光。精
10、選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第 2 章 電路工作原理2.1 設(shè)計原理每層的 LED 排序如上圖 D0,D1,D2,D3D62,D63 分別為 64 個 LED 陣列實際排序方式,也就是光立方的俯視圖,對應(yīng)下圖分別是其數(shù)據(jù)信號Error!Error!Error!0,Error!Error!Error!1,Error!Error!Error!2,Error!Error!Error!3Error!Error!Error!62,Error!Error!Error!63;“光立方”是由 8 層這樣布局的 LED 組成,每層位置排列全部一致每層 LED 的所有正極全部接到一起,然后連接 138
11、 的行掃描驅(qū)動電路,通過 138譯碼確定使能哪一層數(shù)組 OUT0代表光立方從第一層 D0 到第八層 D0 的數(shù)據(jù),以此類推數(shù)組 OUT1 代表光立方從第一層 D1 到第八層 D1 的數(shù)據(jù)。這樣數(shù)組中就包含了光立方完整的一幀數(shù)據(jù)。OUT0的位 0 表示光立方的 D0 的所在第一層數(shù)據(jù)(1 為點亮 0 為熄滅) ,同樣OUT0的位 1 也就是第 2 層的數(shù)據(jù)。2.2 模塊與控制器接口VCC:電源 5V 可做處理器電源GND:電路地線公共地EN:當模塊的層掃描信號完成后,使能該信號,低電平有效,必須在下次掃描信Y Y 軸軸X X 軸軸精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)號切換前終止使能C,B,
12、A:為層掃描切換,000 為第 1 層,001 為第 2 層,010 為第 3 層,011 為第 4層,100 為第 5 層,101 為第 6 層,110 為第 7 層,111 為第 8 層。CLK:為串行移位總線的時鐘時序LE:寄存器輸出脈沖,將此時移位寄存器數(shù)據(jù)傳輸?shù)捷敵黾拇嫫鱀S: SDI 為串行移位總線的數(shù)據(jù)時序時鐘上升沿鎖存數(shù)據(jù)電源:接 5V 電源。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第 3 章 方案選擇3.1 電源的選擇方案一:采用普通干電池作為 LED 系統(tǒng)的電源,由于點陣系統(tǒng)耗電量較大,點陣系統(tǒng)一般懸掛在高處上,一直不停的工作。使用干電池需經(jīng)常換電池,不符合節(jié)約型社會的要
13、求。方案二:采用一塊 LM7805 三端集成穩(wěn)壓器。把市電經(jīng)變壓器降壓輸入電路,而后整流送到 LM7805 三端穩(wěn)壓器穩(wěn)壓輸出作為工作電壓。不僅功率上可以滿足系統(tǒng)需要,不需要更換電源,并且比較輕便,使用更加安全可靠。方案三:采用 5V 電源的移動充電寶?;谝陨戏治?,決定選取 5V 電源的移動充電寶供電電源。3.2 3D 顯示核心控制器控制部分是整個系統(tǒng)的核心部分,其功能可以實現(xiàn)與上位機通信接收上位機發(fā)送的數(shù)據(jù)和控制指令經(jīng)處理過后控制顯示屏顯示內(nèi)容。其常用的電子設(shè)計方法有單片機、DSP、及 EDA 技術(shù)。3.2.1 單片機單片機是集成了 CPU,ROM,RAM 和 I/ O 口的微型計算機。它
14、有很強的接口性能,非常適合于工業(yè)控制,因此又叫微控制器(MCU)。單片機品種齊全,型號多樣 CPU 從 8,16,32 到 64 位,多采用 RISC 技術(shù),片上 I/O 非常豐富,有的單片機集成有 A/ D, “ 看門狗” ,PWM,顯示驅(qū)動,函數(shù)發(fā)生器,鍵盤控制等。它們的價格也高低不等,這樣極大地滿足了開發(fā)者的選擇自由。除此之外單片機還具有低電壓和低功耗的特點。隨著超大規(guī)模集成電路的發(fā)展,單片機在便攜式產(chǎn)品中大有用武之地。3.2.2 DSP 芯片DSP 又叫數(shù)字信號處理器。顧名思義,DSP 主要用于數(shù)字信號處理領(lǐng)域,非常適合高密度,重復(fù)運算及大數(shù)據(jù)容量的信號處理?,F(xiàn)在已經(jīng)廣泛應(yīng)用于通信、便
15、攜式計算機和便攜式儀表、雷達、圖像、航空、家用電器、醫(yī)療設(shè)備等領(lǐng)域。 DSP 區(qū)別于一般微處理器的另一重要標志是硬件乘法器以及特殊指令,一般微處理器用軟件實現(xiàn)乘精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)法,逐條執(zhí)行指令,速度慢。DSP 依靠硬件乘法器單周期完成乘法運算,而且還具有專門的信號處理指令。它的強大數(shù)據(jù)處理能力和高運行速度,是最值得稱道的兩大特色。芯片內(nèi)置 544 字的高速 SRAM。外部可尋址 64K 字程序/數(shù)據(jù)及 I/O,令周期在25ns50ns 之間,實時性處理比 16 位單片機快 2 倍以上,可取代一般的單片機。3.2.3 EDAEDA(即 Electronic Design
16、 Automation) 即電子設(shè)計自動化,它是以計算機為工具,在 EDA 軟件平臺上,對用硬件描述語言 HDL 完成的設(shè)計文件自動地邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至對于特定目標芯片進行適配編譯、邏輯影射和編程下載等。而且 MCU 和 DSP 都是通過串行執(zhí)行指令來實現(xiàn)特定功能,不可避免低速,而 FPGA/CPLD 則可實現(xiàn)硬件上的并行工作,在實時測控和高速應(yīng)用領(lǐng)域前景廣闊;另一方面,F(xiàn)PGA/CPLP 器件在功能開發(fā)上是軟件實現(xiàn)的,但物理機制卻和純硬件電路一樣,十分可靠?;谝陨戏治觯N設(shè)計方式相比較各有優(yōu)點且都能夠?qū)崿F(xiàn)控制功能,但單片機的技術(shù)門檻
17、較低開發(fā)成本也較低非常適合初學(xué)者進行學(xué)習(xí)和鍛煉使用?,F(xiàn)在市場上常用的單片機主要有 MCS-52、AVR、ARM、PIC 等。其中應(yīng)用最廣泛的單片機首推Intel 的 52 系列,由于產(chǎn)品硬件結(jié)構(gòu)合理,指令系統(tǒng)規(guī)范,加之生產(chǎn)歷史“悠久” ,有先入為主的優(yōu)勢常作為單片機學(xué)習(xí)的教材。所以決定選取 52 系列單片機作為控制部分的核心器件。3.3 I/O 口擴展芯片的選擇方案一:選取串口輸入并口輸出芯片 74LS164,雖然 I/O 口使用較少,由于本次設(shè)計共需要 72 路 I/O 口,列驅(qū)動電路就需要 8 塊 74LS164。顯示數(shù)據(jù)是先后順序給送去的,顯示會有延遲,而 LED 動態(tài)顯示的刷新的時間控
18、制大約 10ms,實時性差,效果不好。方案二:74HC573 跟 74LS573 的管腳一樣。器件的輸入是和標準 CMOS 輸出兼容的;加上拉電阻,他們能和 HC/ALSTTL 輸出兼容。當鎖存使能端為高時,這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同步) 。當鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。8 塊 74HC573 共用 64 個 I/O 口,數(shù)據(jù)可以并行寫入芯片,延遲時間少,滿足設(shè)計要求。綜合以上比較,決定選取 74HC573 作為列線驅(qū)動 IO 口擴展芯片。 3.4 LED 發(fā)光顯示二級管精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)LED 是一種固體光源,當它兩端加上
19、正向電壓時就可以發(fā)光。采用不同的材料,可制成不同顏色的發(fā)光二極管。作為一種新的光源,廣受歡迎而得以快速發(fā)展。從而在各種各樣的傳媒信息的宣傳中得以體現(xiàn)。簡述其分類方法如下。3.4.1 按顏色分類單基色顯示屏:單一顏色(紅色、綠色、黃色、藍色等等) 。雙基色顯示屏:紅和綠雙基色,256 級灰度、可以顯示 65536 種顏色。全彩色顯示屏:紅、綠、藍三基色,256 級灰度的全彩色顯示屏可以顯示一千六百多萬種顏色。3.4.2 按使用場合分類室內(nèi)顯示屏:發(fā)光點較小,一般 3mm-8mm,顯示面積一般零點幾至十幾平方米。 室外顯示屏:面積一般幾十平方米至幾百平方米,亮度高,可在陽光下工作,具有防風(fēng)、防雨、
20、防水功能。 3.4.3 按發(fā)光點直徑分類室內(nèi)屏:3mm、3。75mm、5mm。 室外屏:10mm、12mm、16mm、19mm、21mm、26mm。 基于以上分析結(jié)果,加上由于成本和控制的難易程度,決定選取單色 3mm 綠光LED 作為本次設(shè)計顯示色彩,亮度高,顯示效果很好。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第 4 章 焊接4.1 焊接前準備工作 準備好烙鐵、焊錫絲、鉗子等工具,以及 LED。LED 的正負極很好判別,長的引腳為+,短的為-。LED 最好選用直徑 3mm 的 LED,推薦選綠色。長腳的 LED 可以省很多工作量。實際測量長腳是 29mm,短腳為 27mm,由于 LED
21、光立方板子燈的間距決定了,每個 LED 的間距是 20mm。這樣長短引腳都符合這個尺寸。由于所有 LED框架焊接好后,一旦有 LED 損壞更換難度很大,所以焊接前要測試所有 LED,用一般數(shù)字顯示萬用表打到二極管量程,用萬用表紅表筆接長引腳,黑的接短引腳。LED正常發(fā)光并且亮度基本一致,這樣的 LED 就是好的,否則是壞燈。如果為了確??煽恳部梢院附雍靡粚雍鬁y試 LED 是否能點亮。4.2 焊接 將 8 個 LED 焊接為一組,可以通過 2 種方法完成。方法一:需要用鉗子將 LED 的正極扭彎,這個彎,一定要小,正好露出 LED 外圍打彎正合適,LED 的正極折彎后留下的引腳長度必須大于 LE
22、D 的間距 20mm,以確保有足夠的重合位 LED 燈腳全部折好后,就可以焊接了,為了方便焊接可以在萬能板上面鉆幾個 2mm 的孔,間距為 8 個洞洞置以便焊接。焊接細節(jié),將一個 LED 正極的引腳靠近到另一個 LED 正極的打彎處,然后上焊錫焊接,焊接要光亮可靠,有一定機械強度。這樣將全部 LED 焊接成 8 個一組的 LED 燈排待用。焊接時避免用過多助焊劑,要不會粘到 LED 表面,影響外觀。焊機避免正負 2 極短路。注意每一層的二極管都是共陰的。方法二:需要借助一個工藝設(shè)備,這個東西可以自己動手制作,用這個輔助焊接當然要容易些。焊接方法也是一樣的,將一個 LED 正極的引腳靠近到另一個
23、 LED 正極的打彎處,然后上焊錫焊接,焊接要光亮可靠,有一定機械強度。這樣將全部 LED焊接成 8 個一組的 LED 燈排待用。焊接小經(jīng)驗,由于 LED 燈腳有一定彈性,一個LED 的引腳靠近到另一個 LED 正極的打彎處時,一松手就又彈遠了,所以建議焊接時多掰一點,掰過了之后利用彈性將兩個要焊接的引腳 靠進,這樣焊接會容易許多。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè) 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第 5 章 程序設(shè)計的選擇與分析作為一種結(jié)構(gòu)化的程序設(shè)計語言,C 語言的特點就是可以使你盡量少地對硬件進行操作,具有很強的功能性、結(jié)構(gòu)性和可移植性,常常被優(yōu)選作為單片機系統(tǒng)的編程語
24、言。但是基于單片機的 C 語言和標準 C 語言有很大區(qū)別,如何結(jié)合單片機的系統(tǒng)資源,用 C 語言開發(fā)符合實際工程需要的單片機系統(tǒng),對用編程者來說具有十分重要的意義。5.1 單片機 C 語言主要特點用 C 編寫程序比匯編更符合人們的思考習(xí)慣,開發(fā)者可以擺脫與硬件無必要的接觸,更專心的考慮功能和算法而不是考慮一些細節(jié)問題,這樣就減少了開發(fā)和調(diào)試的時間。C 語言具有良好的程序結(jié)構(gòu),適用于模塊化程序設(shè)計,因此采用 C 語言設(shè)計單片機應(yīng)用系統(tǒng)程序時,首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計方法,將功能模塊化,由不同的模塊完成不同的功能1,這樣可使整個應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護。不同的功能模塊,分別指
25、定相應(yīng)的入口參數(shù)和出口參數(shù),對于一些要重復(fù)調(diào)用的程序一般把其編成函數(shù),這樣可以減少程序代碼的長度,又便于整個程序的管理,還可增強可讀性和移植性。在實際單片機程序設(shè)計中,程序結(jié)構(gòu)一般均采用如下結(jié)構(gòu):#include /*頭文件說明部份*/unsigned char x1,x2; /*全局變量聲明部份*/Function1( ) /*功能函數(shù)定義部份*/main() inti,j; /*整型變量聲明部份*/Function1(); /*功能函數(shù)說明部份*/5.2 單片機 C 語言與標準 C 語言的區(qū)別由于現(xiàn)在越來越多的產(chǎn)品都采用單片機開發(fā),所完成的計算和控制工作也日趨復(fù)雜,但是單片機系統(tǒng)是一種資源
26、十分有限的系統(tǒng),這主要表現(xiàn)在程序存儲器資源的不足,因此在程序設(shè)計時如何使用好這些有限的資源就顯得十分重要。用 C 語言編程雖精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)然具有許多的優(yōu)點,但是生成的代碼相對要長,要是編程技術(shù)不好,生成的代碼甚至有可能比匯編語言生成的代碼長幾倍,因此對編程者來說,應(yīng)該注意到單片機 C 語言和一般意義上的標準 C 語言的區(qū)別,對程序進行適當?shù)膬?yōu)化。5.3 數(shù)據(jù)類型的選用單片機 C 語言編程不同于一般的 C 語言編程的顯著的一個特點,就是要和程序存儲器資源結(jié)合起來,雖然其提供的數(shù)據(jù)據(jù)類型十分豐富,但是只有 bit 和 char 等數(shù)據(jù)類型是是機器語言直接支持的數(shù)據(jù)類型,
27、用此類數(shù)據(jù)類型的語句所生成的代碼較短;而其它的數(shù)據(jù)類型如整型、浮點型等數(shù)據(jù)要有一定的內(nèi)部程序或內(nèi)部函數(shù)的支持,相對來說用該類數(shù)據(jù)類型的語句生成的代碼要長。有些 C 語言程序表面上看起來十分的簡單,但在在實際編譯時,生成的代碼卻相當長。因此我們要按照實際需要,合理地選用數(shù)據(jù),可以大大的減少所生成的代碼長度。例如在 S52 中每種數(shù)據(jù)類型變量所占用存儲器字節(jié)數(shù)和經(jīng)編譯后生成的代碼長度如表 1 所示:通過表 1 我們知道,不同的數(shù)據(jù)類型所生成的機器代碼長度相差很多,相同類型的數(shù)據(jù)類型有無符號對機器代碼長度也有影響。在程序編譯時生成機器代碼長的數(shù)據(jù)類型的優(yōu)先級越高,不同的數(shù)據(jù)類型在進行程序運算時要轉(zhuǎn)化
28、為高優(yōu)先級的的數(shù)據(jù)類型,相應(yīng)的代碼長度也會增長2。因此我們應(yīng)盡可能地使用 bit,char 等機器語言直接支持的數(shù)據(jù)類型,無符號數(shù)的變量應(yīng)聲明為無符號數(shù),盡可能地減少程序中使用的數(shù)據(jù)類型的種類。5.4 算法設(shè)計問題單片機 C 語言和標準 C 語言存在著很大差別,在計算機上進行 C 語言程序設(shè)計時由于不必考慮程序代碼的長短,只需考慮程序功能實現(xiàn),但是在單片機上進行 C 語言程序設(shè)計就必須考慮系統(tǒng)的硬件資源。有時并不是程序的算法越簡單、長度越短越好,因為有一些算法要調(diào)用一些內(nèi)部的子程序和函數(shù),生成的機器代碼長度非常長。不同的算法對程序代碼長度影響十分大,因此在進行程序設(shè)計時,就盡量采用程序生成代碼
29、短的算法,在不影響程序功能實現(xiàn)的情況下可以采用一些優(yōu)化算法2。在單片機 C 語言編譯成機器代碼時,不同的運算生成的機器代碼的長度相差很大,盡可能地減少程序中對某種數(shù)據(jù)類型的運算種類,越復(fù)雜的數(shù)據(jù)類型效果越明顯。在進行數(shù)據(jù)計算時,在一定的精度范圍內(nèi),可以用一些近似的計算來完成一些運算,既不損失精度又能減少大量的代碼。比如:用邏輯 AND/&取模比 MOD/%操作更有效。在用熱敏電阻測量溫度時,可根據(jù)熱敏電阻溫度特性公式來求值。數(shù)學(xué)表達式表示為:RT=RT0expB(1/T-1/T0)如果直接按照公式溫度時程序結(jié)構(gòu)簡單,算法復(fù)雜度不高,但是程序?qū)⒄{(diào)用精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專
30、業(yè)文件中的對數(shù)函數(shù),在編譯成機器碼時函數(shù)有 1K 多字節(jié),對于一般只有幾K 字節(jié)的單片機系統(tǒng)來說,這是十分不合適的??紤]到系統(tǒng)資源問題可以用一種替代方法查表法來實現(xiàn)算法。只要給出一定溫度范圍內(nèi)不同溫度值對應(yīng)熱敏電阻的電阻值,然后建立表格,只要按照系統(tǒng)求出的阻值,進行查表,插值,就可以求出相應(yīng)的溫度值。這種算法相比前面的的公式法的算法復(fù)雜高,C 語言程序代碼也長,但在編譯成機器碼時,代碼長度卻很短,只有一、二百字節(jié)。5.5 數(shù)據(jù)存儲器的分配單片機內(nèi)部數(shù)據(jù)存儲器 RAM 只有幾百字節(jié),如果擴展外部存儲器 RAM 來提高數(shù)據(jù)存儲量話必將會增加了硬件成本,使系統(tǒng)更加的復(fù)雜,訪問外部存儲器比訪問內(nèi)部存儲
31、器所需的代碼也要長得多。有效地使用片內(nèi)存儲器、提高存儲器空間的利用率對開發(fā)者來說十分關(guān)鍵。內(nèi)部處理器、內(nèi)部堆棧、壓縮棧、所有程序變量和所有包含進來的庫函數(shù)都將使用數(shù)量有限的內(nèi)部數(shù)據(jù)存儲器 RAM。因為 C 語言采用了存儲器的覆蓋技術(shù)2,可以在程序進行連接時,它將那些已經(jīng)被其它程序段釋放了的存儲器空間重新定義給另一個程序段的變量使用,當這個程序運行結(jié)束時再將這些存儲器釋放以供其它程序段使用。全局變量的作用范圍是整個程序,因此不能被釋放;靜態(tài)變量由于在函數(shù)的調(diào)用中專用不變,也不能被釋放;只有局部變量中的動態(tài)變量可以被釋放。因此在進行程序設(shè)計時應(yīng)該盡量的使用局部變量,提高內(nèi)部數(shù)據(jù)存儲器的使用率。在
32、C 語言中程序中間結(jié)果及參數(shù)傳傳遞是通過內(nèi)部的寄存器來完成的,要是內(nèi)部的存儲器不夠,將會給你的程序帶來許多莫名其妙的錯誤。例如在進行程序設(shè)計時語句不應(yīng)該太長,一個長語句可以分成多個語句,這樣的話可以大的減少中間變量,當然太長時就會造成臨時寄存器的不夠用,導(dǎo)致計算出錯。5.6 單片機 C 語言與匯編語言的混合編程在絕大多數(shù)場合采用 C 語言編程即可完成預(yù)期的目的,但是對實時時鐘系統(tǒng)、要求執(zhí)行效率高的的系統(tǒng)就不適合采用 C 語言編程,對這些特殊情況進行編程時要結(jié)合匯編語言。匯編語言具有直接和硬件打道、執(zhí)行代碼的效率高等特點,可以做到 C 語言所不能做到的一些事情,例如對時鐘要求很嚴格時,使用匯編語
33、言成了唯一的選擇。這種混合編程2的方法將 C 語言和匯編語言的優(yōu)點結(jié)合起來,已經(jīng)成為目前單片機開發(fā)最流行的編程方法。目前大多數(shù)據(jù)單片機系統(tǒng),在 C 語言中使用匯編語言有兩種情況:一種是匯編程序部分和 C 程序部分為不同的模塊,或不同的文件,通常由 C 程序調(diào)用匯編程序模塊的變量和函數(shù)(也可稱為子程序或過程);另一種是嵌入式匯編,即在 C 語言程序中嵌精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)入一段匯編語言程序。當匯編程序和 C 程序為不同模塊時程序一般可分為若于個 C 程序模塊和匯編程序模塊,C 程序模塊通常是程序的主體框架,而匯編程序模塊通常由用 C 語言實現(xiàn)效率不高的函數(shù)組成,也可以是已經(jīng)
34、成熟的、沒有必要再轉(zhuǎn)化成 C 語言的匯編子程序。在這種混合編程技術(shù)中,關(guān)鍵是參數(shù)的傳遞和函數(shù)的返回值。它們必須有完整的約定,否則數(shù)據(jù)的交換就可能出錯。對于嵌入式匯編,可以在 C 程序中使用一些關(guān)鍵字嵌入下些匯編程序,這種方法主要用于實現(xiàn)數(shù)學(xué)運算或中斷處理,以便生成精練的代碼,減少運行時間。當匯編函數(shù)不大,且內(nèi)部沒有復(fù)雜的跳轉(zhuǎn)時,可以用嵌入式匯編實現(xiàn)。AT89S52 單片機內(nèi)置模擬比較器,13 腳即 P1.1 是比較器的負輸入端,12 腳即 P1.0是比較器的正輸入端,比較器的輸出端做在了 CPU 內(nèi)部即 P3.6 未被引出,CPU 可以直接讀取 P3.6 狀態(tài)來判定兩輸入端比較的結(jié)果其和一個外
35、部電阻及一個外部電容器就可以設(shè)計成一個 A/D 轉(zhuǎn)換器,采用 RC 模擬轉(zhuǎn)換的原理,來檢測外部 P1.1 引腳的輸入電壓。由于系統(tǒng)對時鐘要求很嚴格,因此就采用了 C 語言和匯編語言混合編程技術(shù),程序調(diào)用形式如下:匯編子程序: PUBLIC _AD ;入口地址 con SEGMENT CODE ;程序段 RSEG con _AD: SETB P3.7 ;充電 Loop: JB P3.6,AD_END ;開始計數(shù)匹配 INC A CJNE A,#100,Loop AD_END: CLR P3.7; 放電 CJNE A,#100,Ret_Val ;看結(jié)果是否有溢出,有溢出說明結(jié)果不對 SJMP Co
36、n_OV;返回值 Ret_Val:DEC A MOV R7, A; A/D 轉(zhuǎn)換的結(jié)果保存在 R7 中,傳遞給主程序 Con_OV: RET END單片機 C 程序:includeunsigned char AD(unsigned char);/在 C 程序中聲明匯編模數(shù)轉(zhuǎn)換子程序void timer0(void) interrupt 1 using 1 精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)unsigned char x; x=AD(); /在 C 程序中調(diào)用匯編程序 Main /主程序在以上程序中,函數(shù)的返回值為一無符號字符型數(shù),根據(jù)調(diào)用規(guī)則,返回值在 R7中,這樣才可保證數(shù)據(jù)的傳遞不
37、出錯。另外,在調(diào)用過程中,必須注意寄存器的入棧。這樣在以后用到 A/D 轉(zhuǎn)換時,在 C 語言中調(diào)用匯編語言子程序 AD()即可。5.7 程序分析選擇C 語言具有很強的功能性和結(jié)構(gòu)性,可以縮短單片機控制系統(tǒng)的開發(fā)周期,而且易于調(diào)試和維護,已經(jīng)成為目前單片機語言中最流行的編程語言。所以本設(shè)計選取 C語言作為編輯語言。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)第 6 章 電路調(diào)試與總結(jié)完工以后抱著很激動的心情,編寫了調(diào)試的程序,主要是檢查全部的燈是否會亮,但是單把程序燒寫進去之后,發(fā)現(xiàn)有兩列沒有點亮,還好兩列的都在邊上,進而如果換燈也相對容易,我們用排除法來檢查電路,首先是檢查燈的線路是否虛焊,斷路
38、,果真有一列的是斷路了,把它接上后這一列也亮了,還剩下另外一列,我們用同樣的方法來做,從驅(qū)動電路到顯示的都沒有問題,而且在輸入那一列的電壓也正常,我們就想不通了,是什么原因呢?我們懷疑是不是有燈壞了,我們又一個一個的檢查了這一列燈,但是全部都會亮,經(jīng)過很細心的檢查,發(fā)現(xiàn)有一個燈的亮度和其他的燈亮度完全不同,相對比較暗,于是我們把它換了下來,接上另外一個,果然是哪個燈的問題,原來是由于燈的阻抗很大,把那一列的電平都拉低了,使燈無法亮起來 ,在電路的調(diào)試中就出現(xiàn)了這些的問題,相對來說還是不錯的。經(jīng)過這次的課程項目設(shè)計,我們更明確了團隊合作的是要領(lǐng)和精神,再次再一次感謝老師對我們的幫助,在以后我們會
39、做的更好。精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)參考文獻1張毅坤,陳善久,裘雪紅. 單片微型計算機原理及應(yīng)用.西安電子科技大學(xué)出版社.2008 年 5 月2 華成英,童詩白. 模擬電子技術(shù)基礎(chǔ).高等教育出版社,2007 年 8 月3 趙輝,劉印華 . PROTEL 99 電子線路 CAD.北京郵電大學(xué)出版社.2008年精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)附錄 程序代碼#include#define uchar unsigned charuchar t,i,k,a,s;sbit d1=P04;sbit d2=P06;sbit q0=P00;sbit q1=P01;sbit q2=P02
40、;sbit q3=P03;sbit key=P05;void delay(uchar z)uchar x,y;for(x=z;x0;x-)for(y=11;y0;y-);void yi()P0=0 xff;d1=0;d2=1;P2=0 xa5;delay(8);P2=0 xb5;delay(8);P2=0 xc5;delay(8);P2=0 xd5;delay(8);P2=0 xe5;delay(8);P2=0 xf5;delay(8);void er()P0=0 xff;d1=1;d2=0;P2=0 x00;delay(8);P2=0 x03;delay(8);P2=0 x04;delay(
41、8);P2=0 x07;delay(8);P2=0 x0e;delay(8);P2=0 x0e;delay(8);P2=0 x0f;delay(8);d1=0;d2=1;精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)P2=0 x00;delay(8);P2=0 x10;delay(8);P2=0 x20;delay(8);P2=0 x30;delay(8);P2=0 x50;delay(8);P2=0 x90;delay(8);P2=0 xa0;delay(8);P2=0 xc0;delay(8);P2=0 xf0;delay(8);void san()P0=0 xff;d1=1;d2=0;P2=
42、0 x00;delay(8);P2=0 x03;delay(8);P2=0 x04;delay(8);P2=0 x07;delay(8);P2=0 x0e;delay(8);d1=0;d2=1;P2=0 x00;delay(8);P2=0 x10;delay(8);P2=0 x20;delay(8);P2=0 x30;delay(8);P2=0 x40;delay(8);P2=0 x50;delay(8);P2=0 x90;delay(8);P2=0 xa0;delay(8);P2=0 xc0;delay(8);P2=0 xf0;delay(8);void si()P0=0 xff;d1=1;
43、d2=0;P2=0 x00;delay(8);P2=0 x01;delay(8);P2=0 x02;delay(8);P2=0 x03;delay(8);P2=0 x07;delay(8);d1=0;d2=1;P2=0 x00;delay(8);P2=0 x10;delay(8);P2=0 x20;delay(8);P2=0 x30;delay(8);P2=0 x40;delay(8);P2=0 x50;delay(8);P2=0 xc0;delay(8);void qi()P0=0 xff;d1=1;d2=0;P2=0 x03;delay(8);P2=0 x04;delay(8);d1=0;
44、d2=1;P2=0 x00;delay(8);P2=0 x10;delay(8);P2=0 x20;delay(8);P2=0 x30;delay(8);P2=0 x40;delay(8);P2=0 x50;delay(8);P2=0 xf0;delay(8);void ba()P0=0 xff;d1=1;d2=0;P2=0 x00;delay(8);P2=0 x01;delay(8);P2=0 x02;delay(8);P2=0 x03;delay(8);P2=0 x04;delay(8);P2=0 x07;delay(8);P2=0 x0e;delay(8);精選優(yōu)質(zhì)文檔-傾情為你奉上專心
45、-專注-專業(yè)P2=0 x0e;delay(8);P2=0 x0f;delay(8);d1=0;d2=1;P2=0 x00;delay(8);P2=0 x10;delay(8);P2=0 x20;delay(8);P2=0 x30;delay(8);P2=0 x40;delay(8);P2=0 x50;delay(8);P2=0 x90;delay(8);P2=0 xa0;delay(8);P2=0 xc0;delay(8);P2=0 xf0;delay(8);void jiu()P0=0 xff;d1=1;d2=0;P2=0 x00;delay(8);P2=0 x01;delay(8);P2=
46、0 x02;delay(8);P2=0 x03;delay(8);P2=0 x04;delay(8);P2=0 x07;delay(8);P2=0 x0e;delay(8);P2=0 x0e;delay(8);d1=0;d2=1;P2=0 x00;delay(8);P2=0 x10;delay(8);P2=0 x20;delay(8);P2=0 x30;delay(8);P2=0 x40;delay(8);P2=0 x50;delay(8);P2=0 x90;delay(8);P2=0 xa0;delay(8);P2=0 xc0;delay(8);P2=0 xf0;delay(8);void
47、bayiqi()switch(t)case 0: P0=0 xff;P2=0 xfe;ba();break;delay(1);case 1: P2=0 xfd;ba();break;delay(1);case 2: P2=0 xfb;ba();break;delay(1);case 3: P2=0 xf7;ba();break;delay(1);case 4: P2=0 xef;ba();break;delay(1);case 5: P2=0 xf7;ba();break;delay(1);case 6: P2=0 xfb;ba();break;delay(1);case 7: P2=0 xf
48、d;ba();break;delay(1);case 8: P2=0 xfe;ba();break;delay(1);case 9: P2=0 xfe;yi();break;delay(1);case 10: P2=0 xfd;yi();break;delay(1);case 11: P2=0 xfb;yi();break;delay(1);case 12: P2=0 xf7;yi();break;delay(1);case 13: P2=0 xef;yi();break;delay(1);case 14: P2=0 xf7;yi();break;delay(1);精選優(yōu)質(zhì)文檔-傾情為你奉上專
49、心-專注-專業(yè)case 15: P2=0 xfb;yi();break;delay(1);case 16: P2=0 xfd;yi();break;delay(1);case 17: P2=0 xfe;yi();break;delay(1);case 18: P2=0 xfe;qi();break;delay(1);case 19: P2=0 xfd;qi();break;delay(1);case 20: P2=0 xfb;qi();break;delay(1);case 21: P2=0 xf7;qi();break;delay(1);case 22: P2=0 xef;qi();brea
50、k;delay(1);case 23: P2=0 xf7;qi();break;delay(1);case 24: P2=0 xfb;qi();break;delay(1);case 25: P2=0 xfd;qi();break;delay(1);case 26: P2=0 xfe;qi();break;delay(1);void yisanyisi()switch(t)case 0: P0=0 xff;P2=0 xfe;yi();break;delay(1);case 1: P2=0 xfd;yi();break;delay(1);case 2: P2=0 xfb;yi();break;d
51、elay(1);case 3: P2=0 xf7;yi();break;delay(1);case 4: P2=0 xef;yi();break;delay(1);case 5: P2=0 xf7;yi();break;delay(1);case 6: P2=0 xfb;yi();break;delay(1);case 7: P2=0 xfd;yi();break;delay(1);case 8: P2=0 xfe;yi();break;delay(1);case 9: P2=0 xfe;yi();break;delay(1);case 10: P2=0 xfd;san();break;del
52、ay(1);case 11: P2=0 xfb;san();break;delay(1);case 12: P2=0 xf7;san();break;delay(1);case 13: P2=0 xef;san();break;delay(1);case 14: P2=0 xf7;san();break;delay(1);case 15: P2=0 xfb;san();break;delay(1);case 16: P2=0 xfd;san();break;delay(1);case 17: P2=0 xfe;san();break;delay(1);精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)
53、case 18: P2=0 xfe;yi();break;delay(1);case 19: P2=0 xfd;yi();break;delay(1);case 20: P2=0 xfb;yi();break;delay(1);case 21: P2=0 xf7;yi();break;delay(1);case 22: P2=0 xef;yi();break;delay(1);case 23: P2=0 xf7;yi();break;delay(1);case 24: P2=0 xfb;yi();break;delay(1);case 25: P2=0 xfd;yi();break;delay(1);case 26: P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同違約責(zé)任及典型案例分析
- 家庭用工合同模板參考范本
- 篇二:購房合同范本規(guī)范
- 室內(nèi)防水改造合同范本
- 定制旅行服務(wù)協(xié)議合同
- 房地產(chǎn)開發(fā)施工合同樣本
- 金融市場中銀行承兌質(zhì)押合同的法律效力
- 兼職市場拓展合同樣本
- 發(fā)射設(shè)備在極端環(huán)境下的穩(wěn)定性檢測考核試卷
- 塑膠跑道材料的生產(chǎn)工藝與質(zhì)量控制考核試卷
- 行為規(guī)范教育中學(xué)校長在國旗下講話:嚴格要求自己規(guī)范自己的行為
- 2024年12月廣東廣州市港務(wù)局直屬事業(yè)單位引進緊缺專業(yè)人才8人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 七下綜合世界真奇妙-共享“地球村”
- DBJ50-T-100-2022 建筑邊坡工程施工質(zhì)量驗收標準
- 2025年寧夏工商職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- DB11-T 1004-2023 房屋建筑使用安全檢查評定技術(shù)規(guī)程
- 《藝術(shù)與傳播》課件
- 烹飪安全知識培訓(xùn)課件
- 2025年湖北宜昌枝江金潤源集團招聘17人高頻重點提升(共500題)附帶答案詳解
- 2023CSCO兒童及青少年白血病診療指南
- 初中物理競賽及自主招生專題講義:第8講 電路 (共5節(jié))含解析
評論
0/150
提交評論