電子教案-《MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程》_第1頁(yè)
電子教案-《MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程》_第2頁(yè)
電子教案-《MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程》_第3頁(yè)
電子教案-《MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程》_第4頁(yè)
電子教案-《MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程》_第5頁(yè)
已閱讀5頁(yè),還剩526頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程清華大學(xué)出版社第10章

項(xiàng)目七:LCD1602液晶

顯示的電子密碼鎖設(shè)計(jì)10.1LCD1602液晶顯示模塊10.2LCD1602液晶顯示設(shè)計(jì)實(shí)例10.3項(xiàng)目設(shè)計(jì)10.1LCD1602液晶顯示模塊 1602字符型LCD能夠同時(shí)顯示16×2(16列2行)即32個(gè)字符。其內(nèi)置192種字符(160個(gè)5×7點(diǎn)陣字符和32個(gè)5×10點(diǎn)陣字符),具有64個(gè)字節(jié)的自定義字符RAM,可自定義8個(gè)5×8點(diǎn)陣字符或4個(gè)5×11點(diǎn)陣字符。16個(gè)引腳的功能分別為:VSS:電源地(GND)。VDD:電源電壓(5V)。VEE:LCD驅(qū)動(dòng)電壓,液晶顯示器對(duì)比度調(diào)整端。RS:寄存器選擇輸入端,選擇模塊內(nèi)部寄存器類(lèi)型信號(hào)。R/W:讀/寫(xiě)控制輸入端,選擇讀/寫(xiě)模塊操作信號(hào)。E:使能信號(hào)輸入端。D0~D7:數(shù)據(jù)輸入/輸出口,單片機(jī)與模塊之間的數(shù)據(jù)傳送通道。BLA:背光的正端+5V。BLK:背光的負(fù)端0V。寄存器選擇組合LCD1602標(biāo)準(zhǔn)字符庫(kù)10.2LCD1602液晶顯示設(shè)計(jì)實(shí)例【例10-1】用單片機(jī)AT89C51控制LCD1602液晶顯示器顯示兩行字符,第一行內(nèi)容“hello!”,第二行內(nèi)容“nyist-dzx”。每一行都從最左邊開(kāi)始顯示。解:

1)硬件電路設(shè)計(jì)

在Proteus中設(shè)計(jì)的LCD1602顯示電路如圖10-8所示,圖中省略了晶振和復(fù)位電路。單片機(jī)AT89C51的P3口接LCD1602的8位數(shù)據(jù)線,輸出數(shù)據(jù)控制LCD1602顯示不同的字符。P2.0~P2.2接LCD1602控制端,其中P2.2接使能端E,P2.1接讀寫(xiě)控制端R/W,P2.0接寄存器選擇端RS。LCD1602的VSS接地,VDD接+5V電源電壓,VEE接地,此時(shí)的對(duì)比度最高。

2)程序設(shè)計(jì)

編寫(xiě)程序時(shí),先對(duì)LCD1602進(jìn)行初始化,然后設(shè)置第一行的顯示位置,送第一行的顯示內(nèi)容“hello!”。再接著設(shè)置第二行的顯示位置,送第二行的顯示內(nèi)容“nyist-dzx”。程序流程圖如圖所示。3)Proteus仿真在Proteus中加載程序并運(yùn)行仿真,可以看到LCD1602液晶的顯示結(jié)果,如圖所示。10.3項(xiàng)目設(shè)計(jì)10.3.1.設(shè)計(jì)內(nèi)容及要求

利用矩陣鍵盤(pán)實(shí)現(xiàn)6位密碼的輸入;利用LCD1602液晶顯示工作狀態(tài),如待機(jī)、輸入密碼、開(kāi)鎖、鍵盤(pán)鎖定、密碼是否正確等狀態(tài)信息;輸入密碼為數(shù)字0~9,具有輸入確定及取消功能;連續(xù)三次密碼錯(cuò)誤將鎖定鍵盤(pán)10s并報(bào)警。10.3.22.硬件電路設(shè)計(jì)在Proteus中設(shè)計(jì)的電路原理圖如圖10-11所示。單片機(jī)AT89C51的P3口外接4×4矩陣鍵盤(pán),提供數(shù)字鍵0~9,以及“確定”鍵和“取消”鍵。按鍵A、B、C、D暫時(shí)沒(méi)用。單片機(jī)的P0口接LCD1602的8位數(shù)據(jù)線,P2.0~P2.2引腳分別接LCD1602的RS、R/W和E控制端。P2.6引腳輸出控制蜂鳴器,在連續(xù)三次密碼錯(cuò)誤時(shí)發(fā)出報(bào)警聲音。P2.3引腳輸出控制LED燈,當(dāng)密碼正確時(shí)點(diǎn)亮,表明開(kāi)鎖成功。10.3.3程序設(shè)計(jì)開(kāi)機(jī)時(shí)系統(tǒng)進(jìn)入待機(jī)狀態(tài),液晶屏顯示一些固定字符,第一行顯示“===CodedLock===”,第二行顯示“password:”提示輸入密碼。通過(guò)鍵盤(pán)輸入6位密碼后按“確定”鍵,系統(tǒng)對(duì)密碼進(jìn)行判斷,根據(jù)結(jié)果分別顯示不同的提示字符:(1)如果密碼正確,屏幕先顯示pass,然后顯示open,表明解鎖成功,綠色LED燈點(diǎn)亮。(2)如果密碼錯(cuò)誤,屏幕顯示error,并繼續(xù)提示輸入密碼。(3)如果連續(xù)輸錯(cuò)三次,則屏幕顯示“KeypadLocked!”,鎖定鍵盤(pán)10s,同時(shí)通過(guò)蜂鳴器發(fā)出報(bào)警信號(hào)。10.3.4.運(yùn)行結(jié)果在Proteus中加載程序并運(yùn)行仿真,開(kāi)機(jī)界面如圖下圖(a)所示。通過(guò)按鍵輸入6位密碼,如果密碼錯(cuò)誤,則提示出錯(cuò),顯示界面如下圖(b)所示;連續(xù)三次密碼錯(cuò)誤,鍵盤(pán)被鎖定,顯示界面如下圖(c)所示;密碼輸入正確,則提示密碼鎖打開(kāi),顯示界面如下圖(d)所示,同時(shí)P2.3引腳接的LED燈點(diǎn)亮。謝謝觀看!MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程清華大學(xué)出版社第11章

項(xiàng)目八:?jiǎn)纹瑱C(jī)與PC機(jī)互發(fā)數(shù)據(jù)11.1數(shù)據(jù)通信方式11.2AT89C51單片機(jī)串行口結(jié)構(gòu)及工作原理11.3串行口工作方式及控制11.4串口應(yīng)用實(shí)例11.5項(xiàng)目設(shè)計(jì)11.1數(shù)據(jù)通信方式數(shù)據(jù)通信,通常有并行通信和串行通信兩種方式。并行通信是指單位信息的多位數(shù)據(jù)同時(shí)傳送,如圖所示。其優(yōu)點(diǎn)是傳送速度快,效率高;缺點(diǎn)是數(shù)據(jù)有多少位,就需要多少根傳送線,當(dāng)通信距離比較遠(yuǎn)時(shí)硬件成本比較高。串行通信是指單位信息的各位數(shù)據(jù)按先后次序一位一位分時(shí)傳送。其優(yōu)點(diǎn)是只需一對(duì)傳輸線,如圖所示,大大降低了傳送成本,特別適用于遠(yuǎn)距離通信;缺點(diǎn)是傳送速度較低。

并行通信

串行通信1.異步串行通信異步通信中,發(fā)送器和接收器以各自獨(dú)立的時(shí)鐘作為基準(zhǔn),即雙方不是共用同一個(gè)時(shí)鐘信號(hào),如圖所示。在異步通信中,被傳送的數(shù)據(jù)先要進(jìn)行打包處理,加上一個(gè)起始位、一個(gè)奇偶校驗(yàn)位(可以不要)、一個(gè)停止位,組成的數(shù)據(jù)格式如圖所示,我們把這一組數(shù)據(jù)信息稱(chēng)為一幀。每一個(gè)字節(jié)數(shù)據(jù)都要以幀信息的形式進(jìn)行傳送。

異步通信的數(shù)據(jù)幀格式2.同步串行通信

同步通信中,發(fā)送器和接收器用同一個(gè)時(shí)鐘來(lái)協(xié)調(diào)收發(fā)工作,增加了硬件設(shè)備的復(fù)雜性,一般用于傳送數(shù)據(jù)塊。在數(shù)據(jù)塊發(fā)送開(kāi)始,先發(fā)送一個(gè)或兩個(gè)同步字符,使發(fā)送方與接收方取得同步。然后開(kāi)始發(fā)送數(shù)據(jù),數(shù)據(jù)塊的各個(gè)字符之間沒(méi)有起始位和停止位,這樣通信速度就得到了提高。

(a)時(shí)鐘方式

