第6章__AT89C51單片機綜合設計_第1頁
第6章__AT89C51單片機綜合設計_第2頁
第6章__AT89C51單片機綜合設計_第3頁
第6章__AT89C51單片機綜合設計_第4頁
第6章__AT89C51單片機綜合設計_第5頁
已閱讀5頁,還剩85頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第6章 AT89C51單片機綜合設計v6.1 單片機間的多機通信6.1.1 Proteus電路設計6.1.2 Proteus調試與仿真6.1.3 總結與提示v6.2 I2C總線應用技術6.2.1 Proteus電路設計6.2.2 Proteus調試與仿真6.2.3 用I2C調試器監(jiān)視I2C總線6.2.4 總結與提示v6.3 基于單片機控制的電子萬年歷6.3.1 設計任務及要求6.3.2 設計背景6.3.3 電路設計6.3.4 系統(tǒng)硬件實現(xiàn)v6.4 基于DS18B20的水溫控制系統(tǒng)6.4.1 Proteus電路設計6.4.2 Proteus調試與仿真v6.5 基于單片機的2424點陣LED漢字顯

2、示6.5.1 設計任務及要求6.5.2 設計背景簡介6.5.3 電路設計6.5.4 系統(tǒng)硬件實現(xiàn)6.5.5 系統(tǒng)仿真vProteus是目前最好的模擬單片機外圍器件的工具,與其他單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其他電路的工作情況。因此在仿真和調試程序時,關心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗,從某種意義上講,解決了實驗和工程應用間脫節(jié)的矛盾。6.1 單片機間的多機通信單片機間的多機通信v內容v三個AT89C51單片機間進行“1主2從”多機

3、通信,主機可以將其數(shù)碼管顯示的內容發(fā)送給每個從機,也可以采集每個從機數(shù)碼管顯示的數(shù)值并求和后顯示出來,每個單片機的數(shù)碼管顯示值可以通過外接的按鍵進行設置。v訓練目的v掌握MCS-51單片機間進行多機通信的實現(xiàn)方法。6.1.1 Proteus電路設計電路設計v1. 元件清單列表v打開Proteus ISIS編輯環(huán)境,按表6-1所列的清單添加元件。 表表 6-1 元件清單元件清單v2. 電路原理圖v元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-1和圖6-2所示的主、從機電路原理圖(晶振和復位電路略)連接硬件電路。 圖6-1 主機部分電路原理圖圖6-2 從機部分電路原理圖6.1.2

4、Proteus調試與仿真調試與仿真參照5.3.3節(jié)建立程序文件,加載目標代碼文件,在Proteus ISIS界面中,單擊按鈕 啟動仿真。主機操作如下:(1) 每按下“加1”鍵,數(shù)碼管顯示值加1,對應左邊的數(shù)碼管顯示“7”;(2) 每按下“匯總數(shù)據(jù)”鍵,主機數(shù)碼管顯示值變?yōu)閺臋C1的顯示值+從機2的顯示值之和,對應左邊的數(shù)碼管顯示“5”;(3) 每按下“發(fā)送數(shù)據(jù)”鍵,各從機的數(shù)碼管顯示值均變?yōu)橹鳈C數(shù)碼管所顯示的數(shù)值,對應左邊的數(shù)碼管顯示“3”。v從機操作如下:v(1) 每按下“加1”鍵,數(shù)碼管顯示值加1;v(2) 運行中的數(shù)碼管顯示值隨主機的操作而發(fā)生改變。v仿真運行片段如圖6-3和圖6-4所示。

5、仿真過程中可單擊 按鈕暫停仿真,從“Debug”菜單中調出各個單片機的“8051 CPU Registers”窗口來觀察各單片機運行中相關寄存器的工作狀態(tài),如圖6-4所示。圖6-3 仿真運行片段1圖6-4 仿真運行片段26.1.3 總結與提示總結與提示v在仿真剛開始的幾秒鐘,仿真系統(tǒng)還未完全就位,仿真結果可能會不正常,稍停一會兒便可正常運行;v可將從機的串口工作方式改為采用中斷方式進行編程和仿真實驗。6.2 I2C總線應用技術總線應用技術v內容vI2C總線是一種用于IC器件之間的二線制總線。它通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送消息,并根據(jù)地址識別每個

