找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6106|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

proteus和c51的學(xué)習筆記

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:94349 發(fā)表于 2015-11-3 20:41 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
一、        什么是單片機?
單片機是將中央處理器(CPU)、隨機存儲器(RAM)、只讀存儲器(ROM)、定時器芯片和一些輸入輸出接口(IO)集成在一個芯片上的微控制器(Micor-Controller)。
CPU包括運算器、控制器和寄存器三個主要部分,是單片機的核心;RAM可以被CPU隨機的讀寫,斷電后存儲的內(nèi)容消失;ROM中的信息只能被讀取,一般用于存放固定的程序,其中的內(nèi)容一般要采用專門的設(shè)備寫入;IO接口是單片機與外部進行數(shù)據(jù)交換的通道,程序、數(shù)據(jù)以及現(xiàn)場信息需要進行輸入,常用的有鍵盤、AD等,而計算結(jié)果需要進行輸出,一般用LED、DA、電機等輸出。
在個人計算機上這些部份被分成若干塊芯片,安裝一個稱之為主板的印刷線路板上。而在單片機中,這些部份,全部被做到一塊集成電路芯片中了,所以就稱為單片(單芯片)機,而且有一些單片機中除了上述部份外,還集成了其它部份如A/D,D/A等。天!這么多東西做在一起,還不得買個天價!再說這塊芯片也得非常大了。
不,價格并不高,從幾元人民幣到幾十元人民幣,體積也不大,一般用40腳封裝,當然功能多一些單片機也有引腳比較多的,如68引腳,功能少的只有10多個或20多個引腳,有的甚至只8只引腳。
為什么會這樣呢?功能有強弱,打個比方,市場上面有的組合音響一套才賣幾百塊錢,可是有的一臺功放機就要賣好幾千。另外這種芯片的生產(chǎn)量很大,技術(shù)也很成熟,51系列的單片機已經(jīng)做了十幾年,所以價格就低了。
既然如此,單片機的功能肯定不強,干嗎要學(xué)它呢?
話不能這樣說,實際工作中并不是任何需要計算機的場合都要求計算機有很高的性能,一個控制電冰箱溫度的計算機難道要用PIII?應(yīng)用的關(guān)鍵是看是否夠用,是否有很好的性能價格比。所以8051出來十多年,依然沒有被淘汰,還在不斷的發(fā)展中。
為了便于理解,可以將其與PC機進行一個比較。
為了形象認識,看一個常用的MCS-51的單片機外形。MCS-51單片機是指由美國Intel公司生產(chǎn)的一系列單片機的總稱。如80C31、80C51、80C32、80C52、87C52等。其中80C51是最早、最典型的產(chǎn)品,其他都是在80C51上面進行功能的增減改變而來的。所以,習慣上用80C51來稱呼MCS-51系列單片機。
后來,Intel 公司將MCS-51的核心技術(shù)授權(quán)給了很多期他公司,所以,有很多公司開發(fā)有以80C51為核心的單片機。
常用的除了Intel公司的之外,還有:Atmel公司:89C51、89C52、89C2051等;Philips/Signetics公司:AMD:Siemens(Infineon)公司:Dallas公司:等等。
當然,除了常用的51系列單片機之外,還有一些其它的單片機系列,如摩托羅拉、PIC等系列,但是由于不兼容、指令系統(tǒng)也不相同,在此不做介紹。
二、        單片機能夠干什么
單片機的應(yīng)用十分廣泛,在工業(yè)控制領(lǐng)域、家電產(chǎn)品、智能化儀器儀表、計算機外部設(shè)備,特別是機電一體化產(chǎn)品中,都有十分重要的用途。主要用于:
顯示:通過單片機控制發(fā)光二極管或者液晶,顯示特定的圖形和字符;
機電控制:通過單片機控制機電產(chǎn)品做定時或者定向的動作;
檢測:通過單片機和傳感器的聯(lián)合使用,用來檢測產(chǎn)品或者工況的意外發(fā)生;
通信:通過RS232串口通信或者USB通信,傳輸數(shù)據(jù)和信號;
科學(xué)計算:用來實現(xiàn)簡單的算法。等等。
那么單片機并不是解決上述應(yīng)用的唯一選擇,目前,可以選擇的有嵌入式微機、DSP和單片機三種形式,單片機主要用于對處理速度要求不是太高,信息量不大的情況下,其主要優(yōu)勢就是價格低廉,技術(shù)成熟。
雖然單片機無論處理速度海曙容量方面都遠小于其他兩種解決方案,但是,實際工作中并不是任何需要計算機的場合都要求計算機有很高的性能。例如控制冰箱溫度的控制器就不需要采用其他結(jié)構(gòu),用一片51就可以輕松實現(xiàn),這樣才既有較好的性能價格比。51單片機目前還在不斷的發(fā)展進步,就已經(jīng)說明了它有很好的應(yīng)用前景。
三、        如何選擇51系列單片機
不同公司生產(chǎn)的51系列單片機盡管型號不盡相同,但是,都對其內(nèi)部的硬件資源,尤其是RAM和ROM的大小、IO的數(shù)目、中斷數(shù)目和定時器數(shù)據(jù)進行了相關(guān)的參數(shù)描述。在選擇時,只要能夠依據(jù)實際設(shè)計要求,保證夠用就行了。
我們實驗選擇模擬仿真,對其要求并不高,下面對51系列單片機的名稱做一個簡要說明。
例子:STC 89S52RC 40I PIDP40 1020。。
生產(chǎn)公司:商標  AD 。。
8:8051內(nèi)核;
9:Flash存儲器,不是其他形式, 速度快
C:CMOS工藝
5--
2:ROM的大小,8K,1是4K
RC 內(nèi)部隨機讀寫存儲器的大小512B,RD+ 1280B
40 最大晶振40MHz
I工業(yè)級用品-40-85   C商業(yè)用0-70  A汽車 -40-125  M軍品-55-155
PDIP 雙列直插
40 引腳數(shù)
1020:2010年第20周
后面是處理工藝、序號等。
四、        什么是單片機最小系統(tǒng)
單片機工作時,必須提供相應(yīng)的電源、晶振、復(fù)位電路,以保證單片機能夠按照一定的時序讀取內(nèi)部程序,并逐條執(zhí)行。
1、為什么要晶振
首先說晶振。簡單的將,沒有晶振,就沒有時鐘周期,就沒有辦法執(zhí)行程序,單片機無法工作。因為單片機工作時,需要一條一條的從ROM中取出指令(數(shù)據(jù)),然后一步一步的執(zhí)行。我們把這個過程稱為訪問存儲器。單片機訪問存儲器一次的時間,稱為一個機器周期,一般包含12個時鐘周期。如果選擇的晶振是12MHz,那么其時鐘周期就是1/12us,一個機器周期就是1us。
單片機的所有指令中,有一些完成的較快,需要一個機器周期,還有一些是2各機器周期,還有2個比較特殊的是4各機器周期。由于執(zhí)行的時間長短不同,又引入了指令周期的概念。將指令分為單周期指令,雙周期指令。
機器周期除了對指令執(zhí)行具有重要的意義之外,他同時也是定時器、計數(shù)器的時間基準。
2、選擇什么晶振
晶振一般分為晶體振蕩器和晶體諧振器。其中,晶體振蕩器將外圍的電容集成到振蕩器內(nèi)部,不需再另行設(shè)計晶振電路,只需要加載電源就可以,但是其體積較大,價格較貴。
我們一般是使用晶體諧振器,也就是常說的立式晶振,設(shè)計相應(yīng)的晶振電路,非常簡單,并且使用靈活,在單片集中有廣泛的使用。另外,有些時候單片機需要外接時鐘,那么就不需要接晶振了。
在晶振的選擇上,實際應(yīng)用中要依據(jù)器頻率,選擇,有很多單片機的開發(fā)板上采用非焊接的形式給出,便于更換,而在proteus中,只需要進行頻率的修改就可以正常工作了。在外圍電容大小上,一般晶振要求在8-50pF之間,經(jīng)常選擇的就是22pF。
3、通用的晶振電路
有的。下面利用proteus畫出。




