51单片机学习
單片機(jī)概述
1.什么是單片機(jī)
2.單片機(jī)的特點(diǎn)及應(yīng)用領(lǐng)域
3.單片機(jī)的發(fā)展趨勢
4.學(xué)習(xí)51單片機(jī)需要哪些基礎(chǔ)知識
5.如何快速的掌握51單片機(jī)
微型計(jì)算機(jī)的應(yīng)用形態(tài)
將cpu芯片、存儲器芯片、I/O接口芯片和簡單的I/O設(shè)備(小鍵盤、LED顯示器)等裝配在一塊印刷電路板上,再配上監(jiān)控程序(固化在ROM中),就構(gòu)成了一臺單板微型計(jì)算機(jī)(簡稱單板機(jī))。單板微型計(jì)算機(jī)組成如圖所示。
主要應(yīng)用于工業(yè)控制器、家用電器等
什么是單片機(jī)
單片機(jī)又稱單片微控制器,他不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:一塊芯片就成了一臺計(jì)算機(jī)。
在一片集成電路芯片上集成中央處理器(CPU)、存儲器(ROM/RAM)、I/O接口電路,從而構(gòu)成了單芯片微型計(jì)算機(jī),簡稱單片機(jī)。
常用英文字母的縮寫MCU表示單片機(jī)
單片機(jī)內(nèi)部結(jié)構(gòu)
單片機(jī)內(nèi)部結(jié)構(gòu)示意圖如圖所示,他由微處理器CPU、隨機(jī)存取存儲器RAM、只讀存儲器ROM、基本輸入Input/輸出Output(I/O)接口電路、定時(shí)器/計(jì)數(shù)器和中斷系統(tǒng)等部件組成,并把他們制作在一塊大規(guī)模集成電路芯片上,就構(gòu)成一個(gè)完整的單片微型計(jì)算機(jī)
單片機(jī)應(yīng)用系統(tǒng)的組成
單片機(jī)應(yīng)用系統(tǒng)的組成如圖所示。單片機(jī)應(yīng)用系統(tǒng)是以單片機(jī)為核心,再加上接口電路及外設(shè)等硬件電路和軟件,就構(gòu)成了單片機(jī)應(yīng)用系統(tǒng)。因此,單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)人員必須從硬件和軟件的角度來研究單片機(jī),這樣才能研究和開發(fā)出單片機(jī)應(yīng)用系統(tǒng)產(chǎn)品。
80C51單片機(jī)系列
雖然目前單片機(jī)的種類很多,Intel公司在1980年推出80C51系列單片機(jī),由于80C51單片機(jī)應(yīng)用早,影響面很大,已經(jīng)成為工業(yè)標(biāo)準(zhǔn)。后來很多著名廠商如ATmel.philps,STC等公司申請了版權(quán),生產(chǎn)了各種與80C51兼容的單片機(jī)系列。雖然制造工藝在不斷的改進(jìn),但內(nèi)核卻沒有變化,指令系統(tǒng)完全兼容,而且大多數(shù)管腳也兼容。我們把這些公司生產(chǎn)的與80C51兼容的單片機(jī)統(tǒng)稱為80C51系列
如:ATMEL公司的AT89S51 AT89S52 AT89S53等等…
STC公司的STC89C51 STC89C52 STC89C53 STC90C516等等…
單片機(jī)的特點(diǎn)及應(yīng)用領(lǐng)域
單片機(jī)的特點(diǎn)
單片機(jī)芯片的集成度非常高,他將微型計(jì)算機(jī)的主要部件都集成在一塊芯片上,因此,具有如下特點(diǎn):
1.體積小、重量輕、價(jià)格低、耗電少、易于產(chǎn)品化
2.控制性能
實(shí)時(shí)控制功能強(qiáng),運(yùn)行速度快。因?yàn)镃PU可以對I/O端口直接進(jìn)行指令操作,而且位指令操作能力更是其他計(jì)算機(jī)無法比擬的
3.可靠性高
由于CPU、存儲器及I/O口集成在同一芯片內(nèi),各部件間的連接緊湊,數(shù)據(jù)在傳送時(shí)受干擾的影響較小,且不易受環(huán)境條件的影響,所以單片機(jī)的可靠性非常高。
單片機(jī)的應(yīng)用領(lǐng)域
1、家用電器:家用電器是單片機(jī)的重要應(yīng)用領(lǐng)域之一,前景廣闊。如微波爐、電視機(jī)、電飯煲、空調(diào)器、電冰箱、洗衣機(jī)等。
2、在交通領(lǐng)域中:如交通燈、汽車、火車、飛機(jī)等均有單片機(jī)的廣泛應(yīng)用。
3、智能儀器儀表:如各種智能電氣測量儀表、智能傳感器等。
4、機(jī)電一體化產(chǎn)品。如醫(yī)療設(shè)備(B超)、機(jī)器人、數(shù)控機(jī)床、自動(dòng)包裝機(jī)、打印機(jī)、復(fù)印機(jī)等。
5、實(shí)時(shí)工業(yè)控制:如溫度控制、電機(jī)轉(zhuǎn)速控制、生產(chǎn)線控制等。
6、武器裝備:飛機(jī)、軍艦、坦克、導(dǎo)彈、航天飛機(jī)、魚雷制
導(dǎo)、無人機(jī)等。
單片機(jī)的發(fā)展趨勢 字長不斷提高 運(yùn)行速度不斷提高
20世紀(jì)80年代以來,單片機(jī)有了新的發(fā)展,各半導(dǎo)體器件廠商也紛紛推出自己的產(chǎn)品系列。根據(jù)市場的需求要求,未來單片機(jī)的發(fā)展趨勢有如下幾個(gè)方面:
單片機(jī)的字長由4位、8位、16 位發(fā)展到32位。
目前8位的單片機(jī)仍然占主流地位,只有在精度要求特別高的場合如圖像處理等,才采用16位或32位的單片機(jī),用戶可以根據(jù)需要進(jìn)行字長的選擇。
運(yùn)行速度不斷提高。
單片機(jī)的使用最高頻率由6MHz、12MHz 、24MHz、33MHz發(fā)展到 40MHz和更高,用戶可以根據(jù)產(chǎn)品的需要進(jìn)行速度的選擇。
電子電路基礎(chǔ)
電平特性
單片機(jī)是一種數(shù)字集成芯片,數(shù)字電路中只有兩種電平:高電平和低電平。
高電平:5V
低電平:0V
TTL電平信號被利用的最多是因?yàn)橥ǔ?shù)據(jù)表示采用二進(jìn)制,5V等價(jià)于邏輯“1“,0V等價(jià)于邏輯零,TTL電平規(guī)定高電平輸出電壓>2.4V,低電平輸出電壓<0.4V
計(jì)算機(jī)串口使用的是RS232電平
高電平:-12V
低電平:+12V
單片機(jī)與計(jì)算機(jī)串口通信時(shí)需要使用電平轉(zhuǎn)換芯片,把RS232電平轉(zhuǎn)換為TTL電平后單片機(jī)才能識別
51單片機(jī)I/O口介紹
I/O口是基本輸入Input/輸出Output接口,單片機(jī)對外圍設(shè)備的控制都是通過I/O口來進(jìn)行的(輸出高低電平)。接收外部控制也是通過I/O口來讀取外部電壓信號
初識電容電阻
電阻器縮寫為R,歐姆定律指出電壓、電流、電阻三者之間的關(guān)系為I=U/R,從中我們可以看出電阻在電路中是對電流有阻礙作用的一種電子元器件。電阻的基本單位是歐姆。用希臘字母來表示
電容的作用:儲能,濾波,通交流隔直流,旁路,耦合,補(bǔ)償,充放電等
初識電路原理圖:
原理圖:就是表示電路板上各器件之間連接原理的圖表。學(xué)習(xí)單片機(jī)和學(xué)硬件電路設(shè)計(jì)都是要通過分析原理圖,了解各種電子器件的功能和工作原理,才能得心應(yīng)手的開展工作
在電路原理圖中有時(shí)器件相隔太遠(yuǎn)不方便連接電氣走線可以采用網(wǎng)絡(luò)標(biāo)號的形式進(jìn)行電氣連接
網(wǎng)絡(luò)標(biāo)號:電路原理圖中網(wǎng)咯標(biāo)號相同的點(diǎn)表示實(shí)際相連接
單片機(jī)最小系統(tǒng)結(jié)構(gòu):
單片機(jī)需要運(yùn)行起來最基本的條件需要有:
1.電源 (給整個(gè)系統(tǒng)提供能量)
2.單片機(jī)芯片 (運(yùn)行程序/處理數(shù)據(jù))
3.晶振電路 (給單片機(jī)工作提供節(jié)拍)
4.復(fù)位電路 (單片機(jī)上電時(shí)需要復(fù)位使程序從頭開始運(yùn)行)
單片機(jī)工作的基本時(shí)序
振蕩周期:也稱時(shí)鐘周期,是指為單片機(jī)提供時(shí)鐘脈沖信號的振蕩源的周期。
機(jī)器周期:一個(gè)機(jī)器周期包含12個(gè)時(shí)鐘周期。在一個(gè)機(jī)器周期內(nèi),CPU可以完成一個(gè)獨(dú)立的操作。
重要
點(diǎn)亮LED燈
LED全稱為半導(dǎo)體發(fā)光二極管,采用半導(dǎo)體材料制成,以直接將電能轉(zhuǎn)化為光能,電信號轉(zhuǎn)化為光信號的發(fā)光器件;其特點(diǎn)是功耗低、高亮度、色彩艷麗、抗震動(dòng)、壽命長(正常發(fā)光8-10萬小時(shí))、冷光源等優(yōu)點(diǎn),是真正的”綠色照明“。以LED為光源的燈飾品在二十一世紀(jì)的將來,必然取代白熾燈,成為人類照明的又一次革命
LED工作參數(shù)
LED(發(fā)光二極管)在電路圖中的符號為:
它具有二極管的基本特性正向?qū)?#xff0c;反向截止。要想點(diǎn)亮LED那么需要從正向流過工作電流
普通發(fā)光二極管工作壓降:1.6V—2.1V
工作電流為:1—20ma
本節(jié)相關(guān)C語言知識
關(guān)鍵字:sbit
功能:位定義
一般格式:sbit 標(biāo)識符 = 地址
流水燈
宏定義
用define進(jìn)行宏定義的典型用法
#define uchar unsigned char
注意宏定義后面不能加分號,它是預(yù)處理器指令不是語句
其中用”uchar“直接替換了unsigned char
此時(shí)我們可以用uchar去定義變量類型如;uchar i;等價(jià)于 unsigned char i;
對于上面的宏定義我們是用來給已有數(shù)據(jù)類型區(qū)別名
對已有數(shù)據(jù)類型取別名一般還有使用關(guān)鍵字typedef,定義方法如下:
typedef 已有數(shù)據(jù)類型 新的數(shù)據(jù)類型;(要加分號)
函數(shù)的定義
函數(shù)就是將多條語句集合在一塊,來完成一種特定功能。
函數(shù)分為標(biāo)準(zhǔn)函數(shù)庫,和用戶自定義函數(shù)。
標(biāo)準(zhǔn)函數(shù)庫:KEIL編譯器提供的,不需要用戶進(jìn)行定義。
自定義函數(shù):用戶根據(jù)自己需要編寫的函數(shù),他必須在使用前先定義。
自定義函數(shù)的一般格式為:
函數(shù)類型 函數(shù)名 (形式參數(shù)表)
{
局部變量定義
函數(shù)體語句
}
延時(shí)函數(shù)
自定義函數(shù):延時(shí)函數(shù)delay(毫秒級)
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x–)
for(y = 144;y>0;y–)
}
給形參z賦值,如延時(shí)100毫秒:delay(100);
循環(huán)移位函數(shù)
標(biāo)準(zhǔn)庫函數(shù):instrins.h
內(nèi)部函數(shù)
字符型循環(huán)左移:crol
字符型循環(huán)右移:cror
#include <instrins.h>
void test_crol (void) {
unsigned char a;
unsigned char b;
a = 0xFE; //1111 1110
b=crol(a,1), //b now is 0xafd 二進(jìn)制為 1111 1101
循環(huán)移位函數(shù)與左移和右移運(yùn)算符的區(qū)別
使用字符型循環(huán)左移:
#include <intrins.h>
void test_crol (void) {
unsigned char a;
unsigned char b;
a = 0xFE; //1111 1110
b = crol(a,1); // b now is 0xFD 二進(jìn)制為1111 1101
}
使用左移運(yùn)算符
a = 0xFE; //1111 1110
b = a<<1; // b now is 0xFC 二進(jìn)制為1111 1100
區(qū)別:循環(huán)左移是把最高位移到最低位,左移運(yùn)算符是把最高位移除最低位補(bǔ)零
蜂鳴器的結(jié)構(gòu)原理
1.壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。
多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后(1.515V直流工作電壓),多諧振蕩器起振,輸出1.52.5kHZ的音頻信號,阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。
壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。
2.電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。
接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲。
編輯本段蜂鳴器的制作
(1)制
蜂鳴器
備電磁鐵M:在長約6厘米的鐵螺栓上繞100圈導(dǎo)線,線端留下5厘米作引線,用透明膠布把線圈粘好,以免線圈松開,再用膠布把它粘在一個(gè)盒子上,電磁鐵就做好了.
(2)制備彈片P:從鐵罐頭盒上剪下一條寬約2厘米的長鐵片,彎成直角,把電磁鐵的一條引線接在彈片上,再用膠布把彈片緊貼在木板上.
(3)用曲別針做觸頭Q,用書把曲別針墊高,用膠布粘牢,引出一條導(dǎo)線,如圖連接好電路.
(4)調(diào)節(jié)M與P之間的距離(通過移動(dòng)盒子),使電磁鐵能吸引彈片,調(diào)節(jié)觸點(diǎn)與彈片之間的距離,使它們能恰好接觸,通電后就可以聽到蜂鳴聲.
有源蜂鳴器和無源蜂鳴器
教你區(qū)分有源蜂鳴器和無源蜂鳴器
現(xiàn)在市場上出售的一種小型蜂鳴器因其體積小(直徑只有l(wèi)lmm)、重量輕、價(jià)格低、結(jié)構(gòu)牢靠,而廣泛地應(yīng)用在各種需要發(fā)聲的電器設(shè)備、電子制作和單片機(jī)等電路中。有源蜂鳴器和無源蜂鳴器的外觀如圖a、b所示。
圖:有源和無源蜂鳴器的外觀
a)有源 b)無源
從圖a、b外觀上看,兩種蜂鳴器好像一樣,但仔細(xì)看,兩者的高度略有區(qū)別,有源蜂鳴器a,高度為9mm,而無源蜂鳴器b的高度為8mm。如將兩種蜂鳴器的引腳郡朝上放置時(shí),可以看出有綠色電路板的一種是無源蜂鳴器,沒有電路板而用黑膠封閉的一種是有源蜂鳴器。
迸一步判斷有源蜂鳴器和無源蜂鳴器,還可以用萬用表電阻檔Rxl檔測試:用黑表筆接蜂鳴器 "+"引腳,紅表筆在另一引腳上來回碰觸,如果觸發(fā)出咔、咔聲的且電阻只有8Ω(或16Ω)的是無源蜂
蜂鳴器
鳴器;如果能發(fā)出持續(xù)聲音的,且電阻在幾百歐以上的,是有源蜂鳴器。
有源蜂鳴器直接接上額定電源(新的蜂鳴器在標(biāo)簽上都有注明)就可連續(xù)發(fā)聲;而無源蜂鳴器則和電磁揚(yáng)聲器一樣,需要接在音頻輸出電路中才能發(fā)聲。
蜂鳴器驅(qū)動(dòng)模塊
在單片機(jī)應(yīng)用的設(shè)計(jì)上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報(bào)警,比如按鍵按下、開始工作、工作結(jié)束或是故障等等。這里對單片機(jī)在蜂鳴器驅(qū)動(dòng)上的應(yīng)用作一下描述。
驅(qū)動(dòng)方式
由于自激蜂鳴器是直流電壓驅(qū)動(dòng)的,不需要利用交流信號進(jìn)行驅(qū)動(dòng),只需對驅(qū)動(dòng)口輸出驅(qū)動(dòng)電平并通過三極管放大驅(qū)動(dòng)電流就能使蜂鳴器發(fā)出聲音,很簡單,這里就不對自激蜂鳴器進(jìn)行說明了。這里只對必須用1/2duty 的方波信號進(jìn)行驅(qū)動(dòng)的他激蜂鳴器進(jìn)行說明。
單片機(jī)驅(qū)動(dòng)他激蜂鳴器的方式有兩種:一種是PWM 輸出口直接驅(qū)動(dòng),另一種是利用I/O 定時(shí)翻轉(zhuǎn)電平產(chǎn)生驅(qū)動(dòng)波形對蜂鳴器進(jìn)行驅(qū)動(dòng)。
PWM 輸出口直接驅(qū)動(dòng)是利用PWM 輸出口本身可以輸出一定的方波來直接驅(qū)動(dòng)蜂鳴器。在單片機(jī)的軟件設(shè)置中有幾個(gè)系統(tǒng)寄存器是用來設(shè)置PWM 口的輸出的,可以設(shè)置占空比、周期等等,通過設(shè)置這些寄存器產(chǎn)生符合蜂鳴器要求的頻率的波形之后,只要打開PWM 輸出,PWM 輸出口就能輸出該頻率的方波,這個(gè)時(shí)候利用這個(gè)波形就可以驅(qū)動(dòng)蜂鳴器了。比如頻率為2000Hz 的蜂鳴器的驅(qū)動(dòng),可以知道周期為500μs,這樣只需要把PWM 的周期設(shè)置為500μs,占空比電平設(shè)置為250μs,就能產(chǎn)生一個(gè)頻率為2000Hz 的方波,通過這個(gè)方波再利用三極管就可以去驅(qū)動(dòng)這個(gè)蜂鳴器了。
而利用I/O 定時(shí)翻轉(zhuǎn)電平來產(chǎn)生驅(qū)動(dòng)波形的方式會比較麻煩一點(diǎn),必須利用定時(shí)器來做定時(shí),通過定時(shí)翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)波形就可以用來驅(qū)動(dòng)蜂鳴器了。比如為2500Hz 的蜂鳴器的驅(qū)動(dòng),可以知道周期為400μs,這樣只需要驅(qū)動(dòng)蜂鳴器的I/O 口每200μs 翻轉(zhuǎn)一次電平就可以產(chǎn)生一個(gè)頻率為2500Hz,占空比為1/2duty 的方波,再通過三極管放大就可以驅(qū)動(dòng)這個(gè)蜂鳴器了。
蜂鳴器驅(qū)動(dòng)電路
由于蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O 口是無法直接驅(qū)動(dòng)的,所以要利用放大電路來驅(qū)動(dòng),一般使用三極管來放大電流就可以了。
蜂鳴器驅(qū)動(dòng)設(shè)計(jì)
由于這里要介紹兩種驅(qū)動(dòng)方式的方法,所以在設(shè)計(jì)模塊系統(tǒng)中將兩種驅(qū)動(dòng)方式做到一塊,即程序里邊不僅介紹了PWM 輸出口驅(qū)動(dòng)蜂鳴器的方法,還要介紹I/O 口驅(qū)動(dòng)蜂鳴器的方法。所以,我們將設(shè)計(jì)如下的一個(gè)系統(tǒng)來說明單片機(jī)對蜂鳴器的驅(qū)動(dòng):系統(tǒng)有兩個(gè)他激蜂鳴器,頻率都為2000Hz,一個(gè)由I/O 口進(jìn)行控制,另一個(gè)由PWM 輸出口進(jìn)行控制;系統(tǒng)還有兩個(gè)按鍵,一個(gè)按鍵為PORT 按鍵,I/O 口控制的蜂鳴器不鳴叫時(shí)按一次按鍵I/O 口控制的蜂鳴器鳴叫,再按一次停止鳴叫,另一個(gè)按鍵為PWM 按鍵,PWM 口控制的蜂鳴器不鳴叫時(shí)按一次按鍵PWM輸出口控制的蜂鳴器鳴叫,再按一次停止鳴叫。
電路原理圖
如圖1-3 所示,使用SH69P43 為控制芯片,使用4MHz 晶振作為主振蕩器。
PORTC.3/T0 作為I/O 口通過三極管Q2 來驅(qū)動(dòng)蜂鳴器LS1,而PORTC.2/PWM0 則作為PWM 輸出口通過三極管Q1 來驅(qū)動(dòng)蜂鳴器LS2。另外在PORTA.3 和PORTA.2 分別接了兩個(gè)按鍵,一個(gè)是PWM 按鍵,是用來控制PWM 輸出口驅(qū)動(dòng)蜂鳴器使用的;另一個(gè)是PORT 按鍵,是用來控制I/O 口驅(qū)動(dòng)蜂鳴器使用的。連接按鍵的I/O 口開內(nèi)部上拉電阻。
軟件設(shè)計(jì)方法
先分析一下蜂鳴器。所使用的蜂鳴器的工作頻率是2000Hz,也就是說蜂鳴器的驅(qū)動(dòng)信號波形周期是500μs,由于是1/2duty 的信號,所以一個(gè)周期內(nèi)的高電平和低電平的時(shí)間寬度都為250μs。軟件設(shè)計(jì)上,我們將根據(jù)兩種驅(qū)動(dòng)方式來進(jìn)行說明。
a) PWM 輸出口直接驅(qū)動(dòng)蜂鳴器方式
由于PWM 只控制固定頻率的蜂鳴器,所以可以在程序的系統(tǒng)初始化時(shí)就對PWM 的輸出波形進(jìn)行設(shè)置。
首先根據(jù)SH69P43 的PWM 輸出的周期寬度是10 位數(shù)據(jù)來選擇PWM 時(shí)鐘。系統(tǒng)使用4MHz 的晶振作為主振蕩器,一個(gè)tosc 的時(shí)間就是0.25μs,若是將PWM 的時(shí)鐘設(shè)置為tosc 的話, 則蜂鳴器要求的波形周期500μs 的計(jì)數(shù)值為500μs/0.25μs=(2000)10=(7D0)16,7D0H 為11 位的數(shù)據(jù),而SH69P43 的PWM
輸出周期寬度只是10 位數(shù)據(jù),所以選擇PWM 的時(shí)鐘為tosc 是不能實(shí)現(xiàn)蜂鳴器所要的驅(qū)動(dòng)波形的。
這里我們將PWM 的時(shí)鐘設(shè)置為4tosc,這樣一個(gè)PWM 的時(shí)鐘周期就是1μs 了,由此可以算出500μs 對應(yīng)的計(jì)數(shù)值為500μs/1μs=(500)10=(1F4)16,即分別在周期寄存器的高2 位、中4 位和低4 位三個(gè)寄存器中填入1、F 和4,就完成了對輸出周期的設(shè)置。再來設(shè)置占空比寄存器,在PWM 輸出中占空比的實(shí)現(xiàn)是
通過設(shè)定一個(gè)周期內(nèi)電平的寬度來實(shí)現(xiàn)的。當(dāng)輸出模式選擇為普通模式時(shí),占空比寄存器是用來設(shè)置高電平的寬度。250μs 的寬度計(jì)數(shù)值為250μs/1μs=(250)10=(0FA)16。只需要在占空比寄存器的高2 位、中4 位和低4 位中分別填入0、F 和A 就可以完成對占空比的設(shè)置了,設(shè)置占空比為1/2duty。
以后只需要打開PWM 輸出,PWM 輸出口自然就能輸出頻率為2000Hz、占空比為1/2duty 的方波。
b) I/O 口定時(shí)翻轉(zhuǎn)電平驅(qū)動(dòng)蜂鳴器方式
使用I/O 口定時(shí)翻轉(zhuǎn)電平驅(qū)動(dòng)蜂鳴器方式的設(shè)置比較簡單,只需要對波形分析一下。由于驅(qū)動(dòng)的信號剛好為周期500μs,占空比為1/2duty 的方波,只需要每250μs 進(jìn)行一次電平翻轉(zhuǎn),就可以得到驅(qū)動(dòng)蜂鳴器的方波信號。在程序上,可以使用TIMER0 來定時(shí),將TIMER0 的預(yù)分頻設(shè)置為/1,選擇TIMER0 的始終為系統(tǒng)時(shí)鐘(主振蕩器時(shí)鐘/4),在TIMER0 的載入/計(jì)數(shù)寄存器的高4 位和低4 位分別寫入00H 和06H,就能將TIMER0 的中斷設(shè)置為250μs。當(dāng)需要I/O 口驅(qū)動(dòng)的蜂鳴器鳴叫時(shí),只需要在進(jìn)入TIMER0 中斷的時(shí)候?qū)υ?br /> I/O 口的電平進(jìn)行翻轉(zhuǎn)一次,直到蜂鳴器不需要鳴叫的時(shí)候,將I/O 口的電平設(shè)置為低電平即可。不鳴叫時(shí)將I/O 口的輸出電平設(shè)置為低電平是為了防止漏電
蜂鳴器
區(qū)別:這里的源不是指電源而是指震蕩源
也就是說,有源蜂鳴器內(nèi)部帶震蕩源,所以只要一通電就會叫
而無源內(nèi)部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K–5K的方波去驅(qū)動(dòng)它
有源蜂鳴器往往比無源的貴,就是因?yàn)槔锩娑鄠€(gè)震蕩電路
三極管工作原理
三極管8550是一種常用的普通三極管。他是一種低電壓,大電流,小信號的PNP型硅三極管
主要用途:開關(guān)應(yīng)用、射頻放大
alldatasheet.com 芯片查詢地址
數(shù)碼管根據(jù)內(nèi)部連接不同分為共陰極和共陽極。八段數(shù)碼管內(nèi)部有八顆LED組成,如果想要顯示特定字形只需控制相應(yīng)的LED亮起,其他LED熄滅即可。
靜態(tài)顯示與動(dòng)態(tài)顯示
靜態(tài)顯示
LED顯示器工作方式有兩種:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示自行可一直保持,直到送入新字形碼為止。
動(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í)都在顯示。
上拉電阻的作用
上拉就是將不確定的信號通過一個(gè)電阻鉗位在高電平,電阻同時(shí)起限流作用。下拉同理,也是將不確定的信號通過一個(gè)電阻鉗位在低電平
當(dāng)P0口作為輸入/輸出口時(shí),上電復(fù)位后處于開開漏模式,P0口內(nèi)部無上拉電阻,所以I/O口必須外接10K–4 .7K上拉電阻
數(shù)組的定義與引用
數(shù)組是一組有序數(shù)據(jù)的集合,數(shù)組中每一個(gè)數(shù)據(jù)都是同一數(shù)據(jù)類型。數(shù)組中的元素可以用數(shù)組名和下標(biāo)來唯一確定
獨(dú)立鍵盤
鍵盤介紹
鍵盤是電子系統(tǒng)中人機(jī)對話的重要組成部分,是人向機(jī)器發(fā)出指令,輸入信息的必須設(shè)備
鍵盤在單片機(jī)應(yīng)用系統(tǒng)中是使用最廣泛的一種數(shù)據(jù)輸入設(shè)備,鍵盤是由多個(gè)按鍵組成的
按鍵的工作原理
按鍵通常是一種常開型開關(guān),常態(tài)下按鍵的兩個(gè)觸點(diǎn)處于斷開狀態(tài),按下按鍵時(shí)他們才閉和
鍵盤類型
通常鍵盤有編碼鍵盤和非編碼鍵盤兩種。編碼鍵盤通過硬件電路產(chǎn)生被按按鍵的鍵值碼這種鍵盤使用方便,所需程序簡單,但硬件電路復(fù)雜,如計(jì)算機(jī)的鍵盤,單片機(jī)則通常不采用編碼鍵盤
而軟件程序來識別的稱為非編碼鍵盤,非編碼鍵盤的硬件電路簡單
在單片機(jī)組成的各種系統(tǒng)中,最常用的是非編碼鍵盤
獨(dú)立鍵盤和矩陣鍵盤的特點(diǎn)
非編碼鍵盤分為獨(dú)立鍵盤和矩陣鍵盤
獨(dú)立鍵盤特點(diǎn):每個(gè)按鍵占用一個(gè)I/O口,當(dāng)按鍵數(shù)量較多時(shí),IO口利用率不高,但程序簡單,適用于所需按鍵較少的場合
矩陣鍵盤特點(diǎn):電路連接復(fù)雜,但提高了Io口利用率,軟件編程較復(fù)雜,適用于使用大量按鍵的場合
相關(guān)原理圖分析:
按鍵一端與IO口相連接,另外一端接地,通過控制IO口輸出高電平即可檢測按鍵是否按下,當(dāng)按下時(shí)IO口會被拉低,松開后IO口回到高電平。
按鍵特性
機(jī)械按鍵在按下或松開時(shí)會存在抖動(dòng)現(xiàn)象
矩陣鍵盤
矩陣鍵盤識別方法
矩陣鍵盤相對于獨(dú)立鍵盤要復(fù)雜一些。右圖矩陣鍵盤一共有4行和4列一共16個(gè)按鍵組成。
確定矩陣鍵盤上哪一個(gè)按鍵被按下可以采用列掃描和行掃描。列掃描時(shí)先把接在列上面的所有IO口拉高,接在行上面的所有IO口置低。 當(dāng)其中有一列內(nèi)任何一個(gè)按鍵按下,那么整條列線都會被拉低
8*8點(diǎn)陣
LED點(diǎn)陣屏簡介
LED點(diǎn)陣屏通過LED(發(fā)光二極管)組成,以燈珠亮滅來顯示文字、圖片、動(dòng)畫、視頻等
中斷系統(tǒng)
:
什么是中斷系統(tǒng)
基本解釋:
計(jì)算機(jī)執(zhí)行某程序時(shí),發(fā)生了緊急事件或有特殊請求,CPU暫停某程序的執(zhí)行,轉(zhuǎn)而去處理上述事件或請求,處理完畢后再重新執(zhí)行某程序的過程叫做中斷
中斷分為四個(gè)步驟:請求–響應(yīng)–處理—返回
1.數(shù)據(jù)的輸入/輸出傳送方式
無條件傳送方式
一方對另一方來說總是準(zhǔn)備好的。
查詢傳送方式:
傳送前一方先查詢另一方的狀態(tài),若已經(jīng)準(zhǔn)備好就傳送,否則就繼續(xù)查詢/等待。
中斷傳送方式(IRQ):
一方通過申請中斷的方式與另一方進(jìn)行數(shù)據(jù)傳送
直接存儲器存取方式(DMA):
雙方直接通過總線傳送數(shù)據(jù),不經(jīng)CPU中轉(zhuǎn)。適用于數(shù)據(jù)量大高速通訊的設(shè)備不占用CPU時(shí)間
2.中斷傳送方式特點(diǎn)
數(shù)據(jù)傳送的雙方平時(shí)各自做自己的工作,一旦甲方要求與乙方進(jìn)行數(shù)據(jù)傳送,就主動(dòng)發(fā)出信號提出申請,乙方接到申請后若同意傳送,安排好當(dāng)前的工作,再響應(yīng)與甲方發(fā)生數(shù)據(jù)傳送。完事后,回去繼續(xù)做打斷前的工作
中斷功能強(qiáng)弱是計(jì)算機(jī)性能優(yōu)劣的重要標(biāo)志
提高CPU效率 解決速度矛盾 實(shí)現(xiàn)并行工作
對中斷源 斷點(diǎn) 中斷系統(tǒng)過程描述的了解
51子系列允許5個(gè)中斷源
外部中斷源(2個(gè)):
INT0——由P3.2端口線引入,低電平或下降沿引起。
INT1——由P3.3端口線引入,低電平或下降沿引起。
這兩個(gè)外部中斷源標(biāo)志和它們的觸發(fā)方式控制位由特殊功能寄存器TCON的低4位控制。
內(nèi)部中斷源(3個(gè)):
T0——定時(shí)器/計(jì)數(shù)器0中斷,由T0回零溢出引起。
T1——定時(shí)器/計(jì)數(shù)器1中斷,由T1回零溢出引起。
TI/RI——串行I/O中斷,串行端口完成一幀字符發(fā)送/接收后引起。
這3個(gè)內(nèi)部中斷源的控制位分別鎖存在特殊功能寄存器TCON和SCON中
51單片機(jī)中斷系統(tǒng)內(nèi)部結(jié)構(gòu)圖
定時(shí)/計(jì)數(shù)器
串口通信
計(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ù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送
并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時(shí)成本高且接收方的各位同時(shí)接受存在困難
串行通信是指,使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位的依次傳輸,每一位數(shù)據(jù)占據(jù)一個(gè)固定的時(shí)間長度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于計(jì)算機(jī)與計(jì)算機(jī),計(jì)算機(jī)與外設(shè)之間的遠(yuǎn)距離通信
串行通信的特點(diǎn):傳輸線少,長距離傳送時(shí)成本低,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
串行通信又可以分為異步通信和同步通信。
異步通信是指通信的發(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ù)倍
串行通信常見的錯(cuò)誤效驗(yàn)
1.奇偶效驗(yàn)
在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)位尾隨的一位為奇偶效驗(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í),對”1“的個(gè)數(shù)進(jìn)行效驗(yàn),若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯(cuò)。
2.代碼和效驗(yàn)
代碼和效驗(yàn)是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個(gè)字節(jié)的效驗(yàn)字符(效驗(yàn)和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時(shí)對數(shù)據(jù)塊(除效驗(yàn)字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的”效驗(yàn)和“進(jìn)行比較,相符則無差錯(cuò),否則即認(rèn)為傳送過程中出現(xiàn)了差錯(cuò)。
3.循環(huán)冗余效驗(yàn)
這種效驗(yàn)是通過某種數(shù)學(xué)運(yùn)算實(shí)現(xiàn)有效信息與效驗(yàn)位之間的循環(huán)效驗(yàn),常用于對磁盤信息的傳輸、存儲區(qū)的完整性效驗(yàn)等。這種效驗(yàn)方法糾錯(cuò)能力強(qiáng),廣泛應(yīng)用于同步通信中。
傳輸速率:比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:
串行通信接口標(biāo)準(zhǔn)
一、RS–232C接口
總結(jié)
- 上一篇: 常见的三个网络协议的区别:TCP/IP、
- 下一篇: 流水线上的思考——异步程序开发模型(2)