從零開始入門學(xué)習(xí)單片機(jī)教程2_第1頁
從零開始入門學(xué)習(xí)單片機(jī)教程2_第2頁
從零開始入門學(xué)習(xí)單片機(jī)教程2_第3頁
從零開始入門學(xué)習(xí)單片機(jī)教程2_第4頁
從零開始入門學(xué)習(xí)單片機(jī)教程2_第5頁
已閱讀5頁,還剩251頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

從零開始入門學(xué)習(xí)單片機(jī)教程演示文稿目前一頁\總數(shù)二百五十六頁\編于十八點(diǎn)(優(yōu)選)從零開始入門學(xué)習(xí)單片機(jī)教程.目前二頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)有什么用應(yīng)該學(xué)什么樣的單片機(jī)學(xué)習(xí)單片機(jī)需什么基礎(chǔ)如何學(xué)好單片機(jī)學(xué)前準(zhǔn)備,單片機(jī)學(xué)習(xí)開發(fā)環(huán)境的建立第一課初識單片機(jī)目前三頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)有什么用?工業(yè)控制系統(tǒng)數(shù)據(jù)采集系統(tǒng)智能化儀器儀表通訊設(shè)備......目前四頁\總數(shù)二百五十六頁\編于十八點(diǎn)應(yīng)該學(xué)什么樣的單片機(jī)?在我們這個(gè)課程中,我們將選用51系列單片機(jī)作為講解。51單片機(jī)同時(shí)也是學(xué)習(xí),ARM、DSP、FPGA等,高端應(yīng)用的基礎(chǔ)知識。目前五頁\總數(shù)二百五十六頁\編于十八點(diǎn)學(xué)習(xí)單片機(jī)要什么基礎(chǔ)?1.有信心,有恒心;2.只要撐握最基本的數(shù)電模電知識;3.對各種器件的認(rèn)識大家都是從0開始;4.單片機(jī)編程,只要會簡單的C語言基礎(chǔ)知識。目前六頁\總數(shù)二百五十六頁\編于十八點(diǎn)如何學(xué)好單片機(jī)1.要領(lǐng):理論與實(shí)踐并重,實(shí)踐先行;2.學(xué)習(xí)總是從模仿開始;3.舉一反三;目前七頁\總數(shù)二百五十六頁\編于十八點(diǎn)學(xué)前準(zhǔn)備1.電腦一臺2.單片機(jī)C語言書一本3.開發(fā)板一塊目前八頁\總數(shù)二百五十六頁\編于十八點(diǎn)51單片機(jī)C語言程序設(shè)計(jì)教程本視頻配套書籍:——王云編著目前九頁\總數(shù)二百五十六頁\編于十八點(diǎn)課程內(nèi)容安排基礎(chǔ)篇基于單片機(jī)最小系統(tǒng),介紹單片機(jī)的基礎(chǔ)知識;及單片機(jī)C語言基礎(chǔ)知識。實(shí)戰(zhàn)篇以YL-51開發(fā)板為平臺,逐個(gè)講解開發(fā)板上各個(gè)模塊的使用,把各器件模塊講解清楚。通過實(shí)踐深化理解數(shù)字電路的概念、C語言的基本應(yīng)用以及C語言如何同實(shí)際電路發(fā)生聯(lián)系。提高篇講解單片機(jī)應(yīng)用的擴(kuò)展知識,及編程技巧。講授單片機(jī)項(xiàng)目開發(fā)的流程及方法。目前十頁\總數(shù)二百五十六頁\編于十八點(diǎn)課后作業(yè)安裝以下兩個(gè)軟件:1、STC-ISP下載軟件2、KEIL編程軟件目前十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)第二課點(diǎn)亮一個(gè)發(fā)光二極管目前十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)什么是單片機(jī)?如何選擇單片機(jī)?單片機(jī)能做什么?目前十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)指以8051為核心的單片機(jī),統(tǒng)稱為MCS51單片機(jī)。是在一片集成電路芯片上集成微處理器、存儲器、I/O接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),簡稱單片機(jī)。MCS51單片機(jī)如8031,8751,8032,8052,8752等該系列其它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來的。1.1什么是單片機(jī)?8051是美國INTEL公司,生產(chǎn)的一系列單片機(jī)中最早最典型的產(chǎn)品。目前十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)1.2近年來推出MCS51的主要產(chǎn)品有:

﹡ATMEL公司的89C51、89C52系列;

﹡Philips公司的80C51、80C52系列;

﹡華邦公司的W78C51、W77C51高速低價(jià)系列;

﹡LG公司的GMS90/97低壓高速系列;

﹡宏晶公司的STC89C51、STC89C52系列。

目前十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)1.380C51的引腳封裝總線型非總線型目前十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)2.單片機(jī)內(nèi)部資源三大指標(biāo)1、FLASH(程序存儲空間ROM)2、RAM(數(shù)據(jù)存儲器)3、SFR(特殊功能寄存器)單片機(jī)內(nèi)集成了一些常用的I/O接口電路,如并行的I/O端口、串行口、定時(shí)器/計(jì)數(shù)器、中斷控制器等,這些I/O接口單元電路,統(tǒng)稱為特殊功能寄存器(SFR)。目前十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)的選擇STC89C52:8KFLASH,512字節(jié)RAM,32個(gè)I/O口,

3個(gè)定時(shí)器,1個(gè)UART,8個(gè)中斷源。SST89E516:64KFLASH,1024字節(jié)RAM,32個(gè)I/O口,3個(gè)定時(shí)器,1個(gè)UART,10個(gè)中斷源。支持與KEIL連線進(jìn)行在線仿真。目前十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)最小系統(tǒng)特點(diǎn):用最少的元件組成的單片機(jī)工作系統(tǒng)。由四大硬件組成:單片機(jī)、電源電路、晶振電路、復(fù)位電路。目前十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)31腳是內(nèi)部程序存儲器和外部程序存儲器選擇端。為高電平時(shí),訪問內(nèi)部程序存儲器;為低電平時(shí),則訪問外部程序存儲器。目前二十頁\總數(shù)二百五十六頁\編于十八點(diǎn)

點(diǎn)亮一個(gè)LED發(fā)光二極管發(fā)光二極管:通常紅色貼片LED:正向壓降1.6-2.4V,電流2-20mA。2-5mA亮度有明顯變化,5mA以上亮度基本沒變化。R≈V/I一般應(yīng)用取I=3~5mA,則R=?。LED與單片機(jī),成為一個(gè)最小的控制單元,實(shí)現(xiàn)控制發(fā)光二極管的亮滅。目前二十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)目前二十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)特殊功能寄存器聲明

語法:sfrsfr_name=int_constant

例:sfrP0=0x80;

sfrSCON=0X98;特殊功能位聲明

例:sbitCY=PSW^7;

sbitLED=P1^0;目前二十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)Main函數(shù)

格式:voidmain()

特點(diǎn):無返回值,無參。

任何一個(gè)C程序有且僅有一個(gè)main函數(shù),它是整個(gè)程序開始執(zhí)行的入口。

例:voidmain()

{

總程序從這里開始執(zhí)行;

其他語句;

}目前二十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)三、建立獨(dú)立的KEIL工程:

