單片機(jī)原理和應(yīng)用于實(shí)驗(yàn)指導(dǎo)_第1頁
單片機(jī)原理和應(yīng)用于實(shí)驗(yàn)指導(dǎo)_第2頁
單片機(jī)原理和應(yīng)用于實(shí)驗(yàn)指導(dǎo)_第3頁
單片機(jī)原理和應(yīng)用于實(shí)驗(yàn)指導(dǎo)_第4頁
單片機(jī)原理和應(yīng)用于實(shí)驗(yàn)指導(dǎo)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)原理與應(yīng)用實(shí)驗(yàn)指南 前言由于單片機(jī)具有高可靠性、超小尺寸、價(jià)格低廉、易于產(chǎn)品化等特點(diǎn),具有智能儀表、實(shí)時(shí)工控、實(shí)時(shí)數(shù)據(jù)采集、智能終端、通訊設(shè)備等優(yōu)勢(shì)。 、信息顯示、家用電器等控制應(yīng)用。用途非常廣泛。由于51系列單片機(jī)在全國單片機(jī)應(yīng)用中仍是主流單片機(jī),本實(shí)驗(yàn)指導(dǎo)書是為學(xué)習(xí)51單片機(jī)的學(xué)生編寫的,配合單片機(jī)原理與應(yīng)用課程。單片機(jī)原理與應(yīng)用是一門實(shí)踐性很強(qiáng)的課程。提高教學(xué)質(zhì)量的一個(gè)重要環(huán)節(jié)是計(jì)算機(jī)實(shí)踐和培訓(xùn),無論是學(xué)習(xí)C語言編程,還是學(xué)習(xí)接口電路和外設(shè)與計(jì)算機(jī)的連接?;蛘唛_發(fā)軟硬件兼?zhèn)涞膯纹瑱C(jī)應(yīng)用系統(tǒng),不加強(qiáng)動(dòng)手就無法獲得預(yù)期的效果。本實(shí)驗(yàn)指導(dǎo)書為很多實(shí)驗(yàn)提供了指導(dǎo)材料,有些實(shí)驗(yàn)有一些選修題,

2、有一定難度,可根據(jù)課時(shí)安排和教學(xué)要求進(jìn)行選擇。出于某些實(shí)驗(yàn)的目的,書中提供的參考程序與實(shí)際應(yīng)用中的程序會(huì)有些出入,不一定是最優(yōu)的。由于時(shí)間緊迫,需要將課程進(jìn)度與實(shí)驗(yàn)時(shí)間同步,編者知識(shí)有限。如有不當(dāng)之處,歡迎讀者批評(píng)指正。實(shí)驗(yàn)筆記1、實(shí)驗(yàn)前必須閱讀教材相關(guān)部分和本實(shí)驗(yàn)指南,了解實(shí)驗(yàn)的目的、內(nèi)容和步驟,做好實(shí)驗(yàn)前的準(zhǔn)備工作,編寫需要編輯或修改的程序在實(shí)驗(yàn)中;準(zhǔn)備工作完成后可以在電腦上進(jìn)行實(shí)驗(yàn),否則無法在電腦上操作。2、各種電源的電壓和極性不能接錯(cuò),嚴(yán)禁帶電接線和插拔元件。通電前必須經(jīng)過教練的檢查和批準(zhǔn)。3、不準(zhǔn)亂動(dòng)與實(shí)驗(yàn)無關(guān)的各種旋鈕和開關(guān)。禁止使用和觸摸任何與本實(shí)驗(yàn)無關(guān)的設(shè)備。注意安全。4、嚴(yán)禁

3、用手觸摸印刷電路板的引腳和實(shí)驗(yàn)系統(tǒng)的元器件,以防芯片靜電擊穿。5、實(shí)驗(yàn)過程中儀器或部件如有損壞,應(yīng)及時(shí)向指導(dǎo)教師報(bào)告。6、實(shí)驗(yàn)室內(nèi)保持安靜衛(wèi)生,不要隨意走動(dòng)和吵鬧,專心完成實(shí)驗(yàn)。7、實(shí)驗(yàn)完成后,關(guān)閉電源,整理實(shí)驗(yàn)臺(tái)桌面,保持環(huán)境整潔。8.認(rèn)真完成實(shí)驗(yàn)內(nèi)容,按規(guī)定寫在作業(yè)本上,在規(guī)定時(shí)間交作業(yè)。9、未按規(guī)定完成實(shí)驗(yàn)的學(xué)生不得參加本課程的考試。單片機(jī)實(shí)驗(yàn)工作格式實(shí)驗(yàn)名稱一、實(shí)驗(yàn)?zāi)康?、實(shí)驗(yàn)設(shè)計(jì)與調(diào)試:(1)實(shí)驗(yàn)電路:畫出與實(shí)驗(yàn)內(nèi)容相關(guān)的實(shí)驗(yàn)電路。(2)實(shí)驗(yàn)設(shè)計(jì)與調(diào)試步驟:根據(jù)內(nèi)容編寫實(shí)驗(yàn)程序。調(diào)試程序并觀察結(jié)果。(3)實(shí)驗(yàn)調(diào)試過程中遇到的問題、解決問題的思路和方法。三、實(shí)驗(yàn)后的經(jīng)驗(yàn)總結(jié)目錄 TOC

4、 o 1-3 h z u HYPERLINK l _Toc402348209 實(shí)驗(yàn)一:使用實(shí)驗(yàn)板,使用Keil C51軟件 PAGEREF _Toc402348209 h 1 HYPERLINK l _Toc402348210 實(shí)驗(yàn)2 LED燈顯示實(shí)驗(yàn) PAGEREF _Toc402348210 h 6 HYPERLINK l _Toc402348211 實(shí)驗(yàn)3 單片機(jī)控制數(shù)碼管實(shí)驗(yàn) PAGEREF _Toc402348211 h 8 HYPERLINK l _Toc402348212 實(shí)驗(yàn) 4 按鈕實(shí)驗(yàn) PAGEREF _Toc402348212 h 12 HYPERLINK l _Toc4