6、器件。本例使用串口通信I2C存儲器24C01擴展AT89C51單片機的數(shù)據(jù)存儲器,完成讀寫操作。v訓練目的v學習使用Proteus設計并仿真I2C器件擴展單片機存儲器的方法;v掌握單片機進行I2C通信的編程方法;v學會使用Proteus VSM虛擬I2C調試器。6.2.1 Proteus電路設計電路設計v1. 元件清單列表v打開Proteus ISIS編輯環(huán)境,按表6-2所列的清單添加元件。表表 6-2 元件清單元件清單v2. 電路原理圖v元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-5所示的原理圖(晶振和復位電路略)連接硬件電路。 圖6-5 電路原理圖6.2.2 Proteu

7、s調試與仿真 v參照5.3.3節(jié)建立程序文件,加載目標代碼文件,執(zhí)行以下操作:v(1) 在Proteus ISIS界面中,單擊按鈕啟動仿真;v(2) 仿真過程中單擊按鈕暫停仿真,從“Debug”菜單中調出“8051 CPU Internal (IDATA) Memory”窗口和“I2C Memory Internal Memory-U2”窗口,觀察單片機內部數(shù)據(jù)存儲器和24C01存儲器相關單元的狀態(tài)變化,如圖6-6所示。 圖6-6 仿真暫停時程序運行的中間結果6.2.3 用用I2C調試器監(jiān)視調試器監(jiān)視I2C總線總線v1. 在電路中添加I2C調試器v在工具欄單擊按鈕,再在對象選擇器中選擇“I2C

8、 DEBUGGER”。將其中兩引腳與單片機連接,其中SCL接P3.0,SDA接P3.1。v2. 仿真監(jiān)視v從圖6-6中的I2C調試器窗口可以看到I2C總線在循環(huán)讀/寫,窗口的左上角區(qū)域,記錄了總線上的所有活動,其中向左的藍箭頭表示I2C調試器作為從器件監(jiān)視總線上的活動。單擊“+”,可顯示詳細的數(shù)據(jù),以字節(jié),甚至以位的形式顯示。其中:v第一行內容是單片機向24C01存儲器寫數(shù)據(jù)過程,其時序為S、A0、A、地址(30H)、A、數(shù)據(jù)1、A、數(shù)據(jù)2、A、數(shù)據(jù)16、A、P;v第二行內容是單片機從24C01存儲器讀數(shù)據(jù)過程,其時序為S、A0、A、地址(30H)、A、Sr、A1、A、數(shù)據(jù)1、A、數(shù)據(jù)16、N

9、、P。v3. I2C通信讀/寫操作序列中的專用字符vI2C通信讀/寫操作序列中的專用字符,如表6-3所示。表表6-3 I2C讀讀/寫操作序列中的專用字符含義寫操作序列中的專用字符含義6.2.4 總結與提示總結與提示v本例中,如果將AT89C51單片機的時鐘頻率設置為12MHz,則應將24C01屬性中的TD_WRITE=1m項改為TD_WRITE=0.5m。具體步驟為:雙擊24C01元件,打開其屬性編輯框,選中“Edit all properties as text”項,然后進行修改。6.3 基于單片機控制的基于單片機控制的電子萬年歷電子萬年歷6.3.1 設計任務及要求設計任務及要求v1. 設計

10、題目v基于單片機的萬年歷。v2. 設計要求與目的v利用單片機、時鐘芯片、溫度傳感器、數(shù)碼管等實現(xiàn)日期、時間、溫度的顯示即一個簡單的萬年歷;v萬年歷的設計是幾個簡單模塊的組合,硬件上是這樣,軟件上也是這樣,要熟悉這種模塊化的設計思路;v通過萬年歷的設計要掌握好對Proteus仿真設計的熟練使用;v通過萬年歷的設計要熟練掌握單片機的各個功能,并且能對單片機有一個總體的把握,在設計的過程中能夠憑借對單片機各功能的了解,達到理想的設計效果;v本例使用了時鐘芯片DS1302、溫度傳感器DS18B20和74HC164,通過對單片機的學習能夠對它們觸類旁通。v3. 設計任務v設計系統(tǒng)硬件;v設計系統(tǒng)軟件;v