(b)數(shù)據(jù)格式串行通信中的數(shù)據(jù)傳送通常是在兩個(gè)端點(diǎn)之間進(jìn)行,按照數(shù)據(jù)流動(dòng)的方向可分成單工、半雙工、全雙工三種傳送模式。其中:?jiǎn)喂つJ剑菏褂靡桓鶄鬏斁€,只允許單方向傳送數(shù)據(jù)。半雙工模式:使用一根傳輸線,允許向兩個(gè)方向中的任一方向傳送數(shù)據(jù),但不能同時(shí)進(jìn)行。全雙工模式:使用兩根傳輸線,通信雙方的發(fā)送和接收能同時(shí)進(jìn)行。11.2AT89C51單片機(jī)串行口結(jié)構(gòu)及工作原理MCS-51單片機(jī)的串行口是一個(gè)通用全雙工異步通信接口,結(jié)構(gòu)如圖所示。它有一個(gè)發(fā)送緩沖器和一個(gè)接收緩沖器,在物理上是獨(dú)立的。這兩個(gè)緩沖器具有相同的名字(SBUF)和地址(99H),但不會(huì)沖突。發(fā)送緩沖器只能寫(xiě)入,不能讀出,用于存儲(chǔ)要發(fā)送的數(shù)據(jù);接收緩沖器只能讀出,不能寫(xiě)入,用于存儲(chǔ)接收到的數(shù)據(jù)。這兩個(gè)緩沖器都和單片機(jī)內(nèi)部總線相連,CPU可以隨時(shí)進(jìn)行讀寫(xiě)操作。1.數(shù)據(jù)接收過(guò)程當(dāng)RXD引腳上有一幀串行數(shù)據(jù)到來(lái)時(shí),如果串口設(shè)置為允許接收狀態(tài),且接收中斷標(biāo)志位RI=0,那么在串口移位時(shí)鐘的同步下,數(shù)據(jù)會(huì)進(jìn)入到串入并出移位寄存器。一幀信息接收完畢,系統(tǒng)硬件自動(dòng)置位接收中斷標(biāo)志位RI,向CPU發(fā)出中斷請(qǐng)求,同時(shí)把移位寄存器中的數(shù)據(jù)并行送入到接收SBUF中。要想讓單片機(jī)串口能夠接收到數(shù)據(jù),一定要保證兩點(diǎn):串口允許接收;RI=0。串口收到數(shù)據(jù)后,CPU要及時(shí)將數(shù)據(jù)從接收SBUF中讀走,并將RI標(biāo)志位清0,為下一次數(shù)據(jù)接收做好準(zhǔn)備。讀取SBUF的語(yǔ)句很簡(jiǎn)單,如ACC=SBUF。2.數(shù)據(jù)發(fā)送過(guò)程當(dāng)要把一個(gè)數(shù)據(jù)通過(guò)串口向外發(fā)送時(shí),只需要把這個(gè)數(shù)據(jù)寫(xiě)入到發(fā)送SBUF中就可以了。例如,執(zhí)行語(yǔ)句:SBUF=ACC,ACC累加器中的數(shù)據(jù)就自動(dòng)被打包成幀信息,并在移位時(shí)鐘的同步下開(kāi)始一位一位發(fā)送。一幀信息發(fā)送完畢,系統(tǒng)會(huì)自動(dòng)置位發(fā)送中斷標(biāo)志位TI,以通知CPU數(shù)據(jù)發(fā)送完畢。需要注意的是:CPU往串口發(fā)送數(shù)據(jù),必須要在發(fā)送SBUF為空的情況下進(jìn)行。如果是連續(xù)發(fā)送多個(gè)數(shù)據(jù),則必須要在上一個(gè)數(shù)據(jù)發(fā)送完畢,才能再開(kāi)始發(fā)送下一個(gè)。因此編程時(shí),啟動(dòng)一次數(shù)據(jù)發(fā)送后,要等到TI置1后再啟動(dòng)下一個(gè)發(fā)送操作,同時(shí)還要在程序中及時(shí)使TI清0。11.3串行口工作方式及控制11.3.1串口相關(guān)的特殊功能寄存器單片機(jī)對(duì)串行口的控制是通過(guò)相關(guān)的特殊功能寄存器來(lái)實(shí)現(xiàn)的,主要有兩個(gè):控制狀態(tài)寄存器SCON和電源控制寄存器PCON。1.控制狀態(tài)寄存器SCONSCON是一個(gè)可位尋址的專(zhuān)用寄存器,用于定義串行通信口的工作方式和反映串行口狀態(tài),其字節(jié)地址為98H,復(fù)位值為00000000B,具體格式如圖所示。2.電源控制寄存器PCON電源控制寄存器PCON主要是對(duì)單片機(jī)的電壓進(jìn)行控制管理的,但其最高位SMOD是串口波特率系數(shù)的控制位。其格式如圖所示。1.方式0

方式0是移位寄存器輸入/輸出方式,波特率固定為fosc/12。當(dāng)單片機(jī)的并行I/O口不夠用時(shí),可以通過(guò)在串口外接移位寄存器的方法實(shí)現(xiàn)外部并行數(shù)據(jù)的輸入/輸出。此方式下,串行數(shù)據(jù)從RXD線輸入/輸出,TXD線專(zhuān)用于輸出時(shí)鐘脈沖給外部移位寄存器。收發(fā)的數(shù)據(jù)為8位,低位在前,無(wú)起始位、奇偶校驗(yàn)位及停止位。11.3.2串口工作方式2.方式1

方式1為10位通用異步接收/發(fā)送方式,一幀信息包含10位,格式為:1個(gè)起始位0,8個(gè)數(shù)據(jù)位,1個(gè)停止位1。此方式下的波特率可以編程改變。3.方式2

方式2為11位通用異步接收/發(fā)送方式,一幀信息包含11位,其幀格式為:1個(gè)起始位0,8個(gè)數(shù)據(jù)位,1個(gè)附加的第九位,1個(gè)停止位1。此方式下的波特率固定為fosc/32或fosc/64,取決于寄存器PCON中SMOD這一位的數(shù)值。4.方式3

方式3也是11位通用異步接收/發(fā)送方式,數(shù)據(jù)發(fā)送和接收過(guò)程同方式2一樣,但其波特率同方式1一樣可以編程改變。串行通信時(shí),收發(fā)雙方必須使用完全相同的波特率才能保證數(shù)據(jù)被可靠接收。在工程應(yīng)用中,通信波特率的選擇還與通信設(shè)備、傳輸距離、線路狀況等因素有關(guān),需要根據(jù)實(shí)際情況正確選擇。8051串行口的四種工作方式中,方式0和方式2的波特率都是固定的,方式1和方式3的波特率可變,因此可按照實(shí)際需要來(lái)設(shè)計(jì)確定,具有更強(qiáng)的實(shí)用性。11.3.3波特率設(shè)計(jì)方式1、3的波特率是由定時(shí)器T1的溢出率決定的,同時(shí)受SMOD數(shù)值的影響,具體如圖所示。定時(shí)器1、3的波特率由下面的公式計(jì)算得到:方式1、3的波特率=(2SMOD/32)×(T1溢出率)(11.1)因?yàn)椋?/p>

T1溢出率=(fosc/12)/(2n-初值)(11.2)所以:方式1、3的波特率=(2SMOD/32)×(fosc/12)/(2n-初值)(11.3)串口通信時(shí)要求波特率必須非常準(zhǔn)確。因?yàn)槎〞r(shí)器T1計(jì)滿溢出后需要重裝初值,在定時(shí)器模式0、1下需要在軟件中完成,這樣就會(huì)造成時(shí)間上的延遲,從而導(dǎo)致波特率不準(zhǔn)確。模式2具有硬件自動(dòng)重裝初值的功能,不存在時(shí)間延遲,所以用它來(lái)設(shè)計(jì)波特率最合適。在典型應(yīng)用中,定時(shí)器T1選用定時(shí)器模式2,此時(shí)n=8,設(shè)定時(shí)器的初值為X,于是X=256–[fosc×(SMOD+1)]/(384×波特率)(11.4)【例11-1】AT89C51單片機(jī)的振蕩頻率為11.0592MHz,選用定時(shí)器T1工作模式2作為波特率發(fā)生器,波特率為2400b/s,求初值X。解:設(shè)置波特率控制為(SMOD)=0,由式(11.4)可得X=256–[11.0592×106×(0+1)]/(384×2400)=244所以,(TH1)=(TL1)=244。系統(tǒng)晶體振蕩頻率使用11.0592MHz是為了使初值計(jì)算結(jié)果為整數(shù),從而保證精確的波特率。11.4串口應(yīng)用實(shí)例11.4.1串口編程初始化步驟串行口在使用之前需要先進(jìn)行初始化編程,才能按要求輸入/輸出數(shù)據(jù)。一般的初始化步驟包括:(1)設(shè)定串口工作方式。設(shè)置SCON中的SM0、SM1。(2)如果采用中斷方式編程,則需要打開(kāi)串行口中斷。設(shè)置中斷控制寄存器IE中的EA=1,ES=1。(3)設(shè)定SMOD的狀態(tài),以控制波特率是否加倍。(4)工作方式為1或3時(shí)進(jìn)行波特率設(shè)計(jì),設(shè)置定時(shí)器T1。T1一般設(shè)置為定時(shí)方式模式2,所以一般有TMOD=0x20。再利用式(11.4)計(jì)算計(jì)數(shù)初值,并賦值給TH1、TL1。最后啟動(dòng)定時(shí)器T1,即TR1=1。

