單片機原理及應用- 習題及答案 莊俊華 【ch08】單片機的接口技術_第1頁
單片機原理及應用- 習題及答案 莊俊華 【ch08】單片機的接口技術_第2頁
單片機原理及應用- 習題及答案 莊俊華 【ch08】單片機的接口技術_第3頁
單片機原理及應用- 習題及答案 莊俊華 【ch08】單片機的接口技術_第4頁
單片機原理及應用- 習題及答案 莊俊華 【ch08】單片機的接口技術_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章單片機的接口技術

1.鍵盤按結構形式分為哪兩即?

鍵盤的結構形式一般有兩種:獨立式鍵盤與矩陣式鍵盤。

2.對鍵盤操作時,如何去除抖動信號?

消除抖動信號通常有兩種方法:硬件消抖和軟件消抖。

硬件消抖是通過在按鍵開關電路中加入硬件消抖電路來消除抖動信號的。硬件消抖電路

一般采用R-S觸發(fā)器或單穩(wěn)態(tài)電路,如圖8-2所示。在圖8-2中,經過R-S觸發(fā)器消抖

后,按鍵開關電路的輸出信號就為標準的矩形波。

軟件消抖是利用延時來跳過抖動過程的。單片機判斷有按鍵開關被按下后,先執(zhí)行一段

大于10ms的延時程序,再去判斷按下的按鍵開關是哪一個,從而消除前沿抖動信號的影響。

對于后沿抖動信號,單片機只要在接收一個按鍵開關被按下的信號后,經過一定時間再去檢

測有無按鍵開關被按下的信號,這樣就自然跳過后沿抖動信號了。抖動信號的消除往往采用

軟件消抖的方式。

3.共陰極和共陽極LED有何區(qū)別?LED有哪兩種顯示方式?

發(fā)光上沒有任何區(qū)別.唯?區(qū)別的是使用的方法共陰極的所有顯示段的陰極都是連在一

起的,接地,用陽極來驅動共陽極的正好相反,所有顯示段的陽極都是連在一起的,接VCC用

陰極來驅動。

4.試用DAC0832芯片,編程產生1個周期為100ms方波輸出信號。

使用DAC0832芯片產生一個周期為100ms的方波輸出信號,需要進行以下步驟:

1.確保DAC0832芯片連接到正確的引腳和電路。一般來說,該芯片包含8位數(shù)模轉換

器,需要與微控制器或其他輸出設備連接。

2.配置你的微控制器或其他控制設備的GPIO引腳作為DAC0832的數(shù)據線(通常為8

位),并將其連接到DAC0832的引腳。

3.使用你所使用的編程語言和開發(fā)環(huán)境,編寫代碼來控制DAC0832片。

4.首先,設置DAC0832的寄存器以選擇通道和電壓范圍。你可以通過寫入合適的數(shù)值

(0-255)到DAC0832的控制寄存器來實現(xiàn)。

5.然后,創(chuàng)建一個循環(huán),在循環(huán)中以適當?shù)念l率切換DAC0832的數(shù)值,以產生一個周

期為100ms(BP10Hz)的方波。

下面是一個基于Arduino開發(fā)板的示例代碼片段,用于控制DAC0832芯片生成方波輸

出信號:

^defineDAC0832CSPIN10//連接到DAC0832的CS引腳

#defineDAC0832_DATA_PIN11//連接到DAC0832的數(shù)據引腳

voidsetup(){

pinMode(DAC0832_CS_PIN,OUTPUT);

pinMode①AC0832_DATA_PI、,OUTPUT);