11、編寫設計說明書。6.3.2 設計背景設計背景v在生活中,我們經(jīng)常能看到各種各樣的制作精美的萬年歷,萬年歷大有取代常規(guī)鐘表的趨勢。隨著人們生活水平的提高,智能產品越來越受到人們的歡迎。而單片機、傳感器及各種集成電路起到關鍵作用。希望通過本設計能夠對未來的趨勢有所把握,從而適應社會需要。6.3.3 電路設計電路設計v萬年歷大體可以分為三大模塊,74HC164與數(shù)碼管的顯示模塊、DS1302時鐘芯片與單片機的時鐘模塊和DS18B20與單片機的溫度模塊。v單片機在5V電壓下,各個模塊正常工作。單片機從DS1302芯片中讀出一組時間日期數(shù)據(jù),同時單片機通過DS18B20溫度傳感器獲得當前溫度并且發(fā)送給單

12、片機。單片機接收到各個數(shù)據(jù)時,利用串行通信原理把數(shù)據(jù)按照一定的順序發(fā)送給74HC164。74HC164移位到最后一個數(shù)碼管后,把各個數(shù)據(jù)顯示出來。v1. 74HC164芯片相關知識v(1) 74HC164簡介v74HC164是一種8位串行輸入并行輸出的移位寄存器。它是高速硅門 CMOS 器件,與低功耗肖特基型 TTL (TTL LS) 器件的引腳兼容。74HC164、74HCT164 是 8 位邊沿觸發(fā)式移位寄存器,串行輸入數(shù)據(jù),然后并行輸出。數(shù)據(jù)通過兩個輸入端之一(DSA 或 DSB)串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數(shù)據(jù)輸入。兩個輸入端或者連接在一起,或者把不用的輸

13、入端接高電平,一定不要懸空。時鐘(CP)每次由低變高時,數(shù)據(jù)右移一位,輸入到 Q0,Q0是兩個數(shù)據(jù)輸入端 (DSA和DSB)的邏輯與,它在上升時鐘沿之前保持一個建立時間的長度。主復位 (MR) 輸入端上的一個低電平將使其他所有輸入端都無效,同時非同步地清除寄存器,強制所有的輸出為低電平。v(2) 74HC164的引腳功能v74HC164的引腳功能如圖6-7、圖6-8和表6-4所示。 圖6-7 74HC164的引腳圖 圖6-8 74HC164的IEC邏輯符號表6-4 64HC164的引腳說明v2. DS1302芯片相關知識v(1) DS1302簡介vDS1302是DALLAS公司推出的一種高性能

14、、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、星期、時、分、秒進行計時,且具有閏年補償功能,工作電壓為2.55.5V。DS1302采用三線接口,與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時間數(shù)據(jù)或RAM數(shù)據(jù)。DS1302內部有一個318的用于臨時性存放數(shù)據(jù)的RAM存儲器。v(2) DS1302的引腳功能vDS1302的引腳功能如圖6-9及表6-5所示。 圖6-9 DS1302的DIP封裝圖 表6-5 DS1302的引腳功能 DS1302 Vcc2 X1 X2 GND Vcc1 SCLK I/O CE 1 2 3 4 8 7 6 5 v(3) 控制字格式v控制字格式如表6-

15、6所示??刂谱肿罡呶槐仨毷?,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中,位6如果為0則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位51指示操作單元的地址;最低位為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 表6-6 控制字格式v(4) 復位和時鐘控制vDS1302通過把RST輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供了終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中置RST為低電平,則會終止此數(shù)