5、02348213 實(shí)驗(yàn)5 中斷系統(tǒng)應(yīng)用實(shí)驗(yàn) PAGEREF _Toc402348213 h 15 HYPERLINK l _Toc402348214 實(shí)驗(yàn)六定時(shí)器/計(jì)數(shù)器使用 PAGEREF _Toc402348214 h 18 HYPERLINK l _Toc402348215 實(shí)驗(yàn) 7 微控制器串行通信 PAGEREF _Toc402348215 h 22 HYPERLINK l _Toc402348216 實(shí)驗(yàn)八LCD1602液晶顯示器 PAGEREF _Toc402348216 h 25實(shí)驗(yàn)一:使用實(shí)驗(yàn)板,使用Keil C51軟件一、實(shí)驗(yàn)?zāi)康?、熟悉MCU實(shí)驗(yàn)板和Keil C51軟件的

6、使用2. 實(shí)驗(yàn)說明本實(shí)驗(yàn)介紹了實(shí)驗(yàn)板的組成、 Keil C51軟件的使用和編程軟件的使用。通過本實(shí)驗(yàn),學(xué)生可以了解單片機(jī)的編程和調(diào)試方法。三、 Keilc軟件使用說明1.打開程序:雙擊程序2、新建工程:工程新建工程保存工程選擇CPU(一般選擇ATMEL公司的AT89S51)3.設(shè)置工程:右鍵Options for Target 1選擇Create HEX(輸出HEX4、新建源文件:選擇文件新建輸入,編輯源程序保存(匯編源程序:filename.asm;C源程序:filename.c)5. 將源文件添加到項(xiàng)目:在項(xiàng)目導(dǎo)出文件頁面上,單擊文件組,選擇將文件添加到組的源組1選項(xiàng),選擇您的源文件和文件

7、類型,然后單擊添加,然后單擊關(guān)閉。6. 編譯:點(diǎn)擊或右鍵Target 1 Build Target F7 編譯源程序。當(dāng)程序出現(xiàn)語法錯(cuò)誤時(shí),會(huì)在輸出窗口(Output Windows)中顯示錯(cuò)誤信息和警告信息,修改編譯成功后生成HEX文件。7、下載調(diào)試:編譯成功后,使用在線編程程序?qū)?HEX文件下載到單片機(jī)的ROM中運(yùn)行。運(yùn)行過程中如發(fā)現(xiàn)錯(cuò)誤,應(yīng)重新修改程序,編譯后下載運(yùn)行。四、刻錄軟件的使用1.打開在線燒錄程序2.選擇MCU類型( STC 89C51RC )3.點(diǎn)擊打開工程目錄下的hex文件4.選擇端口(通常是COM1)5.點(diǎn)擊下載燒錄程序6.打開實(shí)驗(yàn)板上的電源(燒錄過程中如果出現(xiàn)問題,點(diǎn)擊

8、停止)注意:第 5 步和第 6 步的順序不能顛倒!即在點(diǎn)擊下載前關(guān)閉實(shí)驗(yàn)板上的電源。五、實(shí)驗(yàn)內(nèi)容及步驟1、啟動(dòng)PC,安裝Keil C51軟件燒錄軟件,用串口線連接電腦和實(shí)驗(yàn)板(USB線供電)。2 、打開Keil uVision仿真軟件,先創(chuàng)建本實(shí)驗(yàn)的工程文件,再創(chuàng)建源程序,編譯無誤后全速運(yùn)行程序。3 、源程序可以編譯成可執(zhí)行文件,用刻錄機(jī)燒錄到89芯片中。實(shí)驗(yàn)2 LED燈顯示實(shí)驗(yàn)1 、實(shí)驗(yàn)?zāi)康模鹤屝粢远喾N方式顯示。2、實(shí)驗(yàn)內(nèi)容:向端口發(fā)送不同的數(shù)據(jù),點(diǎn)亮LED燈。3、實(shí)驗(yàn)設(shè)備:單片機(jī)模塊(89S51或89S52)、LED燈顯示模塊。4 、實(shí)驗(yàn)原理:5 、實(shí)驗(yàn)步驟:將單片機(jī)模塊的P1口接LED

9、燈,控制LED燈的各種顯示模式,如:開燈、一一關(guān)/開、交錯(cuò)開/關(guān), ETC。實(shí)驗(yàn)步驟說明:本實(shí)驗(yàn)需要使用單片機(jī)最小應(yīng)用系統(tǒng)。使用P 1端口作為輸出端口,程序功能使LED 亮起。用串口數(shù)據(jù)通訊線連接電腦和實(shí)驗(yàn)板,用USB給實(shí)驗(yàn)板供電2 、打開Keil uVision2仿真軟件,首先建立本實(shí)驗(yàn)的工程文件,輸入源程序(參考程序1 ),編譯直到編譯正確。生成一個(gè)十六進(jìn)制文件。3、通過STC-ISP下載軟件,下載hex文件到實(shí)驗(yàn)板,觀察LED顯示。參考程序:C程序代碼:#include#define uchar 無符號(hào)字符#define uint 無符號(hào)整數(shù)無效延遲(uint a)uint i;ucha