11.4.2方式0應(yīng)用實(shí)例1.擴(kuò)展并行輸出【例11-2】AT89C52的串行口外接74HC164擴(kuò)展8位并行輸出口,在Proteus中的電路如圖11-13所示。P2口外接8個(gè)開(kāi)關(guān),74HC164的輸出外接8個(gè)LED燈。要求編程實(shí)現(xiàn)通過(guò)P2口8個(gè)開(kāi)關(guān)的開(kāi)/合對(duì)應(yīng)控制8個(gè)LED燈的亮滅。#include<reg52.h>sbitP3_2=P3^2; unsignedchari;unsignedintj;voiddelay() //延時(shí)函數(shù){ for(i=100;i>0;i--) for(j=100;j>0;j--);}voidmain(){ P3_2=0; //關(guān)閉并行輸出

SCON=0x00; //串口方式0 SBUF=P2; //開(kāi)關(guān)信息寫(xiě)入串行口

while(1) { if(TI) //發(fā)送完畢

{ TI=0; //清發(fā)送中斷標(biāo)志

P3_2=1; //打開(kāi)并行輸出

delay(); SBUF=P2; //再次送入串行數(shù)據(jù)

} }}2.擴(kuò)展并行輸入【例11-3】AT89C52的串行口外接74HC165擴(kuò)展8位并行輸入口,在Proteus中的電路如圖11-14所示。P2口外接8個(gè)LED燈,74HC165的輸入端外接8個(gè)開(kāi)關(guān)。要求編程實(shí)現(xiàn)通過(guò)8個(gè)開(kāi)關(guān)的開(kāi)/合對(duì)應(yīng)控制8個(gè)LED燈的亮滅。#include<reg52.h>sbitSHLD=P3^3;unsignedchari;unsignedintj;voiddelay() //延時(shí)函數(shù){ for(i=100;i>0;i--) for(j=1000;j>0;j--);}voidmain(){ SCON=0x10; //串口方式0,允許接收

while(1) { SHLD=0; //載入并行數(shù)據(jù)

SHLD=1; //開(kāi)始串行輸出

while(!RI); //等待接收完畢

RI=0; P2=SBUF; //用開(kāi)關(guān)狀態(tài)控制LED燈

delay(); }}11.4.3方式1應(yīng)用實(shí)例【例11-4】

在圖11-15所示的電路中,AT89C51單片機(jī)串口外接發(fā)送器和接收器,P1口接兩位BCD碼數(shù)碼管。串口工作于方式1,波特率為4800b/s。要求編寫(xiě)全雙工異步通信程序,當(dāng)單片機(jī)串口收到數(shù)據(jù)后在P1口顯示出來(lái),同時(shí)將數(shù)據(jù)加1后回發(fā)給串口。#include<reg52.h>voidmain(){ SCON=0x50; //串行口初始化,允許接收

TMOD=0x20; //定時(shí)器初始化

TH1=0xfa; //賦初值

TL1=0xfa; TR1=1; //啟動(dòng)定時(shí)器

ES=1; //串口中斷初始化

EA=1; P1=0; //P1口數(shù)據(jù)先清0 while(1); //等待中斷} voidintrr()interrupt4{ if(TI)TI=0; //發(fā)送引起,清TI else //否則,接收引起

{ RI=0; //清接收中斷標(biāo)志

ACC=SBUF; //讀取接收的數(shù)據(jù)

P1=ACC; //送顯示

SBUF=ACC+1; //回發(fā)到串口

} } 11.4.4方式3應(yīng)用實(shí)例【例11-5】將片內(nèi)RAM50H~5FH中的數(shù)據(jù)串行發(fā)送,用第9個(gè)數(shù)據(jù)位作奇偶校驗(yàn)位,設(shè)晶振為11.0592MHz,波特率為2400b/s,編制串行口的發(fā)送程序。解:工作于方式3,用TB8作奇偶校驗(yàn)位,在數(shù)據(jù)寫(xiě)入發(fā)送緩沖器之前,先將數(shù)據(jù)的奇偶位P寫(xiě)入TB8,發(fā)送采用中斷方式。波特率為2400b/s,計(jì)算可得T1的計(jì)數(shù)初值為244。#include<reg52.h>unsignedchari=0;unsignedchararray[16]_at_0x50;//將數(shù)組變量絕對(duì)定位到50H單元voidmain(){ SCON=0xc0; //串行口初始化

TMOD=0x20; //定時(shí)器初始化

TH1=244; TL1=244; TR1=1; ES=1; EA=1; //中斷初始化

ACC=array[i]; //發(fā)送第一個(gè)數(shù)據(jù)送

TB8=P; //累加器,目的取P位

SBUF=ACC; //發(fā)送一個(gè)數(shù)據(jù)

while(1); //等待中斷}voidserver()interrupt4 //串行口中斷服務(wù)程序{ TI=0; //清發(fā)送中斷標(biāo)志

ACC=array[++i]; //取下一個(gè)數(shù)據(jù)

TB8=P; SBUF=ACC; if(i==15) ES=0; //發(fā)送完畢,禁止串口中斷}仿真時(shí),先在AT89C51片內(nèi)RAM的50H~5FH單元中分別設(shè)置了字符“0~9,A~F”的ASCII碼數(shù)值。單片機(jī)從串口依次向外發(fā)送了這些數(shù)據(jù),當(dāng)16個(gè)數(shù)據(jù)全部發(fā)送完畢后自動(dòng)停止。11.5項(xiàng)目設(shè)計(jì)1.設(shè)計(jì)內(nèi)容及要求單片機(jī)串行口以中斷方式同PC機(jī)進(jìn)行通信,采用工作方式1,波特率設(shè)定為9600b/s。要求完成以下功能:基本功能:PC機(jī)串口發(fā)送字符串TEST,單片機(jī)串口收到后,回發(fā)字符串good給PC機(jī)。發(fā)揮部分:PC機(jī)串口發(fā)送一個(gè)十六進(jìn)制數(shù)據(jù),單片機(jī)收到后將其轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)制數(shù),然后按字符方式回發(fā)給PC機(jī)。2.硬件電路設(shè)計(jì)單片機(jī)的串行口和PC機(jī)的異步串行接口(COM1、COM2)進(jìn)行連接時(shí)采用最簡(jiǎn)單的三線法,即只需連接TXD、RXD和GND三條線即可。由于單片機(jī)采用的是TTL電平標(biāo)準(zhǔn),而PC機(jī)的異步串行口采用RS-232C電平標(biāo)準(zhǔn),所以不能直接相連。單片機(jī)串口通過(guò)MAX232芯片同PC機(jī)串口連接的典型電路USB轉(zhuǎn)TTL的接口電路3.程序設(shè)計(jì)1)基本功能2)發(fā)揮部分4.運(yùn)行結(jié)果基本功能運(yùn)行結(jié)果如圖所示。在發(fā)送區(qū)輸入字符串TEST后,單擊“發(fā)送”按鈕。單片機(jī)收到該字符串,判斷無(wú)誤后向串口回發(fā)字符串good,good字符串被順利顯示在窗口的接收區(qū)。如果發(fā)送的字符串不是連續(xù)的TEST(如TEEST)或其他字符,則單片機(jī)不會(huì)回發(fā)good字符串。發(fā)揮部分運(yùn)行結(jié)果如圖所示。在發(fā)送區(qū)輸入十六進(jìn)制數(shù)據(jù)FE,選中“按16進(jìn)制顯示或發(fā)送”復(fù)選框,然后單擊“發(fā)送”按鈕。單片機(jī)串口收到該數(shù)據(jù)后,先將其轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)制數(shù)254,再以字符串方式將254回發(fā)到PC機(jī)。謝謝觀看!MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程清華大學(xué)出版社第12章