1.點(diǎn)亮第一個(gè)發(fā)光管

2.點(diǎn)亮最后一個(gè)發(fā)光管3.點(diǎn)亮一、三、五、七二、理解單片機(jī)單片機(jī)最小系統(tǒng)的組成。一、了解發(fā)光二極管參數(shù)及限流電阻計(jì)算方法。作業(yè)

4.點(diǎn)亮二、四、五、六目前二十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)第三課C51基礎(chǔ)知識及流水燈設(shè)計(jì)目前二十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)電平特性單片機(jī)的數(shù)制C51的特點(diǎn)C51基礎(chǔ)知識C51簡介目前二十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)關(guān)于電平特性1、數(shù)字電路中只有兩種電平(本課程中)定義單片機(jī)為TTL電平高電平:+5V低電平:0V2、RS232電平:計(jì)算機(jī)串口

高電平:-12V低電平:+12V

所以計(jì)算機(jī)串口與單片機(jī)進(jìn)行通信時(shí),需加電平轉(zhuǎn)

換芯片MAX232。目前二十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)的數(shù)制1、單片機(jī)內(nèi)部的數(shù)制:二進(jìn)制2、單片機(jī)編程常用的數(shù)制:十六進(jìn)制目前二十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)二進(jìn)制數(shù)字電路中的兩種電平特性決定了它

0 0 6 1101 1 7 1112 10 8 10003 11 9 10014 100 10 10105 101 11 1011目前三十頁\總數(shù)二百五十六頁\編于十八點(diǎn)十六進(jìn)制數(shù)

是二進(jìn)制的簡短表示形式。

十進(jìn)制中的0-15在十六進(jìn)制數(shù)中分別表示為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ù)。目前三十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)如:0001B→1→1HB表示為二進(jìn)制,H為十六進(jìn)制1001B→9→9H1010B→10→AH10011010→154→9AH目前三十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)

各種進(jìn)制的對應(yīng)關(guān)系目前三十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)二進(jìn)制數(shù)的邏輯運(yùn)算1."與"運(yùn)算

"與"運(yùn)算是實(shí)現(xiàn)“必須有,否則就沒有”這種邏輯關(guān)系的一種運(yùn)算。運(yùn)算符為“

·

其運(yùn)算規(guī)則如下:

0·0=0;0·1=1·0=0;1·1=1目前三十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)2."或"運(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=1目前三十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)3.是“非”運(yùn)算

“非”運(yùn)算是實(shí)現(xiàn)“求反”這種邏輯的一種運(yùn)算,如變量A的“非”運(yùn)算記作“

A”其運(yùn)算規(guī)則如下: 1=0;0=1目前三十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)4.“異或”運(yùn)算“異或”運(yùn)算是實(shí)現(xiàn)“必須不同,否則就沒有”這種邏輯的一種運(yùn)算。運(yùn)算符為“⊕”。其運(yùn)算規(guī)則是:0⊕0=0;0⊕1=1⊕0=1;1⊕1=0目前三十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)C51的特點(diǎn)C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,它支持當(dāng)前程序設(shè)計(jì)中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。此外,C語言程序具有完善的模塊程序結(jié)構(gòu),從而為軟件開發(fā)中采用模塊化程序設(shè)計(jì)方法提供了有力的保障。使用C語言進(jìn)行程序設(shè)計(jì)已成為軟件開發(fā)的一個(gè)主流。用C語言來編寫目標(biāo)系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。因此,用C語言進(jìn)行單片機(jī)程序設(shè)計(jì)是單片機(jī)開發(fā)與應(yīng)用的必然趨勢。目前三十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)C-51的優(yōu)點(diǎn):1、對單片機(jī)的指令系統(tǒng)不要求了解,僅要求對8051的存貯器結(jié)構(gòu)有初步了解。2、寄存器分配,不同存貯器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理。3、程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式可使程序結(jié)構(gòu)化。4、提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力。5、由于具有方便的模塊化編程技術(shù),使已編好程序可容

易地移植。目前三十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)C-51的基本數(shù)據(jù)類型類型符號關(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~255目前四十頁\總數(shù)二百五十六頁\編于十八點(diǎn)+ -*/(加減乘除)> >=<<=(大于大于等于小于小于等于)==!=(測試等于測試不等于)

&&|| !(邏輯與邏輯或邏輯非)>><< (位右移位左移)& | (按位與按位或)^ ~ (按位異或按位取反)

C-51的運(yùn)算符:(與C語言基本相同)目前四十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)C-51的基本語句與標(biāo)準(zhǔn)C語言基本相同:

if選擇語言

switch/case多分支選擇語言

while循環(huán)語言

do-while循環(huán)語言

for循環(huán)語言目前四十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)常用的延時(shí)方法一.非精確延時(shí)方法1.for(i=0;i<100;i++);2.i=100;while(i--);二.精確延時(shí)方法1.利用庫函數(shù)_nop_();(需要include<intrins.h>)2.利用定時(shí)器進(jìn)行定時(shí)(后邊的課程進(jìn)行介紹)目前四十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)流水燈實(shí)驗(yàn)8個(gè)發(fā)光二極管,分別對應(yīng)單片機(jī)I/O口的P1.0到P1.7,8個(gè)單片機(jī)IO口組成一個(gè)字節(jié),在程序編寫過程中,可以直接用P1來進(jìn)行操作。C語言的8位二進(jìn)制數(shù)代表了8個(gè)I/O口P1=0XFE;它是二進(jìn)制11111110的簡短表示形式, 它分別表示

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0

11111110

目前四十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)1.了解單片機(jī)C語言都有哪方面的內(nèi)容。2.掌握延時(shí)語句的用法及運(yùn)行時(shí)間計(jì)算。3.用3個(gè)LED小燈做一個(gè)交通燈的程序。4.根據(jù)原理圖,獨(dú)立完成流水燈反方向流動,和全部點(diǎn)亮到一個(gè)個(gè)熄滅。

作業(yè)目前四十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)第四課數(shù)碼管結(jié)構(gòu)及靜態(tài)顯示原理數(shù)碼管的結(jié)構(gòu)和顯示原理數(shù)碼管靜態(tài)顯示數(shù)組的定義及調(diào)用子程序調(diào)用、帶參數(shù)子程序設(shè)計(jì)目前四十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)