16、據(jù)傳送,并且I/O引腳變?yōu)楦咦锠顟B(tài)。上電運行時,在VCC2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。v(5) DS1302寄存器v7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字如表6-7所示。表6-6 DS1302寄存器日歷、時間寄存器及其控制字v時鐘與日歷暫停。v時鐘與日歷包含在七個寫/讀寄存器中,采用BCD碼形式。秒寄存器的位7(CH)為時鐘暫停位,為1時,時鐘振蕩停止,DS1302為低功率的備份方式,當為0時,時鐘將啟動。vAM-PM/12-24方式。v小時寄存器的位7定義為12/24小時方式選擇位。為高電平

17、,選擇12小時方式。在12小時方式下,位5是AM/PM位,此位為高電平時表示PM。在24小時方式下,位5是第二個10小時位(2023時)。v寫保護寄存器。v寫保護寄存器的位7是寫保護位。開始七位(位06)置為0,在讀操作時總是讀出0。在對時鐘或RAM進行寫操作之前,位7必須為0。當為高電平時,寫保護防止對任何其他寄存器進行寫操作。v慢速充電寄存器。v這個寄存器控制DS1302的慢速充電特征。慢速充電選擇位(TCS)控制慢速充電器的選擇。為了防止偶然的因素使之工作,只有1010模式才能使慢速充電器工作,所有其他模式將禁止慢速充電器。 DS1302上電時,慢速充電器被禁止。二極管選擇位(DS)選擇

18、一個還是兩個二極管連接在VCC1與VCC2之間。如果DS為01選擇一個,如果DS為10選擇兩個。如果DS為00或11,那么充電器被禁止,與TCS無關。RS選擇連接在VCC1與VCC2之間的電阻。RS為00無電阻,為01用2K,為10用4K,為11用8K。v時鐘/日歷多字節(jié)方式。v時鐘/日歷命令字節(jié)可規(guī)定多字節(jié)方式,在此方式下,最先八個時鐘/日歷寄存器可以從地址0位開始連續(xù)地讀寫。當指定寫時鐘/日歷為多字節(jié)方式時,如果寫保護位被設置為高電平,那么沒有數(shù)據(jù)會傳送到八個時鐘/日歷寄存器的任一個。在多字節(jié)方式下,慢速充電器是不可訪問的。vDS1302還有充電寄存器,時鐘突發(fā)寄存器及與RAM相關的寄存器

19、等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共有31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H-FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的控制寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。v3. DS18B20芯片相關知識v(1) DS18B20簡介vDS18B20是由美國DALLAS公司生產的單線數(shù)字溫度傳感器芯片。與傳統(tǒng)的熱敏電阻有所不同,DS18B20可直接將被測溫度轉化為串行數(shù)字信號,以供單片機處理,它還具有微型化、低功率、

20、高性能、抗干擾能力強等優(yōu)點。通過編程,DS18B20可以實現(xiàn)912位的溫度讀數(shù)。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出,因此從微處理器到DS18B20僅需連接一條信號線和地線。讀、寫和執(zhí)行溫度變換所需的電源可以由數(shù)據(jù)線本身提供,而不需要外部電源。 v(2) DS18B20的引腳功能vDS18B20的引腳(圖7-10),其功能如表7-8所示。 表6-8 DS18B20的引腳說明 DALLAS DS18B20 1 2 3 GND DQ Vcc 圖6-10 DS18B20的引腳v(3) DS18B20的主要特點v采用單線技術,與單片機通信只需一個引腳;v通過識別芯片各自唯一的產品序

21、列號從而實現(xiàn)單線多掛接,簡化了分布式溫度檢測的應用;v實際應用中不需要外部任何器件即可實現(xiàn)測溫;v可通過數(shù)據(jù)線供電,電壓的范圍在35.5V;v不需要備份電源;v測量范圍為-55+125,在-10+85范圍內誤差為0.5;v數(shù)字溫度計的分辨率用戶可以在9位到12位之間選擇,可配置實現(xiàn)912位的溫度讀數(shù);v將12位的溫度值轉換為數(shù)字量所需時間不超過750ms;v用戶定義的,非易失性的溫度告警設置,用用戶可以自行設定告警的上下限溫度。v(4) 單總線技術v單總線協(xié)議保證了數(shù)據(jù)可靠的傳輸,任一時刻總線上只能有一個控制信號或數(shù)據(jù)。一次數(shù)據(jù)傳輸可分為以下四個操作過程:v初始化,傳送ROM命令,傳送RAM命