項(xiàng)目九:?jiǎn)纹瑱C(jī)片外三總線擴(kuò)展并行SRAM12.1MCS-51單片機(jī)并行擴(kuò)展三總線結(jié)構(gòu)12.2擴(kuò)展片外并行RAM方法12.3項(xiàng)目設(shè)計(jì)12.1MCS-51單片機(jī)并行擴(kuò)展三總線結(jié)構(gòu)在并行總線擴(kuò)展中,訪問(wèn)片外設(shè)備的信號(hào)線采用三總線結(jié)構(gòu),即地址總線、數(shù)據(jù)總線和控制總線。MCS-51單片機(jī)片外三總線結(jié)構(gòu)如圖所示。1)數(shù)據(jù)總線MCS-51單片機(jī)的數(shù)據(jù)總線由P0口提供,用于單片機(jī)對(duì)外訪問(wèn)數(shù)據(jù)的輸入輸出。因?yàn)镻0口只有8位,一次處理的并行數(shù)據(jù)最大只有8位,所以MCS-51單片機(jī)屬于8位單片機(jī)。2)地址總線MCS-51單片機(jī)的地址線一共有16根,因此可尋址的地址范圍為0000H~FFFFH,一共216即64KB存儲(chǔ)空間。這16根地址線分別由P2口提供高8位地址線,由P0口提供低8位地址線。P0口是數(shù)據(jù)/地址的復(fù)用口,在執(zhí)行總線操作時(shí),P0口要先輸出低8位地址信息,然后再輸入/輸出數(shù)據(jù),所以低8位地址信息只是短暫出現(xiàn)的。為了使P0口在換為數(shù)據(jù)信息時(shí),之前的低8位地址信息不會(huì)丟失,必須要在P0口出現(xiàn)地址的時(shí)候?qū)⑵滏i存起來(lái),并一直保持到總線操作結(jié)束。采用的方法是在P0口接一個(gè)地址鎖存器,如圖12-1所示。當(dāng)P0口輸出地址信息的同時(shí),ALE引腳會(huì)自動(dòng)輸出一個(gè)脈沖信號(hào),控制地址鎖存器把地址信息A0~A7鎖存到輸出端。3)控制總線單片機(jī)在對(duì)外部設(shè)備進(jìn)行讀寫(xiě)時(shí),除了地址信息和數(shù)據(jù)信息外,必要的溝通聯(lián)絡(luò)也是決定成敗的關(guān)鍵。當(dāng)單片機(jī)要寫(xiě)一個(gè)數(shù)據(jù)給外部設(shè)備時(shí),在送出地址信息和數(shù)據(jù)的同時(shí),還要發(fā)出一個(gè)控制信號(hào)用來(lái)通知外部設(shè)備接收該數(shù)據(jù),我們稱(chēng)之為寫(xiě)選通信號(hào)。當(dāng)單片機(jī)要從外部設(shè)備讀取一個(gè)數(shù)據(jù)時(shí),同樣也需要發(fā)出一個(gè)控制信號(hào)用來(lái)通知外部設(shè)備把數(shù)據(jù)送到數(shù)據(jù)總線上,我們稱(chēng)之為讀選通信號(hào)。這些控制信號(hào)共同組成了單片機(jī)的控制總線。12.2擴(kuò)展片外并行RAM方法12.2.1常用靜態(tài)RAM芯片常用的RAM有靜態(tài)RAM(SRAM)和動(dòng)態(tài)RAM(DRAM)。動(dòng)態(tài)RAM采用位結(jié)構(gòu)形式,具有集成度高、功耗低、價(jià)格低等特點(diǎn),多用于構(gòu)成大容量存儲(chǔ)系統(tǒng),如PC機(jī)的內(nèi)存條。動(dòng)態(tài)RAM需要專(zhuān)門(mén)的刷新電路來(lái)刷新存儲(chǔ)的數(shù)據(jù),因此在這里不多討論。靜態(tài)RAM有不同的規(guī)格型號(hào),容量也有多種,如6264(8K×8位)、62256(32K×8位)、628128(128K×8位)等。靜態(tài)RAM的工作原理類(lèi)似,下面以SRAM6264為例介紹其基本特性及與單片機(jī)的連接。單片機(jī)在擴(kuò)展外部SRAM6264時(shí)的電路設(shè)計(jì)結(jié)構(gòu)分為兩種情況:一是擴(kuò)展單片6264,二是擴(kuò)展多片6264。12.2.2單片機(jī)與6264的接口設(shè)計(jì)1.擴(kuò)展單片6264擴(kuò)展單片6264時(shí)的接口電路設(shè)計(jì)比較簡(jiǎn)單,只要按照三總線結(jié)構(gòu)將單片機(jī)的地址線、數(shù)據(jù)線、控制線同6264的地址線、數(shù)據(jù)線、控制線對(duì)應(yīng)連接即可,如圖所示。1)單片機(jī)寫(xiě)數(shù)據(jù)過(guò)程當(dāng)單片機(jī)執(zhí)行寫(xiě)片外RAM存儲(chǔ)單元的指令時(shí),總線操作的過(guò)程分為以下幾個(gè)步驟:(1)

P0口先輸出片外存儲(chǔ)單元地址的低8位,P2口輸出地址的高8位。(2)

ALE引腳輸出脈沖信號(hào),在脈沖的高電平階段,P0口的低8位地址從74HC573的D端輸入,從Q端輸出,加到6264的地址引腳A0~A7上。(3)在ALE脈沖的下降沿,74HC573進(jìn)入鎖存狀態(tài),低8位地址鎖存在Q端。(4)

P0口輸出數(shù)據(jù)信息到6264的數(shù)據(jù)端口D0~D7。(5)單片機(jī)引腳向外輸出一負(fù)脈沖到6264的寫(xiě)允許信號(hào)輸入端

。(6)

6264將數(shù)據(jù)存儲(chǔ)到地址A0~A12所對(duì)應(yīng)的存儲(chǔ)單元中。2)單片機(jī)讀數(shù)據(jù)過(guò)程當(dāng)單片機(jī)執(zhí)行一條讀片外RAM存儲(chǔ)單元的指令時(shí),總線操作的過(guò)程分為以下幾個(gè)步驟。(1)P0口先輸出片外存儲(chǔ)單元地址的低8位,P2口輸出地址的高8位。(2)ALE引腳輸出脈沖信號(hào),在脈沖的高電平階段,P0口的低8位地址從74HC573的D端輸入,從Q端輸出,加到6264的地址引腳A0~A7上。(3)在ALE脈沖的下降沿,74HC573進(jìn)入鎖存狀態(tài),低8位地址鎖存在Q端。(4)單片機(jī)引腳向外輸出一負(fù)脈沖到6264的讀允許信號(hào)輸入端

。(5)6264將地址A0~A12對(duì)應(yīng)存儲(chǔ)單元中的數(shù)據(jù)取出送到端口D0~D7,數(shù)據(jù)通過(guò)P0口進(jìn)入到單片機(jī)內(nèi)部總線。

單片機(jī)訪問(wèn)片外RAM時(shí)的總線操作時(shí)序

2.擴(kuò)展多片6264在單片機(jī)擴(kuò)展多片6264時(shí),要涉及如何實(shí)現(xiàn)存儲(chǔ)芯片片選的問(wèn)題,這又直接關(guān)系到每個(gè)芯片存儲(chǔ)單元的地址編碼,一般分為線選法和譯碼法兩種。1)線選法所謂線選法,就是直接以單片機(jī)的地址線作為存儲(chǔ)器芯片的片選信號(hào),只需把用到的地址線與存儲(chǔ)器芯片的片選端直接相連即可。2)譯碼法譯碼法是使用地址譯碼器對(duì)系統(tǒng)的片外地址進(jìn)行譯碼,以其譯碼輸出作為存儲(chǔ)器芯片的片選信號(hào)。1.使用指針變量在程序文件開(kāi)始,首先要定義一個(gè)指向外部數(shù)據(jù)存儲(chǔ)區(qū)的專(zhuān)用指針變量,然后針對(duì)指針變量進(jìn)行讀寫(xiě)操作。程序?qū)懛椋簎nsignedcharxdata*xpt; //定義指向片外RAM的專(zhuān)用指針xpt=0x30; //存儲(chǔ)單元地址送指針變量*xpt=0x60; //將數(shù)據(jù)60H送入片外RAM的30H單元中xpt=0x7fff; //存儲(chǔ)單元地址送指針變量ACC=*xpt //將片外RAM的7FFFH單元中的數(shù)據(jù)送

到累加器A12.2.3訪問(wèn)片外RAM的軟件編程

2.使用指針定義的宏C51編譯器提供了兩組用指針定義的絕對(duì)存儲(chǔ)器訪問(wèn)的宏。這些宏定義原型放在absacc.h文件中,使用時(shí)需要用預(yù)處理命令把該頭文件包含到文件中。程序?qū)懛椋?include<absacc.h> //添加頭文件XBYTE[0x30]=0x60; //將數(shù)據(jù)60H送入片外

RAM的30H單元中ACC=XBYTE[0x7fff]; //將片外RAM的7FFFH單元中的

數(shù)據(jù)送到累加器A

對(duì)比這兩種方法,使用指針定義的宏的方法更為簡(jiǎn)便些。12.3項(xiàng)目設(shè)計(jì)1.設(shè)計(jì)內(nèi)容與要求AT89C51單片機(jī)采用一片6264外擴(kuò)8KBSRAM,并向6264的10H單元開(kāi)始連續(xù)寫(xiě)入11~20十個(gè)數(shù)據(jù)。請(qǐng)完成單片機(jī)同6264的接口電路設(shè)計(jì)并編寫(xiě)程序。2.硬件電路設(shè)計(jì)3.程序設(shè)計(jì)根據(jù)任務(wù)要求,編寫(xiě)的C語(yǔ)言源程序如下:#include<absacc.h>unsignedchari,m;unsignedintj,k;voiddelay(){ for(j=100;j>0;j--) for(k=100;k>0;k--);}voidmain(){while(1){ m=11; for(i=0;i<10;i++) //向10H單元開(kāi)始寫(xiě)入10個(gè)數(shù)據(jù)

{ XBYTE[0x10+i]=m; m++; delay(); }}}4.運(yùn)行結(jié)果如圖所示。從6264的10H單元開(kāi)始連續(xù)寫(xiě)入了11~20對(duì)應(yīng)的十六進(jìn)制數(shù)據(jù)0BH~14H。謝謝觀看!MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程清華大學(xué)出版社第13章項(xiàng)目十:ADC0809多