數(shù)碼管,根據(jù)內(nèi)部結(jié)構(gòu),可分為共陰極數(shù)碼管和共陽極數(shù)碼管。七段發(fā)光管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此我們對它編碼時(shí),剛好是用一個(gè)字節(jié)。共陰極共陽極共陰極共陽極目前四十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)顯示段符號十六進(jìn)制代碼dpgfedcba共陰極0123456789AbCdEF無00000000000000000001111101111011101000111011111011010100010101111110101101101101111001101111111110100011111001111001000101101111110101100x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x710x00共陰數(shù)碼管真值表目前四十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)數(shù)碼管的顯示方法(2)動態(tài)顯示。(1)靜態(tài)顯示。目前四十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)——>靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測和控制。缺點(diǎn)是占用I/O口多,增加了電路的復(fù)雜性。(1)靜態(tài)顯示。目前五十頁\總數(shù)二百五十六頁\編于十八點(diǎn)(2)動態(tài)顯示。——>動態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。目前五十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)數(shù)組二.數(shù)組定義:類型說明符數(shù)組名[表達(dá)式];三.數(shù)組賦值:inta[5]={A,B,C,D,E}inta[]={A,B,C,D,E}a[0]=A;a[1]=B;a[2]=C;a[3]=D;a[4]=E;一.數(shù)組需滿足三個(gè)條件:1.元素具有相同的數(shù)據(jù)類型2.用不同的下標(biāo)來區(qū)分?jǐn)?shù)組中的元素3.在存儲器中是被連續(xù)存放的目前五十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)函數(shù)定義的一般形式1.無參函數(shù)的定義形式類型標(biāo)識符函數(shù)名(){聲明部分語句}2.有參函數(shù)的定義形式類型標(biāo)識符函數(shù)名(形式參數(shù)列表){聲明部分語句}目前五十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)中斷概念單片機(jī)中斷的應(yīng)用單片機(jī)的定時(shí)器應(yīng)用第五課中斷與定時(shí)器目前五十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)的中斷系統(tǒng)

一、中斷的概念CPU在處理某一事件A時(shí),發(fā)生了另一事件B請求CPU迅速去處理(中斷產(chǎn)生);CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。目前五十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回目前五十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)引起CPU中斷的根源叫做中斷源。中斷源向CPU的請求,叫做中斷請求。CUP暫時(shí)中斷原來的事件A,轉(zhuǎn)去處理事件B。對事件B處理完畢后,再回到原來被中斷的地方(即斷點(diǎn)),稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機(jī)構(gòu))。目前五十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)隨著計(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)的可靠性提高。目前五十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)8051中斷系統(tǒng)的結(jié)構(gòu)8051的中斷系統(tǒng)有5個(gè)中斷源,2個(gè)優(yōu)先級,可實(shí)現(xiàn)二級中斷嵌套。目前五十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)8051中斷系統(tǒng)的結(jié)構(gòu)圖目前六十頁\總數(shù)二百五十六頁\編于十八點(diǎn)當(dāng)中斷源滿足條件產(chǎn)生中斷請求時(shí),中斷請求標(biāo)記志位會置1。向CPU申請中斷。CPU響應(yīng)中斷時(shí),TCON的中斷請求標(biāo)記位由硬件自動清除;

SCON則須為軟件清零。中斷源與標(biāo)記位關(guān)系目前六十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)8051中斷系統(tǒng)的結(jié)構(gòu)圖IT0外部中斷0(INT0)觸發(fā)方式選擇位,由軟件設(shè)置。1、低電平觸發(fā)方式,INT0(P3.2)引腳上低電平可引起中斷。2、下降沿觸發(fā)方式,INT0(P3.2)引腳上電平由高變低負(fù)跳變可引起中斷。目前六十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)中斷允許控制位在IE特殊功能寄存器上的分布中斷優(yōu)先級控制位在IP特殊功能寄存器上的分布目前六十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)在8051單片機(jī)中有兩個(gè)定時(shí)器/計(jì)數(shù)器,分別稱為定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1。

(在本課程中)將采用:

T/C0:表示定時(shí)器/計(jì)數(shù)器0

T/C1:表示定時(shí)器/計(jì)數(shù)器1

T0:表示定時(shí)器0

T1:表示定時(shí)器1

C0:表示計(jì)數(shù)器0

C1:表示計(jì)數(shù)器1如果是對內(nèi)部振蕩源12分頻的脈沖信號進(jìn)行計(jì)數(shù)(即對每個(gè)機(jī)器周期計(jì)數(shù)),它是定時(shí)器(T0,T1)。如果是對單片機(jī)引腳T0(P3.4)或T1(P3.5)輸入的外部脈沖信號進(jìn)行計(jì)數(shù),則它是計(jì)數(shù)器(C0,C1)。定時(shí)器/計(jì)數(shù)器的概念目前六十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)定時(shí)/計(jì)數(shù)器(T/C)的結(jié)構(gòu)圖

一、定時(shí)/計(jì)數(shù)器的結(jié)構(gòu):1、由兩個(gè)加1計(jì)數(shù)寄存器(由高8位和低8位兩個(gè)寄存器組成,共16位),分別對應(yīng)T/C0和T/C1.2、TMOD是定時(shí)/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能。3、TCON是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標(biāo)志。目前六十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)加1計(jì)數(shù)寄存器輸入的計(jì)數(shù)脈沖有兩個(gè)來源:1、一個(gè)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后送來;2、一個(gè)是從單片機(jī)引腳T0(P3.4)或T1(P3.5)輸入的外部脈沖源。每來一個(gè)脈沖計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零;且計(jì)數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時(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ù)二百五十六頁\編于十八點(diǎn)

二、控制寄存器TCON

TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時(shí)/計(jì)數(shù)器的啟動和中斷申請。其格式如下:TF1(TCON.7):T/C1溢出中斷請求標(biāo)志位。T/C1計(jì)數(shù)溢出時(shí)由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清0。T/C1工作時(shí),CPU可隨時(shí)查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標(biāo)志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。TR1(TCON.6):T/C1運(yùn)行控制位。TR1置1時(shí),T/C1開始工作;TR1置0時(shí),T/C1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時(shí)/計(jì)數(shù)器的啟動與停止。TF0(TCON.5):T/C0溢出中斷請求標(biāo)志位,其功能與TF1類同。TR0(TCON.4):T/C0運(yùn)行控制位,其功能與TR1類同。目前六十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)三、工作方式寄存器TMOD工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T/C0,高四位用于T/C1。其格式如下:GATE:門控位。GATE=0時(shí),只要使TCON中的TR0或TR1為1,就可以啟動定時(shí)/計(jì)數(shù)器(T/C)工作。(其中:TR0對應(yīng)T/C0;TR1對應(yīng)T/C1)GATA=1時(shí),要滿足兩個(gè)條件,才能啟動定時(shí)/計(jì)數(shù)器(T/C)工作:使TR0或TR1為1。同時(shí)外部中斷引腳INT0/1也為高電平時(shí)。(INT0對應(yīng)T/C0;INT1對應(yīng)T/C1)

:定時(shí)/計(jì)數(shù)模式選擇位。=0為定時(shí)模式;=1為計(jì)數(shù)模式。目前六十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。方式1:常用的16位定時(shí)器/定數(shù)器。(本節(jié)課主要講:方式1定時(shí)器模式)方式2:主要用在串口波特率發(fā)生器。(在串口通信里再作詳細(xì)講解)方式0和方式3:幾乎不用。目前六十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)

四、方式1(定時(shí)器0模式)方式1的計(jì)數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計(jì)數(shù)器。16位定時(shí)器0裝初值的計(jì)算公式:假設(shè)要計(jì)的個(gè)數(shù)是n,TH0=(65536-n)/256

