51單片機接口技術課件_第1頁
51單片機接口技術課件_第2頁
51單片機接口技術課件_第3頁
51單片機接口技術課件_第4頁
51單片機接口技術課件_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

51單片機接口技術7.2.1 單片機的最小系統(tǒng)7MCS-51單片機接口技術7.1 單片機I/O接口7.2

系統(tǒng)擴展概述7.2.1 單片機的最小系統(tǒng)7.2.2 系統(tǒng)擴展的總線結構7MCS-51單片機接口技術7.2

系統(tǒng)擴展概述ABDBCB數據信息控制信息狀態(tài)信息7.2.1 單片機的最小系統(tǒng)7.2.2 系統(tǒng)擴展的總線結構7MCS-51單片機接口技術7.2

系統(tǒng)擴展概述7.2.3

系統(tǒng)擴展的主要方面1.外部程序存儲器擴展;2.外部RAM的擴展;3.外部中斷源的擴展;4.I/O接口的擴展。7MCS-51單片機接口技術7.1 單片機I/O接口7.2

系統(tǒng)擴展概述7.3 8255A可編程通用并行接口芯片7.3.1 可編程I/O接口擴展概述中小規(guī)模集成電路:74LS244、74LS377可編程接口芯片:8255A(可編程通用并行接口)8155(帶RAM和定時器的可編程并行接口)8259(可編程中斷控制器)8279(可編程鍵盤/顯示器接口)6253(可編程通用定時器)7.3.2 8255A的邏輯結構1.口電路1)3個8位并行I/O接口A、B和C口。2)2組控制A組:PA和PC0~3;B組:PB和PC4~7

。7.3.3 8255A的信號引腳2.總線接口電路:片選信號(低電平有效):讀信號(低電平有效):寫信號(低電平有效)A1

、A0:端口選擇信號A1A0端口00A口

01B口

10C口

11控制寄存器7.3 8255A可編程通用并行接口芯片7.3.4 8255A的工作方式及數據I/O操作1.8255A的工作方式1)方式0:基本輸入/輸出方式輸出鎖存,輸入三態(tài),不用聯絡信號。2)方式1:選通輸入/輸出方式輸入/輸出均鎖存,C口用于傳送聯絡信號,讀C口可了解外設當前狀態(tài)。INTRBIBFBSTBBINTRASTBAIBFAC口位線::選通信號,輸入,低電平有效。IBF

:輸入緩沖器滿信號,輸出至單片機,高電平有效。INTR

:中斷請求信號,輸出至單片機,高電平有效。輸入:7.3.4 8255A的工作方式及數據I/O操作1.8255A的工作方式1)方式0:基本輸入/輸出方式2)方式1:選通輸入/輸出方式輸入:輸出:INTRBIBFBSTBBINTRASTBAIBFAC口位線:C口位線:INTRBOBFBACKBINTRAACKAOBFA:輸出緩沖器滿信號,輸出至外設,低電平有效。INTR:中斷請求信號,輸出,高電平有效。:應答信號,輸入,低電平有效。7.3.4 8255A的工作方式及數據I/O操作1.8255A的工作方式1)方式0:基本輸入/輸出方式2)方式1:選通輸入/輸出方式3)方式2:雙向數據傳送方式輸入:僅A口有此方式、C口為控制線C口位線:INTRASTBAIBFA輸出:ACKAC口位線:INTRAOBFA7.3 8255A可編程通用并行接口芯片7.3.5 8255A控制字及初始化編程1.8255A的控制字1)工作方式控制字:D7:工作方式控制字標志。D6、D5:A組方式選擇。00(方式0)、01(方式1)、1X(方式2)D4:口A方向。1(輸入)、0(輸出)D3:口C高四位方向。1(輸入)、0(輸出)D2:B組方式選擇。1(方式1)、0(方式0)D1:口B方向。1(輸入)、0(輸出)D0:口C低四位方向。1(輸入)、0(輸出)7.3.5 8255A控制字及初始化編程1.8255A的控制字1)工作方式控制字:2)C口位置位/復位控制字:D3、D2、D1

:口C位方式選擇。D7:工作方式控制字標志。D0:口C所選位值。7.3.5 8255A控制字及初始化編程2.8255A的初始化編程例:控制寄存器地址為1003H。PA口以方式0輸入,PB口以方式0輸出,PC口高位輸出、PC口低位輸入。且PC3置1,PC4清0。#include <reg51.h>Xdata char COM8255 _at_ 0x1003;Void main(void){ COM8255=0x91; //10010001B

COM8255=0x07; //00000111B

COM8255=0x08; //00001000B}1)讀地址:P2.7-cs-0;P0.1-A1;P0.0-A0A口7FFCH;B口7FFDH;C口7FFEH;

控制寄存器7FFFH。2)工作方式:A口方式0輸入,B口方式0輸出。1)讀地址:P2.7-cs-0;P0.1-A1;P0.0-A0A口7FFCH;B口7FFDH;C口7FFEH;

