51单片机雾化片自动扫频程序_单片机简介
單片機(jī)簡介
數(shù)字電路簡介
在一個(gè)控制系統(tǒng)中, 單片機(jī)是電路的一部分, 單片機(jī)中的程序是針對其所在的電路編寫
的。因此,要對單片機(jī)編程并實(shí)現(xiàn)一定的功能,必須了解整個(gè)系統(tǒng)的電路圖。單片機(jī)編程是
針對某個(gè)特定的電路進(jìn)行的單片機(jī)編程是針對某個(gè)特定的電路進(jìn)行的, 這一點(diǎn)和普通的編程不一樣。 編程時(shí)很可能要經(jīng)常參照電路圖。與單片機(jī)直接相關(guān)的電路大都是數(shù)字電路。 數(shù)字電路各部分的功能十分明確, 因此相對比較容易掌握。
簡單地說,數(shù)字電路就是只有“0”和“1”兩種信號的電路。判別信號究竟是“0”還
是“1”是通過電壓的大小(常稱作“電平” )來判斷的。不同的數(shù)字器件的電平判斷標(biāo)準(zhǔn)是
不一樣的。常用的數(shù)字器件以高電平(超過某一閾值的電平)作為邏輯“1” ,以低電平(低
于某一閾值的電平)作為邏輯“0” 。其中高電平閾值大于低電平閾值,處于高電平閾值與低
電平閾值之間的電壓是無效的。 高電平閾值與低電平閾值的具體值與數(shù)字器件的供電電壓有
關(guān),如 AT89S51 單片機(jī)的高電平閾值為(0.2Vcc+0.9)V,低電平閾值為(0.2Vcc-0.1)V,
其中 Vcc 為單片機(jī)的供電電壓。 早年常用的數(shù)字器件的額定供電電壓為 5V, 現(xiàn)在 3.3V、 1.8V
等電壓的數(shù)字器件已經(jīng)大量使用了。在 Easy 51 Kit Pro 中,我們?nèi)允褂?5V 供電的單片機(jī)。
另外,還有一種 RS-232 電平標(biāo)準(zhǔn),以-12V~-5V 作為邏輯“1” ,以 5V~12V 作為邏輯“0” 。
電腦上的串口都符合 RS-232 標(biāo)準(zhǔn)。還有一個(gè)“地”的概念。在電路中“地”并不是通常意義中的地,而是指電路中的一點(diǎn),這一點(diǎn)的電壓被人為地規(guī)定為 0V。
MCS-51 單片機(jī)簡介
目前生產(chǎn)單片機(jī)產(chǎn)品的公司非常多, 當(dāng)中較有影響力的有 intel 公司推出的 MCS-51 系
列等。很多公司的產(chǎn)品都是與 MCS-51 架構(gòu)兼容(MCS-51 compatible)的。本資料中采用的
atmel 公司的 AT89C51/52 或 AT89S51/52 單片機(jī),就是兼容 MCS-51 架構(gòu)的單片機(jī)。
Atmel 公司的 AT89C51( 以后簡稱“C51”)、AT89C52( 以后簡稱“C52”)、AT89C2051
( 以后簡稱“C2051”)以及 C51、C52 的換代產(chǎn)品 AT89S51( 以后簡稱“S51”)、AT89S52
( 以后簡稱“S52”)容易上手、價(jià)格低廉(不超過 10 元/片)、資料豐富,是初學(xué)者入門
時(shí)廣泛采用的單片機(jī)。
C51 擁有 4096 字節(jié)(1 字節(jié)=8 位)的片內(nèi)程序存儲(chǔ)器、128 字節(jié)的 RAM、32 個(gè) I/O 口、
兩個(gè)定時(shí)器、6 個(gè)中斷源、一個(gè)串口等。C52、C2051 的資源與 C51 差別不大,其中 C52 的片
內(nèi)程序存儲(chǔ)器為 8192 字節(jié)、RAM 為 256 節(jié)、定時(shí)器有 3 個(gè),其它與 C51 一樣; C2051 的片
內(nèi)程序存儲(chǔ)器為 2048 字節(jié)、I/O 口只有 15 個(gè),另比 C51 多了一個(gè)模擬比較器,工作電壓范
圍比較寬,為 2.7V~6V(C51/52、S51/52 為 4.5~5.5V),其它與 C51 一樣。
I/O、 定時(shí)器、 中斷、 串口等資源的用法在后面有詳細(xì)介紹。 這里只對程序存儲(chǔ)器與 RAM
作一下說明。單片機(jī)程序代碼經(jīng)過編譯(C 程序)或匯編(匯編程序)后,要把編譯或匯編
得到的代碼文件(一般來說編譯得到 hex 格式文件、匯編得到 bin 格式文件)燒寫到單片機(jī)
內(nèi),存放這個(gè)程序的地方就是程序存儲(chǔ)器。顯而易見,單片機(jī)的程序存儲(chǔ)器越大,我們就可
以把越大、越復(fù)雜的程序放進(jìn)去。如果我們編寫的程序太大,那么單片機(jī)的程序存儲(chǔ)器就有
可能會(huì)放不下這個(gè)程序。這時(shí),解決辦法就只有精簡代碼、外接程序存儲(chǔ)器(前提是所用的
單片機(jī)支持使用外部程序存儲(chǔ)器)或采用程序存儲(chǔ)器容量更大的單片機(jī)。RAM 是單片機(jī)程序
運(yùn)行時(shí)存放變量的地方,常量也可以放在 RAM 中。C51 中的 RAM 大小為 128 字節(jié),這就是說
單片機(jī)程序中最多只能同時(shí)存在 128 個(gè) unsigned char 型的變量或 64 個(gè) unsigned int 型的
變量(在 Keil 環(huán)境中,int 型變量的長度為 16 位,這與 VC 的 32 位不一樣)或者是相應(yīng)的
中國科學(xué)技術(shù)大學(xué)業(yè)余無線電協(xié)會(huì) 各種不同類型變量的組合。 可以看出, 單片機(jī)程序所允許的規(guī)模比 Windows 或其它操作系統(tǒng)環(huán)境下的程序要小得多。編寫單片機(jī)程序時(shí)一定要注意不要濫用資源。
S51 與 S52 分別是 C51、C52 的換代產(chǎn)品。從用戶的角度看,S5x 單片機(jī)比相對應(yīng)的 C5x
單片機(jī)多了看門狗與在線編程 (ISP) 功能, 另外最高運(yùn)行速度有所增加 (C5x 最高支持 24MHz
的時(shí)鐘頻率, 而 S5x 最高支持 33MHz 的時(shí)鐘頻率, 但市面上比較容易買到的 S5x 單片機(jī)仍只
最高支持 24MHz 的時(shí)鐘頻率)。看門狗的使用在后面會(huì)有詳細(xì)介紹,我們來看看單片機(jī)的在線編程(ISP)功能。要把程序燒寫到 AT89C 系列單片機(jī)中, 最常用的做法是把單片機(jī)插入專用的編程器中, 通過編程器把程序燒到單片機(jī)里。 這樣做的麻煩之處是在調(diào)試程序時(shí), 編程者對程序作出的每次修改,都要把單片機(jī)從電路中拔出來,插到編程器,燒好后又要把單片機(jī)重新插回電路板。可以想
象,這種工作是吃力不討好的。利用 S5x 單片機(jī)的 ISP 功能,我們就無須來回插拔單片機(jī),
只要在電路中把單片機(jī)的 ISP 編程引腳接出來, 并且這幾個(gè)引腳所接的外圍電路對 ISP 沒有
影響,就可以用 ISP 編程器對單片機(jī)進(jìn)行燒寫了。另外,支持 AT89C 系列單片機(jī)的編程器成
本要比 ISP 下載線高最少幾倍。一根并口 ISP 下載線的成本僅幾元錢。
除了 S 系列、C 系列外,atmel 公司的 MCS-51 兼容產(chǎn)品也有其它系列,它們的主要區(qū)
別在于供作電壓范圍,在此就不作介紹了。
值得注意的是,一片單片機(jī)可以反復(fù)擦寫的次數(shù)是有限的,atmel 的 C 系列、S 系列單
片機(jī)的聲稱可重復(fù)擦寫次數(shù)為 1000 次。
下面以 S52 為例,對其引腳功能一一作出說明。C51、C52 以及 S51 的引腳功能與 S52
大致相同,如有遇到不同的地方會(huì)用 粗斜體字 特別說明。
單片機(jī)程序指令的執(zhí)行是以振蕩器的振蕩來驅(qū)動(dòng)的。在MCS-51架構(gòu)中,每12個(gè)振蕩器
周期組成一個(gè)指令周期(或稱機(jī)器周期)。單片機(jī)執(zhí)行指令的時(shí)間是以指令周期為單位的。
不同指令的執(zhí)行時(shí)間可能是不同的,一條指令的執(zhí)行時(shí)間最短為一個(gè)指令周期。
在MCS-51架構(gòu)中,每12個(gè)振蕩器
周期組成一個(gè)指令周期(或稱機(jī)器周期)。單片機(jī)執(zhí)行指令的時(shí)間是以指令周期為單位的。
不同指令的執(zhí)行時(shí)間可能是不同的,一條指令的執(zhí)行時(shí)間最短為一個(gè)指令周期。因此,單
片機(jī)所接的振蕩器頻率越高,它執(zhí)行指令的速度就越快。
型號同樣為AT89S52的芯片,在其后面還有頻率編號,有24MHz和33MHz等可選。讀者在
購買和選用時(shí)要注意了。 如AT89S52 24PC就是最高振蕩頻率為24MHz,40P6封裝的普通商用芯
片。單片機(jī)芯片后綴的詳細(xì)含義可見相應(yīng)單片機(jī)數(shù)據(jù)手冊的Ordering Information。
復(fù)位 RST 9
復(fù)位
在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24個(gè)振蕩周期)以上的高電平出現(xiàn)在此引腳時(shí),將
使單片機(jī)復(fù)位,只要這個(gè)引腳保持高電平,單片機(jī)便一直處于復(fù)位狀態(tài)。復(fù)位后P0~P3口均
置1,引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位引腳由高電平
變?yōu)榈碗娖綍r(shí),芯片從ROM的00H處開始運(yùn)行程序。復(fù)位操作不會(huì)對內(nèi)部RAM有所影響。常用
的復(fù)位電路如圖2.4所示。當(dāng)單片機(jī)上電時(shí),由于電容的作用,RST引腳會(huì)處于短暫的高電平
狀態(tài),直到電容充電到一定程度時(shí),RST引腳的電平會(huì)被8.2K的電阻拉低,單片機(jī)開始運(yùn)行
程序。圖中的按鍵為手動(dòng)復(fù)位按鍵,當(dāng)按下復(fù)位按鍵后,RST引腳會(huì)被1K的電阻上拉至高電
平, 單片機(jī)復(fù)位, 按鍵松開后, RST恢復(fù)低電平, 單片機(jī)重新從程序存儲(chǔ)器的00H處運(yùn)行程序。
手動(dòng)復(fù)位按鍵在單片機(jī)的最小系統(tǒng)中并不是必須的,但對單片機(jī)的復(fù)位控制會(huì)方便些。
常用的復(fù)位電路
輸入輸出引腳
(1)P0端口[P0.0~P0.7] P0是一個(gè)8位漏極開路型雙向I/O端口, 端口置1 (對端口寫1)
時(shí)作高阻抗輸入端端口置1 (對端口寫1)時(shí)作高阻抗輸入端。作為輸出口時(shí)能驅(qū)動(dòng)8個(gè)TTL。 P0端口要外接上拉電阻。
(2)P1端口[P1.0~P1.7] P1是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。 輸出時(shí)可驅(qū)
動(dòng)4個(gè)TTL。 端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存
儲(chǔ)器編程時(shí),接收低8位地址信息。除此之外P1端口還用于一些專門功能,
3)P2端口[P2.0~P2.7] P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。 輸出時(shí)可驅(qū)
動(dòng)4個(gè)TTL。 端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存
儲(chǔ)器編程時(shí),接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口
送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí)其引腳上的內(nèi)容在此期間不會(huì)改變。
(4)P3端口[P3.0~P3.7] P2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/0端口。 輸出時(shí)可驅(qū)
動(dòng)4個(gè)TTL。 端口置1時(shí),內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存
儲(chǔ)器編程時(shí),接控制信息。除此之外P3端口還用于一些專門功能,
其它的控制或復(fù)用引腳
(1)ALE/-PROG 30 訪問外部存儲(chǔ)器時(shí),ALE(地址鎖存允許)的輸出用于鎖存地址的
低位字節(jié)。 即使不訪問外部存儲(chǔ)器, ALE端仍以不變的頻率輸出脈沖信號(此頻率是振蕩器頻
率的1/6)。在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),出現(xiàn)一個(gè)ALE脈沖。對Flash存儲(chǔ)器編程時(shí),這個(gè)引腳
用于輸入編程脈沖PROG。
(2)PSEN 29 該引腳是外部程序存儲(chǔ)器的選通信號輸出端。 當(dāng)S52由外部程序存儲(chǔ)器取
指令或常數(shù)時(shí),每個(gè)機(jī)器周期輸出2個(gè)脈沖即兩次有效。但訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將不會(huì)
有脈沖輸出。
(3)-EA/Vpp 31 外部訪問允許端。當(dāng)該引腳訪問外部程序存儲(chǔ)器時(shí),應(yīng)輸入低電平。
要使S52只訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),這時(shí)該引腳必須保持低電平。當(dāng)使
用內(nèi)部的程序存儲(chǔ)器時(shí),此引腳應(yīng)與Vcc相連。當(dāng)使用內(nèi)部的程序存儲(chǔ)器時(shí),此引腳應(yīng)與Vcc相連。對Flash存儲(chǔ)器編程時(shí),用于施加Vpp編程電壓。
C2051 的引腳功能與 C51 相仿,在此不另外介紹了
總結(jié)
以上是生活随笔為你收集整理的51单片机雾化片自动扫频程序_单片机简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑苹果找不到触控板_猫和老鼠手游:好友位
- 下一篇: php7.0康乐安装_Ubuntu安装p