22、令,數(shù)據(jù)交換。v單總線上所有的處理都從初始化開始。初始化時序是由一個復位脈沖(總線命令者發(fā)出)和一個或多個從者發(fā)出的應答信號(總線從者發(fā)出)組成。應答脈沖的作用是:從器件讓總線命令者知道該器件是在總線上的,并準備好開始工作。當總線命令者檢測到某器件存在時,首先發(fā)送七個ROM功能中的一個命令: v讀ROM(總線上只有一個器件時,即讀出其序列號);v匹配ROM(總線上有多個器件時,尋址某一個器件);v查找ROM(系統(tǒng)首次啟動后,須識別總線上的各器件);v跳過ROM(總線上只有一個器件時,可跳過讀ROM命令直接向器件發(fā)送命令,以節(jié)省時間);v超速匹配ROM(超速模式下尋址某個器件);v超速跳過ROM

23、(超速模式下跳過讀ROM命令);v條件查找ROM(只查找輸入電壓超過設置的報警門限值的器件)。v當成功執(zhí)行上述命令之一后,總線命令者可發(fā)送任何一個可使用命令來訪問存儲器和控制功能,進行數(shù)據(jù)交換。所有數(shù)據(jù)的讀寫都是從最低位開始的。單總線傳送的數(shù)據(jù)或命令是由一系統(tǒng)的時序信號組成的,單總線上共有4種時序信號:初始化信號、寫0信號、寫1信號和讀信號。v(5) DS18B20的ROM及控制指令vDS18B20的64位ROM的結構如表6-9所示。開始8位是DS18B20的產品類型編號10H,接著是每一個器件的唯一的序號,共有48位,最后8位是前56位的CRC校驗碼,這也是多個DS18B20可以用一根線進行

24、通信的原因。表6-10 DS18B20控制指令表6-9 DS18B20的64位ROM結構表主機操作ROM的命令有五種如表6-10所示。vDS18B20的高速暫存器由便箋式RAM和非易失性電擦寫EERAM組成,后者用于存儲TH、TL值。數(shù)據(jù)先寫入便箋式RAM,經(jīng)校驗后再傳給EERAM。便箋式RAM占9個字節(jié),包括溫度信息(0、1字節(jié))、TH和TL值(2、3字節(jié))、配置寄存器數(shù)據(jù)(4字節(jié))、CRC(8字節(jié))等,5、6、7字節(jié)不用。暫存器的4字節(jié)是配置寄存器,可以通過相應的寫命令進行配置,其內容如表6-11所示。0R1R0 11111R1R0分辨率最大轉換時間009位93.65ms(Tconv/8)

25、0110位186.5ms(Tconv/4)1011位365ms(Tconv/2)1110位650ms(Tconv)表6-11 暫存器的配置方式表6-12 DS18B20溫度值分辨率位配置方式MSB LSB其中,R0與R1是溫度值分辨率位,配置方式如表6-12所示。 vDS18B20的核心功能部件是它的數(shù)字溫度傳感器,如上所述,它的分辨率可配置為9位、10位、11位或者12位,出廠默認設置是12位分辨率,它們對應的溫度分辨率分別是0.5、0.25、0.125、0.0625。溫度信息的低位、高位字節(jié)內容中還包括了符號位S(是正溫度還是負溫度)和二進制小數(shù)部分,具體形式如表6-13所示。表6-13