控制寄存器7FFFH。2)工作方式:A口方式0輸入,B口方式0輸出。#include <reg51.h>Xdata char PORTA8255 _at_ 0x7FFC;Xdata char PORTB8255 _at_ 0x7FFD;Xdata char PORTC8255 _at_ 0x7FFE;Xdata char COM8255 _at_ 0x7FFF;Void main(void){ COM8255=0x90; //10010000B

…}Void main(void){ COM8255=0x90; //10010000B unsigned char temp; while(1) { temp=PORTA8255; PORTB8255=temp; }}7MCS-51單片機接口技術7.1 單片機I/O接口7.2

系統(tǒng)擴展概述7.3

8255A可編程通用并行接口芯片7.4

MCS-51單片機與LED數碼管的接口技術符號與引腳共陰極接法共陽極接法7.4.1

數碼管結構7.4

MCS-51單片機與LED數碼管的接口技術7.4.1

數碼管結構顯示代碼7.4

MCS-51單片機與LED數碼管的接口技術7.4.1

數碼管結構7.4.1

數碼管接口靜態(tài)顯示動態(tài)掃描7.4

MCS-51單片機與LED數碼管的接口技術7.4.1

數碼管結構7.4.1

數碼管接口#include <reg51.h>xdata char COM8255 _at_ 0xFEFF;//8255控制字地址xdata char PORTA8255 _at_ 0xFEFC;//定義8255A口地址xdata char PORTB8255 _at_ 0xFEFD;//定義8255B口地址xdata char PORTC8255 _at_ 0xFEFE;

//定義8255C口地址/*定義延時子程序*/void delay(unsigned int d){ while(--d>0);}/*主程序*/void main(void){ unsignedchar codetable[6]={0xF9,0xA4,0xB0,0x99,0x92,0x82}; unsignedchar codebitcode[6]={0x20,0x10,0x08,0x04,0x02,0x01}; unsignedchar i; COM8255=0x80; //控制字設置 while(1) { for(i=0;i<6;i++) { PORTA8255=table[i]; //A口輸入數值 PORTC8255=bitcode[i]; //C口輸入位置 delay(5000); } }}注1:8255片選端連至373的Q7注2:數碼管為共陰極7MCS-51單片機接口技術7.1 單片機I/O接口7.2

系統(tǒng)擴展概述7.3

8255A可編程通用并行接口芯片7.4

MCS-51單片機與LED數碼管的接口技術7.6

MCS-51單片機與按鍵接口技術7.6.1單片機按鍵和鍵盤概述獨立式按鍵矩陣式鍵盤鍵盤接口的功能:1)鍵盤掃描(判斷是否有鍵按下)2)鍵識別(確定按鍵的行列位)3)產生閉合鍵的鍵碼4)排除多鍵、串鍵(復按)及去抖動7.6.1單片機按鍵和鍵盤概述彈性按鍵自鎖按鍵撥動開關撥碼開關電源開關7.6

MCS-51單片機與按鍵接口技術7.6.1單片機按鍵和鍵盤概述7.6

MCS-51單片機與按鍵接口技術#include <reg51.h>sbit P3_3=P3^3;void delay10ms(void) //延時10ms函數{ unsignedchara,b; for(b=151;b>0;b--); for(a=29;a>0;a--);}void main(){ unsigned char code table[16]={0xC0,0xF9,0xA4, 0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6, 0xA1,0x86,0x8E}; //0-F譯碼表 unsigned char temp=1; //按鍵后初值1 P1=0xC0; //按鍵前顯示0 while(1) { while(P3_3==1); delay10ms(); //保證10ms的非1 if(P3_3==0) { while(P3_3==0); delay10ms(); //保證10ms的非0 if(P3_3==1) { P1=table[temp]; //顯示數值 temp=temp+1; if(temp==16) temp=0;//到16清0 } } }}#include <reg51.h>sbit P3_3=P3^3;unsigned char temp=1;unsigned char code table[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};void main(){ P1=0xC0; EA=1; EX1=1; IT1=1; while(1); }void INT1_ISR() interrupt 2{ P1=table[temp]; temp=temp+1; if(temp==16) temp=0;}7.6.2單片機鍵盤接口和鍵功能的實現7.6.1單片機按鍵和鍵盤概述7.6

MCS-51單片機與按鍵接口技術7.6.1單片機按鍵和鍵盤概述7.6.2單片機鍵盤接口和鍵功能的實現1.鍵盤接口處理的內容1)鍵盤掃描(判斷是否有鍵按下)7.6

