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