通道電壓采集與顯示13.1ADC0809簡(jiǎn)介13.2ADC0809與AT89C51的接口及編程方法13.3項(xiàng)目設(shè)計(jì)13.1ADC0809簡(jiǎn)介ADC0809是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的CMOS工藝,逐次逼近式并行8位A/D轉(zhuǎn)換芯片。它具有8路模擬量輸入端,最多允許8路模擬量分時(shí)輸入,共用一個(gè)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。圖13-1所示為ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖。它由8路模擬量開(kāi)關(guān)、8位A/D轉(zhuǎn)換器、三態(tài)輸出鎖存器以及地址鎖存與譯碼器等組成。IN0~I(xiàn)N7:8個(gè)通道的模擬信號(hào)輸入端。輸入電壓范圍為0~+5V。ADDC、ADDB、ADDA:通道地址輸入端。其中,C為高位,A為低位。ALE:地址鎖存信號(hào)輸入端。在脈沖上升沿鎖存ADDC、ADDB、ADDA引腳上的信號(hào),并據(jù)此選通IN0~I(xiàn)N7中的一路。8路輸入通道的地址選擇關(guān)系如表13-1所示。1.ADC0809的引腳功能START:?jiǎn)?dòng)信號(hào)輸入端。當(dāng)START端輸入一個(gè)正脈沖時(shí),立即啟動(dòng)A/D轉(zhuǎn)換。EOC:轉(zhuǎn)換結(jié)束信號(hào)輸出端。在啟動(dòng)轉(zhuǎn)換后為低電平,轉(zhuǎn)換結(jié)束后自動(dòng)變?yōu)楦唠娖?,可用于向單片機(jī)發(fā)出中斷請(qǐng)求。OE:輸出允許控制端。為高電平時(shí),將三態(tài)輸出鎖存器中的數(shù)據(jù)輸出到D0~D7數(shù)據(jù)端。D0~D7:8位數(shù)字量輸出端。為三態(tài)緩沖輸出形式,能夠和AT89C51單片機(jī)的并行數(shù)據(jù)線直接相連。CLK:時(shí)鐘信號(hào)輸入端。時(shí)鐘頻率范圍為10~1280kHz,典型值為640kHz。當(dāng)時(shí)鐘頻率為640kHz時(shí),轉(zhuǎn)換時(shí)間為100μs。VREF+和VREF-:A/D轉(zhuǎn)換器的正負(fù)基準(zhǔn)電壓輸入端。VCC:電源電壓輸入(+5V)。GND:電源地。2.單片機(jī)控制ADC0809的工作過(guò)程根據(jù)圖13-1所示的ADC0809內(nèi)部結(jié)構(gòu),可以歸納單片機(jī)控制ADC0809進(jìn)行A/D轉(zhuǎn)換的工作過(guò)程如下:(1)為ADC0809添加基準(zhǔn)電壓和時(shí)鐘信號(hào)。(2)外部模擬電壓信號(hào)從通道IN0~I(xiàn)N7中的一路輸入到多路模擬開(kāi)關(guān)。(3)將通道選擇字輸入到ADDC、ADDB、ADDA引腳。(4)在ALE引腳輸入高電平,選通并鎖存相應(yīng)通道。(5)在START引腳輸入高電平,啟動(dòng)A/D轉(zhuǎn)換。(6)當(dāng)EOC引腳變?yōu)楦唠娖綍r(shí),在OE引腳輸入高電平。(7)將D0~D7上的并行數(shù)據(jù)讀入單片機(jī)。13.2ADC0809與AT89C51的

接口及編程方法ADC0809同AT89C51的接口設(shè)計(jì)可采用總線操作方式,也可以采用I/O口控制方式。是否正確實(shí)現(xiàn)ADC0809與AT89C51的接口連接,關(guān)鍵在于看能否滿足以下要求:(1)能正確選擇輸入通道。(2)能順利啟動(dòng)轉(zhuǎn)換。(3)能順利讀取轉(zhuǎn)換結(jié)果。ADC0809芯片的轉(zhuǎn)換時(shí)間在典型時(shí)鐘頻率下為100μs左右。對(duì)A/D轉(zhuǎn)換是否完成的判別既可采用查詢方式,也可采用中斷方式,在電路連接和程序編寫(xiě)上會(huì)有所不同。13.2.1采用I/O口控制方式1.輸入通道固定的電路接法在圖中,外部模擬電壓信號(hào)從通道IN4輸入。ADC0809的ADDC、ADDB和ADDA三個(gè)引腳接到固定電位上,同時(shí)讓ALE信號(hào)固定為高電平。ADC0809的其他控制信號(hào)START、EOC、OE分別由單片機(jī)的P1.5、P1.6、P1.7端口控制。單片機(jī)利用內(nèi)部定時(shí)器產(chǎn)生ADC0809所需的時(shí)鐘信號(hào)并從P1.4端口輸出,A/D轉(zhuǎn)換結(jié)果從單片機(jī)的P2口讀入。#include<reg51.h>sbitstart=P1^5;sbiteoc=P1^6;sbitoe=P1^7;unsignedcharadcbuf; //定義變量存放A/D轉(zhuǎn)換結(jié)果voidADC0809() //A/D轉(zhuǎn)換子程序{ start=0; start=1; //啟動(dòng)AD轉(zhuǎn)換 while(!eoc); //等待轉(zhuǎn)換結(jié)束 start=0; oe=1; //打開(kāi)三態(tài)輸出鎖存器 P2=0xff; //設(shè)置P2口輸入 adcbuf=P2; //讀P2口數(shù)據(jù)到存儲(chǔ)變量}2.選擇輸入通道的電路接法如果模擬電壓信號(hào)的來(lái)源不固定或有多個(gè)輸入通道,那么在進(jìn)行接口電路設(shè)計(jì)時(shí),必須由單片機(jī)控制ADC0809的ADDC、ADDB和ADDA以及ALE信號(hào)來(lái)選擇并鎖存通道,其接口電路如圖13-3所示。與圖13-2的區(qū)別在于,用單片機(jī)的P1.2、P1.1、P1.0端口分別控制ADDC、ADDB和ADDA,用P1.3口控制ALE信號(hào)。sbitstart=P1^5;sbiteoc=P1^6;sbitoe=P1^7;sbitadda=P1^0;sbitaddb=P1^1;sbitaddc=P1^2;sbitale=P1^3;sbitclock=P1^4;unsignedcharadcbuf;voidADC0809(){ start=0; ale=0; adda=0; addb=0; addc=1; ale=1; start=1; ale=0; while(!eoc); start=0; oe=1; P2=0xff; adcbuf=P2;}13.2.2采用總線操作方式圖13-4所示為一典型的ADC0809與AT89C51以總線操作方式設(shè)計(jì)的接口電路,采用中斷方式進(jìn)行控制。單片機(jī)的數(shù)據(jù)總線同ADC0809的數(shù)據(jù)總線連接,ADC0809的ADDA、ADDB和ADDC數(shù)據(jù)由P0口的低三位送出。單片機(jī)的地址總線只使用了P2.7,其他地址線的數(shù)據(jù)與ADC0809無(wú)關(guān)。P2.7和寫(xiě)選通信號(hào)

通過(guò)或非門(mén)輸出接到ADC0809的ALE和START引腳,和讀選通信號(hào)

通過(guò)或非門(mén)輸出接到ADC0809的OE引腳。以中斷方式編寫(xiě)的單通道A/D轉(zhuǎn)換例程如下:#include<reg51.h>#include<absacc.h>unsignedcharadcbuf;voidmain(){ IT1=1; //邊沿觸發(fā) EA=1; EX1=1; XBYTE[0x7fff]=0x04; while(1); }voidint_1()interrupt2{ adcbuf=BYTE[0x7fff]; //讀數(shù)存放XBYTE[0x7fff]=0x04;}8個(gè)通道巡回轉(zhuǎn)換的程序如下:#include<reg51.h>#include<absacc.h>unsignedchari=0,adcbuf[8];voidmain(){ IT1=1; //邊沿觸發(fā) EA=1; EX1=1; XBYTE[0x7fff]=i; //啟動(dòng)0通道轉(zhuǎn)換