26、溫度信息的低位、高位字節(jié)內容形式v這是12位分辨率的情況,如果配置為低的分辨率,則其中無意義位為0;實測溫度和數(shù)字輸出的對應關系如表6-14所示。表6-14 DS18B20實測溫度和數(shù)字輸出的對應關系表6-15 DS18B20存儲控制命令 DS18B20的存儲控制命令如表6-15所示。6.3.4 系統(tǒng)硬件實現(xiàn)系統(tǒng)硬件實現(xiàn)v1DS18B20溫度測量電路v根據(jù)DS18B20的引腳功能說明,我們可以很快地把VCC接一個5V的電源,而GND接地。由于DS18B20采用了單總線技術,我們只要把DQ與單片機的一個I/O口相連接就可以了,如圖6-11所示。圖6-11 DS18B20溫度測量電路v2時鐘電路v

27、DS1302有兩個電源,一個是主電源Vcc2,另一個是備份電源Vcc1。主電源Vcc2同單片機一樣接5V電源,而備份電源Vcc1使用的是兩節(jié)1.5V干電池。當系統(tǒng)電源被切斷的情況下,DS1302也能正常工作,保證日期、時間的準確性。X1、X2用來外接晶振,晶振的頻率為32.768kHz,如圖6-12所示。圖6-12 時鐘電路v3顯示電路v數(shù)碼管采用共陽極的設計,一個數(shù)碼管由一個74HC164來驅動,并且采用級聯(lián)的方式進行連接。利用單片機的串口發(fā)送或者模擬串口發(fā)送把數(shù)據(jù)發(fā)送給74HC164來驅動數(shù)碼管顯示數(shù)據(jù)。這種設計的好處是接節(jié)約單片機的I/O口,同時也不會降低CPU的運行速度,如圖6-13所

28、示。圖6-13 顯示電路v無論仿真還是實物,如果把數(shù)碼管的陽極直接接到電源上,往往會產生閃爍現(xiàn)象。為了解決這一問題。本設計把數(shù)碼管的陽極接到單片機的一個I/O口上。在程序里,發(fā)送數(shù)據(jù)的過程中,這個端口置低電平,數(shù)據(jù)發(fā)送完畢置為高電平,此時顯示所有數(shù)據(jù)。由于串口發(fā)送及74HC164移位的速度相當快,人的眼睛根本分辨不出來,所以就不會產生閃爍,如圖6-14所示。圖6-14 顯示去閃爍電路6.4 基于基于DS18B20的水溫控制系統(tǒng)的水溫控制系統(tǒng)v內容v利用單片機AT89C51控制DS18B20溫度傳感器對水溫的控制,當水溫低于預設溫度值時系統(tǒng)開始加熱(點亮紅色發(fā)光二極管表示加熱狀態(tài)),當溫度達到預

29、設溫度值時自動停止加熱。預設溫度值和實測溫度值分別由兩個3位數(shù)碼管顯示,范圍為099。v背景知識v已掌握Keil Vision3開發(fā)軟件的使用方法;v掌握DS18B20的工作原理與使用方法。v訓練目的v掌握單片機控制系統(tǒng)綜合開發(fā)設計方法。6.4.1 Proteus電路設計電路設計v1. 元件清單列表v打開Proteus ISIS編輯環(huán)境,按表6-16所列的清單添加元件。表6-16 元 件 清 單v2. 電路原理圖v元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-15所示的原理圖(復位和振蕩電路略)連接硬件電路。圖6-15 電路原理圖6.4.2 Proteus調試與仿真調試與仿真v

30、參照5.3.3節(jié)建立程序文件,加載目標代碼文件,進入調試環(huán)境,執(zhí)行程序,在Proteus ISIS界面中,分別調節(jié)十位設置按鍵和個位設置按鍵來預設水溫,當DS18B20的溫度低于預設溫度值時,紅色發(fā)光二極管點亮表示進入熱狀態(tài);調節(jié)DS18B20元件上的按鈕可人工模擬實際水溫的升高和下降??梢钥吹?,當實測溫度達到預設溫度后,紅色發(fā)光二極管便自動熄滅,表示停止加熱。仿真片斷如圖6-16所示。圖6-16 程序運行結果6.5 基于單片機的基于單片機的2424點陣點陣LED漢字顯示漢字顯示6.5.1 設計任務及要求設計任務及要求v1. 設計題目v基于單片機的2424點陣LED漢字顯示。v2. 設計要求與

