版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
十天學(xué)會(huì)單片機(jī)完整版十天學(xué)會(huì)單片機(jī)完整版第一講學(xué)單片機(jī)需要什么基礎(chǔ)?什么是單片機(jī)、單片機(jī)能做什么、怎么開始學(xué)習(xí)單片機(jī)。學(xué)單片機(jī)需要的一些預(yù)備知識(shí)C51基礎(chǔ)知識(shí)。了解TX-1C單片機(jī)學(xué)習(xí)板系統(tǒng)結(jié)構(gòu)如何用TX-1C單片機(jī)學(xué)習(xí)板在短時(shí)間內(nèi)掌握51單片機(jī)和C語(yǔ)言編程。KEIL工程建立詳細(xì)介紹及KEIL軟件使用方法從點(diǎn)亮實(shí)驗(yàn)板上的一個(gè)發(fā)光二極管開始學(xué)單片機(jī)需要什么基礎(chǔ)?與以前所學(xué)的知識(shí)關(guān)聯(lián)很少;只需要掌握很基本的數(shù)電模電知識(shí),如二進(jìn)制、十進(jìn)制、十六進(jìn)制之間的轉(zhuǎn)換,與、或、非邏輯關(guān)系等;對(duì)各種器件的概念基本上是從0開始;如果要用C語(yǔ)言編程,需具備簡(jiǎn)單的C語(yǔ)言基礎(chǔ);所有人都站在了同一起跑線上;單板機(jī)的I/O設(shè)備簡(jiǎn)單,軟件資源少,使用不方便。早期主要用于微型計(jì)算機(jī)原理的教學(xué)及簡(jiǎn)單的測(cè)控系統(tǒng),現(xiàn)在已很少使用。
◆單片機(jī)在一片集成電路芯片上集成微處理器、存儲(chǔ)器、I/O接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),即單片機(jī)。Intel公司推出了MCS-51系列單片機(jī):集成8位CPU、4K字節(jié)ROM、128字節(jié)RAM、4個(gè)8位并口、1個(gè)全雙工串行口、2個(gè)16位定時(shí)/計(jì)數(shù)器。尋址范圍64K,并有控制功能較強(qiáng)的布爾處理器。單板機(jī)單片機(jī)單片機(jī)能做什么實(shí)物展示用到單片機(jī)的項(xiàng)目經(jīng)驗(yàn)介紹手持糧庫(kù)溫度尋檢設(shè)備畢設(shè)答辯打分器電話臺(tái)燈自動(dòng)感應(yīng)水龍頭凡是與控制或簡(jiǎn)單計(jì)算有關(guān)的電子設(shè)備都可以用單片機(jī)來實(shí)現(xiàn),再根據(jù)具體實(shí)際情況選擇不同性能的單片機(jī),如:atmel,stc,pic,avr,凌陽(yáng),80C51,arm等怎么開始學(xué)習(xí)?實(shí)踐第一。補(bǔ)充必要的理論知識(shí),即缺什么補(bǔ)什么。做工程項(xiàng)目積累經(jīng)驗(yàn)。(可在網(wǎng)絡(luò)上搜集題目,也可自己有什么想法大膽的去試驗(yàn))預(yù)備知識(shí)電平特性2進(jìn)制與16進(jìn)制的表示及轉(zhuǎn)換二進(jìn)制數(shù)的邏輯運(yùn)算8051單片機(jī)介紹C51基礎(chǔ)知識(shí)關(guān)于電平特性數(shù)字電路中只有兩種電平:高和低(本課程中)定義單片機(jī)為TTL電平:高+5V低0VRS232電平:計(jì)算機(jī)的串口 高-12V低+12V
所以計(jì)算機(jī)與單片機(jī)之間通訊時(shí)需要加電平轉(zhuǎn)換芯片max232(實(shí)驗(yàn)板上左下角)。十六進(jìn)制是二進(jìn)制的簡(jiǎn)短表示形式。十進(jìn)制中的0-15分別表示為十六進(jìn)制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F熟練掌握二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換。規(guī)律:一般把四個(gè)二進(jìn)制數(shù)放在一起轉(zhuǎn)換成一個(gè)十六進(jìn)制數(shù),轉(zhuǎn)換時(shí)先把二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),再把十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。如:0001B->1->1HB表示為二進(jìn)制,H為十六進(jìn)制
1001B->9->9H1010B->10->AH00101100->44->2CH
各種進(jìn)位制的對(duì)應(yīng)關(guān)系十進(jìn)制二進(jìn)制十六進(jìn)制十進(jìn)制二進(jìn)制十六進(jìn)制000910019111101010A2102111011B3113121100C41004131101D51015141110E61106151111F711171610000108100082.“或”運(yùn)算
“或”運(yùn)算是實(shí)現(xiàn)“只要其中之一有,就有”這種邏輯關(guān)系的一種運(yùn)算,其運(yùn)算符為“+”。“或”運(yùn)算規(guī)則如下:0+0=0,0+1=1+0=1,1+1=13.“非”運(yùn)算
“非”運(yùn)算是實(shí)現(xiàn)“求反”這種邏輯的一種運(yùn)算,如變量A的“非”運(yùn)算記作。其運(yùn)算規(guī)則如下:
A4.“異或”運(yùn)算
“異或”運(yùn)算是實(shí)現(xiàn)“必須不同,否則就沒有”這種邏輯的一種運(yùn)算,運(yùn)算符為“”。其運(yùn)算規(guī)則是:80C51的引腳封裝總線型非總線型P3第二功能各引腳功能定義:P3.0:RXD串行口輸入P3.1:TXD串行口輸出P3.2:INT0外部中斷0輸入P3.3:INT1外部中斷1輸入P3.4:T0定時(shí)器0外部輸入P3.5:T1定時(shí)器1外部輸入P3.6:WR外部寫控制P3.7:RD外部讀控制CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);ROM:用以存放程序、一些原始數(shù)據(jù)和表格;I/O口:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出;T/C:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式;五個(gè)中斷源的中斷控制系統(tǒng);一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率取決于單片機(jī)型號(hào)及性能。C51知識(shí)C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),并具備匯編語(yǔ)言的功能。目前,使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)已經(jīng)成為軟件開發(fā)的一個(gè)主流。用C語(yǔ)言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強(qiáng)程序的可讀性,便于改進(jìn)、擴(kuò)充和移植。而針對(duì)8051的C語(yǔ)言日趨成熟,成為了專業(yè)化的實(shí)用高級(jí)語(yǔ)言。C-51與ASM-51相比,有如下優(yōu)點(diǎn):1.
對(duì)單片機(jī)的指令系統(tǒng)不要求了解,僅要求對(duì)8051的存貯器結(jié)構(gòu)有初步了解;2.
寄存器分配、不同存貯器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;3.
程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;4.
提供的庫(kù)包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;5.
由于具有方便的模塊化編程技術(shù),使已編好程序可容易地移植;C-51的數(shù)據(jù)類型基本數(shù)據(jù)類型類型符號(hào)關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實(shí)型有無(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortint160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無unsignedchar80~255C語(yǔ)言中的基本數(shù)據(jù)類型類型符號(hào)關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實(shí)型有無(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortint160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無unsignedchar80~255C-51的數(shù)據(jù)類型擴(kuò)充定義sfr:特殊功能寄存器聲明sfr16:sfr的16位數(shù)據(jù)聲明sbit:特殊功能位聲明bit:位變量聲明例:sfrSCON=0X98;
sfr16T2=0xCC;
sbitOV=PSW^2;例:數(shù)據(jù)類型變量名charvar1;bitflags;unsignedcharvextor[10];intwwww;注意:變量名不能用C語(yǔ)言中的關(guān)鍵字表示。C-51數(shù)據(jù)的存儲(chǔ)類型C-51的包含的頭文件通常有:reg51.hreg52.hmath.hctype.hstdio.hstdlib.habsacc.h常用有:reg51.hreg52.h
(定義特殊功能寄存器和位寄存器);
math.h
(定義常用數(shù)學(xué)運(yùn)算);
C-51的運(yùn)算符與C語(yǔ)言基本相同:+-*/
(加減乘除)>>=<<=
(大于大于等于小于小于等于)==!=
(測(cè)試等于測(cè)試不等于)&&||!
(邏輯與邏輯或邏輯非)>><<
(位右移位左移)&|(按位與按位或)^~(按位異或按位取反)
C-51的基本語(yǔ)句
與標(biāo)準(zhǔn)C語(yǔ)言基本相同:
if選擇語(yǔ)言
while循環(huán)語(yǔ)言
for循環(huán)語(yǔ)言
switch/case多分支選擇語(yǔ)言
do-while循環(huán)語(yǔ)言中斷服務(wù)程序函數(shù)名()interruptnusingm{
函數(shù)內(nèi)部實(shí)現(xiàn)….}I/O口定義sbitbeep=P2^3;單片機(jī)主要掌握以下幾點(diǎn)最小系統(tǒng)能夠運(yùn)行起來的必要條件。
1.電源2.晶振3.復(fù)位電路對(duì)單片機(jī)任意IO口的隨意操作
1.輸出控制電平高低2.輸出檢測(cè)電平高低。定時(shí)器:重點(diǎn)掌握最常用的方式2中斷:外部中斷、定時(shí)器中斷、串口中斷串口通信:?jiǎn)纹瑱C(jī)之間、單片機(jī)與計(jì)算機(jī)間KEIL的使用掌握KEIL工程的建立和軟件的開發(fā);掌握KEIL中軟件仿真的基本應(yīng)用;掌握用KEIL直接硬件仿真TX-1C單片機(jī)學(xué)習(xí)板的方法Main函數(shù)
格式:voidmain()
特點(diǎn):無返回值,無參。
任何一個(gè)C程序有且僅有一個(gè)main函數(shù),它是整個(gè)程序開始執(zhí)行的入口。
例:voidmain()
{
總程序從這里開始執(zhí)行;
其他語(yǔ)句;
}課后練習(xí)對(duì)照TX-1C單片機(jī)學(xué)習(xí)板原理圖寫程序用位操作和總線操作兩種方法完成以下題目1.熟練建立KEIL工程2.點(diǎn)亮第一個(gè)發(fā)光管.3.點(diǎn)亮最后一個(gè)發(fā)光管4.點(diǎn)亮1、3、5、75.點(diǎn)亮二、四、五、六6.嘗試讓第一個(gè)發(fā)光管閃爍7.嘗試設(shè)計(jì)出流水燈程序自己動(dòng)手實(shí)踐需要硬件材料DIP40腳座一個(gè)。杜邦線,單頭帶冒,40根。單排針兩排。小電路板一塊。DS12C887一片(舊10元,新22元)。焊錫、單片機(jī)工作的基本時(shí)序
機(jī)器周期和指令周期(1)振蕩周期:也稱時(shí)鐘周期,是指為單片機(jī)提供時(shí)鐘脈沖信號(hào)的振蕩源的周期,TX實(shí)驗(yàn)板上為11.0592MHZ。(2)狀態(tài)周期:每個(gè)狀態(tài)周期為時(shí)鐘周期的2倍,是振蕩周期經(jīng)二分頻后得到的。(3)機(jī)器周期:一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期S1~S6,也就是12個(gè)時(shí)鐘周期。在一個(gè)機(jī)器周期內(nèi),CPU可以完成一個(gè)獨(dú)立的操作。(4)指令周期:它是指CPU完成一條操作所需的全部時(shí)間。每條指令執(zhí)行時(shí)間都是有一個(gè)或幾個(gè)機(jī)器周期組成。MCS-51系統(tǒng)中,有單周期指令、雙周期指令和四周期指令。第二講如何申請(qǐng)免費(fèi)樣片簡(jiǎn)單延時(shí)程序子程序調(diào)用帶參數(shù)子程序設(shè)計(jì)C51庫(kù)函數(shù)的方便調(diào)用如何驅(qū)動(dòng)蜂鳴器如何驅(qū)動(dòng)繼電器集電極開路的概念及應(yīng)用。While(表達(dá)式)
{語(yǔ)句(內(nèi)部也可為空)}
特點(diǎn):先判斷表達(dá)式,后執(zhí)行語(yǔ)句。
原則:若表達(dá)式不是0,即為真,那么執(zhí)行語(yǔ)句。否則跳出while語(yǔ)句。For(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{語(yǔ)句(內(nèi)部可為空)}
執(zhí)行過程:
1.求解一次表達(dá)式1.
2.求解表達(dá)式2,若其值為真(非0即為真),則執(zhí)行for中語(yǔ)句。然后執(zhí)行第3步。否則結(jié)束for語(yǔ)句,直接跳出,不再執(zhí)行第3步。
3.求解表達(dá)式3.
4.跳到第2步重復(fù)執(zhí)行。集電極開路典型圖課后練習(xí)第一個(gè)發(fā)光管以間隔200ms閃爍8個(gè)發(fā)光管由上至下間隔1s流動(dòng),其中每個(gè)管亮500ms,滅500ms,亮?xí)r蜂鳴器響,滅時(shí)關(guān)閉蜂鳴器,一直重復(fù)下去。8個(gè)發(fā)光管來回流動(dòng),第個(gè)管亮100ms,流動(dòng)時(shí)讓蜂鳴器發(fā)出“滴滴”聲。用8個(gè)發(fā)光管演示出8位二進(jìn)制數(shù)累加過程。8個(gè)發(fā)光管間隔200ms由上至下,再由下至上,再重復(fù)一次,然后全部熄滅再以300ms間隔全部閃爍5次。重復(fù)此過程。間隔300ms第一次一個(gè)管亮流動(dòng)一次,第二次兩個(gè)管亮流動(dòng),依次到8個(gè)管亮,然后重復(fù)整個(gè)過程。間隔300ms先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;一個(gè)燈上下循環(huán)三次;兩個(gè)分別從兩邊往中間流動(dòng)三次;再?gòu)闹虚g往兩邊流動(dòng)三次;8個(gè)全部閃爍3次;關(guān)閉發(fā)光管,程序停止。第三講數(shù)碼管是如何顯示出字符的數(shù)碼管靜態(tài)顯示與動(dòng)態(tài)顯示原理中斷概念單片機(jī)的定時(shí)器應(yīng)用顯示器及其接口單片機(jī)系統(tǒng)中常用的顯示器有:發(fā)光二極管LED(LightEmittingDiode)顯示器、液晶LCD(LiquidCrystalDisplay)顯示器、CRT顯示器等。LED、LCD顯示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點(diǎn)陣顯示(5×8、8×8點(diǎn)陣等)。
使用LED顯示器時(shí),要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對(duì)數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此為L(zhǎng)ED顯示器提供的編碼正好是一個(gè)字節(jié)。TX實(shí)驗(yàn)板用共陰LED顯示器,根據(jù)電路連接圖顯示16進(jìn)制數(shù)的編碼已列在下表。
共陰極共陽(yáng)極共陰數(shù)碼管碼表
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0 1 2 345
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
6 7 8 9AB
0x39,0x5e,0x79,0x71,0x00
CDEF 無顯示LED數(shù)碼顯示方式及電路
靜態(tài)顯示方式LED顯示器工作方式有兩種:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。
動(dòng)態(tài)顯示動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。
中斷系統(tǒng)3.180C51的中斷系統(tǒng)
3.1.180C51的中斷系統(tǒng)結(jié)構(gòu)一、中斷的概念
CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理(中斷發(fā)生);
CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請(qǐng)求。CPU暫時(shí)中斷原來的事務(wù)A,轉(zhuǎn)去處理事件B。對(duì)事件B處理完畢后,再回到原來被中斷的地方(即斷點(diǎn)),稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機(jī)構(gòu))。
隨著計(jì)算機(jī)技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機(jī)與慢速I/O設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點(diǎn):
分時(shí)操作。CPU可以分時(shí)為多個(gè)I/O設(shè)備服務(wù),提高了計(jì)算機(jī)的利用率;實(shí)時(shí)響應(yīng)。CPU能夠及時(shí)處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時(shí)性大大增強(qiáng);可靠性高。CPU具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。80C51中斷系統(tǒng)的結(jié)構(gòu)
80C51的中斷系統(tǒng)有5個(gè)中斷源(8052有6個(gè)),2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套
。1、(P3.2)可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.2引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE0(TCON.1)置1,向CPU申請(qǐng)中斷。2、(P3.3)可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE1(TCON.3)置1,向CPU申請(qǐng)中斷。
3、TF0(TCON.5),片內(nèi)定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T0發(fā)生溢出時(shí),置位TF0,并向CPU申請(qǐng)中斷。
4、TF1(TCON.7),片內(nèi)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T1發(fā)生溢出時(shí),置位TF1,并向CPU申請(qǐng)中斷。
5、RI(SCON.0)或TI(SCON.1),串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TI,向CPU申請(qǐng)中斷。
二、中斷請(qǐng)求標(biāo)志1、TCON的中斷標(biāo)志IT0(TCON.0),外部中斷0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),為電平觸發(fā)方式。當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請(qǐng)求標(biāo)志位。IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請(qǐng)求標(biāo)志位。TF0(TCON.5),定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。TF1(TCON.7),定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。
2、SCON的中斷標(biāo)志RI(SCON.0),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。注意,RI必須由軟件清除。TI(SCON.1),串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過程。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能自動(dòng)清除TI,TI必須由軟件清除。
一、中斷允許控制
CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。3.1.380C51中斷的控制
EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時(shí)/計(jì)數(shù)器T0中斷允許位;EX1(IE.2),外部中斷0允許位;ET1(IE.3),定時(shí)/計(jì)數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。二、中斷優(yōu)先級(jí)控制
80C51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的
。PX0(IP.0),外部中斷0優(yōu)先級(jí)設(shè)定位;PT0(IP.1),定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1(IP.2),外部中斷0優(yōu)先級(jí)設(shè)定位;PT1(IP.3),定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS
(IP.4),串行口優(yōu)先級(jí)設(shè)定位;PT2(IP.5),定時(shí)/計(jì)數(shù)器T2優(yōu)先級(jí)設(shè)定位。PX0(IPH.0),外部中斷0優(yōu)先級(jí)設(shè)定位;PT0(IPH.1),定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1(IPH.2),外部中斷0優(yōu)先級(jí)設(shè)定位;PT1(IPH.3),定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS
(IPH.4),串行口優(yōu)先級(jí)設(shè)定位;PT2(IPH.5),定時(shí)/計(jì)數(shù)器T2優(yōu)先級(jí)設(shè)定位。而80C52單片機(jī)有四個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)四級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)由中斷優(yōu)先級(jí)寄存器IP和IPH中的相應(yīng)位的狀態(tài)來規(guī)定的
。
同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)先權(quán)排隊(duì)問題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:設(shè)置52單片機(jī)的4個(gè)中斷源,使他們的優(yōu)順序?yàn)門1,INT1,INT0,T0.
IPH=0X08; PT1=1;
IP=0X40; PX1=1;80C51單片機(jī)的中斷優(yōu)先級(jí)有三條原則:CPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求。正在進(jìn)行的中斷過程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷。正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷。
為了實(shí)現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個(gè)用戶不能尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。其中一個(gè)置1,表示正在響應(yīng)高優(yōu)先級(jí)的中斷,它將阻斷后來所有的中斷請(qǐng)求;另一個(gè)置1,表示正在響應(yīng)低優(yōu)先級(jí)中斷,它將阻斷后來所有的低優(yōu)先級(jí)中斷請(qǐng)求。3.280C51單片機(jī)中斷處理過程
中斷響應(yīng)條件中斷源有中斷請(qǐng)求;此中斷源的中斷允許位為1;
CPU開中斷(即EA=1)。以上三條同時(shí)滿足時(shí),CPU才有可能響應(yīng)中斷。3.2.1中斷響應(yīng)條件和時(shí)間
3.380C51的定時(shí)/計(jì)數(shù)器
實(shí)現(xiàn)定時(shí)功能,比較方便的辦法是利用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器。也可以采用下面三種方法:軟件定時(shí):軟件定時(shí)不占用硬件資源,但占用了CPU時(shí)間,降低了CPU的利用率。采用時(shí)基電路定時(shí):例如采用555電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時(shí)電路。但在硬件連接好以后,定時(shí)值與定時(shí)范圍不能由軟件進(jìn)行控制和修改,即不可編程。采用可編程芯片定時(shí):這種定時(shí)芯片的定時(shí)值及定時(shí)范圍很容易用軟件來確定和修改,此種芯片定時(shí)功能強(qiáng),使用靈活。在單片機(jī)的定時(shí)/計(jì)數(shù)器不夠用時(shí),可以考慮進(jìn)行擴(kuò)展。3.3.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理
一、定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)定時(shí)/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存器組成。TMOD是定時(shí)/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動(dòng)和停止及設(shè)置溢出標(biāo)志。
二、定時(shí)/計(jì)數(shù)器的工作原理
加1計(jì)數(shù)器輸入的計(jì)數(shù)脈沖有兩個(gè)來源,一個(gè)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個(gè)是T0或T1引腳輸入的外部脈沖源。每來一個(gè)脈沖計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)/計(jì)數(shù)器中斷允許時(shí))。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿。
可見,由溢出時(shí)計(jì)數(shù)器的值減去計(jì)數(shù)初值才是加1計(jì)數(shù)器的計(jì)數(shù)值。
設(shè)置為定時(shí)器模式時(shí),加1計(jì)數(shù)器是對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)(1個(gè)機(jī)器周期等于12個(gè)振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1/12)。計(jì)數(shù)值N乘以機(jī)器周期Tcy就是定時(shí)時(shí)間t
。設(shè)置為計(jì)數(shù)器模式時(shí),外部事件計(jì)數(shù)脈沖由T0或T1引腳輸入到計(jì)數(shù)器。在每個(gè)機(jī)器周期的S5P2期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時(shí),則計(jì)數(shù)器加1,更新的計(jì)數(shù)值在下一個(gè)機(jī)器周期的S3P1期間裝入計(jì)數(shù)器。由于檢測(cè)一個(gè)從1到0的下降沿需要2個(gè)機(jī)器周期,因此要求被采樣的電平至少要維持一個(gè)機(jī)器周期。當(dāng)晶振頻率為12MHz時(shí),最高計(jì)數(shù)頻率不超過1/2MHz,即計(jì)數(shù)脈沖的周期要大于2s。
3.3.2定時(shí)/計(jì)數(shù)器的控制80C51單片機(jī)定時(shí)/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;TCON用于控制其啟動(dòng)和中斷申請(qǐng)。一、工作方式寄存器TMOD
工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:GATE:門控位。GATE=0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATA=1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中斷引腳或也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)多了一條件。
:定時(shí)/計(jì)數(shù)模式選擇位。=0為定時(shí)模式;=1為計(jì)數(shù)模式。M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。
二、控制寄存器TCON
TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)和中斷申請(qǐng)。其格式如下:TF1(TCON.7):T1溢出中斷請(qǐng)求標(biāo)志位。T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動(dòng)清0。T1工作時(shí),CPU可隨時(shí)查詢TF1的狀態(tài)。所以,TF1可用作查詢測(cè)試的標(biāo)志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。TR1(TCON.6):T1運(yùn)行控制位。TR1置1時(shí),T1開始工作;TR1置0時(shí),T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止。TF0(TCON.5):T0溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類同。TR0(TCON.4):T0運(yùn)行控制位,其功能與TR1類同。
3.3.3定時(shí)/計(jì)數(shù)器的工作方式
一、方式0
方式0為13位計(jì)數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請(qǐng)求。定時(shí)器模式時(shí)有:N=t/Tcy計(jì)數(shù)初值計(jì)算的公式為:定時(shí)器的初值還可以采用計(jì)數(shù)個(gè)數(shù)直接取補(bǔ)法獲得。計(jì)數(shù)模式時(shí),計(jì)數(shù)脈沖是T0引腳上的外部脈沖。門控位GATE具有特殊的作用。當(dāng)GATE=0時(shí),經(jīng)反相后使或門輸出為1,此時(shí)僅由TR0控制與門的開啟,與門輸出1時(shí),控制開關(guān)接通,計(jì)數(shù)開始;當(dāng)GATE=1時(shí),由外中斷引腳信號(hào)控制或門的輸出,此時(shí)控制與門的開啟由外中斷引腳信號(hào)和TR0共同控制。當(dāng)TR0=1時(shí),外中斷引腳信號(hào)引腳的高電平啟動(dòng)計(jì)數(shù),外中斷引腳信號(hào)引腳的低電平停止計(jì)數(shù)。這種方式常用來測(cè)量外中斷引腳上正脈沖的寬度。
二、方式1方式1的計(jì)數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計(jì)數(shù)器。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:
三、方式2方式2為自動(dòng)重裝初值的8位計(jì)數(shù)方式。
工作方式2特別適合于用作較精確的脈沖信號(hào)發(fā)生器。
計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:
四、方式3方式3只適用于定時(shí)/計(jì)數(shù)器T0,定時(shí)器T1處于方式3時(shí)相當(dāng)于TR1=0,停止計(jì)數(shù)。
工作方式3將T0分成為兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0
。
3.3.4定時(shí)/計(jì)數(shù)器應(yīng)用舉例
初始化程序應(yīng)完成如下工作:對(duì)TMOD賦值,以確定T0和T1的工作方式。計(jì)算初值,并將其寫入TH0、TL0或TH1、TL1。中斷方式時(shí),則對(duì)IE賦值,開放中斷。使TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)。
例利用定時(shí)/計(jì)數(shù)器T1的方式1,產(chǎn)生10ms的定時(shí),并使P1.0引腳上輸出周期為20ms的方波,采用中斷方式,設(shè)系統(tǒng)時(shí)鐘頻率為12MHz。解:1、計(jì)算計(jì)數(shù)初值X:由于晶振為12MHz,所以機(jī)器周期Tcy為1s。所以:N=t/Tcy=10000/1=10000X=65536-10000=55536=D8F0H即應(yīng)將D8H送入TH0中,F(xiàn)0H送入TL0中
2、求T1的方式控制字TMOD:
M1M0=01,GATE=0,C/T=0,可取方式控制字為01H;1、利用定時(shí)/計(jì)數(shù)器T0從P1.0輸出周期為1s的方波,讓發(fā)光二極管以1HZ閃爍,設(shè)晶振頻率為12MHz。。2、利用定時(shí)/計(jì)數(shù)器T1產(chǎn)生定時(shí)時(shí)鐘,由P1口控制8個(gè)發(fā)光二極管,使8個(gè)指示燈依次一個(gè)一個(gè)閃動(dòng),閃動(dòng)頻率為10次/秒(8個(gè)燈依次亮一遍為一個(gè)周期),循環(huán)。3、同時(shí)用兩個(gè)定時(shí)器控制蜂鳴器發(fā)聲,定時(shí)器0控制頻率,定時(shí)器1控制同個(gè)頻率持續(xù)的時(shí)間,間隔300ms依次輸出1,10,50,100,200,400,800,1k(hz)的方波。4、用定時(shí)器以間隔500MS在6位數(shù)碼管上依次顯示0、1、2、3….C、D、E、F,重復(fù)。
動(dòng)態(tài)顯示動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡(jiǎn)化了硬件電路。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回一、中斷允許控制
CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。4.180C51中斷的控制
EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時(shí)/計(jì)數(shù)器T0中斷允許位;EX1(IE.2),外部中斷0允許位;ET1(IE.3),定時(shí)/計(jì)數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。
同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)先權(quán)排隊(duì)問題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:4.280C51單片機(jī)中斷處理過程
中斷響應(yīng)條件中斷源有中斷請(qǐng)求;此中斷源的中斷允許位為1;
CPU開中斷(即EA=1)。以上三條同時(shí)滿足時(shí),CPU才有可能響應(yīng)中斷。4.2.1中斷響應(yīng)條件和時(shí)間
定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理
一、定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)定時(shí)/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個(gè)寄存器組成。TMOD是定時(shí)/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動(dòng)和停止及設(shè)置溢出標(biāo)志。
4.2.2定時(shí)/計(jì)數(shù)器的控制80C51單片機(jī)定時(shí)/計(jì)數(shù)器的工作由兩個(gè)特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;TCON用于控制其啟動(dòng)和中斷申請(qǐng)。一、工作方式寄存器TMOD
工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:GATE:門控位。GATE=0時(shí),只要用軟件使TCON中的TR0或TR1為1,就可以啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATA=1時(shí),要用軟件使TR0或TR1為1,同時(shí)外部中斷引腳INT0/1也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)條件,加上了INT0/1引腳為高電平這一條件。
:定時(shí)/計(jì)數(shù)模式選擇位。=0為定時(shí)模式;=1為計(jì)數(shù)模式。M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。
二、控制寄存器TCON
TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)和中斷申請(qǐng)。其格式如下:TF1(TCON.7):T1溢出中斷請(qǐng)求標(biāo)志位。T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動(dòng)清0。T1工作時(shí),CPU可隨時(shí)查詢TF1的狀態(tài)。所以,TF1可用作查詢測(cè)試的標(biāo)志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。TR1(TCON.6):T1運(yùn)行控制位。TR1置1時(shí),T1開始工作;TR1置0時(shí),T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止。TF0(TCON.5):T0溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類同。TR0(TCON.4):T0運(yùn)行控制位,其功能與TR1類同。
定時(shí)/計(jì)數(shù)器的工作方式
一、方式0
方式0為13位計(jì)數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時(shí)向TH0進(jìn)位,TH0溢出時(shí),置位TCON中的TF0標(biāo)志,向CPU發(fā)出中斷請(qǐng)求。
二、方式1方式1的計(jì)數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計(jì)數(shù)器。計(jì)數(shù)個(gè)數(shù)與計(jì)數(shù)初值的關(guān)系為:
第四課練習(xí)1.利用動(dòng)態(tài)掃描方法在六位數(shù)碼管上顯示出穩(wěn)定的654321.2.用動(dòng)態(tài)掃描方法和定時(shí)器1在數(shù)碼管的前三位顯示出秒表,精確到1%秒,即后兩位顯示1%秒,一直循環(huán)下去。3.利用動(dòng)態(tài)掃描和定時(shí)器1在數(shù)碼管上顯示出從765432開始以1/10秒的速度往下遞減直至765398并保持顯示此數(shù),與此同時(shí)利用定時(shí)器0以500MS速度進(jìn)行流水燈從上至下移動(dòng),當(dāng)數(shù)碼管上數(shù)減到停止時(shí),實(shí)驗(yàn)板上流水燈也停止然后全部開始閃爍,3秒后(用T0定時(shí))流水燈全部關(guān)閉、數(shù)碼管上顯示出“HELLO”。到此保持住。鍵盤的應(yīng)用1、鍵盤的分類鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識(shí)別由專用的硬件編碼器實(shí)現(xiàn),并產(chǎn)生鍵編碼號(hào)或鍵值的稱為編碼鍵盤,如計(jì)算機(jī)鍵盤.而靠軟件編程來識(shí)別的稱為非編碼鍵盤;在單片機(jī)組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。也有用到編碼鍵盤的。非編碼鍵盤有分為:獨(dú)立鍵盤和行列式(又稱為矩陣式)鍵盤。按鍵在閉合和斷開時(shí),觸點(diǎn)會(huì)存在抖動(dòng)現(xiàn)象:
數(shù)碼管前三位顯示一個(gè)跑表,從000到999之間以1%秒速度運(yùn)行,當(dāng)按下一個(gè)獨(dú)立鍵盤時(shí)跑表停止,松開手后跑表繼續(xù)運(yùn)行。(用定時(shí)器設(shè)計(jì)表)。在上題的基礎(chǔ)上,用另外三個(gè)獨(dú)立鍵盤實(shí)現(xiàn)按下第一個(gè)時(shí)計(jì)時(shí)停止,按下第二個(gè)時(shí)計(jì)時(shí)開始,按下第三個(gè)是計(jì)數(shù)值清零從頭開始。按下16個(gè)矩陣鍵盤依次在數(shù)碼管上顯示1-16的平方。如按下第一個(gè)顯示1,第二個(gè)顯示4...第六講D/A&A/D轉(zhuǎn)換器及其與單片機(jī)接口D/A6.1D/A轉(zhuǎn)換器及其與單片機(jī)接口
6.1.1D/A轉(zhuǎn)換器的原理及主要技術(shù)指標(biāo)一、D/A轉(zhuǎn)換器的基本原理及分類T型電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器:輸出電壓的大小與數(shù)字量具有對(duì)應(yīng)的關(guān)系。二、D/A轉(zhuǎn)換器的主要性能指標(biāo)1、分辨率分辨率是指輸入數(shù)字量的最低有效位(LSB)發(fā)生變化時(shí),所對(duì)應(yīng)的輸出模擬量(電壓或電流)的變化量。它反映了輸出模擬量的最小變化值。分辨率與輸入數(shù)字量的位數(shù)有確定的關(guān)系,可以表示成FS/。FS表示滿量程輸入值,n為二進(jìn)制位數(shù)。對(duì)于5V的滿量程,采用8位的DAC時(shí),分辨率為5V/256=19.5mV;當(dāng)采用12位的DAC時(shí),分辨率則為5V/4096=1.22mV。顯然,位數(shù)越多分辨率就越高。2、線性度線性度(也稱非線性誤差)是實(shí)際轉(zhuǎn)換特性曲線與理想直線特性之間的最大偏差。常以相對(duì)于滿量程的百分?jǐn)?shù)表示。如±1%是指實(shí)際輸出值與理論值之差在滿刻度的±1%以內(nèi)。3、絕對(duì)精度和相對(duì)精度絕對(duì)精度(簡(jiǎn)稱精度)是指在整個(gè)刻度范圍內(nèi),任一輸入數(shù)碼所對(duì)應(yīng)的模擬量實(shí)際輸出值與理論值之間的最大誤差。絕對(duì)精度是由DAC的增益誤差(當(dāng)輸入數(shù)碼為全1時(shí),實(shí)際輸出值與理想輸出值之差)、零點(diǎn)誤差(數(shù)碼輸入為全0時(shí),DAC的非零輸出值)、非線性誤差和噪聲等引起的。絕對(duì)精度(即最大誤差)應(yīng)小于1個(gè)LSB。相對(duì)精度與絕對(duì)精度表示同一含義,用最大誤差相對(duì)于滿刻度的百分比表示。4、建立時(shí)間建立時(shí)間是指輸入的數(shù)字量發(fā)生滿刻度變化時(shí),輸出模擬信號(hào)達(dá)到滿刻度值的±1/2LSB所需的時(shí)間。是描述D/A轉(zhuǎn)換速率的一個(gè)動(dòng)態(tài)指標(biāo)。電流輸出型DAC的建立時(shí)間短。電壓輸出型DAC的建立時(shí)間主要決定于運(yùn)算放大器的響應(yīng)時(shí)間。根據(jù)建立時(shí)間的長(zhǎng)短,可以將DAC分成超高速(<1μS)、高速(10~1μS)、中速(100~10μS)、低速(≥100μS)幾檔。
應(yīng)當(dāng)注意,精度和分辨率具有一定的聯(lián)系,但概念不同。DAC的位數(shù)多時(shí),分辨率會(huì)提高,對(duì)應(yīng)于影響精度的量化誤差會(huì)減小。但其它誤差(如溫度漂移、線性不良等)的影響仍會(huì)使DAC的精度變差。6.1.2DAC0832芯片及其與單片機(jī)接口DAC0832是使用非常普遍的8位D/A轉(zhuǎn)換器,由于其片內(nèi)有輸入數(shù)據(jù)寄存器,故可以直接與單片機(jī)接口。DAC0832以電流形式輸出,當(dāng)需要轉(zhuǎn)換為電壓輸出時(shí),可外接運(yùn)算放大器。屬于該系列的芯片還有DAC0830、DAC0831,它們可以相互代換。DAC0832主要特性:分辨率8位;電流建立時(shí)間1μS;數(shù)據(jù)輸入可采用雙緩沖、單緩沖或直通方式;輸出電流線性度可在滿量程下調(diào)節(jié);邏輯電平輸入與TTL電平兼容;單一電源供電(+5V~+15V);低功耗,20mW。
一、DAC0832內(nèi)部結(jié)構(gòu)及引腳二、DAC0832與80C51單片機(jī)的接口1、單緩沖工作方式
此方式適用于只有一路模擬量輸出,或有幾路模擬量輸出但并不要求同步的系統(tǒng)。
雙極性模擬輸出電壓
:
雙極性輸出時(shí)的分辨率比單極性輸出時(shí)降低1/2,這是由于對(duì)雙極性輸出而言,最高位作為符號(hào)位,只有7位數(shù)值位。2、雙緩沖工作方式
多路D/A轉(zhuǎn)換輸出,如果要求同步進(jìn)行,就應(yīng)該采用雙緩沖器同步方式。3、直通工作方式當(dāng)DAC0832芯片的片選信號(hào)、寫信號(hào)、及傳送控制信號(hào)的引腳全部接地,允許輸入鎖存信號(hào)ILE引腳接+5V時(shí),DAC0832芯片就處于直通工作方式,數(shù)字量一旦輸入,就直接進(jìn)入DAC寄存器,進(jìn)行D/A轉(zhuǎn)換。.
Alldatasheet
.com/6.2A/D轉(zhuǎn)換器及其與單片機(jī)接口
6.2.1A/D轉(zhuǎn)換器的原理及主要技術(shù)指標(biāo)一、逐次逼近式ADC的轉(zhuǎn)換原理二、雙積分式ADC的轉(zhuǎn)換原理三、A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)1、分辨率ADC的分辨率是指使輸出數(shù)字量變化一個(gè)相鄰數(shù)碼所需輸入模擬電壓的變化量。常用二進(jìn)制的位數(shù)表示。例如12位ADC的分辨率就是12位,或者說分辨率為滿刻度FS的1/。一個(gè)10V滿刻度的12位ADC能分辨輸入電壓變化最小值是10V×1/=2.4mV。2、量化誤差A(yù)DC把模擬量變?yōu)閿?shù)字量,用數(shù)字量近似表示模擬量,這個(gè)過程稱為量化。量化誤差是ADC的有限位數(shù)對(duì)模擬量進(jìn)行量化而引起的誤差。實(shí)際上,要準(zhǔn)確表示模擬量,ADC的位數(shù)需很大甚至無窮大。一個(gè)分辨率有限的ADC的階梯狀轉(zhuǎn)換特性曲線與具有無限分辨率的ADC轉(zhuǎn)換特性曲線(直線)之間的最大偏差即是量化誤差。
3、偏移誤差偏移誤差是指輸入信號(hào)為零時(shí),輸出信號(hào)不為零的值,所以有時(shí)又稱為零值誤差。假定ADC沒有非線性誤差,則其轉(zhuǎn)換特性曲線各階梯中點(diǎn)的連線必定是直線,這條直線與橫軸相交點(diǎn)所對(duì)應(yīng)的輸入電壓值就是偏移誤差。4、滿刻度誤差滿刻度誤差又稱為增益誤差。ADC的滿刻度誤差是指滿刻度輸出數(shù)碼所對(duì)應(yīng)的實(shí)際輸入電壓與理想輸入電壓之差。5、線性度線性度有時(shí)又稱為非線性度,它是指轉(zhuǎn)換器實(shí)際的轉(zhuǎn)換特性與理想直線的最大偏差。6、絕對(duì)精度在一個(gè)轉(zhuǎn)換器中,任何數(shù)碼所對(duì)應(yīng)的實(shí)際模擬量輸入與理論模擬輸入之差的最大值,稱為絕對(duì)精度。對(duì)于ADC而言,可以在每一個(gè)階梯的水平中點(diǎn)進(jìn)行測(cè)量,它包括了所有的誤差。7、轉(zhuǎn)換速率ADC的轉(zhuǎn)換速率是能夠重復(fù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換的速度,即每秒轉(zhuǎn)換的次數(shù)。而完成一次A/D轉(zhuǎn)換所需的時(shí)間(包括穩(wěn)定時(shí)間),則是轉(zhuǎn)換速率的倒數(shù)。第七講7.280C51的串行口7.1計(jì)算機(jī)串行通信基礎(chǔ)7.3單片機(jī)串行口編程應(yīng)用舉例7.1計(jì)算機(jī)串行通信基礎(chǔ)
隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)算機(jī)的通信功能愈來愈顯得重要。計(jì)算機(jī)通信是指計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測(cè)控系統(tǒng)中信息的交換多采用串行通信方式。計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。可以分為兩大類:并行通信與串行通信。并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送。并行通信控制簡(jiǎn)單、傳輸速度快;由于傳輸線較多,長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。
串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地傳送。串行通信的特點(diǎn):傳輸線少,長(zhǎng)距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
7.1.1串行通信的基本概念
一、異步通信與同步通信1、異步通信
異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。
異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時(shí)間間隔)是任意的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。異步通信的數(shù)據(jù)格式:異步通信的特點(diǎn):不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開銷較小,但每個(gè)字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。2、同步通信同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對(duì)接收方的同步可以通過兩種方法實(shí)現(xiàn)。
外同步自同步面向字符的同步格式:
此時(shí),傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個(gè)或2個(gè)同步字符SYN(ASCII碼為16H)。SOH為序始字符(ASCII碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地址、目標(biāo)地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送的正文內(nèi)容,由多個(gè)字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗(yàn)碼。典型的面向字符的同步規(guī)程如IBM的二進(jìn)制同步規(guī)程BSC。
面向位的同步格式:
此時(shí),將數(shù)據(jù)塊看作數(shù)據(jù)流,并用序列作為開始和結(jié)束標(biāo)志。為了避免在數(shù)據(jù)流中出現(xiàn)序列時(shí)引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出現(xiàn)5個(gè)連續(xù)的1就插入一個(gè)附加的0;接收方則每檢測(cè)到5個(gè)連續(xù)的1并且其后有一個(gè)0時(shí),就刪除該0。
典型的面向位的同步協(xié)議如ISO的高級(jí)數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。同步通信的特點(diǎn)是以特定的位組合“01111110”作為幀的開始和結(jié)束標(biāo)志,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)男瘦^高,但實(shí)現(xiàn)的硬件設(shè)備比異步通信復(fù)雜。
二、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。3、全雙工全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。
單工半雙工全雙工三、信號(hào)的調(diào)制與解調(diào)
利用調(diào)制器(Modulator)把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個(gè)裝置中,這就是調(diào)制解調(diào)器MODEM。四、串行通信的錯(cuò)誤校驗(yàn)
1、奇偶校驗(yàn)在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位(1或0)。奇校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時(shí),數(shù)據(jù)中“1”的個(gè)數(shù)與校驗(yàn)位“1”的個(gè)數(shù)之和應(yīng)為偶數(shù)。接收字符時(shí),對(duì)“1”的個(gè)數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯(cuò)。3、循環(huán)冗余校驗(yàn)這種校驗(yàn)是通過某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常用于對(duì)磁盤信息的傳輸、存儲(chǔ)區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯(cuò)能力強(qiáng),廣泛應(yīng)用于同步通信中。2、代碼和校驗(yàn)代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個(gè)字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時(shí)對(duì)數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,相符則無差錯(cuò),否則即認(rèn)為傳送過程中出現(xiàn)了差錯(cuò)。五、傳輸速率與傳輸距離
1、傳輸速率比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位/秒(bps)。如每秒鐘傳送240個(gè)字符,而每個(gè)字符格式包含10位(1個(gè)起始位、1個(gè)停止位、8個(gè)數(shù)據(jù)位),這時(shí)的比特率為:
10位×240個(gè)/秒=2400bps2、傳輸距離與傳輸速率的關(guān)系串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時(shí),傳輸距離隨傳輸速率的增加而減小。當(dāng)比特率超過1000bps時(shí),最大傳輸距離迅速下降,如9600bps時(shí)最大距離下降到只有76m(約250英尺)。7.1.2串行通信接口標(biāo)準(zhǔn)
一、RS-232C接口
RS-232C是EIA(美國(guó)電子工業(yè)協(xié)會(huì))1969年修訂RS-232C標(biāo)準(zhǔn)。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。1、機(jī)械特性RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個(gè)插針的排列位置都有明確的定義。(陽(yáng)頭)2、功能特性4、過程特性過程特性規(guī)定了信號(hào)之間的時(shí)序關(guān)系,以便正確地接收和發(fā)送數(shù)據(jù)
。遠(yuǎn)程通信連接近程通信連接5、RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動(dòng)電路6、采用RS-232C接口存在的問題1、傳輸距離短,傳輸速率低
RS-232C總線標(biāo)準(zhǔn)受電容允許值的約束,使用時(shí)傳輸距離一般不要超過15米(線路條件好時(shí)也不超過幾十米)。最高傳送速率為20Kbps。2、有電平偏移
RS-232C總線標(biāo)準(zhǔn)要求收發(fā)雙方共地。通信距離較大時(shí),收發(fā)雙方的地電位差別較大,在信號(hào)地上將有比較大的地電流并產(chǎn)生壓降。3、抗干擾能力差
RS-232C在電平轉(zhuǎn)換時(shí)采用單端輸入輸出,在傳輸過程中當(dāng)干擾和噪聲混在正常的信號(hào)中。為了提高信噪比,RS-232C總線標(biāo)準(zhǔn)不得不采用比較大的電壓擺幅。二、RS-422A接口RS-422A輸出驅(qū)動(dòng)器為雙端平衡驅(qū)動(dòng)器。如果其中一條線為邏輯“1”狀態(tài),另一條線就為邏輯“0”,比采用單端不平衡驅(qū)動(dòng)對(duì)電壓的放大倍數(shù)大一倍。差分電路能從地線干擾中拾取有效信號(hào),差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率(90Kbps)時(shí),傳輸距離可達(dá)1200米。
三、RS-485接口RS-485是RS-422A的變型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發(fā)送器標(biāo)準(zhǔn),在通信線路上最多可以使用32對(duì)差分驅(qū)動(dòng)器/接收器。如果在一個(gè)網(wǎng)絡(luò)中連接的設(shè)備超過32個(gè),還可以使用中繼器。
RS-485的信號(hào)傳輸采用兩線間的電壓來表示邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動(dòng)信道,所以它的干擾抑制性極好,又因?yàn)樗淖杩沟?,無接地問題,所以傳輸距離可達(dá)1200米,傳輸速率可達(dá)1Mbps。RS-485是一點(diǎn)對(duì)多點(diǎn)的通信接口,一般采用雙絞線的結(jié)構(gòu)。普通的PC機(jī)一般不帶RS485接口,因此要使用RS-232C/RS-485轉(zhuǎn)換器。對(duì)于單片機(jī)可以通過芯片MAX485來完成TTL/RS-485的電平轉(zhuǎn)換。在計(jì)算機(jī)和單片機(jī)組成的RS-485通信系統(tǒng)中,下位機(jī)由單片機(jī)系統(tǒng)組成,上位機(jī)為普通的PC機(jī),負(fù)責(zé)監(jiān)視下位機(jī)的運(yùn)行狀態(tài),并對(duì)其狀態(tài)信息進(jìn)行集中處理,以圖文方式顯示下位機(jī)的工作狀態(tài)以及工業(yè)現(xiàn)場(chǎng)被控設(shè)備的工作狀況。系統(tǒng)中各節(jié)點(diǎn)(包括上位機(jī))的識(shí)別是通過設(shè)置不同的站地址來實(shí)現(xiàn)的。7.280C51的串行口
有兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H;接收器是雙緩沖結(jié)構(gòu);發(fā)送緩沖器,因?yàn)榘l(fā)送時(shí)CPU是主動(dòng)的,不會(huì)產(chǎn)生重疊錯(cuò)誤。
7.2.180C51串行口的結(jié)構(gòu)
SCON是一個(gè)特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志:
7.2.280C51串行口的控制寄存器
SM0和SM1為工作方式選擇位,可選擇四種工作方式:
●SM2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的SM2=1時(shí)可以利用收到的RB8來控制是否激活RI(RB8=0時(shí)不激活RI,收到的信息丟棄;RB8=1時(shí)收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI,進(jìn)而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。當(dāng)SM2=0時(shí),不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI(即此時(shí)RB8不具有控制RI激活的功能)。通過控制SM2,可以實(shí)現(xiàn)多機(jī)通信。在方式0時(shí),SM2必須是0。在方式1時(shí),若SM2=1,則只有接收到有效停止位時(shí),RI才置1。●REN,允許串行接收位。由軟件置REN=1,則啟動(dòng)串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收?!馮B8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗(yàn)位,或在多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式0和方式1中,該位未用。●RB8,在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時(shí),若SM2=0,則RB8是接收到的停止位。●TI,發(fā)送中斷標(biāo)志位。在方式0時(shí),當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行發(fā)送停止位的開始時(shí),由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請(qǐng)。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請(qǐng)?!馬I,接收中斷標(biāo)志位。在方式0時(shí),當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行接收停止位的中間時(shí),由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請(qǐng)。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請(qǐng)。PCON中只有一位SMOD與串行口工作有關(guān)
:
SMOD(PCON.7)波特率倍增位。在串行口方式1、方式2、方式3時(shí),波特率與SMOD有關(guān),當(dāng)SMOD=1時(shí),波特率提高一倍。復(fù)位時(shí),SMOD=0。
7.2.380C51串行口的工作方式
一、方式0
方式0時(shí),串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。
1、方式0輸出
2、方式0輸入
方式0接收和發(fā)送電路
二、方式1
方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。1、方式1輸出
2、方式1輸入
用軟件置REN為1時(shí),接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測(cè)到RXD引腳輸入電平發(fā)生負(fù)跳變時(shí),則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時(shí),控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的停止位為1)時(shí),將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進(jìn)入RB8,并置RI=1,向CPU請(qǐng)求中斷。
三、方式2和方式3
方式2或方式3時(shí)為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。
方式2和方式3時(shí)起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時(shí)為SCON中的TB8,接收時(shí)為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時(shí)器T1的溢出率決定。
1、方式2和方式3輸出
發(fā)送開始時(shí),先把起始位0輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個(gè)移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時(shí),停止位“1”移入輸出移位寄存器的第9位上,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位時(shí),左邊其余位全為0,檢測(cè)電路檢測(cè)到這一條件時(shí),使控制電路進(jìn)行最后一次移位,并置TI=1,向CPU請(qǐng)求中斷。
2、方式2和方式3輸入
接收時(shí),數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位0移到最左邊時(shí),控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時(shí),接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位),置RI=1,向CPU請(qǐng)求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索RXD引腳的負(fù)跳變。四、波特率的計(jì)算在串行通信中,收發(fā)雙方對(duì)發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對(duì)單片機(jī)串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時(shí)器T1的溢出率來決定。串行口的四種工作方式對(duì)應(yīng)三種波特率。由于輸入的移位時(shí)鐘的來源不同,所以,各種方式的波特率計(jì)算公式也不相同。方式0的波特率=fosc/12方式2的波特率=(2SMOD/64)·fosc方式1的波特率=(2SMOD/32)·(T1溢出率)方式3的波特率=(2SMOD/32)·(T1溢出率)
當(dāng)T1作為波特率發(fā)生器時(shí),最典型的用法是使T1工作在自動(dòng)再裝入的8位定時(shí)器方式(即方式2,且TCON的TR1=1,以啟動(dòng)定時(shí)器)。這時(shí)溢出率取決于TH1中的計(jì)數(shù)值。
T1溢出率=fosc/{12×[256-(TH1)]}
在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對(duì)固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。
串行口工作之前,應(yīng)對(duì)其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計(jì)算T1的初值,裝載TH1、TL1;啟動(dòng)T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時(shí),要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。7.3單片機(jī)串行口應(yīng)用舉例
在計(jì)算機(jī)組成的測(cè)控系統(tǒng)中,經(jīng)常要利用串行通信方式進(jìn)行數(shù)據(jù)傳輸。80C51單片機(jī)的串行口為計(jì)算機(jī)間的通信提供了極為便利的條件。利用單片機(jī)的串行口還可以方便地?cái)U(kuò)展鍵盤和顯示器,對(duì)于簡(jiǎn)單的應(yīng)用非常便利。這里僅介紹單片機(jī)串行口在通信方面的應(yīng)用。7.3.1單片機(jī)與單片機(jī)的通信
一、點(diǎn)對(duì)點(diǎn)的通信
1、硬件連接
二、多機(jī)通信
1、硬件連接單片機(jī)構(gòu)成的多機(jī)系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個(gè)單片機(jī)中,有一個(gè)是主機(jī),其余的是從機(jī),從機(jī)要服從主機(jī)的調(diào)度、支配。80C51單片機(jī)的串行口方式2和方式3適于這種主從式的通信結(jié)構(gòu)。當(dāng)然采用不同的通信標(biāo)準(zhǔn)時(shí),還需進(jìn)行相應(yīng)的電平轉(zhuǎn)換,有時(shí)還要對(duì)信號(hào)進(jìn)行光電隔離。在實(shí)際的多機(jī)應(yīng)用系統(tǒng)中,常采用RS-485串行標(biāo)準(zhǔn)總線進(jìn)行數(shù)據(jù)傳輸。2、通信協(xié)議所有從機(jī)的SM2位置1,處于接收地址幀狀態(tài)。主機(jī)發(fā)送一地址幀,其中8位是地址,第9位為地址/數(shù)據(jù)的區(qū)分標(biāo)志,該位置1表示該幀為地址幀。所有從機(jī)收到地址幀后,都將接收的地址與本機(jī)的地址比較。對(duì)于地址相符的從機(jī),使自己的SM2位置0(以接收主機(jī)隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機(jī)作為應(yīng)答;對(duì)于地址不符的從機(jī),仍保持SM2=1,對(duì)主機(jī)隨后發(fā)來的數(shù)據(jù)幀不予理睬。從機(jī)發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗(yàn)和,并置第9位(TB8)為1,作為從機(jī)數(shù)據(jù)傳送結(jié)束的標(biāo)志。主機(jī)接收數(shù)據(jù)時(shí)先判斷數(shù)據(jù)接收標(biāo)志(RB8),若RB8=1,表示數(shù)據(jù)傳送結(jié)束,并比較此幀校驗(yàn)和,若正確則回送正確信號(hào)00H,此信號(hào)命令該從機(jī)復(fù)位(即重新等待地址幀);若校驗(yàn)和出錯(cuò),則發(fā)送0FFH,命令該從機(jī)重發(fā)數(shù)據(jù)。若接收幀的RB8=0,則存數(shù)據(jù)到緩沖區(qū),并準(zhǔn)備接收下幀信息。主機(jī)收到從機(jī)應(yīng)答地址后,確認(rèn)地址是否相符,如果地址不符,發(fā)復(fù)位信號(hào)(數(shù)據(jù)幀中TB8=1);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。從機(jī)收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)(SM2=1)。否則開始接收數(shù)據(jù)和命令。3、應(yīng)用程序主機(jī)發(fā)送的地址聯(lián)絡(luò)信號(hào)為:00H,01H,02H,……(即從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 苯換熱器課程設(shè)計(jì)前言
- 物流傳媒業(yè)營(yíng)銷活動(dòng)總結(jié)
- 酒店領(lǐng)班的領(lǐng)導(dǎo)力培養(yǎng)
- 化工工業(yè)行業(yè)營(yíng)銷策略總結(jié)
- 餐具店銷售員工工作總結(jié)
- 2024年稅務(wù)師題庫(kù)2
- 2025屆阜陽(yáng)市高三語(yǔ)文上學(xué)期期末統(tǒng)測(cè)考試卷及答案解析
- 制定合同范本(2篇)
- 創(chuàng)新研發(fā)保密協(xié)議書(2篇)
- 2024年理論培訓(xùn)心得體會(huì)
- 2023年公路養(yǎng)護(hù)工知識(shí)考試題庫(kù)附答案
- 高警示(高危)藥品考試試題與答案
- 42山東省棗莊市薛城區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末考試生物試題
- 部編版六年級(jí)語(yǔ)文下冊(cè)第三單元大單元教學(xué)設(shè)計(jì)
- 前端組長(zhǎng)述職報(bào)告
- 食品安全企業(yè)標(biāo)準(zhǔn)模板
- 鈷酸鋰結(jié)構(gòu)特性
- 臺(tái)州造船行業(yè)產(chǎn)值分析
- 2024年度醫(yī)院兒童保健科醫(yī)務(wù)人員述職報(bào)告課件
- 品牌部工作總結(jié)匯報(bào)
- 全麻病人蘇醒期躁動(dòng)的原因及處理課件
評(píng)論
0/150
提交評(píng)論