系列單片機最小系統實驗指導書_第1頁
系列單片機最小系統實驗指導書_第2頁
系列單片機最小系統實驗指導書_第3頁
系列單片機最小系統實驗指導書_第4頁
系列單片機最小系統實驗指導書_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、51系列單片機最小系統設計與調試實驗實驗指導書呂霞付、仇國慶 編寫重慶郵電大學自動化學院自動化專業實驗中心2009年2月51系列單片機最小系統設計與調試一、實驗目的1. 了解單片機的基本工作原理2. 學習并掌握相關軟件的使用方法(Protel、keil)2. 掌握單片機片內程序存儲器下載方法3. 掌握單片機程序設計(匯編及C51)二、原理1. 什么是單片機最小系統 單片機最小系統,或者稱為最小應用系統,是指用最少的元件組成的單片機可以工作的系統. 對51系列單片機來說,單片機+晶振電路+復位電路,便組成了一個最小系統.但是一般我們在設計中總是喜歡把按鍵輸入、顯示輸出等加到上述電路中,成為小系統

2、。 2. AT89C51高性能8位單片機功能AT89C51提供以下標準功能:8K字節Falsh閃速存儲器,256字節內部RAM,32個I/O口線,3個16位定時/計數器,一個6向量兩級中斷結構,一個全雙工串行通信口,片內震蕩器及時鐘電路,同時AT89C51可降至0HZ的靜態邏輯操作,并支持兩種軟件可選的節電工作模式。空閑方式停止CPU的工作,但允許RAM,時/計數器,串行通信口及中斷系統持續工作。掉電方式保存RAM中的內容,但震蕩器停止工作并禁止其他所有部件工作直到下一個硬件復位。主要功能特性: 兼容MCS51指令系統     

3、60;           4k可反復擦寫(>1000次)Flash ROM  32個雙向I/O口 8個中斷源  三個16位可編程定時/計數器 2.7-6.V的寬工作電壓范圍  時鐘頻率0-24MHz128x8bit內部RAM  五個外部中斷源 兩個串行中斷  可直接驅動LED 兩級加密位  低功耗睡眠功能

4、60;內置一個模擬比較放大器  可編程UARL通道 軟件設置睡眠和喚醒功能3. AT89C51高性能8位單片機資料請參考相關書籍三、實訓任務. (1)認識MCS-51的ROM及片外RAM空間:認識51系列單片機的程序存儲器(ROM)的空間范圍;匯編指令編碼在ROM中存儲形式;掌握指令編碼和指令編碼所在地址的概念;了解51系列單片機的程序存儲器(ROM)固定地址的用途。認識51系列單片機的片外數據存儲器(片外RAM)的地址空間范圍;了解51系列單片機的片外數據存儲器的用途;重點掌握片內片外訪問存儲器的指令。(2)認識MCS-51片內RAM空間:認識51系列單片機片內

5、隨機存儲器(片內RAM)的空間范圍;認識51系列單片機片內隨機存儲器的區域劃分;掌握字節地址和位地址的概念;了解R0R7寄存器與字節地址的關系。重點掌握MCS-51系列單片機四個口的用法的位操作。(3)MCS-51匯編語言設計(編碼轉換):用MCS-51匯編指令進行程序設計。將四位BCD碼化為十六位二進制數。(或 將四位十六進制數轉化為BCD碼)。要求:在PC機上調試,程序可正確運行并上交源程序清單及程序說明。(4)鍵盤輸入電路設計/動態顯示電路設計:在實訓過程中要求設計按鍵輸入電路、設計顯示電路,并畫出電路圖并編寫按鍵輸入子程序。重點掌握硬件電路的設計及通過編程對電路的控制。(5)單片機最小