31、目的v實現(xiàn)LED點陣屏核心功能即漢字、數(shù)字、字母的多樣化顯示;v通過本次設計加深對單片機課程和仿真軟件的認識和掌握以及對仿真軟件Proteus的應用進一步的了解;v掌握SPI串口進行數(shù)據(jù)傳輸?shù)膽?,并學會使用外部芯片輔助項目設計;v通過此次設計將單片機軟硬件結合起來對程序進行編輯、校驗,鍛煉實踐能力和理論聯(lián)系實際的能力。v3. 設計任務v設計系統(tǒng)硬件;v設計系統(tǒng)軟件;v編寫設計說明書。6.5.2 設計背景簡介 vLED點陣塊具有亮度高、發(fā)光均勻、可靠性好、拼裝方便等優(yōu)點,能構成各種尺寸的顯示屏。目前,LED顯示屏已被廣泛應用于商場、車站等公共場合的文字圖形顯示,并取得了很好的效果。vLED顯示

32、屏的種類較多,大致有以下四種分類法:一是按室內室外分類,二是按工作方式分類,三是按顏色的數(shù)量分類,四是按LED管的單位密度大小分類。 不同類型的顯示屏用途不同,各有優(yōu)缺點,室內LED顯示屏與戶外LED顯示屏差別很大,可根據(jù)需要側重選擇。首先是亮度不同,室內屏的發(fā)光亮度要比戶外屏低出幾倍到幾十倍,因此,戶外屏必須采用超高亮度LED,而且為了進一步提高亮度和增加可視距離,在一個像素內往往要封裝多只超高亮度LED。6.5.3 電路設計 v在電路設計中要考慮硬件的選型,硬件的選型應根據(jù)設計要求和應用場合的限制選用。在此,選用行列控制器件是很關鍵的,如果選用的器件達不到要求可能就會出現(xiàn)驅動能力不足造成亮

33、度不夠,傳送數(shù)據(jù)出錯等一些問題,本LED顯示系統(tǒng)主要由AT89C51作為主控單元,列控制選用74HC138芯片,行數(shù)據(jù)傳輸選用串入并出器件,74164和74595功能相仿,都是8位串行輸入轉并行輸出移位寄存器。74164的驅動電流(25mA)比74595(35mA)的要小,14腳封裝,體積也小一些,而且74595的主要優(yōu)點是具有數(shù)據(jù)存儲寄存器,在移位的過程中,輸出端的數(shù)據(jù)可以保持不變,數(shù)碼管沒有閃爍感。與164只有數(shù)據(jù)清零端相比,595還多有輸出端時能/禁止控制端,可以使輸出為高阻態(tài)。v我們這里選用74HC595芯片及9塊兒88點陣顯示模塊組成2424點陣顯示屏,如圖6-17所示為單基色88的

34、點陣屏內部結構圖。從結構上可知,它的每一列共用一根列線,每一行共用一根行線。當相應的行接高電平,列接低電平時,對應的發(fā)光二極管被點亮。通常情況下,一塊88像素的LED顯示屏是不能用來顯示一個漢字的,因此,本設計按照其原理結構擴展為2424,顯示一個漢字。在顯示過程中,多采用掃描方式,利用人的視覺暫停效應,只要刷新速率不小于25幀/秒,就不會有閃爍的感覺??刂葡到y(tǒng)的結構框圖如圖6-18所示。v其次,戶外屏須防(雨)水、防陽光直射、防塵、防高溫、防風、防雷擊等,而室內屏則無須考慮這些問題。此設計是基于單片機89C51對點陣2424漢字顯示的設計。 單片機 89 C 51 行控制 列控制 矩 陣 顯