TL0=(65536-n)%256目前七十頁\總數(shù)二百五十六頁\編于十八點(diǎn)8051的基本時(shí)序周期振蕩周期:為單片機(jī)提供振蕩源的周期(是指振蕩源的兩個(gè)相鄰?fù)较蚍逯抵g的時(shí)間)機(jī)器周期:1個(gè)機(jī)器周期等于12個(gè)振蕩周期若:fosc=12M,則8051的各周期參數(shù)如下:振蕩周期=1/12us;機(jī)器周期=1us;目前七十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)初始化程序應(yīng)完成如下工作:1、對TMOD賦值,以確定T0和T1的工作方式。2、計(jì)算初值,并將其寫入TH0、TL0或TH1、TL1。3、使TR0或TR1置位,啟動定時(shí)/計(jì)數(shù)器定時(shí)或計(jì)數(shù)。4、中斷方式時(shí),則對IE賦值,開放中斷。定時(shí)/計(jì)數(shù)器應(yīng)用舉例

目前七十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)作業(yè)1、利用定時(shí)/計(jì)數(shù)器T1從P1.0輸出周期為1s的方波,讓發(fā)光二極管以1HZ閃爍,設(shè)晶振頻率為12MHz。試設(shè)計(jì)程序。2、利用定時(shí)/計(jì)數(shù)器T0產(chǎn)生定時(shí)時(shí)鐘,由P1口控制8個(gè)發(fā)光二極管。編一個(gè)程序,使8個(gè)指示燈依次一個(gè)一個(gè)閃動,閃動頻率為10次/秒(8個(gè)燈依次亮一遍為一個(gè)周期)。3、用定時(shí)器以間隔500MS在6位數(shù)碼管上依次顯示0、1、

2、3….C、D、E、F,重復(fù)。目前七十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)

第六課數(shù)碼管動態(tài)顯示及定時(shí)器應(yīng)用目前七十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)中斷請求主程序執(zhí)行主程序執(zhí)行中斷處理程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷響應(yīng)中斷返回MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)目前七十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)三、工作方式寄存器TMOD工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T/C0,高四位用于T/C1。其格式如下:GATE:門控位。GATE=0時(shí),只要使TCON中的TR0或TR1為1,就可以啟動定時(shí)/計(jì)數(shù)器(T/C)工作。(其中:TR0對應(yīng)T/C0;TR1對應(yīng)T/C1)GATA=1時(shí),要滿足兩個(gè)條件,才能啟動定時(shí)/計(jì)數(shù)器(T/C)工作:使TR0或TR1為1。同時(shí)外部中斷引腳INT0/1也為高電平時(shí)。(INT0對應(yīng)T/C0;INT1對應(yīng)T/C1)

:定時(shí)/計(jì)數(shù)模式選擇位。=0為定時(shí)模式;=1為計(jì)數(shù)模式。目前七十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有四種工作方式,由M1M0進(jìn)行設(shè)置。方式1:常用的16位定時(shí)器/定數(shù)器。(本節(jié)課主要講:方式1定時(shí)器模式)方式2:主要用在串口波特率發(fā)生器。(在串口通信里再作詳細(xì)講解)方式0和方式3:幾乎不用。目前七十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)動態(tài)顯示的特點(diǎn)是將所有數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描,即是通過分時(shí)輪流送出字形碼和相應(yīng)的位選,使各個(gè)數(shù)碼管輪流受控顯示。在輪流顯示過程中,每1位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O口,而且功耗更低。

動態(tài)顯示目前七十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)1、利用動態(tài)掃描方法在六位數(shù)碼管上顯示出穩(wěn)定654321。2、用動態(tài)掃描方法和定時(shí)器0在數(shù)碼管的前三位顯示出秒表,精確到1%秒,即后兩位顯示1%秒,一直循環(huán)下去。3、

利用動態(tài)掃描和定時(shí)器0在數(shù)碼管上顯示出從543210開始以1%秒的速度往下遞減直至543111并保持顯示此數(shù),與此同時(shí)利用定時(shí)器0以500MS速度進(jìn)行流水燈從上至下移動,同時(shí)蜂鳴器發(fā)聲,當(dāng)數(shù)碼管上數(shù)減到停止時(shí),實(shí)驗(yàn)板上流水燈全部閃爍4次,數(shù)碼管全熄滅。單片機(jī)進(jìn)入休眠狀態(tài)。課后練習(xí)目前七十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)

第七課鍵盤的應(yīng)用目前八十頁\總數(shù)二百五十六頁\編于十八點(diǎn)以下為鍵盤輸入信息的主要過程如下:1、CPU判斷是否有按鍵按下。2、確定按下的是哪一個(gè)按鍵。3、把此按鍵代表的信息翻譯成CPU所能識別的代碼,如ASCII或其他特征碼。以上第2,3步由專用硬件編碼器完成的,稱為編碼鍵盤。如果由軟件完成的,稱為非編碼鍵盤。在單片機(jī)組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤;當(dāng)然也可以使用編碼鍵盤。鍵盤的分類目前八十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)非編碼鍵盤又分為:獨(dú)立鍵盤和行列式鍵盤(矩陣鍵盤)目前八十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)歡迎進(jìn)入云龍電子科技大講堂S2S3S4S5目前八十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)獨(dú)立鍵盤的檢測過程:先給按鍵對應(yīng)的I/O口置1;再來讀這個(gè)I/0是否等于1;若是1,說明按鍵沒有按下,若是0,說明按鍵已按下。獨(dú)立鍵盤的檢測

目前八十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)按鍵在閉合和斷開時(shí),觸點(diǎn)會存在抖動現(xiàn)象:

前沿抖動后沿抖動按鍵抖動時(shí)間由按鍵的機(jī)械特性決定:一般為5ms~10ms。

目前八十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)歡迎進(jìn)入云龍電子科技大講堂目前八十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)矩陣鍵盤檢測原理:查詢是否有鍵按下。鍵的抖動處理。查詢按下鍵所在行和列位置,并對行號和列號譯碼,得到鍵值。目前八十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)1、數(shù)碼管前三位顯示一個(gè)跑表,從000到999之間以1%秒速度運(yùn)行,當(dāng)按下一個(gè)獨(dú)立鍵盤時(shí)跑表停止,松開手后跑表繼續(xù)運(yùn)行。(用定時(shí)器設(shè)計(jì)表)。2、在上題的基礎(chǔ)上,用另外三個(gè)獨(dú)立鍵盤實(shí)現(xiàn)按下第一個(gè)時(shí)計(jì)時(shí)停止,按下第二個(gè)時(shí)計(jì)時(shí)開始,按下第三個(gè)是計(jì)數(shù)值清零從頭開始。3、按下16個(gè)矩陣鍵盤依次在數(shù)碼管上顯示1-16的平方。如按下第一個(gè)顯示1,第二個(gè)顯示4...作業(yè)目前八十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)第八課D/A轉(zhuǎn)換器與單片機(jī)接口目前八十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)D/A轉(zhuǎn)換器及其與單片機(jī)接口常用電阻分壓/分流來實(shí)現(xiàn)D/A轉(zhuǎn)換,讓模擬量的輸出變化與數(shù)字量的輸入變化成線性關(guān)系。一.D/A轉(zhuǎn)換器的基本原理及分類2.分為權(quán)電阻解碼網(wǎng)絡(luò)與T型解碼網(wǎng)絡(luò)兩種構(gòu)建方法,其中又以T型解碼網(wǎng)絡(luò)最為常用。目前九十頁\總數(shù)二百五十六頁\編于十八點(diǎn)D/A轉(zhuǎn)換器及其與單片機(jī)接口二.T型電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器:第個(gè)2R支路的電流均為上一個(gè)支路的1/2:I7=(Vref/2R)I6=(Vref/2R)/2I5=(Vref/2R)/4I4=(Vref/2R)/8I3=(Vref/2R)/16I2=(Vref/2R)/32I1=(Vref/2R)/64I0=(Vref/2R)/128