10、r j;for(i=0;ia;i+)for(j=0;j200;j+);無效的主要() 而(1)P1=0 x00;延遲(200);P1=0X01;延遲(500);P1=0X02;延遲(500);P1=0X04;延遲(500);P1=0X08;延遲(500);P1=0X10;延遲(500);P1=0X20;延遲(500);P1=0X40;延遲(500);P1=0X80;延遲(500);6、實(shí)驗(yàn)要求:請(qǐng)?jiān)趉eil環(huán)境下編寫如下程序:1)打開最后一個(gè)LED(或任何LED,或任意數(shù)量的LED)2) 使點(diǎn)亮的 LED 閃爍板上L 0、 L 2、 L 4、 L 6燈,與L 1、 L 3、 L 5、 L 7燈

11、交替閃爍4) 設(shè)計(jì)一個(gè)流水燈程序,依次點(diǎn)亮L 1- L 7。實(shí)驗(yàn)3 單片機(jī)控制數(shù)碼管實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握數(shù)碼管如何顯示字符2.掌握延時(shí)子程序的使用2、實(shí)驗(yàn)原理一、數(shù)碼管的兩種連接方式2.共陰極數(shù)碼管編碼0 x 3f, 0 x06 , 0 x5b , 0 x 4f, 0 x66 , 0 x6d ,0 1 2 3 4 50 x7d , 0 x07 , 0 x 7f, 0 x 6f, 0 x77 , 0 x 7c,6 7 8 9 A乙0 x39 , 0 x5e , 0 x79 , 0 x71 , 0 x00CDEF 不顯示請(qǐng)考慮共陽極數(shù)碼管的編碼。三、實(shí)驗(yàn)電路圖4.參考例子1)讓第一個(gè)數(shù)碼管顯示

12、一個(gè)3字對(duì)于實(shí)驗(yàn)板(共陰極),數(shù)碼管的位WE1-WE6對(duì)應(yīng)74HC573-2芯片,WE P2.7位選擇信號(hào)控制74HC573-2芯片,數(shù)碼管的頻閃是為了通過WE P2.7選擇74HC573-2芯片,P0口控制WE1-WE6使第一個(gè)數(shù)碼管顯示3個(gè)字符,然后關(guān)閉其他數(shù)碼管的位選擇,即只有第一個(gè)數(shù)碼管是打開的??刂莆贿x擇的P0口要輸出的數(shù)據(jù)位為0 xfe(二進(jìn)制為1111 1110)。位選擇確定后,段選擇確定,顯示為3,則P0口應(yīng)輸出0 x 4f(二進(jìn)制0100 1111)。2) 在四個(gè)數(shù)碼管上顯示 8位選擇:WE P2.7與74HC573-2有效連接,對(duì)應(yīng)P0口左邊四個(gè)數(shù)碼管分別是WE1 WE2

13、WE3 WE4對(duì)應(yīng)P0端口:0 xfe 0 xfd 0 xfb 0 xf7(1111 1110) (1111 1101) (1111 1011) (1111 0111)段選擇:接P0口共陰極代碼0 x7f5. 參考程序(1)讓第一個(gè)數(shù)碼管顯示一個(gè)3字#include sbit 杜拉=P26; /段選擇信號(hào)的鎖存控制sbit wela=P27; /位選擇信號(hào)的鎖存控制無效的主要()杜拉=0;韋拉=0;P0=0 x 4f; /“數(shù)字”的代碼3杜拉=1;杜拉=0;P0=0 xfe; /選擇第一個(gè)數(shù)碼管韋拉=1;韋拉=0;而(1);(2)讓前兩個(gè)數(shù)碼管顯示88#include sbit 杜拉=P26;

14、 /段選擇信號(hào)的鎖存控制sbit wela=P27; /位選擇信號(hào)的鎖存控制無效延遲(無符號(hào)整數(shù)計(jì)數(shù))無符號(hào)整數(shù) i,j;for(i=0;icount;i+)for(j=0;j120;j+);無效的主要()杜拉=0;韋拉=0;而(1)P0=0 x 7f; /數(shù)字“8”的代碼杜拉=1;杜拉=0;P0=0 xfe; /選擇第一個(gè)數(shù)碼管韋拉=1;韋拉=0;延遲(2);P0=0 x 7f; /數(shù)字“8”的代碼杜拉=1;杜拉=0;P0=0 xfd; /選擇第二個(gè)數(shù)碼管韋拉=1;韋拉=0;延遲(2);(3)讓數(shù)碼管流動(dòng)顯示3個(gè)字符#include sbit 杜拉=P26; /段選擇信號(hào)的鎖存控制sbit

15、wela=P27; /位選擇信號(hào)的鎖存控制無符號(hào)字符碼表=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/數(shù)碼管的代碼表無效延遲(無符號(hào)整數(shù)計(jì)數(shù))無符號(hào)整數(shù) i,j;for(i=0;icount;i+)for(j=0;j120;j+);無效的主要()無符號(hào)字符數(shù);而(1)for(num=0;num6;num+)P0=表編號(hào); 韋拉=1;韋拉=0;P0=0 x 4f; /“數(shù)字”的代碼3杜拉=1;杜拉=0;延遲( 1000 );六、實(shí)驗(yàn)內(nèi)容基本內(nèi)容: 1)第二位數(shù)碼管顯示8;2)用數(shù)碼管顯示你的生日;擴(kuò)展能力: 1)第一個(gè)數(shù)碼管循環(huán)顯示0-9。實(shí)驗(yàn)四鍵實(shí)驗(yàn)一。目的1.進(jìn)