35、 示 屏 圖6-17 點陣屏內部結構圖 圖6-18 控制系統(tǒng)框圖6.5.4 系統(tǒng)硬件實現(xiàn)系統(tǒng)硬件實現(xiàn)v1. 時鐘電路vAT89C51單片機芯片內部設有一個由反向放大器構成的振蕩器,XTAL1和XTAL2分別為振蕩電路的輸入端和輸出端,時鐘可由內部或外部生成,在XTAL1和XTAL2引腳上外接定時元件,內部振蕩電路就會產生自激振蕩。系統(tǒng)采用的定時元件為石英晶體和電容組成的并聯(lián)諧振回路。晶振頻率選擇12MHZ,C1、C2的電容值取30pF,電容的大小起頻率微調的作用。時鐘電路圖如圖6-19所示。 v2. 復位電路 v單片機有多種復位電路,本系統(tǒng)采用電平式開關復位與上電復位方式,電路如圖7-20所示

36、。當上電時,C1相當于短路,使單片機復位,在正常工作時,按下復位鍵時單片機復位。在有時碰到干擾時會造成錯誤復位,但在大多數(shù)條件下,不會出現(xiàn)單片機錯誤復位,而可能會引起內部某些寄存器錯誤復位,如果在復位端加一個去耦電容,則會得到很好的效果。 圖6-19 時鐘電路圖 圖6-20 復位電路圖v3. 行數(shù)據(jù)傳輸電路v根據(jù)如圖6-21所示的74HC595管腳圖對控制端的說明為:MR(10腳)指低點平時將移位寄存器數(shù)據(jù)清零;SH_CP(11腳)指上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)移位;Q1、Q2、Q3、.、Q7指下降沿移位寄存器數(shù)據(jù)不變(脈沖寬度:5V時,大于幾十納秒就行了,通常都選微秒級);ST_CP(12腳)指

37、上升沿時移位寄存器的數(shù)據(jù)進入數(shù)據(jù)存儲寄存器,下降沿時存儲寄存器數(shù)據(jù)不變。v通常將RCK置為低電平,當移位結束后,在RCK端產生一個正脈沖(5V時,大于幾十納秒就行了,通常都選微秒級),更新顯示數(shù)據(jù);/G(13腳)指高電平時禁止輸出(高阻態(tài))。如果單片機的引腳不緊張,用一個引腳控制它,可以方便地產生閃爍和熄滅效果,這樣比通過數(shù)據(jù)端移位控制要省時省力。然后用三片74HC595串聯(lián)起來組成行數(shù)據(jù)傳輸端,如圖6-22所示。通過數(shù)據(jù)端和時鐘端把數(shù)據(jù)傳送到移位寄存器。Q015Q11Q22Q33Q44Q55Q66Q77Q79SH_CP11ST_CP12DS14MR10OE13U274HC595Q015Q11

38、Q22Q33Q44Q55Q66Q77Q79SH_CP11ST_CP12DS14MR10OE13U674HC595Q015Q11Q22Q33Q44Q55Q66Q77Q79SH_CP11ST_CP12DS14MR10OE13U474HC595ST_CPDDSMRSH_CPOEROW0ROW1ROW2ROW3ROW4ROW5ROW6ROW7ROW8ROW9ROW10ROW11ROW12ROW13ROW14ROW15ROW16ROW17ROW18ROW19ROW20ROW21ROW22ROW23圖6-21 74HC595管腳圖 圖6-22 74HC595管腳分配連接圖 v4. 列控制電路v列控器件74

39、LS138是3-8譯碼器,它具有三個使能端,三個數(shù)據(jù)輸入端,只有當使能端S1為高電平,而S2與S3之和為低電平時,才能正常工作,輸出端低電平有效。此設計采用三片138和每個輸出端串接一個470的電阻起一定的限流作用,然后與P1口相連接作為顯示屏的列選擇線。ABC為譯碼器數(shù)據(jù)輸入端,E1、E2、E3為片使能端。當E1為高點平,E2和E3為低電平時第一片譯碼器使能可控制(COL0COL7)列,以此類推選擇列。電路連接如圖6-23所示。A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U574HC138A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U774HC138A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U974HC138ABCE1E2E3ABCABCCOL8COL9COL10COL11COL12COL13COL14COL15C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論