目前九十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)三、D/A轉(zhuǎn)換器的主要性能指標(biāo)1、分辨率分辨率是指輸入數(shù)字量的最低有效位(LSB)發(fā)生變化時(shí),所對應(yīng)的輸出模擬量(電壓或電流)的變化量。它反映了輸出模擬量的最小變化值。分辨率與輸入數(shù)字量的位數(shù)有確定的關(guān)系,可以表示成FS/。FS表示滿量程輸入值,n為二進(jìn)制位數(shù)。對于5V的滿量程,采用8位的DAC時(shí),分辨率為5V/256=19.5mV;當(dāng)采用12位的DAC時(shí),分辨率則為5V/4096=1.22mV。顯然,位數(shù)越多分辨率就越高。2、線性度線性度(也稱非線性誤差)是實(shí)際轉(zhuǎn)換特性曲線與理想直線特性之間的最大偏差。常以相對于滿量程的百分?jǐn)?shù)表示。如±1%是指實(shí)際輸出值與理論值之差在滿刻度的±1%以內(nèi)。目前九十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)3、絕對精度和相對精度絕對精度(簡稱精度)是指在整個(gè)刻度范圍內(nèi),任一輸入數(shù)碼所對應(yīng)的模擬量實(shí)際輸出值與理論值之間的最大誤差。絕對精度是由DAC的增益誤差(當(dāng)輸入數(shù)碼為全1時(shí),實(shí)際輸出值與理想輸出值之差)、零點(diǎn)誤差(數(shù)碼輸入為全0時(shí),DAC的非零輸出值)、非線性誤差和噪聲等引起的。絕對精度(即最大誤差)應(yīng)小于1個(gè)LSB。相對精度與絕對精度表示同一含義,用最大誤差相對于滿刻度的百分比表示。目前九十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)4、建立時(shí)間建立時(shí)間是將一個(gè)數(shù)字量轉(zhuǎn)換為穩(wěn)定模擬信號所需的時(shí)間。是描述D/A轉(zhuǎn)換速率的一個(gè)動態(tài)指標(biāo)。電流輸出型DAC的建立時(shí)間短。電壓輸出型DAC的建立時(shí)間主要決定于運(yùn)算放大器的響應(yīng)時(shí)間。根據(jù)建立時(shí)間的長短,可以將DAC分成超高速(<1μS)、高速(10~1μS)、中速(100~10μS)、低速(≥100μS)幾檔。應(yīng)注意,精度和分辨率具有一定的聯(lián)系,但概念不同。DAC的位數(shù)多時(shí),分辨率會提高,對應(yīng)于影響精度的量化誤差會減小。但其它誤差(如溫度漂移、線性不良等)的影響仍會使DAC的精度變差。目前九十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)DAC0832芯片及其與單片機(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。

目前九十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)DAC0832內(nèi)部結(jié)構(gòu)及引腳鎖CS目前九十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)目前九十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)DAC0832利用WR1

、WR2

、ILE、XFER控制信號可以構(gòu)成三種不同的工作方式。DAC0832工作方式目前九十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)1、單緩沖工作方式兩個(gè)寄存器之一始終處于直通,即WR1=0或WR2=0,另一個(gè)寄存器處于受控狀態(tài)。目前九十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)2、雙緩沖工作方式

兩個(gè)寄存器均處于受控狀態(tài)。這種工作方式適合于多模擬信號同時(shí)輸出的應(yīng)用場合。目前一百頁\總數(shù)二百五十六頁\編于十八點(diǎn)3、直通工作方式當(dāng)DAC0832芯片的片選信號、寫信號、及傳送控制信號的引腳全部接地,允許輸入鎖存信號ILE引腳接+5V時(shí),DAC0832芯片就處于直通工作方式,數(shù)字量一旦輸入,就直接進(jìn)入DAC寄存器,進(jìn)行D/A轉(zhuǎn)換。目前一百零一頁\總數(shù)二百五十六頁\編于十八點(diǎn)第九課A/D轉(zhuǎn)換器與單片機(jī)接口目前一百零二頁\總數(shù)二百五十六頁\編于十八點(diǎn)

A/D將連續(xù)變化的模擬信號轉(zhuǎn)換為數(shù)字信號。目前一百零三頁\總數(shù)二百五十六頁\編于十八點(diǎn)雙積分型A/D轉(zhuǎn)換器。逐次逼近比較型AD/轉(zhuǎn)換器。并行A/D轉(zhuǎn)換器。根據(jù)A/D電路的工作原理可分為以下幾大型:目前一百零四頁\總數(shù)二百五十六頁\編于十八點(diǎn)逐次逼近式ADC的轉(zhuǎn)換原理目前一百零五頁\總數(shù)二百五十六頁\編于十八點(diǎn)A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)1、分辨率ADC的分辨率是指使輸出數(shù)字量變化一個(gè)最小量時(shí)模擬信號的變化量。常用二進(jìn)制的位數(shù)表示。例如8位ADC的分辨率就是8位,或者說分辨率為滿刻度FS的1/28

。一個(gè)5V滿刻度的8位ADC能分辨輸入電壓變化最小值是5V×1/28=19.53mV。目前一百零六頁\總數(shù)二百五十六頁\編于十八點(diǎn)2、量化誤差A(yù)DC把模擬量變?yōu)閿?shù)字量,用數(shù)字量近似表示模擬量,這個(gè)過程稱為量化。量化誤差是ADC的有限位數(shù)對模擬量進(jìn)行量化而引起的誤差。實(shí)際上,要準(zhǔn)確表示模擬量,ADC的位數(shù)需很大甚至無窮大。一個(gè)分辨率有限的ADC的階梯狀轉(zhuǎn)換特性曲線與具有無限分辨率的ADC轉(zhuǎn)換特性曲線(直線)之間的最大偏差即是量化誤差。

目前一百零七頁\總數(shù)二百五十六頁\編于十八點(diǎn)3、偏移誤差偏移誤差是指輸入信號為零時(shí),輸出信號不為零的值,所以有時(shí)又稱為零值誤差。假定ADC沒有非線性誤差,則其轉(zhuǎn)換特性曲線各階梯中點(diǎn)的連線必定是直線,這條直線與橫軸相交點(diǎn)所對應(yīng)的輸入電壓值就是偏移誤差。4、滿刻度誤差滿刻度誤差又稱為增益誤差。ADC的滿刻度誤差是指滿刻度輸出數(shù)碼所對應(yīng)的實(shí)際輸入電壓與理想輸入電壓之差。目前一百零八頁\總數(shù)二百五十六頁\編于十八點(diǎn)5、線性度線性度有時(shí)又稱為非線性度,它是指轉(zhuǎn)換器實(shí)際的轉(zhuǎn)換特性與理想直線的最大偏差。6、絕對精度在一個(gè)轉(zhuǎn)換器中,任何數(shù)碼所對應(yīng)的實(shí)際模擬量輸入與理論模擬輸入之差的最大值,稱為絕對精度。對于ADC而言,可以在每一個(gè)階梯的水平中點(diǎn)進(jìn)行測量,它包括了所有的誤差。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ù)。目前一百零九頁\總數(shù)二百五十六頁\編于十八點(diǎn)第十課1602液晶的顯示原理及應(yīng)用