16、一步熟悉編程和程序調(diào)試2.學(xué)習(xí)如何使用獨(dú)立按鈕二。實(shí)驗(yàn)說明如果系統(tǒng)只需要幾個(gè)按鍵,可以直接用I/O線組成一個(gè)按鍵電路。每個(gè)按鍵相互獨(dú)立,一條線路的按鍵狀態(tài)不會(huì)影響其他輸入線路的工作狀態(tài),又稱獨(dú)立鍵盤。接口電路。檢測(cè)是否有按鍵關(guān)閉,如果有按鍵關(guān)閉,則去除按鍵抖動(dòng),判斷按鍵編號(hào),轉(zhuǎn)入相應(yīng)按鍵處理。在編寫單片機(jī)的鍵盤檢測(cè)程序時(shí),一般在檢測(cè)按下時(shí)添加去抖動(dòng)延遲,在檢測(cè)釋放時(shí)不需要添加。三、實(shí)驗(yàn)電路圖4.參考例子(1)按K2燈亮,按K1燈滅參考程序代碼:C程序代碼:#include位 K1=P 3 4 ;sbit K2= P3 5 ;位 D1=P 1 0;無效的主要()如果(K1=0)D1=1;如果(

17、K2=0)D1=0;(2)按k1鍵打開LED燈,再按一下關(guān)閉燈。#include#define uchar 無符號(hào)字符uchar 編號(hào);sbit led=P10;位 k1=P34;無效延遲(uchar i)uchar j,k;對(duì)于(j=i;j0;j-)for(k=125;k0;k-);無效的主要()而(1)如果(k1=0) 延遲(20); /去抖動(dòng)如果(k1=0) 而(!k1); /等待按鈕被釋放 數(shù)+; 開關(guān)(數(shù)量) 案例1:led=0;休息;案例2:led=1;數(shù)=0;休息; 方法二:#include位 s2=P34; /收集按鈕狀態(tài),此時(shí)作為輸入引腳sbit led=P10; /此時(shí),它

18、被用作輸出引腳。無效延遲(無符號(hào)字符 p)無符號(hào)字符 m,n;對(duì)于(m=p;m0;m-)for(n=125;n0;n-);無效的主要()而(1)如果(s2=0) 延遲(10); /去抖動(dòng)如果(s2=0) while(!s2);/等待釋放密鑰。領(lǐng)導(dǎo)=領(lǐng)導(dǎo); 五、實(shí)驗(yàn)內(nèi)容基本內(nèi)容:按鍵控制數(shù)碼管顯示:按K1,第一個(gè)數(shù)碼管顯示1,再按數(shù)碼管顯示2,依次按加1,加1后返回顯示1顯示為 5。擴(kuò)展能力:通過K1、K2、K3、K4分別控制8個(gè)led燈,顯示不同的流水燈效果。實(shí)驗(yàn)5中斷系統(tǒng)應(yīng)用實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.掌握外部中斷技術(shù)的基本用法2.掌握編寫中斷處理程序的方法2、實(shí)驗(yàn)原理1.外部中斷初始化設(shè)置有三項(xiàng):

19、總中斷使能EA=1,外部中斷使能EXi=1(i=0或1),中斷觸發(fā)方式設(shè)置。設(shè)置中斷觸發(fā)方式一般有兩種方式:電平觸發(fā)方式和脈沖(邊沿)觸發(fā)方式。本實(shí)驗(yàn)選用后者。當(dāng)上一次為高電平,下一次為低電平時(shí),為有效的中斷請(qǐng)求。因此,高電平狀態(tài)和低電平狀態(tài)至少保持一個(gè)周期,中斷請(qǐng)求信號(hào)由引腳INT0(P3.2)和INT1(P3.3)引入。2 、中斷控制原理:中斷控制是提供給用戶的一種中斷控制方式。其實(shí)就是控制一些寄存器。為此,51 系列有四個(gè)控制寄存器:TCON、IE、SCON 和 IP。3 、中斷響應(yīng)的過程:首先中斷采樣,然后中斷輪詢,最后中斷響應(yīng)。采樣是中斷處理的第一步。對(duì)于本實(shí)驗(yàn)的脈沖方式中斷請(qǐng)求,若

20、采樣在相鄰兩個(gè)周期內(nèi)為高電平再低電平,則中斷請(qǐng)求有效,IE0或IE1置“1”;否則,繼續(xù)為“0”。所謂查詢,就是CPU通過檢測(cè)TCON和SCON中各個(gè)標(biāo)志位的狀態(tài),判斷是否有中斷請(qǐng)求,發(fā)生了哪個(gè)中斷請(qǐng)求。中斷響應(yīng)是對(duì)中斷請(qǐng)求的接受,是在中斷查詢之后進(jìn)行的。當(dāng)查詢到一個(gè)有效的中斷請(qǐng)求時(shí),它會(huì)響應(yīng)一個(gè)中斷。4. 51的中斷系統(tǒng)51的中斷系統(tǒng)包括5個(gè)中斷源,提供兩個(gè)優(yōu)先級(jí),用戶可以獨(dú)立控制中斷源和設(shè)置中斷優(yōu)先級(jí)。 8051支持的5個(gè)中斷源分別是外部中斷0、定時(shí)器0溢出中斷、外部中斷1、定時(shí)器1溢出中斷和串口中斷。對(duì)應(yīng)的中斷號(hào)為0、1、2、3、4;寄存器有4個(gè)工作組可以切換,分別為0-3;在C51中,

21、中斷服務(wù)程序是以中斷函數(shù)的形式實(shí)現(xiàn)的。5、中斷函數(shù)格式如下:void function name() 使用工作組的中斷中斷號(hào) 中斷服務(wù)程序內(nèi)容; 3.參考例子8個(gè)LED為流水燈。按下按鈕后,8個(gè)LED燈閃爍4次后恢復(fù)原狀。 (按鈕連接到P3.2 ,即外部中斷0。)參考程序(適用于上圖仿真電路)#include#include#define uchar 無符號(hào)字符無效延遲(uchar k)uchar i,j;for(i=0;ik;i+)for(j=0;j125;j+);無效INT0_init(無效)EX0=1;IT0=1;EA=1;無效的主要() uchar q,溫度;INT0_init();而

