基于AT89C51單片機(jī)多功能實(shí)驗(yàn)板的設(shè)計(jì)說明書
基于AT89C51單片機(jī)多功能實(shí)驗(yàn)板的設(shè)計(jì)說明書,基于,at89c51,單片機(jī),多功能,實(shí)驗(yàn),試驗(yàn),設(shè)計(jì),說明書,仿單
單片機(jī)多功能實(shí)驗(yàn)板的設(shè)計(jì)
[摘要]本次畢業(yè)設(shè)計(jì)是基于AT89C51單片機(jī)的多功能實(shí)驗(yàn)板,該實(shí)驗(yàn)板具有成本低、體積小、可靠性高、功能齊全、低功耗設(shè)計(jì)、操作方便等特點(diǎn)。本論文詳細(xì)介紹了該實(shí)驗(yàn)板的開發(fā)過程及相關(guān)硬件設(shè)計(jì)和軟件設(shè)計(jì)。實(shí)驗(yàn)板以ATMEL公司的AT89C51單片機(jī)為核心控制器,其設(shè)計(jì)主要分為硬件系統(tǒng)的設(shè)計(jì)和軟件程序的設(shè)計(jì)兩個(gè)部分。硬件系統(tǒng)的設(shè)計(jì)主要包括流水燈、數(shù)碼管、8*8點(diǎn)陣、1602液晶顯示、矩陣鍵盤、獨(dú)立鍵盤、AD轉(zhuǎn)換、DA轉(zhuǎn)換、步進(jìn)電機(jī)、溫度檢測(cè)電路、蜂鳴器等;軟件程序設(shè)計(jì)主要是各模塊的C語言程序設(shè)計(jì),并可與硬件資源實(shí)現(xiàn)聯(lián)調(diào)。經(jīng)過自己的努力,最終實(shí)現(xiàn)了該題目所要求的功能。
單片機(jī)多功能實(shí)驗(yàn)板可以作為主控制模塊安裝于控制系統(tǒng)中執(zhí)行控制任務(wù),也可以用作實(shí)驗(yàn)板,完成單片機(jī)各類通用實(shí)驗(yàn),操作簡(jiǎn)單,性價(jià)比高,可以應(yīng)用于高校、科研院所的實(shí)驗(yàn)室等場(chǎng)合,具有一定的實(shí)用價(jià)值和現(xiàn)實(shí)意義。
[關(guān)鍵詞]AT89C51 多功能 實(shí)驗(yàn)板 性價(jià)比
Design of MCU multi-functional experiment board
【Abstract】The graduation project is a multi-function experiments board based on AT89C51 with low cost, small size, high reliability, fully function, low-power design, convenient operation. This paper introduces the development process of the test board and related hardware and software design. AT89C51 of ATMEL Corporation as the core controller, the design is divided into two parts, hardware system design and software design. Hardware system design includes flowing water lights, LED, 8 * 8 dot matrix, 1602 LCD, matrix keyboard, separate keyboard, AD converter, DA converter, stepper motor, the temperature detection circuit and buzzer, etc. Software design is mainly the C language programming of modules ,and can achieved joint debugging with hardware resources. Through my own efforts, the subject achieves its functions that required ultimately.
Multifunction microcontroller experimental board can be used as the main control module installed in the control system performing control tasks ,and also be used as a test board to complete all kinds of general experiments. It's simple, cost-effective, and also can be used in universities, research institutes, laboratories and other occasions. It has certain practical value and practical significance.
【key words】AT89C51 multi-function experiment board cost-effective
目錄
1 引言 1
2 系統(tǒng)方案 2
2.1 總體設(shè)計(jì)方案 2
2.2 設(shè)計(jì)原則 2
2.3 設(shè)計(jì)步驟 2
3 硬件部分 4
3.1 硬件總體結(jié)構(gòu) 4
3.2 單片機(jī)最小系統(tǒng) 4
3.2.1 AT89C51介紹 5
3.2.2 時(shí)鐘電路 8
3.2.3 復(fù)位電路 9
3.3 流水燈 10
3.4 數(shù)碼管顯示 10
3.5 8*8點(diǎn)陣 11
3.6 矩陣鍵盤 12
3.7 獨(dú)立鍵盤 13
3.8 AD轉(zhuǎn)換 13
3.9 DA轉(zhuǎn)換 15
3.10 DS18B20測(cè)溫 16
3.11 MAX232 17
3.12 LCD1602液晶顯示 18
3.13 蜂鳴器 19
3.14 步進(jìn)電機(jī) 20
3.15 通信電路設(shè)計(jì) 21
4 軟件部分 23
4.1 整體程序設(shè)計(jì) 23
4.2 軟件模塊設(shè)計(jì) 23
4.2.1 流水燈程序設(shè)計(jì) 23
4.2.2 數(shù)碼管程序設(shè)計(jì) 24
4.2.3 鍵盤程序設(shè)計(jì) 24
4.2.4 AD轉(zhuǎn)換程序設(shè)計(jì) 25
4.2.5 DA轉(zhuǎn)換程序設(shè)計(jì) 25
4.2.5 DS18B20測(cè)溫程序設(shè)計(jì) 26
4.2.5 LCD1602液晶顯示程序設(shè)計(jì) 26
5 仿真電路及單片機(jī)的調(diào)試 28
6 畢業(yè)設(shè)計(jì)總結(jié) 33
參考文獻(xiàn) 34
附錄A 外文原文 35
附錄B 外文翻譯 46
附錄C 元器件清單 52
附錄D 單片機(jī)實(shí)驗(yàn)板原理圖 54
附錄E 程序 55
III
1 引言
隨著電子技術(shù)的發(fā)展,單片機(jī)在電訊技術(shù)、工業(yè)控制、汽車自動(dòng)化、家用電器等領(lǐng)域得到了廣泛的應(yīng)用,而51單片機(jī)由于其實(shí)用性好、可靠性高、便于擴(kuò)展等特點(diǎn)得到了廣泛的應(yīng)用。為了更好的學(xué)習(xí)和應(yīng)用單片機(jī),可以將經(jīng)常應(yīng)用到的單片機(jī)外圍電路集成到一個(gè)單片機(jī)開發(fā)板上,以供使用者方便使用。同時(shí)應(yīng)提供常用的移植性較好的模塊代碼(本設(shè)計(jì)選用C作為源代碼的編寫工具)。市場(chǎng)上現(xiàn)存的單片機(jī)開發(fā)板很多,因此,要求設(shè)計(jì)盡量能夠達(dá)到資源豐富、易用性好、設(shè)計(jì)美觀等特點(diǎn)。
本設(shè)計(jì)51單片機(jī)多功能開發(fā)板,集成了單片機(jī)應(yīng)用過程中常用到的硬件資源,如鍵盤(獨(dú)立鍵盤、矩陣鍵盤)、數(shù)碼管、LCD顯示器、模數(shù)和數(shù)模轉(zhuǎn)換電路等,為學(xué)習(xí)和開發(fā)單片機(jī)產(chǎn)品提供了一個(gè)廣闊的平臺(tái)。
2 系統(tǒng)方案
2.1 總體設(shè)計(jì)方案
我的畢業(yè)設(shè)計(jì)題目是單片機(jī)多功能開發(fā)板,開發(fā)板共有13個(gè)模塊,分別是:51單片機(jī)最小系統(tǒng)、流水燈模塊、數(shù)碼管顯示模塊、8*8點(diǎn)陣模塊、矩陣鍵盤模塊、獨(dú)立鍵盤模塊,AD轉(zhuǎn)換模塊、DA轉(zhuǎn)換模塊、DS18B20測(cè)溫模塊、MAX232模塊、LCD1602模塊、蜂鳴器模塊、步進(jìn)電機(jī)模塊。其中以C51單片機(jī)作為核心控制器;鍵盤模塊用來向單片機(jī)輸入特定編碼的信息;AD模塊用來實(shí)現(xiàn)模數(shù)轉(zhuǎn)換;DA模塊用來實(shí)現(xiàn)DA轉(zhuǎn)換;DS18B20測(cè)溫模塊用來測(cè)量環(huán)境溫度;數(shù)碼管模塊用來顯示簡(jiǎn)單的數(shù)字、字母;8*8點(diǎn)陣模塊用來顯示簡(jiǎn)單的數(shù)字、字母;LCD1602模塊用來顯示字母、數(shù)字、符號(hào); MAX232模塊用來實(shí)現(xiàn)C51單片機(jī)的ISP在線編程;流水燈模塊用來顯示單片機(jī)I/O口電平的變化;蜂鳴器模塊用來發(fā)出聲音;步進(jìn)電機(jī)模塊用來控制電機(jī)的轉(zhuǎn)動(dòng)。
2.2設(shè)計(jì)原則
(1)設(shè)計(jì)必須符合單片機(jī)常規(guī)用法,最好選擇典型電路,為實(shí)現(xiàn)硬件系統(tǒng)的標(biāo)準(zhǔn)化做好鋪墊;
(2)外圍設(shè)備與系統(tǒng)擴(kuò)展的配置應(yīng)盡量滿足系統(tǒng)的功能和要求,并留有充分的余地,為了方便進(jìn)行以后的開發(fā)和利用;
(3)盡量朝“單片”方向設(shè)計(jì)硬件系統(tǒng)。系統(tǒng)器件越多,器件之間相互干擾也越強(qiáng),功耗也增大,也不可避免地降低了系統(tǒng)的穩(wěn)定性。
(4)硬件結(jié)構(gòu)應(yīng)該結(jié)合應(yīng)用軟件方案進(jìn)行考慮。硬件結(jié)構(gòu)與軟件方案之間會(huì)產(chǎn)生一定的影響,考慮的原則是:軟件能實(shí)現(xiàn)的功能就沒必要用硬件來實(shí)現(xiàn),從而簡(jiǎn)化硬件電路。但必須注意的是,用軟件來實(shí)現(xiàn)的硬件功能,響應(yīng)時(shí)間一般比硬件實(shí)現(xiàn)的要長(zhǎng),而且占用CPU的時(shí)間比較多;
(5)電路中的相關(guān)器件盡可能的做到性能匹配。比如選用CMOS芯片構(gòu)成的低功耗系統(tǒng)時(shí),電路中所有芯片都要盡可能的選擇低功耗的產(chǎn)品;
(6)抗干擾設(shè)計(jì)和可靠性設(shè)計(jì)是硬件設(shè)計(jì)不可缺少的一部分,它包括芯片選擇、元器件選擇、PCB電路板布線和通道隔離等;
(7)單片機(jī)的外圍電路比較多時(shí),應(yīng)該考慮單片機(jī)的驅(qū)動(dòng)能力。當(dāng)單片機(jī)的驅(qū)動(dòng)能力不足時(shí),系統(tǒng)的工作就不可靠,解決方法是可以通過增設(shè)線驅(qū)動(dòng)器來增強(qiáng)驅(qū)動(dòng)能力或減少芯片功耗來降低總線負(fù)載。
2.3 設(shè)計(jì)步驟
(1)選擇每個(gè)模塊合適的芯片,并詳細(xì)查看每個(gè)芯片的資料,及時(shí)記錄該芯片的管腳圖、時(shí)序圖和典型電路;
(2)在proteus中畫出51單片機(jī)的最小系統(tǒng);
(3)根據(jù)每個(gè)芯片的時(shí)序圖,在keil軟件中用C語言進(jìn)行軟件編程,并生成hex文件;
(4)根據(jù)每個(gè)芯片的典型電路,在proteus中畫出電路圖,在單片機(jī)中下載程序進(jìn)行仿真;
(5)在面包板上進(jìn)行調(diào)試仿真;
(6)仿真完成后,在Altium Designer中畫出原理圖,對(duì)每個(gè)進(jìn)行器件進(jìn)行封裝,并畫出PCB圖;
(7)制造印刷電路板,焊接元器件,下載程序并進(jìn)行調(diào)試。
3 硬件部分
3.1 硬件總體結(jié)構(gòu)
硬件總體模塊包括AT89C51單片機(jī)最小系統(tǒng)、流水燈模塊、數(shù)碼管顯示模塊、8*8點(diǎn)陣模塊、矩陣鍵盤模塊、獨(dú)立鍵盤模塊,AD轉(zhuǎn)換模塊、DA轉(zhuǎn)換模塊、DS18B20測(cè)溫模塊、MAX232模塊、LCD1602模塊、蜂鳴器模塊、步進(jìn)電機(jī)模塊??傮w框圖如圖3.1所示。
點(diǎn)陣
ADC電路
電機(jī)
AT89C51
流水燈
數(shù)碼管
DAC電路
矩陣鍵盤
復(fù)位電路
1602液晶屏
溫度傳感器
晶振電路(11.052MHz)
圖3.1 硬件總體框圖
3.2 單片機(jī)最小系統(tǒng)
51單片機(jī)最小系統(tǒng)包括:AT89C51、復(fù)位電路、晶振電路。原理圖如圖3.2的(a)(b)(c)所示:
(a)晶振電路 (b)復(fù)位電路
(c)AT89C51
圖3.2 AT89C51單片機(jī)最小系統(tǒng)
3.2.1 AT89C51介紹
AT89C51?單片機(jī)是?ATMEL?公司生產(chǎn)的一款低功耗、高性能的?CMOS?8?位微控制器,具有?8K?在系統(tǒng)可編程?Flash?存儲(chǔ)器,AT89C51 芯片內(nèi)部集成了 CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器和I/O口等各功能部件,并由內(nèi)部總線把這些部件連接在一起[1]。
振蕩器及
時(shí)序 OSC
8951CPU
程序存儲(chǔ)器4KB ROM
數(shù)據(jù)存儲(chǔ)器256B
2個(gè)16位定時(shí)器/計(jì)數(shù)器
64K總線擴(kuò)展控制器
可編程I/O
可編程全雙工串行口
外時(shí)鐘源 外部事件計(jì)數(shù)
中斷 控制 并 行 口 串行通信
圖3.3 AT89C51單片機(jī)功能結(jié)構(gòu)框圖
AT89C51單片機(jī)內(nèi)部包含以下一些功能部件:
(1) 一個(gè)8位CPU;
(2) 一個(gè)片內(nèi)振蕩器和時(shí)鐘電路;
(3) 4KB ROM;
(4) 128B內(nèi)RAM;
(5) 可尋址64KB的外ROM和外RAM控制電路;
(6) 兩個(gè)16位定時(shí)/計(jì)數(shù)器;
(7) 21個(gè)特許功能寄存器;
(8) 4個(gè)8位并行I/O口,共32條可編程I/O端線;
(9) 一個(gè)可編程全雙工串行口;
(10) 5個(gè)中斷源,可設(shè)置成2個(gè)優(yōu)先級(jí)。
電源
VCC——芯片電源,接+5V;
GND——接地端。
時(shí)鐘
XTAL1、XTAL2——晶體振蕩電路反相輸入端和輸出端。使用內(nèi)部振蕩電路時(shí)外接石英晶體。
控制線
單片機(jī)的控制總線一共有4根,其中有3根是可以復(fù)用的。復(fù)用線就是指其具有兩種功能,平常使用的是其一種功能,在某些特定環(huán)境下使用其另一種功能。
(1)ALE/PROG——地址鎖存允許/片內(nèi)EPROM編程脈沖。
①ALE——鎖存P0口輸出的低8位的地址。
AT89C51在并行擴(kuò)展外存儲(chǔ)器時(shí),P0口用于分時(shí)傳送數(shù)據(jù)信號(hào)和低8位地址,而且都是二進(jìn)制數(shù)。當(dāng)ALE端口的信號(hào)無效時(shí),P0口傳送8位數(shù)據(jù)信號(hào);當(dāng)ALE端口的信號(hào)有效時(shí),P0口傳送的是低8位地址信號(hào)。當(dāng)ALE端口為信號(hào)的下降沿是,此時(shí)鎖定P0口傳送低8位地址信號(hào)[5]。
AT89C51的引腳排列圖如圖3.4所示。
②PROG功能:在EPROM的編程期間,此引腳會(huì)輸入編程的脈沖,因?yàn)槠瑑?nèi)有EPROM的芯片。
(2)PSEN——外部ROM讀選通的信號(hào)。
AT89C51讀外部ROM時(shí),每一個(gè)機(jī)器周期內(nèi)PSEN端口都會(huì)有兩次有效輸出。所以PSEN可以作為外部ROM芯片輸出允許位OE的選通信號(hào)。在讀內(nèi)部ROM和讀外部RAM時(shí),PSEN的功能無效。
(3) RST/VPP——復(fù)位/電源。
①工作正常時(shí),RST(Reset)端口是復(fù)位信號(hào)的輸入端口,只要在該復(fù)位引腳上保持連續(xù)兩個(gè)機(jī)器周期的高電平,AT89C51就可以實(shí)現(xiàn)復(fù)位操作,復(fù)位后一切會(huì)從新開始,CPU此時(shí)會(huì)從0000H開始執(zhí)行所有指令。
②VPP:在VCC掉電的情況下,此VPP引腳可以接上備用電源,以此可以由VPP向片內(nèi)電路供電,從而保存片內(nèi)RAM中的數(shù)據(jù)。
圖3.4 AT89C51單片機(jī)引腳圖
(4) EA/VPP ——內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。
①EA功能:正常工作時(shí),EA為內(nèi)外ROM選擇端。AT89C51單片機(jī)ROM尋址范圍為64KB,其中4KB在片內(nèi),60KB在片外(80C31芯片無內(nèi)ROM,全部在片外)。當(dāng)EA保持高電平時(shí),先訪問內(nèi)ROM,但當(dāng)PC(程序計(jì)數(shù)器)值超過4KB(0FFFH)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外ROM中的程序。當(dāng)EA保持低電平時(shí),則只訪問外ROM,不管芯片內(nèi)有否內(nèi)ROM。
②VPP功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳用于施加編程電源VPP。
I/O引腳
AT89C51共有4個(gè)8位并行I/O端口,共32個(gè)引腳
P0口:P0口是一個(gè)8位的雙向I/O口,每個(gè)引腳可以吸收8TTL門的電流。當(dāng)P0口的管腳在第一次寫1時(shí),此時(shí)會(huì)被定義為高阻態(tài)輸入。P0可以用于外部程序的數(shù)據(jù)存儲(chǔ)器,它能被定義為地址/數(shù)據(jù)的低八位。在flash編程時(shí),P0 口會(huì)變成原碼的輸入口,當(dāng)flash在進(jìn)行校驗(yàn)時(shí),P0口輸出原碼,此時(shí)P0口的外部要接上拉電阻。
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。
P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“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ì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。
P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,由于上拉的緣故,P3口將輸出電流。
P3口也可以作為AT89C51的一些特殊功能的端口,如下所示:
P3.0 — RXD——串行輸入口
P3.1 — TXD——串行輸出口
P3.2 — /INT0——外部中斷0
P3.3 — /INT1——外部中斷1
P3.4 — T0——計(jì)時(shí)器0外部輸入
P3.5 — T1——計(jì)時(shí)器1外部輸入
P3.6 — /WR——外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)
P3.7 — /RD——外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)
P3口還可以作為編程校驗(yàn)和閃爍編程來接收一些控制信號(hào)。
3.2.2 時(shí)鐘電路
時(shí)鐘電路用于產(chǎn)生單片機(jī)工作時(shí)所需要的時(shí)鐘信號(hào),時(shí)序就是指令執(zhí)行過程中各信號(hào)之間的關(guān)系。 單片機(jī)可以說就是一個(gè)復(fù)雜的同步時(shí)序電路, 為了能保證同步工作方式實(shí)現(xiàn), 電路應(yīng)該在一個(gè)的時(shí)鐘信號(hào)的控制下進(jìn)行工作。
在本次設(shè)計(jì)中,時(shí)鐘電路設(shè)計(jì)就是采用內(nèi)部方式,也就是利用單片機(jī)內(nèi)部的振蕩電路。AT89C51單片機(jī)的內(nèi)部有一個(gè)高增益的反相的放大器。XTAL1和XTAL2是其輸入和輸出端。這個(gè)高增益反相放大器會(huì)和反饋元件的片外晶體諧振器構(gòu)成自激振蕩器。外部接晶體振蕩器和電容C2、C3行成并聯(lián)諧振電路,在放大器反饋回路中,雖然對(duì)外接電容值沒有嚴(yán)格要求,但是電容的大小會(huì)影響起振的快速和溫度的穩(wěn)定性、振蕩器的穩(wěn)定性、振蕩器頻率的高低。因此,此系統(tǒng)電路的晶體振蕩器的值為11.0592MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容 C2 、C3 容量在 15~40pF 之間,所以本次設(shè)計(jì)電容值選為30pF[11]。在焊接刷電路板時(shí),我們應(yīng)注意晶體振蕩器和電容盡可能安裝的與單片機(jī)芯片靠近些,用以減少寄生電容,為了更好地保證振蕩器可靠地工作和穩(wěn)定行,時(shí)鐘電路圖如圖3.5所示。
圖3.5 時(shí)鐘電路
3.2.3 復(fù)位電路
復(fù)位電路是對(duì)單片機(jī)初始化的操作,他的功能就是讓單片機(jī)從地址是0000H單元重新執(zhí)行程序。進(jìn)入系統(tǒng)的正常初始化除外,當(dāng)程序運(yùn)行出錯(cuò)或者操作錯(cuò)誤導(dǎo)致系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫死機(jī)也需按復(fù)位鍵以重新啟動(dòng)。AT89C51芯片內(nèi)部有復(fù)位電路,RST 引腳是復(fù)位信號(hào)的輸入端,當(dāng)出現(xiàn)高電平時(shí)有效,復(fù)位方式有自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種。
單片機(jī)復(fù)位電路參數(shù)的選定須在振蕩穩(wěn)定后保證復(fù)位高電平持續(xù)時(shí)間大于?2?個(gè)機(jī)器周期。此處,R8取?1KΩ,但是?R9的取值一般為?4?倍的?R17,既必須是?5KΩ??以上。這是因?yàn)?2.7V?及以下的邏輯電平被稱為低電壓邏輯電平,3.3V?及以上的邏輯電平被稱為高電壓邏輯電平,介于兩者之間的邏輯電平被稱為中間電平。所以,此處復(fù)位端要得到高電平,要分的?4/5?左右的電壓,則取?10KΩ?的電阻。[12]
AT89C51單片機(jī)有一個(gè)復(fù)位引腳RST,高電平有效。在時(shí)鐘電路工作以后,當(dāng)外部電路使得RST端口出現(xiàn)兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)以上的高電平,系統(tǒng)內(nèi)部復(fù)位。復(fù)位有兩種方式:上電復(fù)位和按鈕復(fù)位。在此次的設(shè)計(jì)中,我采用按鍵復(fù)位,其電路圖如圖3.6所示。
圖3.6 復(fù)位電路
只要RST保持高電平,AT89C51單片機(jī)將循環(huán)復(fù)位。復(fù)位期間,ALE、PSEN輸出高電平。RST從高電平變?yōu)榈碗娖胶?,PC指針變?yōu)?000H,使單片機(jī)從程序存儲(chǔ)器地址為0000H的單元開始執(zhí)行程序。當(dāng)單片機(jī)執(zhí)行程序出錯(cuò)或進(jìn)入死循環(huán)時(shí),可按復(fù)位按鈕重新啟動(dòng)。
3.3 流水燈
流水燈是單片機(jī)實(shí)驗(yàn)板開關(guān)信號(hào)輸出控制的一個(gè)經(jīng)典電路,可以通過燈的亮滅來觀察單片機(jī)I/O口的狀態(tài),使實(shí)驗(yàn)學(xué)習(xí)更加直觀。 各個(gè)發(fā)光二極管都是共陽極接法的,因?yàn)?1單片機(jī)的高電平輸出驅(qū)動(dòng)能力不強(qiáng),不可以驅(qū)動(dòng)一個(gè)發(fā)光二極管發(fā)光。而51單片機(jī)的低電平輸出驅(qū)動(dòng)能力卻比較大,這由51單片機(jī)的I/O口結(jié)構(gòu)決定的,所以采用共陽極接法。如圖3.7所示。
圖3.7 流水燈電路
一般對(duì)于初學(xué)者,應(yīng)該是從點(diǎn)亮第一個(gè)發(fā)光二極管開始學(xué)習(xí)單片機(jī)的??梢杂每偩€方式或位操作點(diǎn)亮發(fā)光二極管。
3.4 數(shù)碼管顯示
單片機(jī)應(yīng)用系統(tǒng)中大量使用數(shù)碼管,普遍應(yīng)用的是七段LED。a.b.c.d.e.f.g,7段就是對(duì)應(yīng)7個(gè)發(fā)光二極管(如果在加上小數(shù)點(diǎn)dp.實(shí)際為8個(gè)發(fā)光二極管),當(dāng)它們通過電阻和AT89C51的口線相連時(shí),我們只要用軟件控制口線的高低電平就能使其熄滅或發(fā)光。LED有共陰極和共陽極之分,顧名思義,共陰極就是將所有發(fā)光二極管的陰極連在一起,共陽極就是將陽極連在一起。因?yàn)閱纹瑱C(jī)口線的輸出電流能力是有限的,在實(shí)際應(yīng)用中最好采用共陽極LED,因?yàn)檫@樣點(diǎn)亮LED時(shí),電流由+5V電源流向單片機(jī)的口線,單片機(jī)是“吸入”而不是“輸出”電流。
共陰極數(shù)碼管的示意圖及段選碼如圖3.8所示,本設(shè)計(jì)的單片機(jī)開發(fā)板采用六個(gè)共陰極數(shù)碼管,可以采用單個(gè)數(shù)碼管進(jìn)行LED靜態(tài)顯示試驗(yàn),也可以使用多個(gè)數(shù)碼管進(jìn)行動(dòng)態(tài)顯示試驗(yàn)。為了使數(shù)碼管在動(dòng)態(tài)顯示時(shí)有較高的亮度,本設(shè)計(jì)采用74HC573鎖存器作為驅(qū)動(dòng)芯片,既可以提高數(shù)碼管的驅(qū)動(dòng)電流,又可以作為鎖存器使用,提高對(duì)單片機(jī)I/O口資源的利用率。數(shù)碼管顯示電路如圖3.9所示。
圖3.8 數(shù)碼管
圖3.9 數(shù)碼管顯示電路
另外,在實(shí)驗(yàn)中發(fā)現(xiàn)當(dāng)六個(gè)數(shù)碼管同時(shí)顯示時(shí),若單片機(jī)實(shí)驗(yàn)板的其他功能部進(jìn)行工作,數(shù)碼管的亮度較低,同時(shí)還考慮到單片機(jī)的P0口的輸出不穩(wěn)定,一般達(dá)不到高電平,所以在P0口上加上了10K的上拉電阻,電路圖如單片機(jī)最小系統(tǒng)所示。
對(duì)于幾個(gè)?LED?顯示器,一般都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式如系統(tǒng)原理圖。在動(dòng)態(tài)方式中,循環(huán)的點(diǎn)亮每個(gè)顯示器。雖然這樣在每一時(shí)刻只有一個(gè)數(shù)碼管被點(diǎn)亮,但是由于人眼具有視覺殘留效應(yīng),所以看起來與全部數(shù)碼管都亮效果完全一樣。單片機(jī)通過一個(gè)?8?位的二進(jìn)制電平信號(hào)顯示出想要的顯示結(jié)果。要使用六位八段數(shù)碼管,只要控制相應(yīng)的位選(6位)和段選(8位)就可以自由的是數(shù)碼管顯示相應(yīng)的數(shù)字。位選和段選,可以選用鎖存器74HC573鎖存數(shù)據(jù),可以節(jié)省?I/O?口。
3.5 8*8點(diǎn)陣
本單片機(jī)多功能實(shí)驗(yàn)板使用的是8*8點(diǎn)陣。點(diǎn)陣的對(duì)應(yīng)如表3.1所示:
表3.1 點(diǎn)陣管腳
C1
R4
R6
C4
R1
C2
R7
R8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C5
C7
R2
R3
C8
R5
C6
C3
其中,R?代表行,接低電平有效;C?代表列,接高電平有效本開發(fā)板的點(diǎn)陣部分,C(列)接的是三態(tài)線驅(qū)動(dòng)器?74LS244,它可以看做一個(gè)?8?路的驅(qū)動(dòng)模塊,能夠提高?51?單片機(jī)的接口線負(fù)載能力,特別是?P0?口,另外還可以對(duì)外部的毛刺進(jìn)行平滑。?標(biāo)準(zhǔn)?51?單片機(jī)的電流都不怎么大。
圖3.10 8*8點(diǎn)陣電路
3.6 矩陣鍵盤
矩陣鍵盤又稱為行列式鍵盤,它是用4條I/O線作為行線,4條I/O線作為列線組成的鍵盤。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4×4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口地占用,一般都將開關(guān)排列成矩陣形式。
獨(dú)立按鍵的設(shè)計(jì)雖然簡(jiǎn)單,但缺點(diǎn)是當(dāng)需要較多的按鍵時(shí),獨(dú)立按鍵占用的I/O口較多(一個(gè)獨(dú)立按鍵對(duì)應(yīng)一個(gè)I/O口)。M+N個(gè)I/O端口即可設(shè)計(jì)出M*N個(gè)鍵盤。本設(shè)計(jì)采用P1口設(shè)置4*4矩陣鍵盤。按鍵的標(biāo)號(hào)為第一行第一列記為“0”鍵,第一行第二列為“1”鍵,依此類推,16個(gè)按鍵分別對(duì)應(yīng)數(shù)字“0-9”,字符“a-f”。
鍵盤的識(shí)鍵和譯鍵有硬件和軟件兩種方法,硬件譯鍵的方法需要專門的芯片支持,因此設(shè)計(jì)成本較高。軟件實(shí)現(xiàn)簡(jiǎn)單,成本較低,所以采用行掃描法進(jìn)行鍵盤的識(shí)別。
矩陣鍵盤電路圖如圖3.11所示。
排針擴(kuò)展
圖3.11 矩陣鍵盤電路
行掃描法的工作過程簡(jiǎn)單介紹為:首先給P1口賦值0xfe,這時(shí)P1口除了P1.0以外其余都為高電平,此時(shí)如與P1.0口相接的按鍵有按下,則P1口高四位讀出的數(shù)據(jù)有變化(如與P1.0相接的列線中有低電平輸出,則對(duì)應(yīng)的按鍵按下,如與P1.0相接的列線中無低電平輸出,則說明無按鍵按下),延時(shí)一段時(shí)間以確認(rèn)從P1口高四位讀回的數(shù)據(jù)是否由于干擾引起的,確定有按鍵按下后,根據(jù)讀出的P1口的值即可確定是哪一列的按鍵按下。以此類推,可將16個(gè)按鍵依次識(shí)別。即為行掃描法識(shí)鍵。
矩陣鍵盤可以用行掃描法,其方法又稱為逐行(或列)掃描查詢法,是一種常用的識(shí)別方法,介紹如下:
(1)將每行線置于低電平,接下來檢測(cè)每列線的狀態(tài)。無論有哪一列的電平為低電平,則說明鍵盤中有鍵按下,并且閉合的開關(guān)是低電平線與行線相交叉的按鍵。若每個(gè)列線都是高電平,則說明鍵盤中沒有鍵按下。
(2)在確認(rèn)有開關(guān)按下后,即可確定具體閉合開關(guān)的過程。方法是:逐次將行線置于低電平,即在置某一根行線為低電平時(shí),其它行線為高電平。在確定哪一根行線位置為低電平時(shí),再依次檢測(cè)各列線的電平狀態(tài)。如果某列為低電平,則該列線與被置為低電平的行線交叉處的開關(guān)就為閉合的開關(guān)。
3.7 獨(dú)立鍵盤
鍵盤是人與AT89C51單片機(jī)聯(lián)系的重要手段,用于向CPU輸入運(yùn)行參數(shù),控制系統(tǒng)的運(yùn)行狀態(tài)。只要在公共端輸入低電平,檢測(cè)其余四個(gè)端口,一旦出現(xiàn)低電平,就可以確認(rèn)那個(gè)開關(guān)被按下,以此執(zhí)行下面的程序。如圖3.12所示:
排針擴(kuò)展
圖3.12 獨(dú)立鍵盤電路
3.8 AD轉(zhuǎn)換
本次設(shè)計(jì)用的AD轉(zhuǎn)換芯片是ADC0804,它是一個(gè)模擬8路輸入逐次比較型A/D轉(zhuǎn)換器,由于價(jià)格便宜,而且軟件操作和單片機(jī)的接口都比較簡(jiǎn)單,所以在8位單片機(jī)系統(tǒng)中有著很好的使用。ADC0804是由地址鎖存器、譯碼器、8路模擬開關(guān)、三態(tài)輸出鎖存緩沖器和8位A/D轉(zhuǎn)換器組成[14]。
ADC0804具有以下特點(diǎn):
(1)8位分辨率;
(2)雙通道A/D轉(zhuǎn)換;
(3)輸入輸出電平與TTL/CMOS兼容;
(4)5V電源供電時(shí)輸入電壓在0-5V之間;
(5)工作頻率為?250KHZ,轉(zhuǎn)換時(shí)間為?32μS;
(6)一般功耗僅為15mW;
(7)8P、14P—DIP(雙列直插)、PICC多種封裝;
(8)商用級(jí)芯片溫寬為?0℃到+70℃工業(yè)級(jí)芯片溫寬為-40℃to??+85℃。
8位AD轉(zhuǎn)換電路如圖3.13所示。
圖3.13 AD轉(zhuǎn)換電路
A/D轉(zhuǎn)換可以有6種方式啟動(dòng):定時(shí)器0溢出、定時(shí)器1溢出、定時(shí)器2溢出、定時(shí)器3溢出、軟件命令、外部轉(zhuǎn)換啟動(dòng)信號(hào)。這種靈活性可以用周期性信號(hào)(定時(shí)器溢出)、軟件事件或外部硬件信號(hào)觸發(fā)轉(zhuǎn)換。一個(gè)狀態(tài)位用于指示轉(zhuǎn)換完成,或產(chǎn)生中斷。轉(zhuǎn)換結(jié)束后的10位結(jié)果數(shù)據(jù)字被鎖存到ADC數(shù)據(jù)寄存器中。
模擬選擇器選擇ADC的正輸入和負(fù)輸入,端口引腳、片內(nèi)的溫度傳感器輸出和正電源(VDD)中的每一個(gè)可以被選擇為正輸入, VREF、端口引腳和GND中的每一個(gè)都可以選擇為負(fù)輸入。當(dāng)GND選擇負(fù)輸入時(shí),ADC工作方式為單端方式,在它所有的其它時(shí)間,ADC工作方式均為差分方式。
3.9 DA轉(zhuǎn)換
本次設(shè)計(jì)用的DA轉(zhuǎn)換芯片是DAC0832,它是一個(gè)8位CMOS工藝集成的D/A轉(zhuǎn)換器芯片,具有20個(gè)引腳,其輸出模擬量可有256個(gè)不同的等級(jí)。單電源供電,從+5V~+15V均可正常工作,基準(zhǔn)電壓的范圍為±10V,電流建立時(shí)間為1μs,CMOS工藝,低功耗20mm。它由1個(gè)8位輸入寄存器、1個(gè)8位DAC寄存器和1個(gè)8位D/A轉(zhuǎn)換器組成,它的主要參數(shù)如下:分辨率是8位,轉(zhuǎn)換時(shí)間是1μs,滿量程誤差是±1LSB,參考電壓是(+10~-10)V,供電電源是(+5~+15)V,邏輯電平輸入與?TTL?兼容 [17] 。在?DAC0832?中有兩級(jí)的鎖存器,第一級(jí)的鎖存器稱之為輸入寄存器,它的允許鎖存信號(hào)是?ILE,第二級(jí)的鎖存器稱之為?DAC?寄存器,它地鎖存信號(hào)稱為通道控制信號(hào)XFER。
在DAC0832中,當(dāng)?ILE?為高電平時(shí),片選信號(hào)??/CS??和寫信號(hào)??/WR1?是低電平時(shí),輸入寄存器控制信號(hào)變成?1,這樣情況下,輸入寄存器的輸出就會(huì)隨輸入而變化。然后,當(dāng)/WR1?由低電平變成高電平時(shí),控制信號(hào)會(huì)變?yōu)榈碗娖?,此時(shí),數(shù)據(jù)就會(huì)被鎖存到輸入寄存器中,這樣后,輸入寄存器的輸出端就不再會(huì)隨外部數(shù)據(jù)?DB?變化。
圖3.14 DA轉(zhuǎn)換電路
DAC0832引腳功能定義如下:
(1)?DI7~DI0?:8?位的數(shù)據(jù)輸入端,DI7為最高位。
(2)IOUT1?:模擬電流的輸出端?1,當(dāng)DAC寄存器中的數(shù)據(jù)全為?1?時(shí),輸出電流達(dá)到最大,而當(dāng)??DAC寄存器中數(shù)據(jù)全為?0?時(shí),輸出電流會(huì)為?0。
(3)IOUT2?:模擬電流的輸出端?2,?IOUT2和IOUT1之和是一個(gè)常數(shù)。
(4)RFB?:反饋電阻的引出端,DAC0832的內(nèi)部已經(jīng)加有反饋電阻,因此RFB可以接上外部運(yùn)算放大器的輸出端,這樣就相當(dāng)于將一個(gè)反饋電阻接在運(yùn)算放大器地輸入端和輸出端之間。
(5)VREF?:參考電壓的輸入端,這端可接一個(gè)負(fù)電壓,也可以接一個(gè)正電壓,它決定著0?到?255?的數(shù)字量化出來的模擬量值的幅度,VREF范圍為(+10~-10)V。D/A內(nèi)部T形電阻網(wǎng)絡(luò)與VREF端相連。
(6)Vcc??:芯片的供電電壓范圍為(+5~?15)V。
(7)AGND??:模擬量地。
(8)DGND??:數(shù)字量地。
由DAC0832轉(zhuǎn)換后的模擬信號(hào)時(shí)電流信號(hào),經(jīng)過運(yùn)放形成的電壓、電流轉(zhuǎn)換電路變成電壓信號(hào)的輸出,J1可用于向外部引出通過DAC0832轉(zhuǎn)換后形成模擬信號(hào)。因?yàn)檫\(yùn)放輸出的電壓信號(hào)為負(fù)極性,所以運(yùn)放不僅需要正電源,而且需要負(fù)電源。
3.10 DS18B20測(cè)溫
本次設(shè)計(jì)用的測(cè)溫芯片是DS18B20,該芯片具有以下的特點(diǎn):
(1)只用一個(gè)?I/O?口就可以實(shí)現(xiàn)通信。
(2)在?DS18B20?的每個(gè)元器件上都有一個(gè)序列號(hào)。
(3)在實(shí)際應(yīng)用中根本不要外部任何元件就可以實(shí)現(xiàn)測(cè)溫。
(4)測(cè)量溫度的范圍在-55℃到+125℃之間。
(5)數(shù)字溫度計(jì)分辨率可以從?9?位到?12?位選擇。
(6)芯片內(nèi)部有溫度上、下限設(shè)置。
DS18B20?詳細(xì)引腳功能描述:
1?腳??GND?地信號(hào);2??腳?DQ?數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。3?腳??VDD?可選擇的?VDD?引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。
DS18B20?使用方法:
由于?DS18B20?采用的是單總線協(xié)議方式,也就是在一根數(shù)據(jù)線上即可實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì)?AT89C51來說,我們采用軟件方法來模擬單總線協(xié)議的時(shí)序來完成訪問?DS18B20?芯片。因?yàn)?DS18B20?是在一根?I/O?線上讀寫數(shù)據(jù),因此,對(duì)讀寫數(shù)據(jù)位的時(shí)序要求非常嚴(yán)格[22]。DS18B20?有著嚴(yán)格的通信協(xié)議以此來保證各位數(shù)據(jù)傳輸?shù)耐暾院驼_性。這個(gè)協(xié)議定義了好多種信號(hào)的時(shí)序:寫時(shí)序、讀時(shí)序和初始化時(shí)序。所有的時(shí)序都是將主機(jī)作為主設(shè)備,單總線元器件作為副設(shè)備。但每一次數(shù)據(jù)和命令的傳輸都是從主機(jī)啟動(dòng)開始寫時(shí)序的,如果要求單總線器件回送數(shù)據(jù)時(shí),在進(jìn)行寫命令后,主機(jī)會(huì)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)的接收。數(shù)據(jù)和命令的傳輸都是低位在先。
圖3.15 DS18B20測(cè)溫電路
3.11 MAX232
本次設(shè)計(jì)用的串口轉(zhuǎn)換芯片是MAX232。AT89C51單片機(jī)有一個(gè)全雙工的串行口,所以單片機(jī)和PC之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通信時(shí)要滿足一定的條件,如PC的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須有一個(gè)電平轉(zhuǎn)換電路,這里用專用芯片MAX232進(jìn)行轉(zhuǎn)換,用專用芯片更簡(jiǎn)單可靠。MAX232如圖3.16所示。 它包含兩路接收器和驅(qū)動(dòng)器,內(nèi)部有一個(gè)電源電壓變換器,可以把輸入的0—5V電壓變換為RS-232傳輸協(xié)議所需的電壓。該芯片只需單一的+5V電源就可以工作。
單片機(jī)串口通信的應(yīng)用,通過串口,我們的個(gè)人電腦和單片機(jī)系統(tǒng)進(jìn)行通信。個(gè)人電腦作為上位機(jī),向下位機(jī)單片機(jī)系統(tǒng)發(fā)送十六進(jìn)制或者?ASCII碼,單片機(jī)系統(tǒng)接收后,用?LED?顯示接收到的數(shù)據(jù)和向上位機(jī)發(fā)回原樣數(shù)據(jù)。單片機(jī)與?PC?機(jī)通信遵守?RS-232?標(biāo)準(zhǔn)[24]。我們是用?MAX232?芯片將?RS232?電平轉(zhuǎn)換為?TTL?電平的。一個(gè)完整的RS-232接口有?22?根線,采用標(biāo)準(zhǔn)的25芯插頭座。我們?cè)谶@里使用的是簡(jiǎn)化的?9?芯插頭座。注意我們?cè)谶@里使用的晶振是?12M。因?yàn)椴ㄌ芈实脑O(shè)置需要?12M?的。
“串口調(diào)試助手?V2.1.exe”軟件的使用很簡(jiǎn)單,只要將串口選擇‘CMO1’波特率設(shè)置為‘9600’數(shù)據(jù)位為8位。打開串口(如果關(guān)閉)。然后在發(fā)送區(qū)里輸入要發(fā)送的數(shù)據(jù),單擊手動(dòng)發(fā)送就將數(shù)據(jù)發(fā)送出去了。注意,如果選中‘十六進(jìn)制發(fā)送’那么發(fā)送的數(shù)據(jù)是十六進(jìn)制的,必須輸入兩位數(shù)據(jù)。如果沒有選中,則發(fā)送的是?ASCLL?碼,那么單片機(jī)控制的數(shù)碼管將顯示?ASCLL?碼值。
在此開發(fā)板中,我們使用的串口通信芯片是?MAX232。MAX232?是一種雙組驅(qū)動(dòng)器/接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器, MAX232?的工作溫度范圍為?0℃至?70℃,MAX232I?的工作溫度范圍為-40℃至?85℃。
通信接口電路如圖3.16所示。
圖3.16 MAX232電路
MAX232?的特點(diǎn):
(1)單+5V?電源工作
(2)CMOS工藝技術(shù)
(3)內(nèi)部有兩個(gè)驅(qū)動(dòng)器和兩個(gè)接收器
(4)±30V?輸入電平
(5)低電流:典型值是?8mA
(6)優(yōu)于?ANSI?標(biāo)準(zhǔn)?EIA/TIA-232-E?及?ITU?推薦標(biāo)準(zhǔn)?V.28
(7)可與?Maxim?公司的?MAX232?互換
(8)ESD?保護(hù)大于?MIL-STD-883??(方法?3015)標(biāo)準(zhǔn)的?2000V
串口通信的硬件連接采用三線制連接串口,就是說和PC的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡(jiǎn)單的連接方法,但是對(duì)本題來說已經(jīng)足夠了,MAX232的第10腳和單片機(jī)的11號(hào)引腳連接,第9腳和單片機(jī)的10腳連接。MAX232的第7腳和PC機(jī)串口的2號(hào)引腳連接,第8腳和PC機(jī)串口的3號(hào)引腳連接,MAX232的第15腳連接GND和第16腳連接VCC。
3.12 LCD1602液晶顯示
液晶顯示原理是利用液晶地物理特性,是通過電壓對(duì)它顯示的區(qū)域進(jìn)行控制,有電就會(huì)有顯示,所以這樣可以顯示出圖形。液晶顯示器的厚度很薄、比較適用于大規(guī)模集成電路、而且容易于實(shí)現(xiàn)全彩色的顯的特點(diǎn),到目前已經(jīng)廣泛應(yīng)用于便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA?移動(dòng)通信工具等眾多領(lǐng)域。
圖3.17 1602顯示電路
1602?采用標(biāo)準(zhǔn)的?16?腳接口,其中:
第?1?腳:VSS是電源地
第?2?腳:VDD是5V?電源正極
第?3?腳:V0控制顯示器對(duì)比度,當(dāng)接地電源時(shí)的對(duì)比度最高,當(dāng)接正電源時(shí)的對(duì)比度最弱
第?4?腳:RS是寄存器的選擇端,當(dāng)為高電平時(shí)選擇數(shù)據(jù)寄存器,當(dāng)為低電平時(shí)選擇指令寄存器。
第?5?腳:RW?為讀寫的信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。
第?6?腳:E(或?EN)端為使能(enable)端。
第?7~14?腳:D0~D7?為?8?位雙向數(shù)據(jù)端。
第?15~16?腳: 15?腳是背光的正極,16?腳是背光的負(fù)極。
1602液晶屏是一種通用模塊。與數(shù)碼管相比該模塊有如下優(yōu)點(diǎn):
(1)位數(shù)多,可顯示32位,32個(gè)數(shù)碼管體積相當(dāng)龐大了。
(2)顯示內(nèi)容豐富,可顯示所有數(shù)字和大、小寫字母。
(3)程序簡(jiǎn)單,如果用數(shù)碼管動(dòng)態(tài)顯示,會(huì)占用很多時(shí)間來刷新顯示,而1602自動(dòng)完成此功能。
開發(fā)板液晶顯示電路如圖3.16所示。
3.13 蜂鳴器
蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,廣泛應(yīng)用于單片機(jī)系統(tǒng)中,用來做發(fā)聲器件或報(bào)警裝置。由于蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O 口是無法直接驅(qū)動(dòng)的,所以要利用放大電路來驅(qū)動(dòng),一般使用三極管來放大電流就可以了。
圖3.18 蜂鳴器電路
實(shí)驗(yàn)發(fā)現(xiàn),單片機(jī)I/O口的低電平輸出的驅(qū)動(dòng)能力比高電平要強(qiáng)的多,但在保證符合邏輯電平時(shí)也只有不到5mA,不需要保證邏輯電平時(shí)(如驅(qū)動(dòng)LED)可以達(dá)到10mA。因此,如果驅(qū)動(dòng)較大功率的器件,應(yīng)該以低電平有效并且外接功率驅(qū)動(dòng)器件,才能對(duì)較大功率器件進(jìn)行有效的操作。 蜂鳴器需要的驅(qū)動(dòng)電流較大,根據(jù)以上考慮,仿真實(shí)驗(yàn)板采用了如圖3.18所示的實(shí)驗(yàn)驅(qū)動(dòng)電路。單片機(jī)的輸出口節(jié)“SPEAKER”端,當(dāng)單片機(jī)輸出低電平時(shí),三極管導(dǎo)通,蜂鳴器接通,蜂鳴器發(fā)出“嘀”的聲音;當(dāng)單片機(jī)輸出高電平時(shí),三極管不導(dǎo)通,蜂鳴器不工作。該電路結(jié)構(gòu)簡(jiǎn)單、使用方便。雖然采用分立元件,在需要驅(qū)動(dòng)負(fù)載個(gè)數(shù)不多的情況下,采用這種電路是較為適宜的。
3.14 步進(jìn)電機(jī)
圖3.19 步進(jìn)電機(jī)電路
ULN2003?系列是美國(guó)?Texas?Instruments?公司、美國(guó)?Sprague?公司開發(fā)的高壓大電流達(dá)林頓晶體管陣列產(chǎn)品,是一種高耐壓、大電流達(dá)林頓陳列,由七個(gè)硅NPN??達(dá)林頓管組成。
本設(shè)計(jì)的驅(qū)動(dòng)電路如圖3.19所示。
ULN2003A?電路具有以下特點(diǎn):
(1)電流增益高(大于?1000);
(2)帶負(fù)載能力強(qiáng)(輸出電流大于?500mA);
(3)溫度范圍寬(-40~85℃);
(4)工作電壓高(大于?50V)。
(5)ULN2003?的每一對(duì)達(dá)林頓都會(huì)串聯(lián)一個(gè)2.7K的基極電阻, 它能在?5V的工作電壓下與?TTL和CMOS電路相連,則可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。
(5)ULN2003的工作電壓很高,工作電流很大,灌電流可以達(dá)到500mA,而且溫度范圍很寬,帶負(fù)載能力很強(qiáng),而且在關(guān)態(tài)時(shí)能夠承受50V的電壓,輸出還可以在高負(fù)載電流運(yùn)行,適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)。
(7)ULN2003采用DIP—16封裝。
3.15 通信電路設(shè)計(jì)
通信電路設(shè)計(jì)通信電路設(shè)計(jì)通信電路設(shè)計(jì)
本設(shè)計(jì)系統(tǒng)要實(shí)現(xiàn)數(shù)據(jù)采集及顯示功能,采集現(xiàn)場(chǎng)和顯示現(xiàn)場(chǎng)為分離系統(tǒng),因此要完成此系統(tǒng)的功能,就必須解決主、從機(jī)之間的通信問題。本設(shè)計(jì)采用RS-232串口通信實(shí)現(xiàn)主、從機(jī)之間的通信。
RS-232接口標(biāo)準(zhǔn)
RS-232是串行數(shù)據(jù)接口標(biāo)準(zhǔn),最初都是由電子工業(yè)協(xié)會(huì)(EIA)制訂并發(fā)布的,RS-232在1962年發(fā)布,命名為EIA-232-E,作為工業(yè)標(biāo)準(zhǔn),以保證不同廠家產(chǎn)品之間的兼容。RS-422由RS-232發(fā)展而來,它是為彌補(bǔ)RS-232之不足而提出的。為改進(jìn)RS-232通信距離短、速率低的缺點(diǎn),RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長(zhǎng)到4000英尺(速率低于100kb/s時(shí)),并允許在一條平衡總線上連接最多10個(gè)接收器。RS-422是一種單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范,被命名為TIA/EIA-422-A標(biāo)準(zhǔn)。為擴(kuò)展應(yīng)用范圍,EIA又于1983年在RS-422基礎(chǔ)上制定了RS-485標(biāo)準(zhǔn),增加了多點(diǎn)、雙向通信能力,即允許多個(gè)發(fā)送器連接到同一條總線上,同時(shí)增加了發(fā)送器的驅(qū)動(dòng)能力和沖突保護(hù)特性,擴(kuò)展了總線共模范圍,后命名為TIA/EIA-485-A標(biāo)準(zhǔn)。由于EIA提出的建議標(biāo)準(zhǔn)都是以“RS”作為前綴,所以在通訊工業(yè)領(lǐng)域,仍然習(xí)慣將上述標(biāo)準(zhǔn)以RS作前綴稱謂。
RS-232、RS-422與RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。
串行傳輸采用的通信協(xié)議 EIA-RS-232對(duì)邏輯電平、各種信號(hào)線功能和電氣特性都作了規(guī)定。在RXD和TXD數(shù)據(jù)上: 邏輯1(MARK)為-3~-15V 邏輯0(SPACE)為+3~-+15V 在RST、CTS、DSR、DTR和DCD等控制線上: 信號(hào)有效(接通,ON狀態(tài),正電壓)為+3~+15V 信號(hào)無效(斷開,OFF狀態(tài),負(fù)電壓)為-3~-15V 以上規(guī)定說明了RS-232標(biāo)準(zhǔn)對(duì)邏輯電平的定義。對(duì)于數(shù)據(jù)(信息碼):邏輯“1”(傳號(hào))的低電平低于-3V,邏輯“0”(空號(hào))的電平高于+3V;對(duì)于控制信號(hào):接通狀態(tài)(ON)即信號(hào)有效的電平高于+3V,斷開狀態(tài)(OFF)即信號(hào)無效的電平低于-3V,也就是當(dāng)傳輸電平的絕對(duì)值大于3V時(shí),電路可以有效地檢查出來,介于-3V~+3V之間的電壓都沒有意義,低于-15V或高于+15V的電壓也認(rèn)為無意義,因此,實(shí)際工作時(shí),應(yīng)保證電平在正負(fù)(3~15)V之間。 EIA-RS-232與TTL轉(zhuǎn)換:很明顯,EIA-RS-232是用正負(fù)電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)地規(guī)定不同。因此,為了能夠在同一個(gè)計(jì)算機(jī)接口和終端的TTL器件連接,必須在TTL電路與EIA-RS-232之間進(jìn)行邏輯關(guān)系和電平的變換[14]。
4 軟件部分
4.1 整體程序設(shè)計(jì)
軟件部分主要包括數(shù)碼管程序、鍵盤程序、AD程序、DA程序、DS1302時(shí)鐘程序、DS18b20溫度傳感器程序、串行通信程序、顯示程序和其他簡(jiǎn)單模塊程序。
4.2軟件模塊設(shè)計(jì)
4.2.1 流水燈程序設(shè)計(jì)
本次設(shè)計(jì)的流水燈采用的是共陽極設(shè)計(jì),正極接上排阻,負(fù)極由P1口控制,當(dāng)P1口出現(xiàn)低電平時(shí),二極管就會(huì)發(fā)光。流程圖如圖4.1所示。
圖4.1 流水燈流程圖 圖4.2 數(shù)碼管流程圖
4.2.2 數(shù)碼管程序設(shè)計(jì)
本設(shè)計(jì)的單片機(jī)開發(fā)板采用六個(gè)共陰極數(shù)碼管,可以采用單個(gè)數(shù)碼管進(jìn)行LED靜態(tài)顯示試驗(yàn),也可以使用多個(gè)數(shù)碼管進(jìn)行動(dòng)態(tài)顯示試驗(yàn)。為了使數(shù)碼管在動(dòng)態(tài)顯示時(shí)有較高的亮度,本設(shè)計(jì)采用兩個(gè)74LS573鎖存器作為驅(qū)動(dòng)芯片,既可以提高數(shù)碼管的驅(qū)動(dòng)電流,又可以作為鎖存器使用,提高對(duì)單片機(jī)I/O口資源的利用率。
程序設(shè)計(jì)中,因?yàn)橐粋€(gè)IO口不但控制著六個(gè)數(shù)碼管的段選,還控制著它們的位選。所以在編程時(shí),首先必須打開位選鎖存器的鎖存端,也就是給74HC573的LE口賦1,然后關(guān)閉位選鎖存器的鎖存端,接下來打開段選鎖存器的鎖存端,將P0口的值賦給數(shù)碼管,數(shù)碼管就顯示數(shù)字。
因?yàn)橐粋€(gè)IO口控制著六個(gè)數(shù)碼管,要想它們同時(shí)顯示不同的數(shù)字,就只能根據(jù)人眼的識(shí)別能力,提高數(shù)碼管的動(dòng)態(tài)速度,達(dá)到人眼不能分辨的效果。
4.2.3 鍵盤程序設(shè)計(jì)
鍵盤程序流程圖如圖4.3所示:
圖4.3 鍵盤流程圖
本設(shè)計(jì)用P3口控制矩陣鍵盤,P3口有4+4和I/O引腳,所以可以控制4*4個(gè)開關(guān),也就是4*4的矩陣鍵盤,首先給P3口賦予0xf0,然后不斷檢測(cè)P3口的數(shù)值,如果P3口檢測(cè)到數(shù)值為0xe0,則可以確認(rèn)第一個(gè)開關(guān)按下,以此類推,就可以檢測(cè)出全部開關(guān)。
4.2.4 AD轉(zhuǎn)換程序設(shè)計(jì)
A/D轉(zhuǎn)換可以有6種方式啟動(dòng):定時(shí)器0溢出、定時(shí)器1溢出、定時(shí)器2溢出、定時(shí)器3溢出、軟件命令、外部轉(zhuǎn)換啟動(dòng)信號(hào)。這種靈活性可以用周期性信號(hào)(定時(shí)器溢出)、軟件事件或外部硬件信號(hào)觸發(fā)轉(zhuǎn)換。一個(gè)狀態(tài)位用于指示轉(zhuǎn)換完成,或產(chǎn)生中斷。轉(zhuǎn)換結(jié)束后的10位結(jié)果數(shù)據(jù)字被鎖存到ADC數(shù)據(jù)寄存器中。流程圖如圖4.4所示。
圖4.4 AD轉(zhuǎn)換流程圖 圖4.5 DA轉(zhuǎn)換流程圖
4.2.5 DA轉(zhuǎn)換程序設(shè)計(jì)
DAC0832中,當(dāng)?ILE?為高電平,片選信號(hào)??/CS??和寫信號(hào)??/WR1?是低電平時(shí),輸入寄存器控制信號(hào)為?1,這樣情況下,輸入寄存器的輸出會(huì)隨輸入的變化而變化。然后,當(dāng)/WR1?由低電平變?yōu)楦邥r(shí),控制信號(hào)會(huì)變?yōu)榈碗娖?,此時(shí),數(shù)據(jù)就會(huì)被鎖存到輸入寄存器中,這樣后,輸入寄存器的輸出端就不再會(huì)隨外部數(shù)據(jù)?DB?變化。
DA轉(zhuǎn)換流程圖如圖4.5所示。
4.2.5 DS18B20測(cè)溫程序設(shè)計(jì)
DS18B20 在使用時(shí)不用任何外圍元件,全部的傳感器元件和轉(zhuǎn)換電路都集成在一個(gè)電路內(nèi);當(dāng)電源的極性接反時(shí),芯片就不能正常工作;每個(gè)DSl8B20 元器件都對(duì)應(yīng)一個(gè)64 位的序號(hào),序號(hào)存放ROM中,可以通過序號(hào)的匹配來實(shí)現(xiàn)多點(diǎn)測(cè)溫。DS18B20采用單總線結(jié)構(gòu),單總線在任何時(shí)刻只能有一個(gè)控制信號(hào)或數(shù)據(jù),數(shù)據(jù)要能在單片機(jī)和單總線芯片之間實(shí)現(xiàn)可靠的傳送。
DS18B20測(cè)溫設(shè)計(jì)流程圖如圖4.5所示。
圖4.6 18B20測(cè)溫流程圖
4.2.5 LCD1602液晶顯示程序設(shè)計(jì)
LCD1602液晶引腳特性:該液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在各類儀表和低功耗系統(tǒng)中得到廣泛的應(yīng)用。根據(jù)顯示內(nèi)容可以分為字符型液晶,圖形液晶。根據(jù)顯示容量又可以分為單行16字,2行16字,兩行20字等等。這里介紹常用的字16字2行的字符型液晶模塊的使用方法。
LCD1602液晶顯示流程圖如圖4.7所示。
圖4.7 LCD1602液晶顯示流程圖
5. 仿真電路及單片機(jī)的調(diào)試
電路仿真是設(shè)計(jì)電路的第一步,它對(duì)設(shè)計(jì)的成功起著至關(guān)重要的作用,在proteus仿真軟件中,經(jīng)過自己幾天的設(shè)計(jì)和布線,終于完成了流水燈、數(shù)碼管顯示、LCD1602顯示、矩陣鍵盤、點(diǎn)陣、步進(jìn)電機(jī)等功能,基本達(dá)到了課題的要求??傮w仿真圖如圖5.1所示。
圖5.1 單片機(jī)實(shí)驗(yàn)板仿真電路
在本次的畢業(yè)設(shè)計(jì)中,畫原理圖和PCB圖大概花了半個(gè)月的時(shí)間,這里面的每一條線都關(guān)系著實(shí)物的性能和質(zhì)量問題,所以必須得認(rèn)認(rèn)真真的對(duì)待,最終完成了原理圖的繪制,原理圖如圖5.2所示,單片機(jī)開發(fā)板PCB圖如圖5.3所示。為了多次重復(fù)下載,所以實(shí)際采用STC89C52芯片。
圖5.2 單片機(jī)實(shí)驗(yàn)板原理圖
圖5.3 單片機(jī)實(shí)驗(yàn)板PCB圖
單片機(jī)實(shí)驗(yàn)板實(shí)物總體圖如圖5.4所示。
圖5.4 單片機(jī)實(shí)驗(yàn)板實(shí)物總體圖
數(shù)碼管顯示如圖5.5所示。
圖5.5 數(shù)碼管顯示
DS18b20測(cè)溫、LCD1602液晶顯示如圖5.6所示。
圖5.6 LCD1602液晶屏測(cè)溫顯示
流水燈演示如圖5.7所示。
圖5.7 流水燈
6 畢業(yè)設(shè)計(jì)總結(jié)
通過本次基于單片機(jī)的實(shí)驗(yàn)開發(fā)板系統(tǒng)的課程設(shè)計(jì),在這過程中,我學(xué)到了很多,加深了對(duì)單片內(nèi)部模塊的理解,進(jìn)一步學(xué)習(xí)了匯編語言的編寫規(guī)則。
從設(shè)計(jì)開始到最終完成設(shè)計(jì),一點(diǎn)一滴積累,在實(shí)踐中成長(zhǎng),在挫折中前進(jìn)。在設(shè)計(jì)的前期,我系統(tǒng)的學(xué)習(xí)了51單片機(jī)的相關(guān)資料,掌握了單片機(jī)外部電路的合理設(shè)計(jì)以及各個(gè)引腳的功能。系統(tǒng)的進(jìn)行了開發(fā)板的需求分析,合理的設(shè)計(jì)出了電路原理框圖,根據(jù)原理框圖設(shè)計(jì)出電路原理圖,針對(duì)使用的單片機(jī)引腳,對(duì)單片機(jī)使用C語言編程。這一步一步的不斷努力,讓我學(xué)到了很多在書本上學(xué)不到的東西,尤其是在處理故障和電路兼容方面的考慮,都使我受益頗多。
在這里畢業(yè)設(shè)計(jì)中,我深深感受到實(shí)踐的重要性,它是檢驗(yàn)我們所學(xué)知識(shí)的有效途徑。沒有付出,就沒有回報(bào)。在這過程中也遇到過一些難題,經(jīng)過自身的努力以及向老師和同學(xué)請(qǐng)教,我學(xué)到很多,也解決了很多問題。
最后,我深刻感受到要做好一個(gè)畢業(yè)設(shè)計(jì),就必須做到:在設(shè)計(jì)程序之前,對(duì)所需資料的綜合整理,有效的挑選資料;要明確目標(biāo),整理思路;合理設(shè)計(jì)出系統(tǒng)所必須的流程圖,做好充分的心里準(zhǔn)備。這次設(shè)計(jì)是對(duì)我所
收藏
編號(hào):20414303
類型:共享資源
大?。?span id="ievbyqtbdd" class="font-tahoma">12.39MB
格式:ZIP
上傳時(shí)間:2021-03-19
20
積分
- 關(guān) 鍵 詞:
-
基于
at89c51
單片機(jī)
多功能
實(shí)驗(yàn)
試驗(yàn)
設(shè)計(jì)
說明書
仿單
- 資源描述:
-
基于AT89C51單片機(jī)多功能實(shí)驗(yàn)板的設(shè)計(jì)說明書,基于,at89c51,單片機(jī),多功能,實(shí)驗(yàn),試驗(yàn),設(shè)計(jì),說明書,仿單
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。