6、系統設計:單片機最小系統的設計是單片機應用系統設計及開發的基礎,通過單片機最小系統設計,使學生對所學的單片機原理及應用課程有更深的理解。要求:提供電路圖和程序清單。重點掌握硬件電路的設計及過程控制。(6)基于單片機的應用系統設計:設計出實現某控制目的的應用系統是本實訓課的最終實訓的結果。實訓要求中包括單片機最小系統的設計,按鍵輸入電路設計,顯示電路的設計,及應用系統的軟件編程。附件1: 51系列單片機最小系統設計一、單片機最小系統硬件設計單片機主要擅長系統控制,而不適合做復雜的數據處理,在設計單片機最小系統時通常選用AT89C5l、AT89C52、AT89S51、AT89S52(S系列芯片支持

7、ISP功能)等型號的8位DIP-40封裝的單片機作為MCU,一個典型的單片機最小系統一般由時鐘電路、復位電路、鍵盤電路、顯示電路等部分組成,有時也外擴有片外RAM和ROM以及外部擴展接口等電路。圖1為單片機最小系統結構框圖。圖1 單片機最小系統結構框圖1、系統時鐘電路單片機內部具有一個高增益反相放大器,用于構成振蕩器。通常在引腳XTALl和XTAL2跨接石英晶體和兩個補償電容構成自激振蕩器,系統時鐘電路結構如圖2所示,可以根據情況選擇6MHz、8MHz或12MHz等頻率的石英晶體,補償電容通常選擇20-30pF左右的瓷片電容。圖2 系統時鐘電路2、復位電路單片機小系統采用上電自動復位和手動按鍵

8、復位兩種方式實現系統的復位操作。上電復位要求接通電源后,自動實現復位操作。手動復位要求在電源接通的條件下,在單片機運行期間,用按鈕開關操作使單片機復位。復位電路結構如圖3所示。上電自動復位通過電容C3充電來實現。手動按鍵復位是通過按鍵將電阻R2與VCC接通來實現。圖3 復位電路3、鍵盤電路系統利用P1口的P1.0-P1.3設置了4個獨立按鍵S2S5,如圖4所示,當鍵按下時,P1口相應的引腳置為低電平,且與此鍵相連的發光二極管點亮。此外,通過8279鍵盤顯示控制芯片還可以擴展編碼鍵盤和顯示,圖5為利用8279擴展的一個2×8=16鍵編碼鍵盤及 8個LED的電路。圖4 獨立按鍵圖5 擴展

9、鍵盤和顯示4、顯示電路系統設置了8個共陽極LED數碼管LED1-LED2,單片機P0口提供段碼信號,低電平有效,P0口輸出端通過限流電阻R00R07與數碼管的段碼數據線相連,用來送出LED數碼管的段碼數據信號。單片機P2口提供位選信號,當P2口某位輸出低電平時,與此相連的開關三極管導通,對應的數碼管點亮,使用三極管用來增強信號的驅動能力,如圖6。此外,為了擴展LCD顯示,系統設置了兩個LCD 接口,如圖7,一個用于40點矩陣LCD顯示,一個用于128×64點陣式LCD 顯示。圖6 LED顯示電路圖7 LCD擴展接口5、其它系統還擴展了一片2K位串行CMOS E2PROM24C02,P

10、3.3和P3.4分別作為24C02 串行數據傳輸的時鐘和數據線,由于只有一個24C02,其三個地址輸入腳A0 、A1 、A2接地,如圖8。此外,系統還設置了一個蜂鳴器電路,如圖9 ,通過P3.7輸出音頻信號,可使蜂鳴器發聲。由于,本最小系統沒有外擴其他存儲器和I/O,因此,沒有用到地址譯碼和鎖存。圖8 擴展E2PROM 圖9 蜂鳴器電路單片機最小系統主要器件如表1所示:表1單片機最小系統主要器件標號型號、規格封裝功能說明U189C51DIP40CPU主器件U224C02DIP82K E2PROMLED1,LED27SEG-44位8段共陽極數碼管Q1 Q99012TO-92A三極管D1 D123