voidloop(){

//設置通道和電壓范圍

digita1Write(DAC0832_CS_PIN,LOW);//選擇DAC0832芯片

shiftOut(DAC0832_DATA_PIN,DAC0832_CS_PIN,MSBFIRST,ObOOOOOOOO);

digita1Write(DAC0832_CS_PIN,HIGH);//取消選擇DACO832芯片

//產生方波輸出信號

digita1Write(DAC0832_CS_PIN,LOW);//選擇DAC0832芯片

shiftOut(DAC0832_DATA_PIN,DAC0832_CS_PIN,MSBFIRST,Obllllllll);//設

置最大輸出

digita1Write(DAC0832_CS_PIN,HIGH);//取消選擇DACO832芯片

delay(50);//保持高電平狀態(tài),用50ms延遲時間控制小步進

digita1Write(DAC0832_CS_PIN,LOW);//選擇DAC0832芯片

shiftOut(DAC0832_DATA_PIN,DAC0832_CS_PIN,MSBFIRST,ObOOOOOOOO);//設

置最小輸出

digitalWrite(DAC0832_CS_PIN,HIGH);//取消選擇DAC0832芯片

delay(50);//保持低電平狀態(tài),用50ms延遲時間控制小步進

5.I2c總線器件地址與器件內單元地址的含義是什么?

I2C(Inter-IntegratedCircuit)總線器件地址和器件內單元地址是用來識別和尋址

12c總線上連接的器件和器件內部單元的信息。

12c總線是一種多主設備和多從設備共享的串行通信總線。每個連接到12c總線上的器

件都需要一個唯一的地址來進行通信。這個地址是由一些特定的位(通常是7位或10位)

組成的。在12c總線上,通常會有多個器件共享同一個地址,但通過器件內部的多個單元地

址來區(qū)分不同的器件內部單元。

器件地址是用來唯一標識連接到12c總線上的每個器件的。在7位地址模式下,總線上

可以有最多128個不同的器件地址(0x00至0x7F)。在10位地址模式下,總線上可以有最

多1024個不同的器件地址。當主設備向器件發(fā)送讀寫命令時,起始傳輸字節(jié)包含要訪問的

目標器件地址.

器件內單元地址用于區(qū)分一個器件內部的不同單元。同一個器件內部的不同功能單元,

例如存儲器、控制器、傳感器等,可以通過不同的器件內單元地址進行選擇和訪問。這些地

址通常由器件內部的寄存器或配置位來進行設置.<1

總之,12c總線器件地址用于在總線上唯一標識連接的器件,而器件內單元地址用于在

器件內選擇和訪問不同的單元。利用這些地址,主設備可以向目標器件發(fā)出讀寫命令,并與

其進行通信。

6.在一對12c總線上可否掛接多個12c總線器件?為什么?

是的,可以在一條12c總線上連接多個12c器件。這是因為I2C總線使用了多主機的架

構,其中一個設備充當主機(通常是微控制器或處理器),而其他設備則作為從屬設備連接

到總線上。

12c總線使用兩根信號線:時鐘線(SCL)和數(shù)據線(SDA)O每個尸c器件都有一個唯一

的地址,通過這個地址能夠與主機通信。當主機要與某個從屬設備進行通信時,它會向總線

上發(fā)送所需設備的地址,并在下一個時鐘脈沖上發(fā)送數(shù)據。從屬設備在收到其地址后會響應

主機,并進行數(shù)據交換。這種方式使得多個12c設備可以在同一總線上共享。

當連接多個12c設備時,需要確保每個設備都有獨一無二的地址,以便主機能夠正確地

與每個設備通信。?些常見的PC器件(如傳感器、存儲器、顯示器等)通常會提供選擇引

腳,用于配置其地址。

需要注意的是,在連接多個12c設備時,總線上的電容負載也會增加。在設計電路時,

需要考慮總線負載的限制,以確保數(shù)據傳輸?shù)目煽啃浴?梢酝ㄟ^適當布線和使用合適的電平

轉換器來解決負載問題。

總的來說,12c總線允許多個設備連接到同一條總線上,通過使用唯一的設備地址,主

機可以與每個設備進行通信。這使得12c成為連接多個設備的方便且靈活的解決方案。

7.MCS-51單片機能夠自動識別12c總線器件嗎?在該系統(tǒng)中如何使用12c總線

器件?

MCS-51單片機是一種常用的微控制器,不同版本的MCS-51單片機在12c總線通信方

面的能力不盡相同。對于某些具備硬件支持的版本,MCS-51單片機可以通過硬件電路實現(xiàn)

自動識別12c總線器件。這些版本通常包含專門的硬件模塊,用于處理12c通信協(xié)議,并通

