第一節(jié)、機(jī)基礎(chǔ)知識
一、單片機(jī)概念
1、單片機(jī):在一片集成電路芯片上集成微處理器(CPU)、存儲器(ROM和RAM)、I/O接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),即單片機(jī)(single chip Microcomputer)也叫微控制器(MCU)。
CPU( Central Processing Unit ):由運(yùn)算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;
RAM( Random-Access Memory ):用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);
ROM (Read-Only Memory):用以存放程序、一些原始數(shù)據(jù)和表格;
I/O(input/output)口:四個8位并行I/O口,既可用作輸入,也可用作輸出;
T/C (timer/counter):兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;
主要的80C51單片機(jī)
Intel:80C31、80C51、80C32、80C52、87C52
ATMEL:AT89C51、AT89C52、AT89C2051等;
STC:89C51、89C52、90C51、STC15w
Philips:P80C54、P80C58、P87C54
華邦:W78C54、W78C58、W78E54
Siemens:C501-1R、C513A-H
等公司的許多產(chǎn)品 。
芯片封裝簡介
單片機(jī)用途
凡是與控制或簡單計(jì)算有關(guān)的電子設(shè)備都可以用單片機(jī)來實(shí)現(xiàn),再根據(jù)具體實(shí)際情況選擇不同性能的單片機(jī),如:atmel,stc,pic,avr,凌陽,80C51,arm等
工業(yè)自動化:數(shù)據(jù)采集、測控技術(shù)。
智能儀器儀表:數(shù)字示波器、數(shù)字信號源、數(shù)字萬用表、感應(yīng)電流表等。
消費(fèi)類電子產(chǎn)品:洗衣機(jī)、電冰箱、空調(diào)機(jī)、電視機(jī)、微波爐、手機(jī)、IC卡、汽車電子設(shè)備等。
通訊方面:調(diào)制解調(diào)器、程控交換技術(shù)、手機(jī)、小靈通等。
武器裝備:飛機(jī)、軍艦、坦克、導(dǎo)彈、航天飛機(jī)、魚雷制導(dǎo)、智能武器等。
學(xué)習(xí)51單片機(jī)C語言編程基本知識
電平特性
數(shù)字電路中只有兩種電平:高和低
單片機(jī)為TTL電平: 高 +5V 低 0V
RS232電平:計(jì)算機(jī)的串口 高 -12V 低+12V
所以計(jì)算機(jī)與單片機(jī)之間通訊時需要加電平轉(zhuǎn)換芯片max232等其他芯片
二進(jìn)制
數(shù)字電路中的兩種電平特性決定了它使用二進(jìn)制運(yùn)算
十進(jìn)制十六進(jìn)制二進(jìn)制十進(jìn)制十六進(jìn)制二進(jìn)制
00x0000010x10001
20x2001030x30011
40x4010050x50101
60x6011070x70111
80x8100090x91001
100xA1010110xB1011
120xC1100130xD1101
140xE1110150xF1111
二進(jìn)制邏輯運(yùn)算
邏輯變量 : 只有兩個:“0”(假)和“1”(真)。
邏輯“與”(邏輯乘)運(yùn)算L=A·B 或者 L=A∧B
“與”的運(yùn)算法則為:
0·0=0 , 0·1=0 ,
1·0=0 , 1·1=1
A·0=0,A·1=A,A·A=A
邏輯“或”(邏輯加)運(yùn)算L=A+B 或者 L=A∨B
“或”的運(yùn)算法則為:
0+0=0 , 0+1=1
1+0=1 , 1+1=1
A+0=A ,A+1=1 ,A+A=A
邏輯“非”(邏輯取反)運(yùn)算L= A
“非”的運(yùn)算法則為:
“異或”
其運(yùn)算規(guī)則是:
C語言基本數(shù)據(jù)類型
基本語法
變量定義
數(shù)據(jù)類型 變量名
int num1;
double num2 = 2;
unsigned short num3;
if()語句
if(條件){分支}
if(條件){分支1}else{分支2}
if(x>=0)
{
y=y/2;
}
else
{
y=y*x;
}
while()語句
while(條件){循環(huán)體}
while(i<10)
{
s+=k;
}
for()語句
for(表達(dá)式1;條件2;表達(dá)式3){循環(huán)體}
for(i=0;x!=y;j++)
{
z/=3;
}
函數(shù)定義
數(shù)據(jù)類型 函數(shù)名(形參列表){函數(shù)體}
int add(int num1,int num2)
{
return num1+num2;
}
三、80C51引腳簡介
1. 電源引腳:Vcc (40腳):電源端,接+5V電源。
Vss(Gnd) (20腳):接地端,接+5V電源地端
2. 外接晶體引腳:XTAL1和XTAL2
89C51內(nèi)部有一個振蕩器和時鐘產(chǎn)生電路。
XTAL1(19腳): 片內(nèi)振蕩電路反相放大器輸入
XTAL2(18腳):片內(nèi)振蕩電路反相放大器輸出 當(dāng)采用內(nèi)部時鐘時,片外連接石 英晶體和微調(diào)電容,產(chǎn)生原始 的振蕩脈沖信號。
采用外部時鐘時, XTAL1輸入 外部時鐘脈沖信號, XTAL2懸空.
3. 控制信號引腳:RST、ALE、?PSEN、?EA
RST (9腳) : 復(fù)位信號輸入端,高電平有效。
保持兩個機(jī)器周期高電平時,完成復(fù)位操作。
ALE/PROG (30腳) :
地址鎖存允許輸出端/編程脈沖輸入端
正常時,連續(xù)輸出振蕩器頻率的1/6正脈沖信號。
訪問片外存儲器時:
作為鎖存P0口低8位地址的控制信號。
對8751片內(nèi) ROM編程寫入時:作為編程脈沖輸入端。
?PSEN (29腳): 外部程序存儲器讀選通輸出信號
訪問片外ROM時,輸出負(fù)脈沖作為讀ROM選通.
常連接到片外ROM芯片的輸出允許端(OE)作外部ROM的讀選通信號。
?EA/Vpp (31腳):
外部程序存儲器地址使能輸入/編程電壓輸入端. 平常,接“1”時,CPU訪問片內(nèi)4KB的ROM,當(dāng)?shù)刂烦?KB時,自動轉(zhuǎn)向片外ROM中的程序。當(dāng)接“0”時,CPU只訪問片外ROM。 第2功能Vpp 對8051編程時,編程電壓輸入端。
4. 輸入/輸出端口引腳 P0、P1、P2、P3
4個8位的并行輸入/輸出端口,共32個引腳。作為通用輸入/輸出端口
通用輸入/輸出端口
準(zhǔn)雙向口: 作輸入時要先對鎖存器寫“1”。默認(rèn)啟動初始化為高電平
P0端口(P0.0—P0.7,第39—32腳):
漏極開路的準(zhǔn)雙向口, 內(nèi)部沒有上拉電阻,為搞阻狀態(tài),不能正常輸出高低電平,做I/O時需要接上拉電阻(10K)
P1端口(P1.0—P1.7,第1—8腳):
內(nèi)部帶上拉電阻的準(zhǔn)雙向口,在做輸入時要先1
P2端口(P2.0—P2.7,第21—28腳):
內(nèi)部帶上拉電阻的準(zhǔn)雙向口,與P1相似
P3端口(P3.0—P3.7,第10—17腳):
內(nèi)部帶上拉電阻的準(zhǔn)雙向口,做I/O時與P1相似,另外有第二功能
P3口的第二功能
仿真軟件Proteus
Proteus 軟件是由英國 Labcenter Electronics 公司開發(fā)的EDA(Electronic Design Automation)工具軟件,已有近20年的歷史,在全球得到了廣泛應(yīng)用。Proteus 軟件的功能強(qiáng)大,它集電路設(shè)計(jì)、制版及仿真等多種功能于一身,不僅能夠?qū)﹄姽?、電子技術(shù)學(xué)科涉及的電路進(jìn)行設(shè)計(jì)與分析,還能夠?qū)ξ⑻幚砥鬟M(jìn)行設(shè)計(jì)和仿真,并且功能齊全,界面多彩,是近年來備受電子設(shè)計(jì)愛好者青睞的一款新型電子線路設(shè)計(jì)與仿真軟件。
在Proteus中,從原理圖設(shè)計(jì)、單片機(jī)編程、系統(tǒng)仿真到PCB設(shè)計(jì)一氣呵成,真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。
主要功能
ISIS——智能原理圖輸入系統(tǒng),系統(tǒng)設(shè)計(jì)與仿真的基本平臺。
ARES ——高級PCB( Printed Circuit Board)布線編輯軟件
VSM(虛擬仿真模式)
交互式仿真—— 實(shí)時直觀地反映電路設(shè)計(jì)的仿真結(jié)果;
基于圖表的仿真(ASF)—— 用來精確分析電路的各種性能,如頻率特性、噪聲特性等。
工具箱中各圖標(biāo)按鈕對應(yīng)的操作如下
庫元件的分類
1. 大類(Category)
在左側(cè)的“Category”中,共列出了以下幾個大類
要從庫中拾取一個元件時,首先要清楚它的分類是位于哪一類,然后在打開的元件拾取對話框中,選中“Category”中相應(yīng)的大類
2子類(Sub-category)
選取元件所在的大類(Category)后,再選子類(Sub-category),也可以直接選生產(chǎn)廠家(Manufacturer),這樣會在元件拾取對話框中間部分的查找結(jié)果(Results)中顯示符合條件的元件列表。從中找到所需的元件,雙擊該元件名稱,元件即被拾取到對象選擇器中去了。如果要繼續(xù)拾取其他元件,最好使用雙擊元件名稱的辦法,對話框不會關(guān)閉。如果只選取一個元件,可以單擊元件名稱后單擊“OK”按鈕,關(guān)閉對話框。如果選取大類后,沒有選取子類或生產(chǎn)廠家,則在元件拾取對話框中的查詢結(jié)果中,會把此大類下的所有元件按元件名稱首字母的升序排列出來
各子類介紹
1. Analog ICs
模擬集成器件共有8個子類
2.Capacitors
電容共有23個分類
3. CMOS 4000 series
CMOS 4000系列數(shù)字電路共有16個分類
4. Connectors
接頭共有8個分類
5. Data Converters
數(shù)據(jù)轉(zhuǎn)換器共有4個分類
6. Debugging Tools
調(diào)試工具數(shù)據(jù)共有3個分類
7. Diodes
二極管共有8個分類
8. Inductors
電感共有3個分類
9. Laplace Primitives
拉普拉斯模型共有7個分類
10. Memory ICs
存儲器芯片共有7個分類
11. Microprocessor ICs
微處理器芯片共有13個分類
12. Modelling Primitives
建模源共有9個分類
13. Operational Amplifiers
運(yùn)算放大器共有7個分類
14.Optoelectronics
光電器件共有11個分類
15.Resistors
電阻共有11個分類
16.Simulator Primitives
仿真源共有3個分類
17.Switches and Relays
開關(guān)和繼電器共有4個分類
18. Switching Devices
開關(guān)器件共有4個分類
19.Thermionic Valves
熱離子真空管共有4個分類
20.Transducers
傳感器共有2個分類
21.Transistors
晶體管共有8個分類
五.編譯軟件Keil
Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部分組合在一起。運(yùn)行Keil軟件需要Windows操作系統(tǒng)。使用C語言編程,那么Keil幾乎就是不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。
Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。
C51 有以下擴(kuò)展關(guān)鍵字(共21個):
_at_ alien bdata bit code compact data far idata interrupt large pdata _priority_ reentrant sbit sfr sfr16 small _task_ using xdata
常用關(guān)鍵字說明
sfr:sfr用來定義特殊功能寄存器
sfr16:定義一個16位的特殊功能寄存器
sbit:定義一個特殊功能寄存器的某一位
bit:定義位變量
code: 指定存儲位置位于程序存儲器
interrupt:聲明中斷服務(wù)程序
using:指定的寄存器組
擴(kuò)展函數(shù)
需要包含intrins.h頭文件
常用函數(shù)
_irol_、_iror_ 對unsigned int數(shù)循環(huán)左移、右移
_lrol_、_lror_ 對unsigned long數(shù)循環(huán)左移、右移
_crol_、_cror_對unsigned char數(shù)循環(huán)左移、右移
六、點(diǎn)亮第一個LED燈
LED發(fā)光二極管一般壓降為1.7 V 電流3mA即可點(diǎn)亮,因此串聯(lián)1K電阻限流限壓,長腳的為正極。
D1點(diǎn)亮 p1.0設(shè)置為低電平,有電流流過,二極管發(fā)光
D2不亮 p1.1默認(rèn)為高電平,沒有點(diǎn)亮流過,二極管不會發(fā)光
仿真時 紅色代表高電平,藍(lán)色代表低電平,灰色代表高阻態(tài)
流水燈的實(shí)現(xiàn)
一、80c51的最小應(yīng)用系統(tǒng)
電源+5v 3V接C6 (104 為10 *104 0.1uF)和C5(10uF)提高抗干擾性
復(fù)位電路?外部RST引腳復(fù)位就是從外部向RST引腳施加一定寬度的復(fù)位脈沖,從而實(shí)現(xiàn)單片機(jī)的復(fù)位。將RST復(fù)位管腳拉高并維持至少24個時鐘加10us后,單片機(jī)會進(jìn)入復(fù)位狀態(tài),將RST復(fù)位管腳拉回低電平后,單片機(jī)結(jié)束復(fù)位狀態(tài)并從用戶程序區(qū)的0000H處開始正常工作。
當(dāng)系統(tǒng)上電時,電容充電會給rst引腳高電平,等電容穩(wěn)定后將沒有電流流過.
振蕩電路 振蕩頻率越高表示單片機(jī)運(yùn)行速度越快,但同時對存儲器的速度和印刷電路板的要求也就越高。如同木桶原理。同時單片機(jī)性能的好壞,不僅與CPU運(yùn)算速度有關(guān),而且與存儲器的速度、外設(shè)速度等都有很大關(guān)系。因此一般選用6~12MHZ。并聯(lián)諧振電路對電容的值沒有嚴(yán)格要求,但會影響振蕩器的穩(wěn)定、振蕩器頻率高低、起振快速性等。一般根據(jù)手冊說明選定.
二、下載程序到stc90c51單片機(jī)
三、單片機(jī)工作的基本時序
(1) 振蕩周期: 也稱時鐘周期, 是指為單片機(jī)提供時鐘脈沖信號的振蕩源的周期,常用12MHZ,11.0592MHZ。
(2) 狀態(tài)周期: 每個狀態(tài)周期為時鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的。
(3) 機(jī)器周期: 一個機(jī)器周期包含 6 個狀態(tài)周期S1~S6, 也就是 12 個時鐘周期。 在一個機(jī)器周期內(nèi), CPU可以完成一個獨(dú)立的操作。
(4) 指令周期: 它是指CPU完成一條操作所需的全部時間。 每條指令執(zhí)行時間都是有一個或幾個機(jī)器周期組成。MCS - 51 系統(tǒng)中, 有單周期指令、雙周期指令和四周期指令。
四、簡單的軟件延時
使用keil查看程序執(zhí)行時間
延時100ms函數(shù)
延時1s閃爍
流水燈設(shè)計(jì)
從上到下每隔500ms依次點(diǎn)亮
P0口上拉電阻
P0口是開路漏極只能輸出低電平,不能正常輸出高電平。所以做I/O時需要加上拉電阻
每隔500ms依次點(diǎn)亮其中一個
來回依次循環(huán)點(diǎn)亮一個led
加減速流水燈
花樣流水燈
利用_crol_、_cror_實(shí)現(xiàn)流水燈
多I/O口的流水燈
第三節(jié)、數(shù)碼管和定時器
顯示器及其接口
單片機(jī)系統(tǒng)中常用的顯示器有:
發(fā)光二極管LED(Light Emitting Diode)顯示器、液晶LCD(Liquid Crystal Display)顯示器、CRT顯示器等。LED、LCD顯示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點(diǎn)陣顯示(5×8、8×8點(diǎn)陣等)。
LED數(shù)碼顯示方式及電路
使用LED顯示器時,要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個小數(shù)點(diǎn),共計(jì)8段。因此為LED顯示器提供的編碼正好是一個字節(jié)。
靜態(tài)顯示方式
LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時間少,顯示便于監(jiān)測和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。
數(shù)碼管編碼表
動態(tài)顯示
動態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。
共陰時數(shù)碼管位選低電平有效,共陽時送高電平。
定時器和計(jì)數(shù)器
定時/計(jì)數(shù)器的結(jié)構(gòu)和工作原理
一、定時/計(jì)數(shù)器的結(jié)構(gòu)
定時/計(jì)數(shù)器的實(shí)質(zhì)是加1計(jì)數(shù)器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計(jì)數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標(biāo)志。
加1計(jì)數(shù)器輸入的計(jì)數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是T0或T1引腳輸入的外部脈沖源。每來一個脈沖計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1時,再輸入一個脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時/計(jì)數(shù)器中斷允許時)。如果定時/計(jì)數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿。
可見,由溢出時計(jì)數(shù)器的值減去計(jì)數(shù)器初值才是加1計(jì)數(shù)器的計(jì)數(shù)值。
設(shè)置為定時器模式時,加1計(jì)數(shù)器是對內(nèi)部機(jī)器周期計(jì)數(shù)(1個機(jī)器周期等于12個振蕩周期,即計(jì)數(shù)頻率為晶振頻率的1/12)。計(jì)數(shù)值N乘以機(jī)器周期Tcy就是定時時間t 。
設(shè)置為計(jì)數(shù)器模式時,外部事件計(jì)數(shù)脈沖由T0或T1引腳輸入到計(jì)數(shù)器。在每個機(jī)器周期的S5P2期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計(jì)數(shù)器加1,更新的計(jì)數(shù)值在下一個機(jī)器周期的S3P1期間裝入計(jì)數(shù)器。由于檢測一個從1到0的下降沿需要2個機(jī)器周期,因此要求被采樣的電平至少要維持一個機(jī)器周期。當(dāng)晶振頻率為12MHz時,最高計(jì)數(shù)頻率不超過1/2MHz,即計(jì)數(shù)脈沖的周期要大于2us。
定時器存儲寄存器
TCON—定時器控制寄存器的位分配(地址0x88、可位尋址)
TCON——定時器控制寄存器的位描述
TMOD—定時器模式寄存器的位分配(地址0x89、不可位尋址)
TMOD——定時器模式寄存器的位描述
TMOD——定時器模式寄存器M1/M0工作模式
IE—中斷使能寄存器的位分配(地址0xA8、可位尋址)
IE—中斷使能寄存器的位描述
IP—中斷優(yōu)先級寄存器的位分配(地址0xB8、可位尋址)
IP—中斷優(yōu)先級寄存器的位描述
使用定時器的方法
第一:設(shè)置特殊功能寄存器TMOD,配置好工作模式。
第二:設(shè)置計(jì)數(shù)寄存器TH0和TL0的初值。
第三:設(shè)置IE中斷允許位
第四:設(shè)置TCON,通過TR0置1來讓定時器開始計(jì)數(shù)。
第五:判斷TCON寄存器的TF0位,監(jiān)測定時器溢出情況。
第四節(jié)、按鍵檢測、中斷系統(tǒng)
一、鍵盤的分類
鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件編碼器實(shí)現(xiàn),并產(chǎn)生鍵編碼號或鍵值的稱為編碼鍵盤,如計(jì)算機(jī)鍵盤。而靠軟件編程來識別的稱為非編碼鍵盤;在單片機(jī)組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。也有用到編碼鍵盤的。
非編碼鍵盤有分為:獨(dú)立鍵盤和行列式(又稱為矩陣式)鍵盤。
獨(dú)立按鍵原理
按鍵檢測方法
先給I/O口寫入1,輸出高電平,當(dāng)按鍵按下時,讀相應(yīng)端口為0低電平時表示按鍵按下
P0 = 0xff;//寫入1
if(P0 == 0xfe)
{
//P0.0按鍵按下
}
矩陣按鍵變獨(dú)立按鍵
矩陣鍵盤檢測使用行列掃描的辦法,當(dāng)keyOut輸出高電平,再給keyIn某列送低電平其他送高電平從而確定列,然后檢測keyOut那行為低電平確定行,行列確定即可確定那個按鍵按下。
按鍵在閉合和斷開時,觸點(diǎn)會存在抖動現(xiàn)象:
按鍵消抖方法
加10ms的延時再判斷是否按下或松開
2、檢查01的連續(xù)性
單片機(jī)中斷系統(tǒng)
引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務(wù)A,轉(zhuǎn)去處理事件B。對事件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):
分時操作:CPU可以分時為多個I/O設(shè)備服務(wù),提高了計(jì)算機(jī)的利用率;
實(shí)時響應(yīng):CPU能夠及時處理應(yīng)用系統(tǒng)的隨機(jī)事件,系統(tǒng)的實(shí)時性大大增強(qiáng);
可靠性高:CPU具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。
80C51的中斷系統(tǒng)有5個中斷源(8052有 6個) ,2個優(yōu)先級,可實(shí)現(xiàn)二級中斷嵌套 。
(P3.2)可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE0(TCON.1)置1,向CPU申請中斷。
(P3.3)可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.3引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志IE1(TCON.3)置1,向CPU申請中斷。
RI(SCON.0)或TI(SCON.1),串行口中斷請求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時置位TI,向CPU申請中斷。
IT0(TCON.0),外部中斷0觸發(fā)方式控制位。
當(dāng)IT0=0時,為電平觸發(fā)方式。
當(dāng)IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。
IE0(TCON.1),外部中斷0中斷請求標(biāo)志位。
IT1(TCON.2),外部中斷1觸發(fā)方式控制位。
IE1(TCON.3),外部中斷1中斷請求標(biāo)志位。
TF0(TCON.5),定時/計(jì)數(shù)器T0溢出中斷請求標(biāo)志位。
TF1(TCON.7),定時/計(jì)數(shù)器T1溢出中斷請求標(biāo)志位。
中斷允許控制,CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。
EX0(IE.0),外部中斷0允許位;
ET0(IE.1),定時/計(jì)數(shù)器T0中斷允許位;
EX1(IE.2),外部中斷0允許位;
ET1(IE.3),定時/計(jì)數(shù)器T1中斷允許位;
ES(IE.4),串行口中斷允許位;
EA (IE.7), CPU中斷允許(總允許)位。
80C51單片機(jī)有兩個中斷優(yōu)先級,即可實(shí)現(xiàn)二級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的 。
PX0(IP.0),外部中斷0優(yōu)先級設(shè)定位;
PT0(IP.1),定時/計(jì)數(shù)器T0優(yōu)先級設(shè)定位;
PX1(IP.2),外部中斷0優(yōu)先級設(shè)定位;
PT1(IP.3),定時/計(jì)數(shù)器T1優(yōu)先級設(shè)定位;
PS (IP.4),串行口優(yōu)先級設(shè)定位;
PT2 (IP.5) ,定時/計(jì)數(shù)器T2優(yōu)先級設(shè)定位。
同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊(duì)問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:
80C51單片機(jī)的中斷優(yōu)先級有三條原則:
CPU同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高的中斷請求。
正在進(jìn)行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。
正在進(jìn)行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請求所中斷。
為了實(shí)現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置1,表示正在響應(yīng)高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置1,表示正在響應(yīng)低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。
80C51單片機(jī)中斷處理過程
中斷響應(yīng)條件和時間
中斷源有中斷請求;
此中斷源的中斷允許位為1;
CPU開中斷(即EA=1)。
以上三條同時滿足時,CPU才有可能響應(yīng)中斷。
第五節(jié)、串口通信
計(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)代測控系統(tǒng)中信息的交換多采用串行通信方式。
計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換 。可以分為兩大類:并行通信與串行通信。
并行通信:通信時數(shù)據(jù)的各個位同時傳送,可以實(shí)現(xiàn)字節(jié)為單位通信,但是通信線多占用資源多,并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。
串行通信:將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。一次只能發(fā)送一位,要發(fā)送8次才能發(fā)送一個字節(jié)。
串行通信的特點(diǎn):傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
RS232通信接口
1、載波檢測DCD
2、接收數(shù)據(jù)RXD
3、發(fā)送數(shù)據(jù)TXD
4、數(shù)據(jù)終端準(zhǔn)備好DTR
5、信號地線
6、數(shù)據(jù)準(zhǔn)備好DSR
7、請求發(fā)送RTS
8、清除發(fā)送CTS
9、振鈴提示RI
TTL/CMOS電平標(biāo)準(zhǔn):高電平‘1’ >2.x V 低電平'0' <0.x V
232電平標(biāo)準(zhǔn): 高電平‘1’ > -3V ~ -15V 低電平'0' < +3V~ +15V
USB轉(zhuǎn)串口通信
串行通信的基本概念
異步通信與同步通信
1、異步通信
異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。
異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。
異步通信的數(shù)據(jù)格式 :
異步通信的特點(diǎn):不要求收發(fā)雙方時鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。
串行通信的錯誤校驗(yàn)
1、奇偶校驗(yàn)
在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗(yàn)位(1或0)。奇校驗(yàn)時,數(shù)據(jù)中“1”的個數(shù)與校驗(yàn)位“1”的個數(shù)之和應(yīng)為奇數(shù);偶校驗(yàn)時,數(shù)據(jù)中“1”的個數(shù)與校驗(yàn)位“1”的個數(shù)之和應(yīng)為偶數(shù)。接收字符時,對“1”的個數(shù)進(jìn)行校驗(yàn),若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。
2、代碼和校驗(yàn)
代碼和校驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗(yàn)字符(校驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗(yàn)和”進(jìn)行比較,相符則無差錯,否則即認(rèn)為傳送過程中出現(xiàn)了差錯。
循環(huán)冗余校驗(yàn)
這種校驗(yàn)是通過某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與校驗(yàn)位之間的循環(huán)校驗(yàn),常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗(yàn)等。這種校驗(yàn)方法糾錯能力強(qiáng),廣泛應(yīng)用于同步通信中。
傳輸速率與傳輸距離
1、傳輸速率
比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位/秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數(shù)據(jù)位),這時的比特率為:10位×240個/秒 = 2400 bps
2、傳輸距離與傳輸速率的關(guān)系
串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當(dāng)比特率超過1000 bps 時,最大傳輸距離迅速下降,如9600 bps 時最大距離下降到只有76m(約250英尺)。
三種基本通信類型
單工通信:只允許一方向另外一方傳送信息,另一方不能回傳信息,比如電視遙控器、收音機(jī)廣播等。
半雙工通信:數(shù)據(jù)可以在雙方之間傳播,同一時刻只能其中一方發(fā)給另外一方,比如對講機(jī)就是典型半雙工。
全雙工通信:發(fā)送數(shù)據(jù)的同時也能夠接收數(shù)據(jù),兩者同步進(jìn)行,比如我們的電話通信。
80C51的串行口
有兩個物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H ;接收器是雙緩沖結(jié)構(gòu) ;發(fā)送緩沖器,因?yàn)榘l(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。
SCON——串行控制寄存器的位分配(地址0x98、可位尋址)
SCON——串行控制寄存器的位描述
SM0和SM1為工作方式選擇位,可選擇四種工作方式:
SM2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI,進(jìn)而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。當(dāng)SM2=0時,不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實(shí)現(xiàn)多機(jī)通信。
在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。
TB8,在方式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時,若SM2=0,則RB8是接收到的停止位。
TI,發(fā)送中斷標(biāo)志位。在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。
RI,接收中斷標(biāo)志位。在方式0時,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請。
PCON : 電源控制寄存器 (不可位尋址)
SMOD:波特率選擇位。當(dāng)用軟件置位SMOD,即SMOD=1,則使串行通信方式1、2、3的波
特率加倍;SMOD=0,則各工作方式的波特率加倍。復(fù)位時SMOD=0。
SMOD0:幀錯誤檢測有效 控制位。當(dāng)SMOD0=1,SCON寄存器中的SM0/FE位用于FE(幀錯誤檢測)功能;當(dāng)SMOD0=0,SCON寄存器中的SM0/FE位用于SM0功能,和SM1一起指定串行口的工作方式。復(fù)位時SMOD0=0
串口通信程序的基本步驟
1、配置串口為模式1。
2、配置定時器T1為模式2,即自動重裝模式。
3、根據(jù)波特率計(jì)算TH1和TL1的初值,如果有需要可以使用PCON進(jìn)行波特率加倍。
4、打開定時器控制寄存器TR1,讓定時器跑起來。
80C51串行口的工作方式
方式0
方式0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。
1、方式0輸出
2、方式0輸入
方式1
方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。
方式1輸出
方式1輸入
用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進(jìn)入RB8,并置RI=1,向CPU請求中斷。
方式2和方式3
方式2或方式3時為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳 。
方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。
波特率的計(jì)算
在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機(jī)串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。
串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計(jì)算公式也不相同。
方式0的波特率 = fosc/12
方式2的波特率 =(2SMOD/64)· fosc
方式1的波特率 =(2SMOD/32)·(T1溢出率)
方式3的波特率 =(2SMOD/32)·(T1溢出率)
當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計(jì)數(shù)值。
T1 溢出率 = fosc /{12×[256 -(TH1)]}
在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。
串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:
確定T1的工作方式(編程TMOD寄存器);
計(jì)算T1的初值,裝載TH1、TL1;
啟動T1(編程TCON中的TR1位);
確定串行口控制(編程SCON寄存器);
串行口在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。
第六節(jié)、液晶顯示
1602液晶
工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個5X7或者5X11等點(diǎn)陣字符位組成,每個點(diǎn)陣字符位都可以顯示一個字符,每位之間有一個點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。
管腳功能
1602采用標(biāo)準(zhǔn)的16腳接口,其中:
第1腳:GND為電源地
第2腳:VCC接5V電源正極
第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。
第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。
第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。
第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負(fù)跳變時執(zhí)行指令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電
源。15腳背光正極,16腳背光負(fù)極。
特性
3.3V或5V工作電壓,對比度可調(diào)
內(nèi)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能,有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM,內(nèi)建有192個5X7點(diǎn)陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM,應(yīng)用微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。
操作控制
注:關(guān)于E=H脈沖——開始時初始化E為0,然后置E為1。
字符集
1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。在單片機(jī)編程中還可以用字符型常量或變量賦值,如'A’。因?yàn)镃GROM儲存的字符代碼與我們PC中的字符代碼是基本一致的,因此我們在向DDRAM寫C51字符代碼程序時甚至可以直接用P1=‘A’這樣的方法。PC在編譯時就把'A'先轉(zhuǎn)換為41H代碼了。
字符代碼0x00~0x0F為用戶自定義的字符圖形RAM(對于5X8點(diǎn)陣的字符,可以存放8組,5X10點(diǎn)陣的字符,存放4組),就是CGRAM了。
0x20~0x7F為標(biāo)準(zhǔn)的ASCII碼,0xA0~0xFF為日文字符和希臘文字符,其余字符碼(0x10~0x1F及0x80~0x9F)沒有定義。
1602的16進(jìn)制ASCII碼表地址:讀的時候,先讀上面那行,再讀左邊那列,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進(jìn)制)。
8051模擬口接法
第七節(jié)、點(diǎn)陣LED顯示
8*8點(diǎn)陣外型和結(jié)構(gòu)
8X8點(diǎn)陣LED工作原理說明 :8X8點(diǎn)陣共由64個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上,當(dāng)對應(yīng)的某一列置1電平,某一行置0電平,則相應(yīng)的二極管就 會點(diǎn)亮;因此要實(shí)現(xiàn)一根柱形的亮法,對應(yīng)的一列為一根豎柱,或者對應(yīng)的一行為一根橫柱,實(shí)現(xiàn)柱的亮的方法如下:一根豎柱:對應(yīng)的列置1,而行則采用掃描的方法來實(shí)現(xiàn)。 一根橫柱:對應(yīng)的行置0,而列則采用掃描的方法來實(shí)現(xiàn)。
第八節(jié)、紅外遙控
信號調(diào)制原理
基帶信號:從信號源發(fā)出沒有經(jīng)過調(diào)制的原始信號,特點(diǎn)是頻率較低,信號頻率從0開始,頻譜較寬。
調(diào)制:就是用待傳送信號去控制某個高頻信號的幅度、相位、頻率等參量變化的過程,即用一個信號去裝載另一個信號。
紅外遙控發(fā)送接收原理圖
NEC協(xié)議紅外遙控器
NEC數(shù)據(jù)格式:引導(dǎo)碼、用戶碼、用戶碼(或者用戶碼反碼)、按鍵鍵碼和鍵碼反碼,最后一個停止位。
引導(dǎo)碼:9ms的載波+4.5ms的空閑。
比特值“0”:560us的載波+560us的空閑。
比特值“1”:560us的載波+1.68ms的空閑。
第九節(jié)、AD、DA轉(zhuǎn)化
A/D和D/A的基本概念
模擬量:任何兩個數(shù)字之間都有無限個中間值,所以稱之為連續(xù)變化的量,也就是模擬量。
數(shù)字量:數(shù)字間有一定的間隔,不是連續(xù)的,即離散的量稱之為數(shù)字量。
A/D:Analog to Digital Converter,用模數(shù)轉(zhuǎn)換器實(shí)現(xiàn)模擬量到數(shù)字量的轉(zhuǎn)換,簡稱ADC。
D/A:Digital to Analog Converter,用數(shù)模轉(zhuǎn)換器實(shí)現(xiàn)數(shù)字量到模擬量的轉(zhuǎn)換,簡稱DAC。
A/D的主要指標(biāo)
1、ADC的位數(shù):1個n位的ADC表示這個ADC共有2的n次方個刻度。
2、基準(zhǔn)源:也叫做基準(zhǔn)電壓,是ADC的參考基準(zhǔn)。
3、分辨率:數(shù)字量變化一個最小刻度,模擬信號的變化量,定義為滿刻度量程與2n-1的比值。
4、INL(積分非線性度)和DNL(差分非線性度)
INL是指ADC器件在所有數(shù)值上對應(yīng)的模擬值,和真實(shí)值之間誤差最大的那個點(diǎn)的誤差值,單位是LSB。LSB(Least Significant Bit)是最低有效位的意思,它實(shí)際上對應(yīng)的就是ADC的分辨率。
DNL是指ADC相鄰兩個刻度之間最大的差異,單位也是LSB。
5、轉(zhuǎn)換速率:是指ADC每秒能進(jìn)行采樣轉(zhuǎn)換的最大次數(shù),單位是sps。
第十節(jié) 、實(shí)時時鐘DS1302
DS1302實(shí)時時鐘芯片
DS1302寄存器介紹
DS1302單字節(jié)寫操作時序
DS1302單字節(jié)讀操作時序