4、什么是復(fù)位電路
簡單的說,單片機的復(fù)位就是和計算機的重新啟動是一個概念。任何單片機在工作之前必須進行復(fù)位,是程序開始執(zhí)行之前的一個準備工作,一般需要5ms左右的時間,這樣才能保證里面的程序從第一步開始執(zhí)行。
復(fù)位只要在單片機的RST引腳上加上高電平就可以了,并且保證5ms。
復(fù)位電路有很多種,但是從功能上講,一般有兩種,一種是電源復(fù)位,也就是單片機的啟停受電源的控制,另一種是按鍵控制,通過按鍵開關(guān)連接系統(tǒng)電源,控制單片機復(fù)位。
5、通用的復(fù)位電路
一般采用上電復(fù)位。下面利用proteus畫出。



通電時,電容兩端相當是短路,于是RST高電平。然后電源通過電阻對電容充電,RST電壓逐漸下降,降到一定程度后,為低電平,單片機開始工作。只要充電時間大于5ms就可以使單片機正常工作。
并不是必須采用這樣的復(fù)位電路,可以根據(jù)自己的需要進行設(shè)計。比如由一個22uF的電容、1k的電阻和一個IN4148二極管構(gòu)成的復(fù)位電路。其優(yōu)點是降低復(fù)位引腳的對地阻抗,可以增加抗干擾能力;同時實現(xiàn)對電容快速放電,滿足短時間復(fù)位要求。
6、電源電路
以后涉及到更多的芯片時在說,F(xiàn)在僅提及一個+5V。