1、1602液晶硬件原理。

2、1602液晶操作時(shí)序。

3、如何在1602液晶上顯示一個(gè)字符A。

4、如何在1602液晶上顯示一串字符。

目前一百一十頁\總數(shù)二百五十六頁\編于十八點(diǎn)目前一百一十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)第十一課串口通信1、80C51的串行口結(jié)構(gòu)和工作原理2、單片機(jī)串行口編程應(yīng)用舉例目前一百一十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)通信基礎(chǔ)知識計(jì)算機(jī)通信是指計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。目前一百一十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送。并行通信特點(diǎn):控制簡單、傳輸速度快;但傳輸線較多,長距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。目前一百一十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地傳送。串行通信的特點(diǎn):傳輸線少,長距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。目前一百一十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)一、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿一個(gè)方向,不能實(shí)現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。3、全雙工全雙工是指數(shù)據(jù)可以同時(shí)進(jìn)行雙向傳輸。

單工半雙工全雙工目前一百一十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)串行通信的分類

分為兩大類:異步通信與同步通信1、異步通信

異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。目前一百一十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)

異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時(shí)間間隔)是任意的,但每個(gè)字符中的各位是以固定的時(shí)間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。目前一百一十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)異步通信的數(shù)據(jù)格式:異步通信的特點(diǎn):不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開銷較小,但每個(gè)字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。目前一百一十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)2、同步通信同步通信時(shí)要建立發(fā)送方時(shí)鐘對接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接收方的同步可以通過兩種方法實(shí)現(xiàn)。

外同步自同步目前一百二十頁\總數(shù)二百五十六頁\編于十八點(diǎn)串行通信接口標(biāo)準(zhǔn)

一、RS-232C接口

RS-232C是EIA(美國電子工業(yè)協(xié)會)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è)插針的排列位置都有明確的定義。(陽頭)目前一百二十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)公頭母頭串口線(公對母)串口線(母對母)串口線(公對公)目前一百二十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)2、功能特性目前一百二十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)80C51串行口

SBUF為兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器,它們有相同的名字和地址空間,共用地址99H,但不會產(chǎn)生沖突;因?yàn)榻邮掌髦荒鼙籆PU讀出數(shù)據(jù);發(fā)送緩沖器只能被CPU寫入數(shù)據(jù),不會產(chǎn)生重疊錯(cuò)誤。

80C51串行口的結(jié)構(gòu)目前一百二十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)

SCON是一個(gè)特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志:

80C51串行口的控制寄存器

SM0和SM1為工作方式選擇位,可選擇四種工作方式:目前一百二十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)●SM2,多機(jī)通信控制位,主要用于方式2和方式3。1.當(dāng)SM2=1時(shí),只有接收到第9位數(shù)據(jù)(RB8)為1,RI才會置1,(此時(shí)RB8具有控制RI激活的功能;進(jìn)而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。2.當(dāng)SM2=0時(shí),收到字符R1就置1,使收到的數(shù)據(jù)進(jìn)入SBUF,(即此時(shí)RB8不具有控制RI激活的功能)。通過控制SM2,可以實(shí)現(xiàn)多機(jī)通信?!馬EN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。目前一百二十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)●TB8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗(yàn)位,或在多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式0和方式1中,該位未用,默認(rèn)為0?!馬B8,在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時(shí),若SM2=0,則RB8是接收到的停止位。目前一百二十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)●TI,發(fā)送中斷標(biāo)志位。在方式0時(shí),當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行發(fā)送停止位的開始時(shí),由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請?!馬I,接收中斷標(biāo)志位。在方式0時(shí),當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行接收停止位的中間時(shí),由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請。目前一百二十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)PCON中只有一位SMOD與串行口工作有關(guān)

SMOD(PCON.7)波特率倍增位。在串行口方式1、方式2、方式3時(shí),波特率與SMOD有關(guān),當(dāng)SMOD=1時(shí),波特率提高一倍。復(fù)位時(shí),SMOD=0。目前一百二十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)

80C51串行口的工作方式一、方式0

方式0時(shí),串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。

1、方式0輸出目前一百三十頁\總數(shù)二百五十六頁\編于十八點(diǎn)

2、方式0輸入方式0接收和發(fā)送電路目前一百三十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)

二、方式1

方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。

1、方式1輸出目前一百三十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)

2、方式1輸入用軟件置REN為1時(shí),接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到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請求中斷。目前一百三十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)

三、方式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的溢出率決定。目前一百三十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)

1、方式2和方式3輸出發(fā)送開始時(shí),先把起始位0輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個(gè)移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時(shí),停止位“1”移入輸出移位寄存器的第9位上,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位時(shí),左邊其余位全為0,檢測電路檢測到這一條件時(shí),使控制電路進(jìn)行最后一次移位,并置TI=1,向CPU請求中斷。目前一百三十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)

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請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索RXD引腳的負(fù)跳變。目前一百三十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)四、波特率的計(jì)算

串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時(shí)鐘的來源不同,所以,各種方式的波特率計(jì)算公式也不相同。方式0的波特率=fosc/12方式2的波特率=(/64)·fosc方式1的波特率=(/32)·(T1溢出率)方式3的波特率=(/32)·(T1溢出率)目前一百三十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)當(dāng)定時(shí)器1作波特率發(fā)生器使用時(shí),通常選用可自動裝入初值模式(方式2),在方式2中,TL1作為計(jì)數(shù)用,而自動裝入的初值放在TH1中,假設(shè)計(jì)數(shù)初值為x,則每過“256-x”個(gè)機(jī)器周期,定時(shí)器T1就會產(chǎn)生一次溢出。這時(shí)溢出率取決于TH1中的計(jì)數(shù)值。T1溢出率=溢出周期的倒數(shù);溢出周期=(256-TH1)×12/Fosc;(其中:12/Fosc表示一個(gè)機(jī)器周期)因此方式1和方式3:波特率:Baud=(2×Fsoc)/{32×12×(256-TH1)}我們一般不太關(guān)注波特率的計(jì)算,而是關(guān)心選用的波特率(傳輸速度)去反算定時(shí)器1(自動重裝模式)的初值(TH1),所以將上面的公式導(dǎo)一下,得到TH1的公式:TH1=256-(Fsoc×2)/(12×32×Baud)目前一百三十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。目前一百三十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)