while(1); }voidint_1()interrupt2{ adcbuf[i]=BYTE[0x7fff]; //通道i讀數(shù)存放 if(++i!=8) //最后一個(gè)通道沒(méi)結(jié)束 BYTE[0x7fff]=i; //啟動(dòng)下一個(gè)通道轉(zhuǎn)換}13.3項(xiàng)目設(shè)計(jì)1.設(shè)計(jì)內(nèi)容及要求單片機(jī)AT89C52擴(kuò)展一片并行A/D轉(zhuǎn)換器ADC0809同時(shí)采集三路外部電壓信號(hào),外部電壓信號(hào)范圍為0~5V。采集的三路電壓值使用四位LED數(shù)碼管輪流顯示,時(shí)間間隔自定,電壓?jiǎn)挝粸閙V。同時(shí)用一位數(shù)碼管顯示外部電壓對(duì)應(yīng)的通道號(hào)。#include<reg52.h>#include<absacc.h>#defineADC0809XBYTE[0x7fff]sbitCLK=P3^0;unsignedchari=0,j=1,k=0;unsignedintvalue;unsignedcharadcbuf[3],dispbuf[6];unsignedcharcodesegcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //數(shù)字“0~9”及“滅”狀態(tài)的共陽(yáng)七段碼表voiddelay(unsignedcharx) //延時(shí)程序,約1ms{unsignedcharm,n;for(m=x;m>0;m--)for(n=120;n<0;n--);}voiddisplay() //顯示程序{value=adcbuf[j-1]*(float)5000/255; //轉(zhuǎn)換結(jié)果換算為電壓值,單位為mVdispbuf[0]=value%10; //分離個(gè)、十、百、千位dispbuf[1]=value/10%10;dispbuf[2]=value/100%10;dispbuf[3]=value/1000;dispbuf[4]=10; //第5位數(shù)碼管對(duì)應(yīng)“滅”狀態(tài)dispbuf[5]=j; //第6位數(shù)碼管顯示通道號(hào)for(i=0;i<6;i++){P2=(0x20>>i); //P2口送位選信號(hào)P1=segcode[dispbuf[i]]; //P1口送7段碼值delay(5); //延時(shí)5msP1=0xff; //消隱 }}voidmain(){TMOD=0x12; //定時(shí)器1模式1,定時(shí)器0模式2TH0=0xFE; //定時(shí)器0初值,產(chǎn)生時(shí)鐘信號(hào)TL0=0xFE;TL1=(65536-10000)%256; //設(shè)置定時(shí)器1初值,定時(shí)10msTH1=(65536-10000)/256; TR0=1; //啟動(dòng)定時(shí)器TR1=1; PT1=1; //設(shè)置定時(shí)器1中斷為高優(yōu)先級(jí)PX1=1; //設(shè)置外部中斷1為高優(yōu)先級(jí)ET0=1; //開(kāi)定時(shí)器中斷ET1=1; IT1=1; //外部中斷1邊沿觸發(fā)EX1=1; //開(kāi)外部中斷1EA=1; //開(kāi)總中斷while(1){ADC0809=j; //寫(xiě)通道號(hào),啟動(dòng)A/D轉(zhuǎn)換display(); //顯示通道電壓值,單位為mV}}voidint_1()interrupt2{ adcbuf[j-1]=ADC0809; //讀通道j數(shù)據(jù)并存放}voidTimer1_Serve()interrupt3{ TL1=(65536-10000)%256; //重裝定時(shí)初值 TH1=(65536-10000)/256; if(++k==100) //定時(shí)夠1s{ k=0; j++; //通道號(hào)加1 if(j==4)j=1; //通道3結(jié)束,回到通道1 ADC0809=j; //啟動(dòng)下一個(gè)通道轉(zhuǎn)換

}}voidTimer0_Serve()interrupt1 //定時(shí)器0中斷,輸出方波{ CLK=~CLK;}謝謝觀看!MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程清華大學(xué)出版社第14章

項(xiàng)目十一:基于DAC0832的數(shù)字波形發(fā)生器14.1Proteus單片機(jī)系統(tǒng)仿真基礎(chǔ)14.251單片機(jī)的串行接口通信14.351單片機(jī)的I2C通信14.4單片機(jī)擴(kuò)展多片并行RAM14.1DAC0832簡(jiǎn)介 DAC0832是美國(guó)國(guó)家半導(dǎo)體公司的8位單片D/A轉(zhuǎn)換器芯片,內(nèi)部具有兩級(jí)輸入數(shù)據(jù)寄存器,使DAC0832適于各種電路的需要。它能直接與單片機(jī)AT89C52相連接,采用二次緩沖方式,可以在輸出的同時(shí),采集下一個(gè)數(shù)據(jù),從而提高轉(zhuǎn)換速度。還可以在多個(gè)轉(zhuǎn)換器同時(shí)工作時(shí),實(shí)現(xiàn)多通道D/A的同步轉(zhuǎn)換輸出。D/A轉(zhuǎn)換結(jié)果采用電流形式輸出,可通過(guò)一個(gè)高輸入阻抗的線性運(yùn)算放大器得到相應(yīng)的模擬電壓信號(hào)。DAC0832主要的特性參數(shù)如下:分辨率為8位。只需要在滿量程下調(diào)整其線度。電流輸出,轉(zhuǎn)換時(shí)間為1μs;可雙緩沖、單緩沖或者直接數(shù)字輸入。功耗低,芯片功耗約為20mW。單電源供電,供電電壓為+5~+15V。工作溫度范圍為-40~+85℃。3.工作方式在應(yīng)用時(shí),DAC0832通常有三種工作方式:直通方式、單緩沖方式、雙緩沖方式。(1)直通方式:將兩個(gè)寄存器的五個(gè)控制端預(yù)先置為有效信號(hào),兩個(gè)寄存器都開(kāi)通,只要有數(shù)字信號(hào)輸入就立即進(jìn)行D/A轉(zhuǎn)換。(2)單緩沖方式:使DAC0832的兩個(gè)輸入寄存器中有一個(gè)處于直通方式,另一個(gè)處于受控方式,或者控制兩個(gè)寄存器同時(shí)導(dǎo)通和鎖存。(3)雙緩沖方式:DAC0832的輸入寄存器和DAC寄存器分別受控。三種工作方式的區(qū)別是:直通方式不需要選通,直接進(jìn)行D/A轉(zhuǎn)換;單緩沖方式一次選通;雙緩沖方式二次選通。14.2DAC0832與AT89C51的

接口及編程方法14.2.1直通方式DAC0832輸出模擬電壓時(shí),是通過(guò)一個(gè)運(yùn)算發(fā)送器實(shí)現(xiàn)單極性輸出。IOUT1引腳外接運(yùn)算放大器的反相端(-),IOUT2外接運(yùn)算放大器的同相端(+),并且接模擬地AGND。RFB引腳接運(yùn)放的輸出端。輸出電壓VOUT=-VREF×DIN/256。當(dāng)VREF=-5V時(shí),VOUT的輸出范圍為0~5V。2.程序設(shè)計(jì)D/A轉(zhuǎn)換子程序的功能是將任意給定的數(shù)字量轉(zhuǎn)換成對(duì)應(yīng)的模擬電壓,函數(shù)的入口參數(shù)為要轉(zhuǎn)換的8位數(shù)字量,無(wú)返回值。編程方法如下:#include<reg51.h>voidDAC0832(unsignedcharx) //輸出固定電壓程序{ P0=x;}14.2.2單緩沖方式#include<absacc.h> //添加訪問(wèn)存儲(chǔ)器宏定義的頭文件voidDAC0832(x) //參量x為轉(zhuǎn)換的數(shù)字量{XBYTE[0x7FFF]=x; //DAC0832的地址使用0x7FFF}14.2.3雙緩沖方式主要在以下兩種情況下需要用雙緩沖方式的D/A轉(zhuǎn)換:①需要先把待轉(zhuǎn)換的數(shù)據(jù)送到輸入緩存器,然后在某個(gè)時(shí)刻再啟動(dòng)D/A轉(zhuǎn)換;②在需要同步進(jìn)行D/A轉(zhuǎn)換的多路DAC系統(tǒng)中,采用雙緩沖方式,可以在不同的時(shí)刻把要轉(zhuǎn)換的數(shù)據(jù)分別送入每個(gè)DAC0832的輸入寄存器,然后由一個(gè)轉(zhuǎn)換指令同時(shí)啟動(dòng)多個(gè)DAC0832同步進(jìn)行D/A轉(zhuǎn)換。1.硬件電路假設(shè)有兩片DAC0832要實(shí)現(xiàn)同步轉(zhuǎn)換,接口電路如圖14-5所示。分別用P2.5和P2.6引腳連接兩片DAC0832的片選信號(hào)CS,控制選通兩路輸入寄存器;P2.7連到兩路D/A轉(zhuǎn)換器的XFER端控制同步轉(zhuǎn)換輸出;WR同時(shí)與兩片DAC0832的WR1和WR2端相連。2.程序設(shè)計(jì)#include<absacc.h>#defineDAC0832XBYTE[0xefff]//設(shè)置兩個(gè)DAC寄存器的同步控制地址#defineDAC1XBYTE[0xfeff] //設(shè)置1#DAC0832輸入寄存器的訪問(wèn)地址#defineDAC2XBYTE[0xfdff]//設(shè)置2#DAC0832輸入寄存器的訪問(wèn)地址unsignedchari,data1=100,data2=50;voidmain(){ while(1) { DAC1=data1; DAC2=data2; DAC0832=data1; //此處的data1無(wú)意義,只為使兩片的XFER同時(shí)有效 }}14.3項(xiàng)目設(shè)計(jì)1.設(shè)計(jì)內(nèi)容及要求 AT89C51單片機(jī)的P0口接DAC0832的8個(gè)輸入端。請(qǐng)用單緩沖的方式,設(shè)計(jì)硬件電路并編寫(xiě)程序,實(shí)現(xiàn)用中斷方式控制示波器分別顯示方波、三角波、鋸齒波和正弦波,頻率任意。2.硬件電路設(shè)計(jì)3.程序設(shè)計(jì)#include<reg51.h>#include<absacc.h>#include<math.h>#defineDAC0832XBYTE[0xfeff]unsignedcharflag=1;voiddelay(unsignedintt) /*延時(shí)函數(shù)*/{ while(t--);}voidsaw(void) /*鋸齒波發(fā)生函數(shù)*/{