22、(1)溫度=0 xfe;for(q=0;q8;q+)P1=溫度;延遲(200);溫度=_croll_(P1,1);無效 int0_1() 中斷 0 uchar m;for(m=0;m4;m+)P1=0 x00;延遲(200);P1=0 xff;延遲(200);四、實(shí)驗(yàn)容基本內(nèi)容:使用外部中斷1實(shí)現(xiàn)以下功能8個(gè)led水燈循環(huán)顯示,按下按鈕后,數(shù)碼管顯示“ sos ” ,蜂鳴器發(fā)出報(bào)警聲。注:1)注意C51中不同的中斷號(hào)2)分析開發(fā)板原理圖,注意外部中斷1使用的按鍵和程序設(shè)置。擴(kuò)容:使用外部中斷1實(shí)現(xiàn):第一個(gè)數(shù)碼管從0開始計(jì)數(shù),加到9再返回0,使用外部中斷1實(shí)現(xiàn),按下按鍵后暫停計(jì)數(shù),再按下繼續(xù)計(jì)數(shù)

23、。實(shí)驗(yàn)六定時(shí)器/計(jì)數(shù)器使用一、實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)89C51定時(shí)器計(jì)數(shù)器的使用和編程方法2.進(jìn)一步掌握中斷處理程序的編寫方法2、實(shí)驗(yàn)原理1、51單片機(jī)有兩個(gè)16位定時(shí)器/計(jì)數(shù)器(T/C,Timer/Counter)。如果晶振驅(qū)動(dòng)時(shí)鐘,就是定時(shí)器;如果是8051輸入管腳的脈沖信號(hào),就是計(jì)數(shù)器。定時(shí)器實(shí)際上工作在計(jì)數(shù)模式下,只是對(duì)固定頻率的脈沖進(jìn)行計(jì)數(shù)。由于脈沖周期是固定的,因此可以從計(jì)數(shù)值計(jì)算時(shí)間,并具有計(jì)時(shí)功能。與定時(shí)器相關(guān)的寄存器包括工作模式寄存器 TMOD 和控制寄存器 TCON。 TMOD用于設(shè)置定時(shí)器/計(jì)數(shù)器0-3的工作模式,判斷是用于計(jì)時(shí)還是計(jì)數(shù)。 TCON 的主要作用是設(shè)置定時(shí)器溢出時(shí)

24、的標(biāo)志位,并控制定時(shí)器的運(yùn)行或停止。2. TMOD1) M 1M0 工作模式控制位2 ) C/T定時(shí)器模式或計(jì)數(shù)器模式選擇位如果C/T = 1 ,則為計(jì)數(shù)器模式;當(dāng) C/T = 0時(shí),為定時(shí)器模式。 3 ) GATE定時(shí)器/計(jì)數(shù)器操作門控制標(biāo)志當(dāng)GATE=1時(shí), T/C的啟動(dòng)由雙控控制,即要求INT0(或INT1)引腳為高電平且TR0(或TR1)置1時(shí),對(duì)應(yīng)的T /C 被門控工作。如果GATE=0,則T/C的啟動(dòng)只由TR0(或TR1)控制,即如果設(shè)置為1 ,則無論INT0(或INT1)的電平是否為高,T/C都是門控的或低。3. TCONTF0和TF1分別是定時(shí)器/計(jì)數(shù)器T0和T1的溢出中斷標(biāo)志

25、位。當(dāng)加法計(jì)數(shù)器溢出時(shí),會(huì)置1,申請(qǐng)中斷,響應(yīng)中斷后自動(dòng)復(fù)位為0 。 TF產(chǎn)生的中斷申請(qǐng)是否被接受,取決于中斷是否打開。 TR1和TR0分別是定時(shí)器/計(jì)數(shù)器T1和T0的操作控制位。定時(shí)器/計(jì)數(shù)器被軟件置1后開始工作,系統(tǒng)復(fù)位時(shí)清0 。4. 初始化1)初始化步驟使用51系列單片機(jī)的 T/C 前,要對(duì)其進(jìn)行編程和初始化,主要是對(duì)TCON和TMOD進(jìn)行編程,還需要計(jì)算并加載T/C 的初始計(jì)數(shù)值。一般完成以下步驟:( 1 )確定T/C是如何工作的對(duì)TMOD寄存器進(jìn)行編程;T/C中的計(jì)數(shù)初值,并加載到TH和TL中;(3) T/C工作在中斷模式時(shí),必須使能CPU中斷和源中斷燒寫IE寄存器;(4) 啟動(dòng)定時(shí)

26、器/計(jì)數(shù)器對(duì)TCON中的TR1或TR0位進(jìn)行編程。2 )count初值的計(jì)算(1)定時(shí)器的初始計(jì)數(shù)值:在定時(shí)器模式下, T/C對(duì)機(jī)器周期脈沖進(jìn)行計(jì)數(shù), f OSC =6MHZ ,一個(gè)機(jī)器周期為12/f OSC =2us ,則模式0 13位定時(shí)器最大計(jì)時(shí)間隔=2 13 *2us=16.384ms模式 1 16位定時(shí)器最大計(jì)時(shí)間隔=2 16 *2us=131.072ms模式2 8位定時(shí)器最大計(jì)時(shí)間隔= 2 8 *2us=512us如果T/C工作在定時(shí)器模式1下,需要計(jì)時(shí)1ms并計(jì)算計(jì)數(shù)值。如果設(shè)計(jì)編號(hào)的初始值為x ,則有:(2 16 -x)*2us=1000us推出x=2 16 -500因此, T