串行口工作之前,應(yīng)對其編程進(jìn)行初始化設(shè)置,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計(jì)算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時(shí),要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。目前一百四十頁\總數(shù)二百五十六頁\編于十八點(diǎn)1.以16進(jìn)制發(fā)送一個(gè)0-65536之間的任一數(shù),當(dāng)單片機(jī)收到后在數(shù)碼管上動態(tài)顯示出來,波特率自定。2.按下矩陣鍵盤第一行時(shí)以1200bps發(fā)送,1,2,3,4,第二行時(shí)以2400bps發(fā)送5,6,7,8,第三行以4800bps發(fā)送,9,10,11,12,第四行以9600pbs發(fā)送,13,14,15,16.3.以2400bps從計(jì)算機(jī)發(fā)送任一字節(jié)數(shù)據(jù),當(dāng)單片機(jī)收到該數(shù)據(jù)后,在此數(shù)據(jù)基礎(chǔ)上加1,然后把加1后的數(shù)據(jù)發(fā)回給計(jì)算機(jī)。4.用AD以1HZ的頻率采集模擬信號,然后轉(zhuǎn)換成數(shù)字量,再將其以1200bps發(fā)送到計(jì)算機(jī),在計(jì)算機(jī)上顯示。作業(yè)目前一百四十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)第十二課I2C串行總線原理及模塊化編程方法目前一百四十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)單片機(jī)系統(tǒng)-常見的存儲器件介紹常見存儲器件:鐵電,EEPROM,F(xiàn)LASH共同特點(diǎn):掉電后數(shù)據(jù)不丟失各自特點(diǎn):鐵電:理論上可以無限次擦寫,操作簡單,但容量小。EEPROM:理論上擦寫次數(shù)在30W到100W不等,操作簡單,容量中等。FLASH:理論上擦寫次數(shù)在10W到100W不等,容量大,但操作復(fù)雜,若要改變一個(gè)字節(jié)就要改變整個(gè)扇區(qū)。目前一百四十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)我們單片機(jī)系統(tǒng)用得最多的是I2C接口的EEPROM。比如24C系列的,有24C01、24C02、24C04、

24C08等。

常用的串行擴(kuò)展總線有:I2C(InterICBUS)總線、單總線(1-WIREBUS)、SPI(SerialPeripheralInterface)總線及Microwire/PLUS等。常見的EEPROM芯片按其接口方式來分,有I2C、Microwire、SPI三種。本節(jié)課我們主要討論I2C總線工作原理和應(yīng)用方法。目前一百四十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)I2C串行總線概述

I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的包括總線裁決和高低速器件同步功能的高性能串行總線。

I2C總線只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。目前一百四十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)

I2C總線通過上拉電阻接正電源。當(dāng)總線空閑時(shí),兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系。目前一百四十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)每個(gè)接到I2C總線上的器件都有唯一的地址。主機(jī)與其它器件間的數(shù)據(jù)傳送可以是由主機(jī)發(fā)送數(shù)據(jù)到其它器件,這時(shí)主機(jī)即為發(fā)送器。由總線上接收數(shù)據(jù)的器件則為接收器。

在多主機(jī)系統(tǒng)中,可能同時(shí)有幾個(gè)主機(jī)企圖啟動總線傳送數(shù)據(jù)。為了避免混亂,I2C總線要通過總線仲裁,以決定由哪一臺主機(jī)控制總線。

在80C51單片機(jī)應(yīng)用系統(tǒng)的串行總線擴(kuò)展中,我們經(jīng)常遇到的是以80C51單片機(jī)為主機(jī),其它接口器件為從機(jī)的單主機(jī)情況。

目前一百四十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)I2C總線在傳送數(shù)據(jù)過程中共有三種特殊類型信號,它們分別是:I2C總線的數(shù)據(jù)傳送終止信號起始信號應(yīng)答信號目前一百四十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)一、起始和終止信號

SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。

目前一百四十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)

起始和終止信號都是由主機(jī)發(fā)出的,在起始信號產(chǎn)生后,總線就處于被占用的狀態(tài);在終止信號產(chǎn)生后,總線就處于空閑狀態(tài)。主機(jī)可以采用不帶I2C總線接口的單片機(jī),如80C51、AT89C2051等單片機(jī),利用軟件實(shí)現(xiàn)I2C總線的數(shù)據(jù)傳送,即軟件與硬件結(jié)合的信號模擬。I2C總線的起始信號、終止信號、可以讓單片機(jī)I/O口不斷的發(fā)送“0”和發(fā)送“1”進(jìn)行模擬時(shí)序:目前一百五十頁\總數(shù)二百五十六頁\編于十八點(diǎn)模塊化編程的優(yōu)點(diǎn)隨著代碼量的增加,將所有代碼都放在同一個(gè).C文件中的做法,會使得程序結(jié)構(gòu)混亂、可讀性與可移植性變差;而模塊化編程是解決這個(gè)問題的常用而有效的方法。目前一百五十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)模塊化設(shè)計(jì)原則:“高內(nèi)聚,低耦合”高內(nèi)聚:一個(gè)C文件里面的函數(shù),只有相互之間的調(diào)用,而沒有調(diào)用其它文件里面的函數(shù),這樣可以視為高內(nèi)聚。盡量減小不同文件里函數(shù)的交叉引用。低耦合:一個(gè)完整的系統(tǒng),模塊與模塊之間,盡可能的使其獨(dú)立存在。也就是說,讓每一個(gè)模塊,盡可能的獨(dú)立完成某個(gè)特定的子功能。模塊與模塊之間的接口,盡量的少而簡單。目前一百五十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)模塊化編程-創(chuàng)建步驟第一步:創(chuàng)建頭文件例如:I2C函數(shù)相關(guān)的源文件與頭文件命名為i2c.c與i2c.h。建立一個(gè).C文件(源文件)和一個(gè).h文件(頭文件)。原則上文件可以任意命名;但強(qiáng)烈推薦如下原則:.c文件與.h文件同名;文件名要有意義,最好能夠體現(xiàn)該文件代碼的功能定義。目前一百五十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)第二步:頭文件中需要防重復(fù)包含處理防止頭文件在被多個(gè)文件引用的時(shí)候,讓編譯器在編譯時(shí)不會多次編譯。在.h文件中加入如下代碼1#ifndefXXX2#defineXXX3//此處添加代碼(比如聲明或定義語句)4#endif其中的XXX原則上可以是任意字符,在同一個(gè)工程中各個(gè).h文件的XXX不能相同,因此強(qiáng)烈推薦如下的規(guī)則:將.h文件的文件名全部都大寫,“.”替換成下劃線”_”,首尾各添加2個(gè)下劃線”__”作為XXX。目前一百五十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)第三步:代碼封裝將需要模塊化的代碼封裝成函數(shù)與宏定義。.C文件中放置內(nèi)容通常是:函數(shù)體。或者只被本.c文件調(diào)用的宏定義。.h文件中放置內(nèi)容通常是:對需要被外部調(diào)用的函數(shù)要在.h文件中聲明一下。需要被外部調(diào)用的宏定義要放在.h文件中。目前一百五十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)第四步:添加源文件將.c文件添加到工程之中;.h的不用添加到工程里面。同時(shí)在.c文件里把對應(yīng)的.h文件包含進(jìn)去。目前一百五十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)目前一百五十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)目前一百五十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)二、I2C總線數(shù)據(jù)操作