unsignedchari;for(i=0;i<250;i++)

{ DAC0832=i; //進(jìn)行D/A轉(zhuǎn)換 delay(200); //延時(shí)一段時(shí)間 }}voidsquare(void) /*方波發(fā)生函數(shù)*/{DAC0832=0x00; //輸出低電平delay(40000); //延時(shí)一段時(shí)間DAC0832=0xfe; //輸出高電平delay(40000); //延時(shí)一段時(shí)間}voidsanjiao(void) /*三角波發(fā)生函數(shù)*/{

unsignedchari;for(i=0;i<250;i++)

{ DAC0832=i; //進(jìn)行D/A轉(zhuǎn)換

delay(100); //延時(shí)一段時(shí)間 }for(i=250;i>0;i--) { DAC0832=i; delay(100); }}voidzhengxian(void) /*正弦波發(fā)生函數(shù)*/{

unsignedchari; for(i=0;i<200;i++)DAC0832=125*sin(0.0314*i)+125; //計(jì)算函數(shù)值并進(jìn)行轉(zhuǎn)換}voidmain(){ EX0=1; //開(kāi)外部中斷0 IT0=1; //邊沿觸發(fā) EA=1; while(1) //根據(jù)按鍵次數(shù)控制波形輸出

{ if(flag==1) square(); if(flag==2) saw(); if(flag==3) sanjiao(); if(flag==4) zhengxian(); }}voidint0()interrupt0 //外部中斷0中斷函數(shù){ flag++; if(flag==5) flag=1;}4.運(yùn)行結(jié)果謝謝觀看!MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程清華大學(xué)出版社第15章項(xiàng)目十二:AT89C51

擴(kuò)展串行E2PROMAT24C0215.1I2C總線簡(jiǎn)介15.2AT89C51擴(kuò)展I2C總線方法15.3AT89C51擴(kuò)展I2C總線編程

15.4項(xiàng)目設(shè)計(jì)

15.1I2C總線簡(jiǎn)介

I2C總線是Philips公司開(kāi)發(fā)的二線式串行總線,由SDA、SCL兩根線構(gòu)成,其中SDA是數(shù)據(jù)線,SCL是時(shí)鐘線。

SDA、SCL這兩根線都是開(kāi)漏或者集電極開(kāi)路輸出結(jié)構(gòu),因此在硬件連接時(shí)要接上拉電阻。15.1I2C總線簡(jiǎn)介 I2C總線的主要特點(diǎn)是接口線少、通信速率高等??偩€長(zhǎng)度最高可達(dá)6.35m,最大傳輸速率為100Kb/s。 I2C總線用于連接各種微控制器、集成電路芯片和其他外圍設(shè)備,它們可以是單片機(jī),A/D、D/A轉(zhuǎn)換器,靜態(tài)RAM或ROM,LCD顯示器,以及專(zhuān)用集成電路等。

I2C總線上的器件分為主器件和從器件,二者都既可以作發(fā)送器,也可以作接收器??偩€狀態(tài)必須由主器件(通常為單片機(jī))來(lái)控制,由主器件產(chǎn)生串行時(shí)鐘、控制總線方向、產(chǎn)生起始位和停止位信號(hào)。15.1I2C總線簡(jiǎn)介

I2C總線在通信過(guò)程中共有五種類(lèi)型信號(hào),分別是:起始信號(hào)、停止信號(hào)、應(yīng)答信號(hào)、非應(yīng)答信號(hào)和數(shù)據(jù)信號(hào)。

起始信號(hào)S:SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。

停止信號(hào)P:SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。15.1.1I2C總線信號(hào)邏輯15.1I2C總線簡(jiǎn)介應(yīng)答信號(hào):接收器接收到8bit數(shù)據(jù)后,向發(fā)送器發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù);非應(yīng)答信號(hào):當(dāng)全部數(shù)據(jù)接收完畢后,接收器向發(fā)送器發(fā)出特定的高電平脈沖,隨后發(fā)停止位,結(jié)束接收數(shù)據(jù)過(guò)程。15.1I2C總線簡(jiǎn)介數(shù)據(jù):當(dāng)SCL為高電平時(shí),SDA上信號(hào)有效。因此,當(dāng)SCL為高電平時(shí),數(shù)據(jù)線必須保持穩(wěn)定,如有變化,就會(huì)被當(dāng)做起始或停止信號(hào)。

要更新每一位數(shù)據(jù)時(shí),必須在SCL為低電平時(shí)進(jìn)行。15.1I2C總線簡(jiǎn)介例如:發(fā)送數(shù)據(jù)1011時(shí)的總線邏輯為:

每傳輸一位數(shù)據(jù),都有一個(gè)時(shí)鐘脈沖相對(duì)應(yīng)。時(shí)鐘脈沖由主機(jī)提供,不必是周期性的,其時(shí)鐘間隔可以不同。

I2C總線上傳輸?shù)臄?shù)據(jù)和地址字節(jié)均為8位,且高位在前,低位在后。15.1I2C總線簡(jiǎn)介

總線上每一個(gè)器件都有一個(gè)器件地址(就像電話線網(wǎng)絡(luò)上,每一個(gè)話機(jī)都有一個(gè)特定的號(hào)碼),主機(jī)通過(guò)發(fā)地址信息來(lái)和需要通信的從機(jī)建立聯(lián)系。 (1)數(shù)據(jù)傳輸時(shí)

主機(jī)先發(fā)送啟動(dòng)信號(hào)和時(shí)鐘信號(hào),隨后發(fā)送地址信息來(lái)尋址被控器件,并規(guī)定數(shù)據(jù)傳送方向。15.1.2I2C總線數(shù)據(jù)傳輸過(guò)程15.1I2C總線簡(jiǎn)介(2)從機(jī)對(duì)地址的響應(yīng)

當(dāng)主機(jī)發(fā)送尋址字節(jié)時(shí),總線上所有從機(jī)都將其中的高7位地址與自己的地址比較,若相同,再根據(jù)讀/寫(xiě)位確定自己是作為發(fā)送器還是作為接收器。

作為接收器:在尋址字節(jié)之后,主機(jī)將通過(guò)SDA線向從機(jī)發(fā)送數(shù)據(jù),從機(jī)每收到一個(gè)數(shù)據(jù)就回一個(gè)應(yīng)答信號(hào)。主機(jī)數(shù)據(jù)發(fā)送完畢后發(fā)送終止信號(hào),結(jié)束傳送過(guò)程。

作為發(fā)送器:在尋址字節(jié)之后,從機(jī)通過(guò)SDA線發(fā)送數(shù)據(jù),主機(jī)接收并回應(yīng)答信號(hào)。當(dāng)主機(jī)不愿再接收數(shù)據(jù)時(shí)就回一個(gè)非應(yīng)答信號(hào)。并發(fā)送終止信號(hào),結(jié)束傳送過(guò)程。15.1I2C總線簡(jiǎn)介器件類(lèi)型D7-D4:是I2C總線委員會(huì)分配好的,例如:E2PROM是1010;片選地址D3-D1:由器件的外部引腳A2、A1、A0的接線來(lái)確定(總線上同一類(lèi)型的器件最多只能接8片);最后一位D0:是數(shù)據(jù)方向位,1:讀;0:寫(xiě)。

這里所說(shuō)的“讀”和“寫(xiě)”是站在主機(jī)立場(chǎng)上的,讀:主機(jī)從從機(jī)讀取數(shù)據(jù);寫(xiě):主機(jī)向從機(jī)發(fā)送數(shù)據(jù)。器件地址的構(gòu)成:15.1I2C總線簡(jiǎn)介

因此,每一個(gè)I2C器件實(shí)際上有兩個(gè)地址,一個(gè)是寫(xiě)地址,一個(gè)是讀地址。

器件內(nèi)部子地址:當(dāng)器件內(nèi)部有連續(xù)的子地址空間時(shí),對(duì)這些空間進(jìn)行連續(xù)讀寫(xiě),子地址會(huì)自動(dòng)加1。15.1I2C總線簡(jiǎn)介15.2AT89C51擴(kuò)展I2C總線方法

對(duì)于AT89C51來(lái)說(shuō),芯片本身無(wú)I2C總線接口,如果需要和I2C器件通信,則可以利用I/O口,通過(guò)編程,軟件模擬I2C通信數(shù)據(jù)傳輸過(guò)程,如圖15-5所示。由于總線狀態(tài)是由單片機(jī)控制的,因此I2C上的信號(hào)邏輯都需要通過(guò)單片機(jī)編程實(shí)現(xiàn),方法如下:發(fā)起始信號(hào)S:SCL=0→SDA=1→SCL=1 →SDA=0

→SCL=0發(fā)停止位P: SCL=0→SDA=0→SCL=1 →SDA=1

→SCL=015.2AT89C51擴(kuò)展I2C總線方法發(fā)送1位數(shù)據(jù):SCL=0→SDA置1或0→ SCL=1 →SCL=0接收1位數(shù)據(jù):SDA置1(為讀線上數(shù)據(jù)做準(zhǔn)備) →SCL=1并讀取SDA線上數(shù)據(jù) →SCL=015.2AT89C51擴(kuò)展I2C總線方法單片機(jī)與串行E2PROM進(jìn)行I2C通信流程