MCS-51單片機與按鍵接口技術7.6.2單片機鍵盤接口和鍵功能的實現1.鍵盤接口處理的內容1)鍵盤掃描(判斷是否有鍵按下)2)去抖動硬件法(觸發(fā)器等)軟件法(延時10ms)3)鍵碼(查表或計算)鍵碼=行首號+列號00H01H02H....06H07H08H09H0AH....0EH0FH10H11H12H....16H17H18H19H1AH....1EH1FH7.6.2單片機鍵盤接口和鍵功能的實現1.鍵盤接口處理的內容1)鍵盤掃描(判斷是否有鍵按下)2)去抖動3)鍵碼計算4)等待鍵釋放加延時5)鍵盤接口小結1)2)3)4)軟硬件結合:附加功能:屏蔽功能:對一個鍵處理時屏蔽其它鍵等待功能:對一個鍵無論按多長時間僅 處理一次7.6.2單片機鍵盤接口和鍵功能的實現1.鍵盤接口處理的內容2.鍵盤接口的控制方式隨機方式中斷方式定時方式3.鍵處理子程序有鍵按下處理軟件(子程序)7.6.2單片機鍵盤接口和鍵功能的實現7.6.3單片機矩陣鍵盤識別1.掃描法2.反轉法每個按鍵得到時間不同7.6.2單片機鍵盤接口和鍵功能的實現7.6.3單片機矩陣鍵盤識別2.反轉法1)P1口賦值0x0F,即00001111,如0鍵按下了,則這時P1口的實際值為00001110(0x0E);2)P1口賦值0xF0,即11110000,如0鍵按下了,則這時P1口的實際值為11100000(0xE0);

3)將兩次P1口的實際值相加為11101110(0xEE);4)4*4鍵盤鍵值表0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77;5)無鍵按下為11111111(0xFF)。#include <reg51.h>void main(void){ unsigned char h_code,l_code,key_code; while(1) { P0=0xF0; h_code=P0; h_code=h_code&0xF0; P0=0x0F; l_code=P0; l_code=l_code&0x0F; key_code=h_code|l_code; if(key_code!=0xFF) { switch(key_code) { case 0xEE: P1=0xC0; break; case 0xDE: P1=0xF9; break; case 0xBE: P1=0xA4; break; case 0x7E: P1=0xB0; break; case 0xED: P1=0x99; break; case 0xDD: P1=0x92; break; case 0xBD: P1=0x82; break; case 0x7D: P1=0xF8; break; case 0xEB: P1=0x80; break; case 0xDB: P1=0x90; break; case 0xBB: P1=0x88; break; case 0x7B: P1=0x83; break; case 0xE7: P1=0xC6; break; case 0xD7: P1=0xA1; break; case 0xB7: P1=0x86; break; case 0x77: P1=0x8E; break; default: break; }7MCS-51單片機接口技術7.1 單片機I/O接口7.2

系統(tǒng)擴展概述7.3

8255A可編程通用并行接口芯片7.4

MCS-51單片機與LED數碼管的接口技術7.6

MCS-51單片機與按鍵接口技術7.7

MCS-51單片機與D/A轉換器的接口技術溫度速度電壓電流壓力模擬量單片機A/DD/A7MCS-51單片機接口技術7.7

MCS-51單片機與D/A轉換器的接口技術7.7.1D/A轉換器概述D/ADigtalAnalogDACDigtal-AnalogConverter1.概述

將輸入的每一位二進制代碼按其權的大小轉換成相應的模擬量,然后將代表各位的模擬量相加,所得的總模擬量就與數字量成正比,這樣便實現了從數字量到模擬量的轉換。權電阻解碼網絡、T型電阻解碼網絡7MCS-51單片機接口技術7.7

MCS-51單片機與D/A轉換器的接口技術7.7.1D/A轉換器概述2.D/A轉換器的工作原理理想的D/A轉換器的轉換特性,應是輸出模擬量與輸入數字量成正比。即:輸出模擬電壓

uo=Ku×D或輸出模擬電流io=Ki×D。其中Ku或Ki為電壓或電流轉換比例系數,D為輸入二進制數所代表的十進制數。如果輸入為n位二進制數dn-1dn-2…d1d0,則輸出模擬電壓為:7.7.1D/A轉換器概述2.D/A轉換器的工作原理不論模擬開關接到運算放大器的反相輸入端(虛地)還是接到地,也就是不論輸入數字信號是1還是0,各支路的電流不變的。7.7.1D/A轉換器概述2.D/A轉換器的工作原理7.7.1D/A轉換器概述2.D/A轉換器的工作原理A.設所有開關接地,B.設所有開關閉合,7.7.1D/A轉換器概述2.D/A轉換器的工作原理

不論模擬開關接到運算放大器的反相輸入端(虛地)還是接到地,也就是不論輸入數字信號是1還是0,各支路的電流不變。分別從虛線A、B、C、D處向右看的二端網絡等效電阻都是R。7.7.1D/A轉換器概述2.D/A轉換器的工作原理7.7.1D/A轉換器概述2.D/A轉換器的工作原理A.設所有開關接地,B.設所有開關閉合,7MCS-51單片機接口技術7.7

MCS-51單片機與D/A轉換器的接口技術7.7.1D/A轉換器概述1.概述2.D/A轉換器的工作原理3.技術指標分辨率2-n1/256(8位)、1/1024(10位)建立時間輸入數字量到輸出達到終值所需時間7.7.2典型D/A轉換器芯片DAC08328位、雙列直插式、帶數據鎖存、單電源、20引腳、電流建立時間1μs。7.7.2典型D/A轉換器芯片DAC08321.引腳說明1)DI7-DI0:數據轉換輸入2):片選輸入3)ILE:數據鎖存允許信號5):

溫馨提示

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

評論

0/150

提交評論