在I2C總線上,數(shù)據(jù)是伴隨著時(shí)鐘脈沖,一位一位的傳送的,數(shù)據(jù)位由高到低傳送,每位數(shù)據(jù)占一個(gè)時(shí)鐘脈沖。在時(shí)鐘線SCL為高電平期間,數(shù)據(jù)線SDA的狀態(tài)就表示要傳送的數(shù)據(jù);高電平為數(shù)據(jù)1,低電平為數(shù)據(jù)0。在數(shù)據(jù)傳送時(shí),SDA上數(shù)據(jù)的改變要在時(shí)鐘線為低電平時(shí)完成,而SCL為高電平時(shí),SDA必須保持穩(wěn)定;否則SDA上的變化會被當(dāng)作起始或終止信號而致使數(shù)據(jù)傳輸停止。目前一百五十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)三、I2C的數(shù)據(jù)讀寫和應(yīng)答每一個(gè)字節(jié)必須保證是8位長度。數(shù)據(jù)傳送時(shí),先傳送最高(MSB)。主機(jī)寫數(shù)據(jù)時(shí),每發(fā)送一個(gè)字節(jié),接收機(jī)需要回復(fù)一個(gè)應(yīng)答位“0”,通過應(yīng)答位來判斷從機(jī)是否接收成功。主機(jī)讀數(shù)據(jù)時(shí),接收一個(gè)字節(jié)結(jié)束后,主機(jī)也需要發(fā)送一個(gè)應(yīng)答位“0”,但是接收最后一個(gè)字節(jié)結(jié)束后,則需發(fā)

送非應(yīng)答位“1”,發(fā)完了1后,再發(fā)一個(gè)停止信號,最終

結(jié)束通信。目前一百六十頁\總數(shù)二百五十六頁\編于十八點(diǎn)2.非應(yīng)答:是一個(gè)高電平信號應(yīng)答:是一個(gè)低電平信號。應(yīng)答位分為:目前一百六十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)1.應(yīng)答信號ACK:I2C總線的數(shù)據(jù)都是以字節(jié)(8位)的方式傳送的,發(fā)送器每發(fā)送一個(gè)字節(jié)之后,在時(shí)鐘的第9個(gè)脈沖期間釋放SDA數(shù)據(jù)線,由接收器發(fā)送一個(gè)ACK(把數(shù)據(jù)線電平拉低)來表示數(shù)據(jù)成功接收。目前一百六十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)2.無應(yīng)答信號NACK在時(shí)鐘的第9個(gè)脈沖期間發(fā)送器釋放數(shù)據(jù)線,接收器不拉低數(shù)據(jù)線表示一個(gè)NACK。NACK有兩個(gè)用途:1.一般表示接收器未成功接收數(shù)據(jù)字節(jié)。2.當(dāng)接收器是主機(jī)時(shí),它收到最后一個(gè)字節(jié)后,應(yīng)發(fā)送一個(gè)NACK,以通知被控從機(jī)結(jié)束數(shù)據(jù)發(fā)送,并釋放總線,以便主機(jī)發(fā)送一個(gè)停止信號。目前一百六十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)目前一百六十四頁\總數(shù)二百五十六頁\編于十八點(diǎn)如何發(fā)送I2C總線數(shù)據(jù)I2C總線發(fā)送到SDA線上的每一個(gè)字節(jié)必須保證是8位長度。數(shù)據(jù)傳送時(shí),先傳送最高位(MSB),每一個(gè)被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。依據(jù)I2C總線規(guī)定,SCL線呈高電平期間,SDA線上的電平必須保持穩(wěn)定。只有SCL線為低電平期間SDA線上的電平才允許變化。因此發(fā)送數(shù)據(jù)函數(shù)可在SCL線為低電平期間將數(shù)據(jù)賦值給SDA線,由于每一個(gè)字節(jié)必須為8位,因此循環(huán)8次即可將數(shù)據(jù)傳送給從器件。目前一百六十五頁\總數(shù)二百五十六頁\編于十八點(diǎn)如何接收I2C總線數(shù)據(jù)依據(jù)I2C總線規(guī)定,SCL線呈高電平期間,SDA線上的電平必須保持穩(wěn)定,因此應(yīng)在SCL線為高電平的時(shí)候讀取SDA數(shù)據(jù)狀態(tài)。I2C總線每次傳輸?shù)氖且粋€(gè)字節(jié)數(shù)據(jù),對于I2C數(shù)據(jù)的接收同樣也應(yīng)接收8位為一字節(jié)數(shù)據(jù),因此循環(huán)8次即可接收一個(gè)字節(jié)數(shù)據(jù)。目前一百六十六頁\總數(shù)二百五十六頁\編于十八點(diǎn)I2C器件寫操作基本步驟目前一百六十七頁\總數(shù)二百五十六頁\編于十八點(diǎn)移位操作左移時(shí)最低位補(bǔ)0,最高位移入PSW的CY位右移時(shí)最高位保持原數(shù),最低位移除。目前一百六十八頁\總數(shù)二百五十六頁\編于十八點(diǎn)作業(yè)理解I2C總線的工作原理,對著時(shí)序圖把各個(gè)子函數(shù)搞明白;將今天課堂內(nèi)容自己完全獨(dú)立做出即可。目前一百六十九頁\總數(shù)二百五十六頁\編于十八點(diǎn)第十三課紅外通信原理及應(yīng)用目前一百七十頁\總數(shù)二百五十六頁\編于十八點(diǎn)紅外線:在光譜中,波長在0.76至400微米的一段,我們稱為紅外線。什么是紅外線所有高于絕對零度(-273.15℃)的物質(zhì)都可以產(chǎn)生紅外線。紅外線是不可見光線。目前一百七十一頁\總數(shù)二百五十六頁\編于十八點(diǎn)紅外通信原理紅外通信是利用紅外技術(shù)實(shí)現(xiàn)兩點(diǎn)間的近距離保密通信和信息轉(zhuǎn)發(fā)。他一般由紅外發(fā)射和接收系統(tǒng)兩部分組成。今天我們就以紅外遙控為代表,具體講一講紅外通信的具體過程。目前一百七十二頁\總數(shù)二百五十六頁\編于十八點(diǎn)紅外遙控的優(yōu)點(diǎn)及應(yīng)用場合紅外線遙控是目前使用最廣泛的一種通信和遙控手段。紅外線遙控裝置的優(yōu)點(diǎn):體積小、功耗低、功能強(qiáng)、成本低。應(yīng)用場合:在家用電器中,彩電、錄像機(jī),錄音機(jī)、音響設(shè)備、空凋機(jī)以及玩具等產(chǎn)品中應(yīng)用非常廣泛。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。目前一百七十三頁\總數(shù)二百五十六頁\編于十八點(diǎn)紅外對管紅外發(fā)光管:

紅外發(fā)光二極管通常使用砷化鎵(GaAs)、砷鋁化鎵(GaAlAs)等材料,采用全透明或淺藍(lán)色、黑色的樹脂封裝。

通電后會產(chǎn)生的光波波長為940nm左右的紅外線

溫馨提示

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

評論

0/150

提交評論