27、H、TL可以設(shè)置為65 536-500(2) 計(jì)數(shù)器的初始計(jì)數(shù)值在計(jì)數(shù)器模式下:模式0 13 位計(jì)數(shù)器的全計(jì)數(shù)值= 2 13 =819216 位計(jì)數(shù)器的全計(jì)數(shù)值= 2 16 =65 536模式2 8 位計(jì)數(shù)器的全計(jì)數(shù)值= 2 8 =256如果T/C工作在計(jì)數(shù)器模式2 ,則需要對(duì)10個(gè)脈沖的初始值進(jìn)行計(jì)數(shù),例如設(shè)計(jì)數(shù)的初始值為x 。然后有2 8 -x=10或x= 2 8 -10因此, TH=TL=256-103.參考例子將單片機(jī)的晶振頻率設(shè)置為12MHz ,用定時(shí)器在P1.0引腳輸出一個(gè)周期為2ms的方波。分析:定時(shí)器/計(jì)數(shù)器選擇T0作為定時(shí)器,輸出為P1.0引腳。 2ms的方波可以由1ms間隔

28、的高低電平交替形成,因此只需每1ms反轉(zhuǎn)一次P1.0即可。你可以得到這個(gè)方波。機(jī)器周期=12 12MHz = 1s1 msT0需要計(jì)數(shù)N次: N= 1 ms 1 s = 1000由于計(jì)數(shù)器向上計(jì)數(shù),為了使定時(shí)器在1000 次計(jì)數(shù)后溢出,定時(shí)器的初始值必須設(shè)置為:65536-1000。參考程序:(1)設(shè)置一個(gè)周期為2ms的方波查詢方式:#include位 P1_0=P10;無效的主要() P1_0=1;TMOD=0 x01; /T 0工作在定時(shí)器模式 1 16 位定時(shí)器TR0=1; /開始T0for(;) /主程序循環(huán)TH0=(65536-1000)/256; /預(yù)設(shè)計(jì)數(shù)初始值TL0=(6553

29、6-1000)%256;做P1_0=!P1_0; /P1.0 否定TF0=0; /軟件清除TF0while(!TF0); /查詢等待TF0被設(shè)置中斷方法:#include位 P1_0=P10;無效的主要()P1_0=0;TMOD=0 x01; /T 0工作在定時(shí)器模式1TH0=(65536-1000)/256; /預(yù)設(shè)計(jì)數(shù)初始值TL0=(65536-1000)%256;EA=1; /CPU打開中斷TF0=0;ET0=1; /T0開啟中斷TR0=1; /啟動(dòng)T0開始計(jì)時(shí)而(1);void timer0(void) interrupt 1 /T/C中斷服務(wù)程序入口TF0=0; /清除中斷標(biāo)志P1_

30、0=!P1_0; /P1.0 否定TH0=(65536-1000)/256; /計(jì)數(shù)初值重載TL0=(65536-1000)%256;(2)用定時(shí)器精確計(jì)時(shí)1s,控制LED以秒為單位閃爍。已知fosc=12MHzT1選擇模式 1 。計(jì)時(shí)時(shí)間為10ms。當(dāng)10ms的定時(shí)時(shí)間到了,TF1=1,連續(xù)定時(shí)100次,調(diào)用亮燈函數(shù);連續(xù)計(jì)時(shí)100次后,調(diào)用熄燈功能。循環(huán)工作,即達(dá)到每1s閃爍一次的效果。1、初值計(jì)算:(65536-X)12/fosc=10ms初始值X=55536=0D 8F0H因?yàn)?65536-1000 0 )/256 是 55536 的高 8 位,而 (65536-1000 0 )%25

31、6 是 55536 的低 8 位,所以TH1= (65536-1000 0 ) /256 , TL1= (65536-1000 0 ) % 2562.程序設(shè)計(jì):C語言程序:#include 位 LED=P10;無符號(hào)字符 i;無效的主要()LED=1; /定義燈的初始狀態(tài)為關(guān)閉我=0;TMOD=0 x10; /設(shè)置定時(shí)器1工作在模式1TL1= (65536-1000 0 ) % 256 ;TH1= (65536-1000 0 )/256 ; /設(shè)置計(jì)時(shí)初始值TR1=1; /啟動(dòng)定時(shí)器1ET1=1; /啟用定時(shí)器1中斷EA=1;而(1); 無效 timer1_int() 中斷 3TL1=(655

32、36-1000 0 ) % 256; /定時(shí)器重新加載初始值TH1=(65536-1000 0 )/256;我+;如果(我=100)LED=LED;我=0;四、實(shí)驗(yàn)內(nèi)容1)基本內(nèi)容:根據(jù)開發(fā)板原理圖,設(shè)計(jì)9秒倒計(jì)時(shí),數(shù)碼管從9開始每秒遞減1,到0時(shí),定時(shí)器關(guān)閉,蜂鳴器響起.2)擴(kuò)容:設(shè)計(jì)60秒倒計(jì)時(shí)。實(shí)驗(yàn)7 MCU串行通信目的1、了解單片機(jī)串口的工作原理;2.學(xué)會(huì)使用單片機(jī)的TXD和RXD端口;3.了解MAX232芯片的功能。實(shí)驗(yàn)原理計(jì)算機(jī)與其外部設(shè)備之間的數(shù)據(jù)交換稱為通信。通信的基本方式可分為并行通信和串行通信。在并行通信中,至少有8個(gè)數(shù)據(jù)通道,可以同時(shí)向?qū)Ψ桨l(fā)送一個(gè)字節(jié)的8位二進(jìn)制碼。串行