11、MMDIODE0.4發光二極管Y12MHz石英晶振單片機時鐘晶振 主要應用接口如表2所示:表2單片機最小系統主要接口標號功能說明連接目標J1輸入電源插座主電源J240點矩陣LCD接口40點矩陣液晶顯示模塊J2128×64點陣式LCD接口128×64點陣液晶顯示模塊Jp1P0口引出接口單片機P0口Jp2P1口引出接口單片機P1口Jp3P2口引出接口單片機P2口Jp4P3口引出接口單片機P3口單片機最小系統電原理圖二、單片機最小系統測試程序設計編寫測試程序,一是可對最小系統各資源進行測試,二是為用戶提供了使用LED顯示及訪問鍵盤等各種資源的子程序。1. 鍵盤掃描及數碼管顯示的匯

12、編語言程序鍵盤掃描及數碼管顯示的匯編語言程序如下:;* *;鍵盤及數碼管顯示程序,功能為按下一鍵,則對應鍵的數碼管亮并顯示該鍵代表的數字;*org 0000h ajmp mainorg 0100hmain:mov sp,#30hmov r3,#0mov r4,#0kon:lcall ks1 ;調用讀鍵盤程序cjne a,#0ffh,show1 ;有鍵按下lcall dir ;調用顯示子程序ajmp konshow1:lcall dir ;去抖動lcall dirlcall ks1 cjne a,#0ffh,show2 ;鍵有效ajmp konshow2:cjne a,#0feh,l1 ;以下為

13、判別鍵值程序mov r4,#0 ;第一個鍵賦其代碼0ajmp lkpl1:cjne a,#0fdh,l2mov r4,#1ajmp lkpl2:cjne a,#0fbh,l3mov r4,#2ajmp lkpl3:cjne a,#0f7h,l4mov r4,#3ajmp lkplkp:lcall dirljmp kon ;返回dir: mov dptr,#table ;顯示子程序mov a,r4movc a,a+dptr ;取7段碼mov r3,amov a,r4led1:cjne a,#0,led2 ;根據鍵值選擇數碼管1mov dptr,#8000hajmp ssled2:cjne a,#

14、1,led3;根據鍵值選擇數碼管2mov dptr,#9000hajmp ssled3:cjne a,#2,led4;根據鍵值選擇數碼管3mov dptr,#0a000hajmp ssled4: cjne a,#3,led5 ;根據鍵值選擇數碼管4mov dptr,#0b000hajmp ssss: mov a,r3movx dptr,alcall delayretks1:clr p1.7mov dptr,#0e000h ;鍵盤地址movx a,dptrretdelay: mov r6,#10 ;延時子程序lpp: mov r7,#100djnz r7,$djnz r6,lpprettable

15、: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90hdb 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0f7hend2. 鍵盤掃描及數碼管顯示的C語言程序鍵盤掃描及數碼管顯示的C語言程序如下:/*/*鍵盤及數碼管程序,每一鍵代表一個數字,在其數字代表的數碼管中顯示*/#include <absacc.h>#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define LED1 XBYTE 0x8000 /*定義各數碼

16、管地址*/#define LED2 XBYTE 0x9000#define LED3 XBYTE 0xA000#define LED4 XBYTE 0xB000#define KEY XBYTE 0xE000/*定義鍵盤地址*/void delay(uint v) /*延時函數*/while(v!=0)v-;uchar keynum=0;sbit P1_7=P17; /*掃描端口*/*數字段碼表*/uchar code segtab18=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e

17、,0xff,0xf7;void dir(uchar); /*聲明顯示函數*/void readkey(void) /*讀鍵盤函數*/ uchar M_key=0; uchar i; P1_7=0; M_key=KEY; /*取鍵盤數據*/ if(M_key!=0xff)for(i=0;i<20;i+) /*去抖動*/dir(keynum);M_key=KEY;if(M_key!=0xff) /*讀鍵*/ switch(M_key) case 0xfe: /*第1個鍵按下*/ keynum=0; break; case 0xfd: /*第2個鍵按下*/ keynum=1; break; case 0xfb: /*第3個鍵按下*/ keynum=2; break; case 0xf7: /*第4個鍵按下*/ keynum=3; break;

溫馨提示

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

評論

0/150

提交評論