過電路自動檢測、識別總線上連接的器件。

在使用12c總線器件時,你需要配置MCS-51單片機的12c相關寄存器,以實現(xiàn)對12c總線

的控制和通信?;静襟E如下:

1.初始化12c總線:配置單片機的12c寄存器,包括設置通信速率、使能12c模塊等.

2.發(fā)起通信:向12c總線發(fā)送起始信號,表示要與12c器件進行通信。

3.選擇器件地址:向12c總線發(fā)送器件的地址,使其知道要與哪個器件進行通信。

4.讀取或寫入數(shù)據:根據需要,通過12c總線讀取或寫入數(shù)據。這可以通過讀寫相關寄存器

來完成。

5.終止通信:發(fā)送停止信號,表示通信結束。

值得注意的是,具體的配置和操作步驟可能會依賴于你所使用的MCS-51單片機型號和12c

器件。因此,建議參考MCS-51的數(shù)據手冊和所使用12c器件的規(guī)格手冊.以獲取更詳細的

配置和使用說明。

8.簡述AT24c系列芯片的性能特點,并編寫相應的讀/寫程序。

AT24C系列芯片是一種串行EEPROM存儲器,具有以下性能特點:

1.容量可選:AT24c系列芯片提供多種容量選項,包括IK、2K、4K、8K、16K和32K

等,根據應用需求選擇合適的容量。

2.低功耗:AT24c系列芯片采用低功耗設計,在讀/寫操作時能夠有效降低功耗,延長

電池壽命。

3.串行接口:AT24c系列芯片通過12c總線進行通信,簡化了連接和控制的狂雜度,

適用于各種微控制器和主機設備。

4.高速度讀/寫操作:AT24c系列芯片具有快速的讀/寫速度,支持高達400kHz的12c

通信速率。

下面是一個AT24C系列芯片的讀/寫程序示例(使用C語言):

^include<Wire.h>

WefineEEPROM_ADDRESS0x50//芯片的12c地址,可根據芯片型號進行修改

voidsetup0{

Wire.begin();//初始化12c通信

Serial.begin(9600);//初始化串口通信

)

voidloop0{

//寫數(shù)據

bytedataToWrite=OxAB;//要寫入的數(shù)據

byteaddressToWrite=0x00;//寫入的起始地址

writeData(addressToWrits,dataToWrite);

//延時一段時間,模擬其他操作

delay(1000);

//讀數(shù)據

byteaddressToRead=0x00;//讀取的起始地址

bytedataRead=readData(addressToRead);

//打印讀取到的數(shù)據

Serial,print(\Readdata:0x\Serial,printIn(dataRead,HEX);

delay(1000);

)

voidwriteData(byteaddress,bytedata){

Wire.beginTransmission(EEPROM_ADDRESS);//開始寫入傳輸

Wire,write(address);//寫入地址

Wire,write(data);//寫入數(shù)據

Wire.endTransmission0;//結束傳輸

)

bytereadData(byteaddress){

Wire.beginTransmis$ion(EEPROM_ADDRESS)://開始讀取傳輸

Wire,write(address);//寫入要讀取的地址

Wire.endTransmission(false);〃結束傳輸,保持連接狀態(tài)

Wire.requestFrom(EEPROM_ADDRESS,1);〃從芯片請求1個字節(jié)的數(shù)據

bytedata=Wire.readO;//讀取數(shù)據

returndata;

)

請根據具體情況修改芯片的12c地址,以及要讀寫的地址和數(shù)據.這段代碼實現(xiàn)了先寫

入一個數(shù)據,然后讀取該位置的數(shù)據,并通過串口打印出來。

9.簡述DS18B20芯片性能特點及控制方法。

DS18B20是一種數(shù)字溫度傳感器芯片,具有以下性能特點:

1.單總線接口:DS18B20通過單一數(shù)據線與主控器連接,只需要一個GPI0。這種單總

線接口簡化了硬件設計和布線復雜度。

2高精度測量:DS18B20可以測量范圍從-

溫馨提示

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

評論

0/150

提交評論