33、通信使用兩條傳輸線傳輸數(shù)據(jù),一次只能發(fā)送一位二進(jìn)制。串行通信技術(shù)按傳輸?shù)木幋a格式可分為同步通信和異步通信兩種方式:1、同步方式:數(shù)據(jù)以數(shù)據(jù)塊為單位傳輸。同步字符用于在傳輸開始之前進(jìn)行指示,發(fā)送方和接收方之間的同步是通過時(shí)鐘來實(shí)現(xiàn)的。2.異步模式:數(shù)據(jù)不連續(xù)傳輸。以字符為單位進(jìn)行傳輸。傳輸?shù)淖止?jié)分為:起始位、數(shù)據(jù)位、校驗(yàn)位和停止位,稱為一幀。常見格式:a、1bit起始位+8bit數(shù)據(jù)位+無校驗(yàn)位+1bit停止位灣。 1bit起始位+8bit數(shù)據(jù)位+1bit偶校驗(yàn)位+1bit停止位串行通信技術(shù)按數(shù)據(jù)流向分為三種方式:1、單工通信:數(shù)據(jù)流向是固定的,數(shù)據(jù)只能從一方發(fā)送到另一方。2、半雙工通信:數(shù)據(jù)的

34、流向是雙向的,但在某一時(shí)刻,數(shù)據(jù)只能單向流動(dòng)。3、全雙工通信:允許數(shù)據(jù)在兩個(gè)方向流動(dòng),即通信雙方的數(shù)據(jù)發(fā)送和接收同時(shí)進(jìn)行。串口控制寄存器SCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2任TB8RB8T1RISM0 、 SM1 :軟件置位或清零,選擇串口的四種工作模式。SM2 :多機(jī)通訊控制位。在模式2和模式3中,如果SM2=1 ,當(dāng)接收到的第 9位數(shù)據(jù)(RB8)為0時(shí),接收中斷標(biāo)志RI(即RI=0)不會(huì)被激活,接收到的前8位數(shù)據(jù)將丟棄;當(dāng)RB8為1 時(shí),將接收到的前 8位數(shù)據(jù)發(fā)送到SBUF ,并設(shè)置 RI以產(chǎn)生中斷請(qǐng)求。當(dāng)SM2=0時(shí),無論第9位數(shù)據(jù)是0還是

35、1 ,前8位數(shù)據(jù)都加載到SBUF中,并產(chǎn)生中斷請(qǐng)求。在模式0中, SM2必須為0 。REN :使能串行接收控制位。如果REN=0 ,接收被禁用;如果REN=1 ,則啟用接收,并且該位由軟件設(shè)置或復(fù)位。TB8 :傳輸數(shù)據(jù)D8位。在模式2和模式3中, TB8 是要發(fā)送的第 9 位數(shù)據(jù)。在多機(jī)通訊中, TB8位的狀態(tài)表示主機(jī)發(fā)送的是地址還是數(shù)據(jù): TB8=0為數(shù)據(jù), TB8=1為地址;它也可以用作數(shù)據(jù)的奇偶校驗(yàn)位。該位由軟件置位或復(fù)位。RB8 : 接收數(shù)據(jù)D8位。在模式2和模式3中,接收到的第9位數(shù)據(jù)可以用作奇偶校驗(yàn)位或地址幀或數(shù)據(jù)幀標(biāo)志。在模式1中,如果SM2=0 , RB8為接收到的停止位。在模

36、式0 中,不使用RB8位。TI :發(fā)送中斷標(biāo)志位。在模式0下,當(dāng)數(shù)據(jù)的第 8位發(fā)送完畢,或在其他模式下發(fā)送停止位后,硬件將置位TI向CPU 請(qǐng)求中斷。 CPU響應(yīng)中斷后,必須用軟件清零。此外, TI也可供詢價(jià)。RI :接收中斷標(biāo)志位。在模式0 ,當(dāng)接收數(shù)據(jù)的第8位完成時(shí),或者在其他模式下,在接收停止位的過程中, RI由硬件置位,并向CPU請(qǐng)求中斷。此外,它必須在CPU 響應(yīng)中斷后用軟件清零。 RI也可用于查詢。功率控制寄存器 PCON 的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SMODCF1CF0PDIDLPCON的最高位SMOD 為串口波特率系數(shù)控制位。當(dāng)SMOD=1時(shí),波特

37、率加倍。其余位與串口無關(guān)。波特率設(shè)置:串口的四種工作模式對(duì)應(yīng)三種波特率模式。對(duì)于模式0 ,波特率固定為fosc/12 。對(duì)于模式2 ,波特率由振蕩頻率fosc和SMOD (PCON.7)決定。其對(duì)應(yīng)公式為波特率= 2 SMOD fosc/64 。當(dāng)SMOD=0時(shí),波特率為fosc/64 ;當(dāng)SMOD=1時(shí),波特率為fosc/32 。對(duì)于模式1和模式3 ,波特率由定時(shí)器/計(jì)數(shù)器T1 和 SMOD的溢出率決定,其由下式?jīng)Q定:波特率= 2 SMOD 定時(shí)器/計(jì)數(shù)器T1溢出率/323.參考方案在上位機(jī)上使用串口調(diào)試助手發(fā)送一個(gè)字符X ,單片機(jī)接收到該字符后返回上位機(jī)“我得到X” ,串口波特率設(shè)置為96

38、00。如果f osc = 11.0592MHz ,波特率為9600bps , SMOD = 0 ,定時(shí)器/計(jì)數(shù)器T1的初始計(jì)數(shù)值是多少?X=256 -void main()void main() init(); while(1) if (flag=1) ES=0; for(i=0;i6;i+) SBUF=table1i; while(!TI); TI=0; SBUF=a; while(!TI); TI=0; ES=1; flag=0; =256 -=253= 0 xfd#include #define uchar 無符號(hào)字符#define uint 無符號(hào)整數(shù)uchar 標(biāo)志,a,i;ucha

