(一)泣栈、單板機(jī)
將CPU芯片卜高、存儲(chǔ)器芯片弥姻、I/O接口芯片和簡(jiǎn)單的I/O設(shè)備(小鍵盤(pán)、LED顯示器)等裝配在一塊印刷電路板上掺涛,再配上監(jiān)控程序(固化在ROM中)庭敦,就構(gòu)成了一臺(tái)單板微型計(jì)算機(jī)(簡(jiǎn)稱(chēng)單板機(jī))
(二)、單片機(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)的布爾處理器可霎。
ROM:只讀存儲(chǔ)器(Read-Only Memory魄鸦,ROM)以非破壞性讀出方式工作,只能讀出無(wú)法寫(xiě)入信息癣朗。信息一旦寫(xiě)入后就固定下來(lái)拾因,即使切斷電源,信息也不會(huì)丟失旷余,所以又稱(chēng)為固定存儲(chǔ)器盾致。
總結(jié):只讀存儲(chǔ)器,掉電不丟失數(shù)據(jù)荣暮,一般用來(lái)存儲(chǔ)程序庭惜。
RAM:隨機(jī)存取存儲(chǔ)器(英語(yǔ):Random Access Memory,縮寫(xiě):RAM)穗酥,也叫主存护赊,是與CPU直接交換數(shù)據(jù)的內(nèi)部存儲(chǔ)器。它可以隨時(shí)讀寫(xiě)(刷新時(shí)除外)砾跃,而且速度很快骏啰,通常作為操作系統(tǒng)或其他正在運(yùn)行中的程序的臨時(shí)數(shù)據(jù)存儲(chǔ)介質(zhì)。
總結(jié):隨機(jī)存儲(chǔ)器抽高,掉電丟失數(shù)據(jù)判耕,一般用來(lái)存儲(chǔ)變量。
(三)翘骂、單片機(jī)能做什么
工業(yè)自動(dòng)化:數(shù)據(jù)采集壁熄、測(cè)控技術(shù)帚豪。
智能儀器儀表:數(shù)字示波器、數(shù)字信號(hào)源草丧、數(shù)字萬(wàn)用表狸臣、感應(yīng)電流表等。
消費(fèi)類(lèi)電子產(chǎn)品:洗衣機(jī)昌执、電冰箱烛亦、空調(diào)機(jī)、電視機(jī)懂拾、微波爐煤禽、手機(jī)、IC卡岖赋、汽車(chē)電子設(shè)備等呜师。
通訊方面:調(diào)制解調(diào)器、程控交換技術(shù)贾节、手機(jī)、小靈通等衷畦。
武器裝備:飛機(jī)栗涂、軍艦、坦克祈争、導(dǎo)彈斤程、航天飛機(jī)、魚(yú)雷制導(dǎo)菩混、智能武器等忿墅。
凡是與控制或簡(jiǎn)單計(jì)算有關(guān)的電子設(shè)備都可以用單片機(jī)來(lái)實(shí)現(xiàn),根據(jù)具體實(shí)際情況還可以選擇不同性能的單片機(jī)沮峡,如:atmel,stc,pic,avr,凌陽(yáng)疚脐,80C51,arm等邢疙。
(四)棍弄、80C51系列單片機(jī)
80C51是MCS-51系列中的一個(gè)典型品種,其它廠商以8051為基核開(kāi)發(fā)出的CMOS工藝單片機(jī)產(chǎn)品統(tǒng)稱(chēng)為80C51系列疟游。
80C51系列單片機(jī)主要產(chǎn)品有:
l Intel的:80C31呼畸、80C51、87C51颁虐,80C32蛮原、80C52、87C52等另绩;
l ATMEL的:89C51儒陨、89C52花嘶、89C2051等;
l Philips框全、華邦察绷、Dallas、STC津辩、Siemens(Infineon)等公司的許多產(chǎn)品拆撼;
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外部寫(xiě)控制
P3.7:RD外部讀控制
8051內(nèi)部結(jié)構(gòu):
總線:
總線(BUS)是計(jì)算機(jī)各部件之間傳送信息的公共通道。微機(jī)中有內(nèi)部總線和外部總線兩類(lèi)喘沿。內(nèi)部總線是CPU內(nèi)部之間的連線闸度。外部總線是指CPU與其它部件之間的連線。 外部總線有三種: 數(shù)據(jù)總線DB(Data Bus), 地址總線 AB(Address Bus)和控制總線 CBControl Bus)蚜印。
內(nèi)部資源:
CPU:由運(yùn)算和控制邏輯組成莺禁,同時(shí)還包括中斷系統(tǒng)和部分外部特殊
功能寄存器;
RAM:用以存放可以讀寫(xiě)的數(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)及性能欺税。
機(jī)器周期和指令周期:
振蕩周期: 也稱(chēng)時(shí)鐘周期, 是指為單片機(jī)提供時(shí)鐘脈沖信號(hào)的振蕩源的周期糜芳,一般為12MHZ(通過(guò)晶振產(chǎn)生)。
狀態(tài)周期: 每個(gè)狀態(tài)周期為時(shí)鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的魄衅。
機(jī)器周期: 一個(gè)機(jī)器周期包含 6 個(gè)狀態(tài)周期S1~S6, 也就是 12 個(gè)時(shí)鐘周期峭竣。 在一個(gè)機(jī)器周期內(nèi), CPU可以完成一個(gè)獨(dú)立的操作。
指令周期: 它是指CPU完成一條操作所需的全部時(shí)間晃虫。 每條指令執(zhí)行時(shí)間都是有一個(gè)或幾個(gè)機(jī)器周期組成皆撩。MCS - 51 系統(tǒng)中, 有單周期指令、雙周期指令和四周期指令。
(五)扛吞、單片機(jī)最簡(jiǎn)程序與最小系統(tǒng)
5.1呻惕、開(kāi)發(fā)環(huán)境的搭建
1、首先安裝KEIL C51 Version 9.00滥比,雙擊C51V900.exe亚脆,直接下一步...下一步...傻瓜安裝就好,遇到需要填寫(xiě)的信息盲泛,直接空格就好濒持。
2、準(zhǔn)備好軟件stc-isp寺滚,這個(gè)軟件不需要安裝柑营,是一個(gè)上位機(jī)程序,用于把寫(xiě)好的C語(yǔ)言程序上次給單片機(jī)村视,下載好軟件之后雙擊就可以運(yùn)行官套,可以發(fā)送到桌面快捷方式。
3蚁孔、安裝USB轉(zhuǎn)TTL的下載器奶赔,安裝PL2303,雙擊安裝即可杠氢。
下載地址:
鏈接:https://pan.baidu.com/s/1kcludXeInbRJm48wLfevVA
提取碼:fpnv
5.2站刑、KEIL建立工程
1、首先創(chuàng)建一個(gè)文件夾修然,用來(lái)存放工程文件,文件夾名稱(chēng)可以為中文质况。
2愕宋、打開(kāi)軟件KEIL,Project ->new uVision Project结榄,選擇剛才新建的文件夾中贝,輸入項(xiàng)目的名稱(chēng),然后點(diǎn)擊保存臼朗,這里我們需要選擇單片機(jī)的型號(hào)邻寿,選擇Atmel公司的AT89C52即可,當(dāng)然也可以選擇AT89C51RC视哑,內(nèi)核是一樣的绣否,所以可以通用。
這是是否需要添加單片機(jī)啟動(dòng)代碼挡毅,點(diǎn)擊是就可以了蒜撮。
下圖的STARTUP.A51就是單片機(jī)的啟動(dòng)文件,使用匯編寫(xiě)的。
3段磨、我們找到我們創(chuàng)建的工程文件夾取逾,在里面新建一個(gè)文本文檔,隨便一個(gè)重命名,但是文件的擴(kuò)展名稱(chēng)改為.c的文件,這樣就建立了一個(gè)C文件豹休。點(diǎn)擊Source Group1文件夾跃赚,右鍵Add File to Group “****Source Group1****”****,把我們的C文件添加進(jìn)去即可辽狈。
5.2、最小系統(tǒng)電路圖
5.2.1、物料準(zhǔn)備:
51單片機(jī)STC89C52RC X 1:2020年這個(gè)型號(hào)的單片機(jī)入門(mén)使用的比較多邑时。
按鍵開(kāi)關(guān) X 1:這個(gè)開(kāi)關(guān)用來(lái)做復(fù)位電路使用。
電阻10K X 1:用在復(fù)位電路上特姐。
12M的晶振 X 1:晶振是為單片機(jī)提供一個(gè)基本震蕩源晶丘,也就相當(dāng)于人體的心跳,沒(méi)有震蕩源單片機(jī)是無(wú)法啟動(dòng)的唐含。
10uf電解電容 X1 和30pf瓷片電容 X 2:瓷片電容作用是濾除晶振工作時(shí)產(chǎn)生的一下諧波浅浮,電解電容用在復(fù)位電路上。
最后需要一塊面包板和若干導(dǎo)線捷枯。
5.2.2滚秩、燒寫(xiě)程序:
這里我們需要一個(gè)USB轉(zhuǎn)TTL的燒寫(xiě)器。
長(zhǎng)相酷似一個(gè)U盤(pán)淮捆,上面有五個(gè)引腳郁油,但其實(shí)我們只需要4個(gè)就可以了,因?yàn)樯想婋妷哼@里有5V和3.3V攀痊,根據(jù)不同的單片機(jī)做出相應(yīng)的選擇桐腌,這里的STC89C52RC使用5V的上電電壓。
VCC(5V/3.3V) ------> 單片機(jī)的40引腳苟径。
GND ------> 單片機(jī)的20引腳(VSS)案站。
RXD ------> 單片機(jī)的11引腳(TXD)。
TXD ------> 單片機(jī)的10引腳(RXD)棘街。
RXD和TXD是信號(hào)線:
RXD蟆盐,全稱(chēng)receive external data,即接收外部設(shè)備傳來(lái)的數(shù)據(jù)遭殉,也稱(chēng)為接收數(shù)據(jù)的引腳石挂。
TXD,全稱(chēng)transmit external data险污,即發(fā)送給外部設(shè)備的數(shù)據(jù)誊稚,也稱(chēng)為發(fā)送數(shù)據(jù)的引腳。
5.2.3、里伯、實(shí)物電路連接
右邊的RGB燈珠是為后面的測(cè)試程序準(zhǔn)備的城瞎。
5.2.4疾瓮、單片機(jī)最簡(jiǎn)單程序
程序測(cè)試:
# include "reg52.h"
// set bit 4組IO口p0 p1 p2 p3 狼电、每一組都有八個(gè)針p10 p12 p13.....
sbit LED_R = P1^1;
sbit LED_G = P1^2;
sbit LED_B = P1^3;
void main()
{
// 實(shí)現(xiàn)燈的閃爍强窖。
int i;
while(1)
{
LED_B = 1;
LED_R = 1;
LED_G = 1;
for(i=0; i<30000; i++); // 程序等待
LED_B = 1;
LED_R = 0;
LED_G = 0;
for(i=0; i<30000; i++);
LED_B = 1;
LED_R = 1;
LED_G = 0;
for(i=0; i<30000; i++);
LED_B = 1;
LED_R = 0;
LED_G = 1;
for(i=0; i<30000; i++);
LED_B = 0;
LED_R = 0;
LED_G = 0;
for(i=0; i<30000; i++);
}
}
5.2.5髓抑、編譯程序:
編譯程序執(zhí)行褪猛,要設(shè)置一下伊滋,點(diǎn)擊下圖左上角的圖標(biāo),生成.HEX文件燥撞。
然后點(diǎn)擊下方的第2個(gè)按鈕戏锹,進(jìn)行編譯。
5.2.6、使用上位機(jī)燒寫(xiě)程序
選擇一個(gè)單片機(jī)型號(hào),然后點(diǎn)擊“打開(kāi)程序文件”脚翘,選擇我們生成的.HEX文件沃于,點(diǎn)擊“下載/編程”揽涮,然后這里需要給單片機(jī)重新上電,可以拔掉燒寫(xiě)器的VCC引腳然后再插上即可雪标。