在Protues中,電源一般是可以不畫出的,因此,就簡單構(gòu)成了51單片機的最小系統(tǒng)。
圖中,P0口接了一個上拉電阻,具體的作用以后講。
五、        如何利用單片機控制二極管發(fā)光
1、二極管的發(fā)光原理是什么?
發(fā)光二極管在其兩端的電壓差超出其導(dǎo)通壓降時開始工作——發(fā)光。一般情況下,這個導(dǎo)通壓降為1.7~1.9V。下面的一些數(shù)據(jù)是網(wǎng)絡(luò)上人們測量出來的結(jié)果,供參考。
?8?3        紅色的壓降為1.82~1.88V,電流5~8mA;
?8?3        綠色的壓降為1.75~1.82V,電流3~5mA;
?8?3        橙色的壓降為1.7~1.8V,電流3~5mA;
?8?3        蘭色的壓降為3.1~3.3V,電流8~10mA;
?8?3        白色的壓降為3~3.2V,電流10~15mA;(5V,Φ5mm管)。
換句話說,發(fā)光二極管工作要滿足電流電壓的要求。由于單片機系統(tǒng)的信號往往是數(shù)字信號,不是5V就是0V,所以只要將發(fā)光二極管的正負極接上相應(yīng)的電源就可以了。
如果用一個萬用表筆測量工作的二極管,發(fā)現(xiàn)其存在壓降,下圖是利用protues仿真蘭色二級管時的情況,雖然六個二極管均處于工作狀態(tài),但是亮度不同。從仿真觀察的角度看,即使在二極管上串一個10Ω的電阻,這個電阻上的壓降也有2V,那么,二極管上的壓降就是3V;當二極管串聯(lián)一個330Ω的電阻時,二極管上的壓降約為2.3V,電流8mA。




如果用紅色管來代替,其數(shù)值在仿真時是一樣的。但是,在實際使用過程中,一般采用470Ω的限流電阻(或者采用330Ω來取得較大的亮度)。限流電阻要保證二極管的點亮電流達到5~10mA,并且保證二極管的工作電流不超出單片機IO口的最大電流。
2、如何點亮發(fā)光二極管?
為了點亮一個發(fā)光二極管,我們來準備一下。
首先是protues軟件,準備好單片機AT89S52及其最小工作系統(tǒng);利用P0口作2個二極管,D1連接到P0.0上,D2連接到P0.7上。理論上講,P0.0高電平時,D1亮;P0.7低電平時,則D2亮。






然后是Keil軟件,編寫相應(yīng)的程序。代碼如下:
#include <REGX51.H>
sbit d1=P0^0;
sbit d2=P0^7;
void main()
{
while(1)
{
d1=1;
d2=0;
}
}
編譯成hex文件后下載在protues的AT89S52中,就可以看到如上圖的結(jié)果。




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

板凳
ID:382728 發(fā)表于 2021-11-20 14:37 | 只看該作者

筆記就是好看,易懂
回復(fù)

使用道具 舉報

沙發(fā)
ID:95689 發(fā)表于 2015-11-14 22:25 來自手機 | 只看該作者
筆記就是好看,易懂
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表