(1)單片機(jī)從AT24C02讀數(shù)據(jù)流程

發(fā)起始位→發(fā)器件寫(xiě)地址→檢查應(yīng)答位→發(fā)存儲(chǔ)單元地址→檢查應(yīng)答位→重發(fā)起始位→發(fā)器件讀地址→檢查應(yīng)答位→接收數(shù)據(jù)→發(fā)應(yīng)答位→……→接收完畢,發(fā)非應(yīng)答位→發(fā)停止位。15.2AT89C51擴(kuò)展I2C總線方法(2)單片機(jī)向AT24C02寫(xiě)數(shù)據(jù)流程

發(fā)起始位→發(fā)器件寫(xiě)地址→檢查應(yīng)答位→發(fā)存儲(chǔ)單元地址→檢查應(yīng)答位→發(fā)數(shù)據(jù)→檢查應(yīng)答位→……→數(shù)據(jù)發(fā)送完畢,發(fā)停止位。

15.2AT89C51擴(kuò)展I2C總線方法15.3AT89C51擴(kuò)展I2C總線編程

單片機(jī)用I/O口模擬I2C總線通信時(shí),需要通過(guò)編程先產(chǎn)生I2C總線所需的各種邏輯信號(hào)和時(shí)鐘信號(hào),然后按照I2C總線上數(shù)據(jù)的讀寫(xiě)流程組織程序就可以了。1)起始信號(hào)voidStart(){ SDA=1; SCL=1; SDA=0; SCL=0;}2)停止信號(hào)voidStop(){ SCL=0; SDA=0; SCL=1; SDA=1;}15.3AT89C51擴(kuò)展I2C總線編程3)應(yīng)答信號(hào)voidYEAck(){ SDA=0; SCL=1; SCL=0;}4)非應(yīng)答信號(hào)voidNoAck(){ SDA=1; SCL=1; SCL=0;}幾個(gè)邏輯信號(hào)的編程產(chǎn)生方法。5)測(cè)試應(yīng)答信號(hào)bitTestAck(){ bitErrorBit; SDA=1; SCL=1; ErrorBit=SDA; SCL=0; return(ErrorBit);}

15.3AT89C51擴(kuò)展I2C總線編程6)寫(xiě)一個(gè)字節(jié)數(shù)據(jù)Write8Bit(unsignedcharinput){ unsignedchartemp; for(temp=8;temp!=0;temp--) { SDA=(bit)(input&0x80); SCL=1; SCL=0; input=input<<1; }}15.3AT89C51擴(kuò)展I2C總線編程7)接收一個(gè)字節(jié)數(shù)據(jù)ucharRead8Bit(){ unsignedchartemp,rbyte=0;

for(temp=8;temp!=0;temp--) { SDA=1; SCL=1; rbyte=rbyte<<1;

rbyte=rbyte|((unsignedchar)(SDA)); SCL=0; } return(rbyte);}15.3AT89C51擴(kuò)展I2C總線編程15.4項(xiàng)目設(shè)計(jì)

1.設(shè)計(jì)內(nèi)容及要求 設(shè)計(jì)單片機(jī)AT89C51同E2PROMAT24C02的接口電路,并編寫(xiě)程序,要求單片機(jī)先寫(xiě)入8個(gè)字節(jié)數(shù)據(jù)到AT24C02從0x30開(kāi)始的單元中,然后再?gòu)?x32單元開(kāi)始逐個(gè)讀出5個(gè)數(shù)據(jù)并送數(shù)碼管顯示。

15.4項(xiàng)目設(shè)計(jì)2.硬件電路設(shè)計(jì)

15.4項(xiàng)目設(shè)計(jì)3.程序設(shè)計(jì)程序采用模塊化設(shè)計(jì),先建立每一個(gè)基本邏輯信號(hào)的子程序,然后根據(jù)項(xiàng)目任務(wù)在主程序中按流程調(diào)用即可。

謝謝觀看!MCS-51單片機(jī)技術(shù)項(xiàng)目驅(qū)動(dòng)教程清華大學(xué)出版社第16章項(xiàng)目十三:?jiǎn)纹瑱C(jī)擴(kuò)展SPI總線接口

16.1SPI總線簡(jiǎn)介16.2AT89C51擴(kuò)展SPI總線接口方法

16.3AT89C51擴(kuò)展SPI總線程序編寫(xiě)方法16.4項(xiàng)目設(shè)計(jì)1: AT89C52擴(kuò)展串行A/D轉(zhuǎn)換器TLC254316.5項(xiàng)目設(shè)計(jì)2: AT89C52擴(kuò)展串行D/A轉(zhuǎn)換器TLC5615

16.1SPI總線簡(jiǎn)介

SPI(serialperipheralinterface,串行外圍設(shè)備接口)是Motorola公司推出的一種三線同步總線。它以主從方式工作,通常有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備。 SPI通信的三根線包括:串行數(shù)據(jù)輸出線SDO(serialdataout):主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入。串行數(shù)據(jù)輸入線SDI(serialdatain):主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出。串行時(shí)鐘線SCK(serialclock):時(shí)鐘信號(hào)由主設(shè)備產(chǎn)生。 此外,每個(gè)掛接在SPI總線上的從設(shè)備都有一根片選線。 SPI總線系統(tǒng)結(jié)構(gòu)如圖16-1所示。系統(tǒng)有一臺(tái)主機(jī),通常是單片機(jī),從機(jī)是具有SPI接口的外圍器件。主機(jī)可向一個(gè)或多個(gè)外圍器件傳送數(shù)據(jù),也可控制外圍器件向主機(jī)傳送數(shù)據(jù)。16.1SPI總線簡(jiǎn)介圖16-1SPI總線系統(tǒng)結(jié)構(gòu)圖16.2AT89C51擴(kuò)展SPI總線接口方法 MCS-51單片機(jī)在與SPI器件進(jìn)行連接通信時(shí),由于其內(nèi)部沒(méi)有集成的SPI總線接口,所以通常利用其I/O口,按照SPI總線的通信協(xié)議來(lái)控制完成數(shù)據(jù)的輸入/輸出。如圖16-2所示。圖16-2AT89C51擴(kuò)展SPI接口示意圖16.3AT89C51擴(kuò)展SPI總線編程方法

在SPI總線通信時(shí),主機(jī)負(fù)責(zé)產(chǎn)生時(shí)鐘信號(hào),在時(shí)鐘上升沿和下降沿的同步下,控制數(shù)據(jù)的輸入和輸出。數(shù)據(jù)的傳送格式是高位在前,低位在后。1位數(shù)據(jù)的輸入/輸出過(guò)程如圖16-3所示。圖16-3SPI總線數(shù)據(jù)輸入/輸出過(guò)程在一個(gè)時(shí)鐘脈沖中,下降沿主機(jī)從SDI輸入數(shù)據(jù),上升沿主機(jī)從SDO輸出數(shù)據(jù)。但對(duì)于不同的外圍器件,也有的剛好反過(guò)來(lái)。當(dāng)主機(jī)產(chǎn)生8個(gè)時(shí)鐘脈沖后,就完成了一個(gè)字節(jié)數(shù)據(jù)的輸入和輸出。當(dāng)AT89C51單片機(jī)作為主機(jī)時(shí),由于是利用I/O線來(lái)模擬SPI接口通信,所以在編程時(shí),只要按照上述通信規(guī)則對(duì)I/O口進(jìn)行讀寫(xiě)操作即可。16.3AT89C51擴(kuò)展SPI總線編程方法16.3.1數(shù)據(jù)輸出 以單片機(jī)發(fā)送四位二進(jìn)制數(shù)據(jù)1101B為例,發(fā)送時(shí)高位在前。16.3AT89C51擴(kuò)展SPI總線編程方法【例16-1】如圖16-5所示,編寫(xiě)AT89C51的串行輸出子程序SPIOUT,將AT89C51中的unsignedchar型變量databuf中的數(shù)據(jù)發(fā)送到E2PROMMCM2814的SPISI線上。16.3AT89C51擴(kuò)展SPI總線編程方法解:C語(yǔ)言程序清單如下:#inclued<reg51.h>#include<intrins.h>sbitSCK=P1^1; //P1.1模擬SCKsbitSS=P1^2; //P1.2控制片選信號(hào)SSsbitSDO=P1^0; //P1.0模擬SDOvoidSPIOUT(unsignedchardatabuf)//發(fā)送子程序 { unsignedchari; SCK=1; SS=0;//片選有效

for(i=0;i<8;i++) { SCK=0;//時(shí)鐘輸出低電平 _nop_();//等待一段時(shí)間 _nop_(); if(databuf&0x80) //判斷databuf最高位 SDO=1; //為1,SDO發(fā)送1 else SDO=0; //為0,SDO發(fā)送0 SCK=1; //時(shí)鐘輸出高電平,產(chǎn)生脈沖上升沿 databuf=databuf<<1;//databuf左移1位,準(zhǔn)備發(fā)送次高位

}}16.3AT89C51擴(kuò)展SPI總線編程方法16.3.2數(shù)據(jù)輸入 以單片機(jī)發(fā)送四位二進(jìn)制數(shù)據(jù)1101B為

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論