39、r 代碼 table1=我得到;無效初始化()TMOD=0X20;TH1=0Xfd;TL1=0Xfd;TR1=1;任=1;SM0=0;SM1=1;EA=1;ES=1;void fzhd() interrupt 4void fzhd() interrupt 4RI=0;a=SBUF;flag=1;四、實(shí)驗(yàn)內(nèi)容基本內(nèi)容:1、在上位機(jī)上使用串口調(diào)試助手發(fā)送一個(gè)字符。單片機(jī)接收到字符后,如果是X ,則返回上位機(jī)“OK” ,否則返回“error”。串口波特率設(shè)置為 96 00 。2 、實(shí)現(xiàn)兩臺(tái)單片機(jī)之間的通訊,一臺(tái)單片機(jī)控制另一臺(tái)單片機(jī)的LED燈亮滅。擴(kuò)容能力:在上位機(jī)上,使用串口調(diào)試助手發(fā)送1 ,單片

40、機(jī)接收到字符后,數(shù)碼管顯示1 ,發(fā)送2 ,顯示2 ;發(fā)送3 ,顯示3 。 . .串口波特率設(shè)置為9600。實(shí)驗(yàn)八 LCD1602液晶顯示器液晶顯示模塊已被用作計(jì)算器、萬用表、電子手表和許多家用電子產(chǎn)品等許多電子產(chǎn)品的傳遞裝置,可以看到,主要顯示數(shù)字、特殊符號(hào)和圖形。1、實(shí)驗(yàn)?zāi)康模赫莆諉纹瑱C(jī)控制LCD1602液晶顯示器的原理和方法;2、實(shí)驗(yàn)原理:一、液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓來控制其顯示區(qū)域,有電就有顯示,從而可以顯示圖形。液晶顯示器具有厚度薄的特點(diǎn),適合直接驅(qū)動(dòng)大規(guī)模集成電路,易于實(shí)現(xiàn)全彩顯示。目前已廣泛應(yīng)用于便攜式電腦、數(shù)碼相機(jī)、PDA移動(dòng)通訊工具等諸多領(lǐng)域。液

41、晶顯示器的分類:通常按其顯示方式可分為段型、字符型、點(diǎn)陣型等。除了黑白顯示,液晶顯示器還有多灰度和彩色顯示。按驅(qū)動(dòng)方式可分為靜態(tài)、簡單矩陣和有源矩陣三種。二、1602字液晶介紹字符液晶模組是一種專門用于顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣液晶顯示器,目前常用的有16*1、16*2、20*2、40*2行的模組。一般的1602字符液晶顯示如圖2所示:圖1 1602字符液晶顯示器實(shí)物圖(一) 1602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種。主控驅(qū)動(dòng)電路為HD44780。帶背光的比不帶背光的要厚一些。有無背光的應(yīng)用沒有區(qū)別。1) 1602LCD主要技術(shù)參數(shù):顯示容量:162個(gè)字符芯片

42、工作電壓:4.55.5V工作電流:2.0mA (5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.954.35(WH)mm2)引腳功能說明1602LCD采用標(biāo)準(zhǔn)14針(不帶背光)或16針(帶背光)接口。各管腳接口說明如表1所示:表 11602LCD 引腳編號(hào)象征引腳說明編號(hào)象征引腳說明1VSS電源地9D2數(shù)據(jù)2VDD正電源10D3數(shù)據(jù)3VL液晶偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5讀/寫讀/寫選項(xiàng)13D6數(shù)據(jù)6乙使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光正極8D1數(shù)據(jù)16黑色背光負(fù)極引腳 1:VSS 為地電源。引腳 2:VDD 接 5V 正電源。3腳:VL為液晶顯示器的對(duì)比度調(diào)節(jié)

43、端。連接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高。當(dāng)對(duì)比度過高時(shí),會(huì)產(chǎn)生“鬼影”。使用時(shí)可以通過10K電位器調(diào)節(jié)對(duì)比度。4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇指令寄存器。5腳:R/W為讀寫信號(hào)線,讀操作為高電平,寫操作為低電平。當(dāng) RS 和 R/W 都為低時(shí),可以寫入命令或顯示地址。當(dāng) RS 為低電平時(shí),R/W 為高電平,可以讀取忙信號(hào)。當(dāng) RS 為高時(shí),R/W 為低??梢詫懭霐?shù)據(jù)。引腳 6:E 端為使能端。當(dāng)E端從高電平跳到低電平時(shí),液晶模塊執(zhí)行指令。引腳 7 到 14:D0 到 D7 是 8 位雙向數(shù)據(jù)線。Pin 15:背光燈正極。第16腳:背光源負(fù)極。三、LCD1602

44、液晶顯示方案設(shè)計(jì)一、1602LCD指令說明及時(shí)序1602液晶模塊的控制器共有11條控制指令,如表2所示:表2控制命令表序列號(hào)操作說明RS讀/寫D7D6D5D4D3D2D1D01清晰的顯示00000000012光標(biāo)返回000000001*3設(shè)置輸入模式00000001ID小號(hào)4顯示開/關(guān)控制0000001DC乙5光標(biāo)或字符移位000001S/C右/左*6設(shè)置功能00001深度學(xué)習(xí)F*7設(shè)置字符生成內(nèi)存地址0001字符生成內(nèi)存地址8設(shè)置數(shù)據(jù)存儲(chǔ)器地址001顯示數(shù)據(jù)存儲(chǔ)器地址9讀取繁忙標(biāo)志或地址01高爐柜臺(tái)地址10將數(shù)據(jù)寫入 CGRAM 或 DDRAM)10要寫入的數(shù)據(jù)11從 CGRAM 或 DDRAM 讀取11讀取數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕操作和光標(biāo)操作都是通過指令編程實(shí)現(xiàn)的。 (注:1為高電平,0為低電平)(1)命令1:清除顯示,命令代碼01H,光標(biāo)復(fù)位到地址00H。(2)命令2:光標(biāo)復(fù)位,光標(biāo)返回

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論