51START第1講——單片機(jī)入門(王澤偉)概述_第1頁
51START第1講——單片機(jī)入門(王澤偉)概述_第2頁
51START第1講——單片機(jī)入門(王澤偉)概述_第3頁
51START第1講——單片機(jī)入門(王澤偉)概述_第4頁
51START第1講——單片機(jī)入門(王澤偉)概述_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、51start第1講單片機(jī)入門 By XDLab本講重點(diǎn) 1.0 單片機(jī)概述 1.1 學(xué)習(xí)單片機(jī)的重要性 1.2 怎么學(xué)單片機(jī) 1.3 單片機(jī)基礎(chǔ)硬件 1.4 單片機(jī)基礎(chǔ)軟件 1.5 第一個(gè)程序點(diǎn)亮第一個(gè)LED; 并介紹KEIL、STC燒錄軟件的使用1.0 單片機(jī)是什么 單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng)。u單片機(jī)是一種芯片單片機(jī)是一種

2、芯片,有各種各樣的封裝和型號(hào),有各種各樣的封裝和型號(hào)u單片機(jī)單片機(jī)可以通過編程進(jìn)行控制可以通過編程進(jìn)行控制u單片機(jī)內(nèi)部包括單片機(jī)內(nèi)部包括CPUCPU、總線、存儲(chǔ)器、總線、存儲(chǔ)器、I/OI/Ou單片機(jī)外部需要配合一些器件才能發(fā)揮作用單片機(jī)外部需要配合一些器件才能發(fā)揮作用u單片機(jī)其實(shí)就是小型微機(jī)單片機(jī)其實(shí)就是小型微機(jī)u并不是所有的黑色芯片都是單片機(jī)!并不是所有的黑色芯片都是單片機(jī)!單片機(jī)的發(fā)展歷史單片機(jī)的種類為什么從51開始學(xué)? 1.51單片機(jī)使用比較廣泛,應(yīng)用比較多; 2.51單片機(jī)學(xué)習(xí)人群最多,資料比較齊全; 3.51單片機(jī)最基礎(chǔ),由簡單入手,掌握單片機(jī)學(xué)習(xí)方法,再去學(xué)高級的單片機(jī), 如AVR

3、、430、ARM。 幾種常見單片機(jī)簡介 51單片機(jī) 是對所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來隨著Flash rom技術(shù)的發(fā)展,8031單片機(jī)取得了長足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長的一段時(shí)間內(nèi)將占有大量市場。51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。 MSP430系列單片機(jī)是美國德州儀器(TI)1996年開始推向市場的一種16位超低功耗、具有精簡指令集(RISC)的混合信號(hào)處理器(Mixe

4、d Signal Processor)。稱之為混合信號(hào)處理器,是由于其針對實(shí)際應(yīng)用需求,將多個(gè)不同功能的模擬電路、數(shù)字電路模塊和微處理器集成在一個(gè)芯片上,以提供“單片機(jī)”解決方案。該系列單片機(jī)多應(yīng)用于需要電池供電的便攜式儀器儀表中。 AVR單片機(jī)是1997年由ATMEL公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC(Reduced Instruction Set CPU) 精簡指令集高速8位單片機(jī)??梢詮V泛應(yīng)用于計(jì)算機(jī)外部設(shè)備、工業(yè)實(shí)時(shí)控制、儀器儀表、通訊設(shè)備、家用電器等各個(gè)領(lǐng)域。RISC(精簡指令系統(tǒng)計(jì)算機(jī))是相對于CISC(復(fù)雜指令系統(tǒng)計(jì)算機(jī))而言的。RISC 并非只是簡單地去減少指令,而是通

5、過使計(jì)算機(jī)的結(jié)構(gòu)更加簡單合理而提高運(yùn)算速度的。RISC 優(yōu)先選取使用頻率最高的簡單指令,避免復(fù)雜指令:并固定指令寬度,減少指令格式和尋址方式的種類,從而縮短指令周期,提高運(yùn)行速度。由于 AVR 采用了 RISC 的這種結(jié)構(gòu),使AVR系列單片機(jī)都具備了1MIPS/MHz(百萬條指令每秒/兆赫茲)的高速處理能力。幾種常見單片機(jī)簡介 STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M內(nèi)核。按內(nèi)核架構(gòu)分為不同產(chǎn)品:其中STM32F1系列有、STM32F103“增強(qiáng)型”系列、STM32F101“基本型”系列、STM32F105、STM32F107“互連型”系列

6、。增強(qiáng)型系列時(shí)鐘頻率達(dá)到72MHz,是同類產(chǎn)品中性能最高的產(chǎn)品;基本型時(shí)鐘頻率為36MHz,以16位產(chǎn)品的價(jià)格得到比16位產(chǎn)品大幅提升的性能,是32位產(chǎn)品用戶的最佳選擇。兩個(gè)系列都內(nèi)置32K到128K的閃存,不同的是SRAM的最大容量和外設(shè)接口的組合。時(shí)鐘頻率72MHz時(shí),從閃存執(zhí)行代碼,STM32功耗36mA,是32位市場上功耗最低的產(chǎn)品,相當(dāng)于0.5mA/MHz。 ARM處理器是Acorn計(jì)算機(jī)有限公司面向低預(yù)算市場設(shè)計(jì)的第一款RISC微處理器。更早稱作Acorn RISC Machine。ARM處理器本身是32位設(shè)計(jì),但也配備16位指令集,一般來講比等價(jià)32位代碼節(jié)省達(dá)35%,卻能保留3

7、2位系統(tǒng)的所有優(yōu)勢。CPU功能上增加DSP指令集提供增強(qiáng)的16位和32位算術(shù)運(yùn)算能力,提高了性能和靈活性。ARM還提供兩個(gè)前沿特性來輔助帶深嵌入處理器的高集成SoC器件的調(diào)試,它們是嵌入式ICE-RT邏輯和嵌入式跟蹤宏核(ETMS)系列。1.1 學(xué)習(xí)單片機(jī)的重要性90%的電子類企業(yè)招聘時(shí)會(huì)問單片機(jī)的電子類企業(yè)招聘時(shí)會(huì)問單片機(jī)絕大部分電子產(chǎn)品為單片機(jī)應(yīng)用絕大部分電子產(chǎn)品為單片機(jī)應(yīng)用由單片機(jī)到嵌入式的拓展由單片機(jī)到嵌入式的拓展發(fā)掘創(chuàng)意,設(shè)計(jì)作品、產(chǎn)品;發(fā)掘創(chuàng)意,設(shè)計(jì)作品、產(chǎn)品;我要學(xué)單片機(jī)學(xué)習(xí)單片機(jī)的重要性 作為一個(gè)電子技術(shù)從業(yè)人員,如果你不懂單片機(jī),那實(shí)在是一種遺憾。如果你身為電子類專業(yè)畢業(yè)生還

8、漠視單片機(jī),作為一個(gè)電子技術(shù)從業(yè)人員,如果你不懂單片機(jī),那實(shí)在是一種遺憾。如果你身為電子類專業(yè)畢業(yè)生還漠視單片機(jī),那你就太不識(shí)時(shí)務(wù)了。對于自動(dòng)化或者電子相關(guān)的理工科大學(xué)生,掌握單片機(jī)是最簡單和基本的要求,如果大學(xué)四年,那你就太不識(shí)時(shí)務(wù)了。對于自動(dòng)化或者電子相關(guān)的理工科大學(xué)生,掌握單片機(jī)是最簡單和基本的要求,如果大學(xué)四年,你連單片機(jī)的知識(shí)都沒有掌握,更別提高級的你連單片機(jī)的知識(shí)都沒有掌握,更別提高級的CPLD、FPGA、DSP了,沒有單片機(jī)的知識(shí)作支撐,學(xué)習(xí)其他內(nèi)容更是難了,沒有單片機(jī)的知識(shí)作支撐,學(xué)習(xí)其他內(nèi)容更是難于上青天。如果你覺得自己沒事干,想學(xué)點(diǎn)東西卻又不知道該學(xué)啥的時(shí)候,靜下心來學(xué)學(xué)單

9、片機(jī)吧,單片機(jī)的魔力會(huì)于上青天。如果你覺得自己沒事干,想學(xué)點(diǎn)東西卻又不知道該學(xué)啥的時(shí)候,靜下心來學(xué)學(xué)單片機(jī)吧,單片機(jī)的魔力會(huì)把你帶入一個(gè)展現(xiàn)自我價(jià)值的世界,讓你的知識(shí)升華,讓你的精神煥發(fā)。把你帶入一個(gè)展現(xiàn)自我價(jià)值的世界,讓你的知識(shí)升華,讓你的精神煥發(fā)。 (1)單片機(jī)應(yīng)用領(lǐng)域非常廣泛)單片機(jī)應(yīng)用領(lǐng)域非常廣泛 目前單片機(jī)已經(jīng)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡,從農(nóng)業(yè)電子產(chǎn)品到工業(yè)電子產(chǎn)品,從醫(yī)用電子產(chǎn)品到軍用電子產(chǎn)品,從民用電子產(chǎn)品到商用電子產(chǎn)品,單片機(jī)都在發(fā)揮著核心作用。 消費(fèi)類電子:電視、錄像機(jī)、空調(diào)控制器等; 商場類電子:智能電子秤、條碼管理系統(tǒng)等; 汽車類電子:

10、恒溫空調(diào)、倒車?yán)走_(dá)、汽車內(nèi)各種控制器等; 通訊類電子:手機(jī)、藍(lán)牙耳機(jī)、對講機(jī)等; 農(nóng)業(yè)類電子:溫濕度控制、自動(dòng)灌溉等; 安防類電子:錄像監(jiān)控、火災(zāi)報(bào)警、門禁系統(tǒng)等; 娛樂類電子:遙控小車、智能玩具、跑步機(jī)、按摩椅等; 數(shù)據(jù)采集類:氣象數(shù)據(jù)采集、電量數(shù)據(jù)采集; 以前沒有單片機(jī)時(shí),這些東西也能做,但是只能使用復(fù)雜的模擬電路,或者需要大量的數(shù)字邏輯芯片組合起來,電路相當(dāng)復(fù)雜,其產(chǎn)品體積龐大,成本高,維修難度大,開發(fā)周期長。使用單片機(jī),我們可以將電路簡化,通過編寫程序來完成復(fù)雜的邏輯功能。這樣產(chǎn)品的體積變小了,成本也降低了,控制智能化了。單片機(jī)的魅力還在于:因電子技術(shù)的發(fā)展,芯片資源更加豐富,實(shí)現(xiàn)的功

11、能更強(qiáng)大,外圍電路更簡單,使用起來更加方便。因此,學(xué)習(xí)和應(yīng)用單片機(jī)的群體越來越大。將來,個(gè)人認(rèn)為將來電子技術(shù)領(lǐng)域?qū)?huì)是嵌入式系統(tǒng)、DSP技術(shù)、FPGA技術(shù)和單片機(jī)技術(shù)的天下,其中應(yīng)用最廣的必然是單片機(jī)。 學(xué)習(xí)單片機(jī)的重要性 (2)學(xué)習(xí)單片機(jī)是學(xué)習(xí)高端電子技術(shù)的基礎(chǔ))學(xué)習(xí)單片機(jī)是學(xué)習(xí)高端電子技術(shù)的基礎(chǔ) 學(xué)習(xí)單片機(jī)是學(xué)習(xí)其他嵌入式控制器如ARM、DSP、FPGA的基礎(chǔ),任何嵌入式控制器都離不開單片機(jī)中所涵蓋的如中央處理器、定時(shí)器、中斷,IO口控制、串行通訊、I2C總線控制器、片內(nèi)外存儲(chǔ)控制器、C語言等概念。可以說學(xué)好單片機(jī),再去學(xué)習(xí)其他嵌入式控制器如ARM、DSP、FPGA的時(shí)候,你將會(huì)感覺比較簡

12、單。 嵌入式系統(tǒng)(ARM)的出現(xiàn)最初是基于單片機(jī)的,實(shí)際上就是單片機(jī)在數(shù)據(jù)量比較龐大的、復(fù)雜的處理系統(tǒng)的應(yīng)用。它和單片機(jī)都有相同的片內(nèi)設(shè)備: 中央處理器、定時(shí)器、中斷控制器、IO口線控制器、串行通訊控制器,I2C總線控制器,SPI總線控制器、片內(nèi)外存儲(chǔ)控制器等。 數(shù)字信號(hào)處理(Digital Signal Processing,簡稱DSP)是將信號(hào)以數(shù)字方式表示并進(jìn)行相應(yīng)處理的技術(shù),是單片機(jī)技術(shù)的拓展和功能的增強(qiáng),說白了就是專門用于數(shù)字信號(hào)處理的超高速單片機(jī)。 FPGA(FieldProgrammableGate Array)即現(xiàn)場可編程門陣列,和單片機(jī)有相同的外圍資源,也有時(shí)鐘電路、FLAS

13、H和RAM,配置文件相當(dāng)于單片機(jī)的程序,硬件描述語言VHDL/Verilog和C語言是一樣的。 可見,嵌入式控系統(tǒng)、FPGA技術(shù)和數(shù)字處理技術(shù)和單片機(jī)都有相同的淵源。學(xué)好單片機(jī),是學(xué)習(xí)嵌入式控系統(tǒng)(ARM)、FPGA技術(shù)和數(shù)字處理技術(shù)(DSP)的基礎(chǔ),掌握了單片機(jī)就能夠輕松學(xué)會(huì)這些技術(shù),并且在短時(shí)間內(nèi)快速掌握這些技術(shù)。個(gè)人建議想學(xué)習(xí)嵌入式系統(tǒng)、FPGA技術(shù)和DSP技術(shù)的朋友,最好可以從單片機(jī)開始,這樣學(xué)起來相對容易,不容易受挫。 1.2 學(xué)單片機(jī)學(xué)什么單片機(jī)缺少外圍設(shè)備(如鍵盤、顯示器等),其特長在于可以用單個(gè)芯片和簡單外部電路去實(shí)現(xiàn)復(fù)雜的控制操作,因此非常適合需要控制的場合,其實(shí)在絕大多數(shù)控

14、制設(shè)備中都有單片機(jī)的影子。我們通過編程來控制單片機(jī)的各個(gè)引腳的輸出(在不同的時(shí)間控制輸出不同的電平),從而控制與單片機(jī)的引腳連接的外圍電路的狀態(tài),實(shí)現(xiàn)我們想要實(shí)現(xiàn)的功能。單獨(dú)一個(gè)單片機(jī)是起不了什么作用,必須要和外圍器件才能發(fā)揮價(jià)值,如人腦和身體的關(guān)系。u單片機(jī)編程、下載、運(yùn)行方法;u單片機(jī)工作原理、運(yùn)行流程;u單片機(jī)內(nèi)部資源的使用;u單片機(jī)通過IO口控制外圍設(shè)備;u單片機(jī)與外圍芯片的通信協(xié)議;u單片機(jī)外圍電路的設(shè)計(jì);u單片機(jī)向嵌入式的拓展;u單片機(jī)應(yīng)用作品、項(xiàng)目和產(chǎn)品的設(shè)計(jì);學(xué)單片機(jī)該怎么學(xué) 首先知識(shí)方面,在入門階段會(huì)簡單的C語言即可,了解51單片機(jī)的基本結(jié)構(gòu),不需要深究其內(nèi)部結(jié)構(gòu)。并不需要模

15、電和數(shù)電知識(shí),先從應(yīng)用學(xué)起,會(huì)用,等學(xué)到模電數(shù)電的時(shí)候,更能加深理解。 其次硬件方面,要有一套好的開發(fā)板,一臺(tái)電腦,一本單片機(jī)教程。不能總是用PROTEUS仿真,要實(shí)際操作,才能加深理解。電腦用來編程和下載程序,學(xué)單片機(jī)大部分時(shí)間是編程。教材先看一遍然后可以直接動(dòng)手操作,不明白的地方再翻教材,其間可以結(jié)合視頻。 Step1:理論基礎(chǔ)學(xué)習(xí),了解而非全部掌握; Step2:了解外圍器件原理,設(shè)計(jì)編程思路; Step3:開發(fā)板編程練習(xí),實(shí)踐才是硬道理; Step4:作業(yè)綜合應(yīng)用訓(xùn)練,積累是財(cái)富; Step5:程序庫整理,養(yǎng)成良好習(xí)慣; Step6:設(shè)計(jì)作品,做一些項(xiàng)目;u由易到難,循序漸進(jìn)u注重實(shí)踐

16、u由最簡單的C語言入門到硬件的認(rèn)識(shí)u重要的是一種學(xué)習(xí)方式/方法多翻書,多逛電子論壇o新概念51單片機(jī)C語言教程郭天祥 o例說51單片機(jī)(C語言版)謝亮等o51單片機(jī)應(yīng)用從零開始楊欣o電子設(shè)計(jì)從零開始楊欣o愛上單片機(jī)-杜洋-(適合業(yè)余DIY)oC程序設(shè)計(jì)_第三版_譚浩強(qiáng)o匠人手記:一個(gè)單片機(jī)工作者的實(shí)踐與思考o(jì)51單片機(jī)C語言常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講o51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解o51單片機(jī)應(yīng)用與實(shí)踐叢書:51單片機(jī)應(yīng)用o電子發(fā)燒友網(wǎng) http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ http:/ h

17、ttp:/www.eet- 單片機(jī)基礎(chǔ) 硬件p看電路圖、看原理圖(VCC、GND、VEE)p單片機(jī)電平特性p單片機(jī)最小系統(tǒng)p常用電子元器件&常用電路知識(shí)p了解一些模擬電路和數(shù)字電路p了解一些集成電路芯片的作用單片機(jī)最小系統(tǒng)最小系統(tǒng)能夠運(yùn)行的條件:1.電源供電 可用USB和電池供電,電壓必須在單片機(jī)正常工作所需范圍(3.3V-5V)之內(nèi)正極連到VCC上,負(fù)極連到GND上。2.復(fù)位電路 用途:當(dāng)單片機(jī)在運(yùn)行中出現(xiàn)跑飛、死機(jī)等情況,按下復(fù)位按鍵,單片機(jī)內(nèi)部程序會(huì)從頭開始執(zhí)行。類似于電腦的重啟按鈕原理:當(dāng)給單片機(jī)的RST(9腳)輸入連續(xù)兩個(gè)機(jī)器周期(大約2us)以上高電平時(shí),單片機(jī)就會(huì)進(jìn)行復(fù)位操作,從

18、頭開始執(zhí)行程序。電路設(shè)計(jì):一般選取電阻10K,電解電容10-30UF3.晶振電路 用途:給單片機(jī)提供時(shí)鐘信號(hào),兩種方式:片內(nèi)時(shí)鐘振蕩方式(常用),外部接晶振(12M或11.0592M),兩引腳需并聯(lián)兩個(gè)振蕩電容(陶瓷10-30PF);外部時(shí)鐘,XTAL1接地,XTAL2接外部時(shí)鐘信號(hào)。單片機(jī)的電平特性p單片機(jī)屬于數(shù)字電路,數(shù)字電路中只有兩種電平,高和低,分別代表1和0(正邏輯)或0和1(反邏輯),一般無特殊說明的都是正邏輯。p這里51單片機(jī)為TTL電平:高(1)+5V,低(0)0V;其他單片機(jī)的還有:高(1)+3.3V,低(0)0Vp其他電平: RS232/RS485(計(jì)算機(jī)串口):反邏輯電平

19、,高(1)-12V,低(0)+12V不同電平特性的引腳相連要保證匹配,否則就要用電平轉(zhuǎn)換芯片或電路來實(shí)現(xiàn)單片機(jī)引腳電源和時(shí)鐘引腳: VCC(40)、GND(20)、XTAL1、XTAL2(19、18):外接時(shí)鐘信號(hào)。編程控制引腳: RST(9):復(fù)位引腳(單片機(jī)程序從頭開始執(zhí)行) EA/Vpp(31):接高電平,單片機(jī)讀內(nèi)部程序;接高電平,從外部ROM讀程序。 ALE/PROG、PSEN了解I/O口引腳: 4組8位需掌握單片機(jī)I/O口51單片機(jī)總共有P0、P1、P2、P3四組8位IO口即(Input/Output口),可控制其輸入輸出高電平。IO口是單片機(jī)與外界通信、進(jìn)行控制的主要接口。IO口

20、由三態(tài)緩沖器、輸出驅(qū)動(dòng)電路、控制電路組成,比較復(fù)雜,我們通過下面的仿真來等效一下IO口,幫助大家理解。 IO口等效模型1.P0口: 雙向IO口,P0口內(nèi)部沒有上拉電阻,為高阻狀態(tài),不能正常輸出高/低電平,所以做普通I/O口使用時(shí),需要外接上拉電阻,一般用10K的電阻。2.P1口/P2口: 準(zhǔn)雙向IO口,內(nèi)帶上拉電阻,輸出沒有高阻態(tài),輸入也不能鎖存。作為輸入使用時(shí),要進(jìn)行寫1操作,然后才有可能讀出外部信號(hào)。3.P3口: 作為普通IO口時(shí),與P1和P2類似;每個(gè)引腳都是多功能引腳,第一功能為基本IO口,第二功能為其他拓展功能。引腳是第一功能還是第二功能,由單片機(jī)的多功能選擇寄存器來配置。單片機(jī)的內(nèi)

21、部資源時(shí)鐘電路時(shí)鐘電路SFR和和RAM R O MCPU定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器并行端口并行端口中斷系統(tǒng)中斷系統(tǒng)串行端口串行端口系系 統(tǒng)統(tǒng) 總總 線線 時(shí)鐘時(shí)鐘源源 T0 T1 P0 P1 P2 P3 TXD RXD INT0 INT1單片機(jī)的內(nèi)部資源MCS-51單片機(jī)包含中央處理器(CPU)、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。p8 8位位CPUCPU: 由運(yùn)算和控制邏輯組成同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器 運(yùn)算器:對數(shù)據(jù)進(jìn)行加、減、乘、除等算術(shù)運(yùn)算;“與”、“或”、“異或”等邏輯運(yùn)

22、算以及位操作運(yùn)算。PSW寄存器的值表示運(yùn)算的狀態(tài)。通用寄存器作為工作寄存器。 控制器:時(shí)鐘電路、指令寄存器、譯碼器、堆棧指針、定時(shí)控制電路以及地址指針DPTR和程序計(jì)數(shù)器PC等。p128B128B數(shù)據(jù)數(shù)據(jù)存儲(chǔ)器(存儲(chǔ)器(RAMRAM)()(5252為為256B256B):): 用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);p4K4K程序程序存儲(chǔ)器存儲(chǔ)器(ROMROM)(52(52為為8K)8K): 用以存放程序、一些原始數(shù)據(jù)和表格p定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器: : 兩個(gè)16位可編程定時(shí)/計(jì)數(shù)器,既可以工作在定時(shí)模式,也可以工作在計(jì)數(shù)模式;單片機(jī)的內(nèi)部資源p4 4組并行組并

23、行8 8位位IOIO口:口: 四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出p5 5個(gè)中斷源的中斷控制系統(tǒng):個(gè)中斷源的中斷控制系統(tǒng): 2個(gè)外部中斷、2個(gè)(52是3個(gè))定時(shí)器中斷、串行口中斷p全雙工串行口(全雙工串行口(UARTUART):): 除電平特性外,符合RS232協(xié)議,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行信;pSFRSFR特殊功能寄存器:特殊功能寄存器: 單片機(jī)對硬件的控制接口,映射到RAM的部分地址上p總線:總線: CPU與各個(gè)子模塊之間傳送信息的公共通道,有:數(shù)據(jù)總線、地址總線、控制總線。外部數(shù)據(jù)存儲(chǔ)器尋址空間為64kB外部程序存儲(chǔ)器尋址空間為64kB邏輯操作位尋址功能雙列

24、直插40PinDIP封裝片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M12M。單一+5V電源供電單片機(jī)的工作時(shí)序機(jī)器機(jī)器周期和指令周期周期和指令周期 (1)振蕩周期: 也稱時(shí)鐘周期, 是指為單片機(jī)提供時(shí)鐘脈沖信號(hào)的振蕩源的周期。 (2)狀態(tài)周期: 每個(gè)狀態(tài)周期為時(shí)鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的。 (3)機(jī)器周期: 一個(gè)機(jī)器周期包含 6 個(gè)狀態(tài)周期S1S6, 也就是 12 個(gè)時(shí)鐘周期。在一個(gè)機(jī)器周期內(nèi), CPU可以完成一個(gè)獨(dú)立的操作。 (4)指令周期: 它是指CPU完成一條操作所需的全部時(shí)間。每條指令執(zhí)行時(shí)間都是有一個(gè)或幾個(gè)機(jī)器周期組成。MCS - 51

25、 系統(tǒng)中, 有單周期指令、雙周期指令和四周期指令。 STC89C51RC名字含義p STC:表示STC(中國宏晶)公司產(chǎn)品p 8:表示該芯片為8051內(nèi)核芯片p 9:表示內(nèi)部含F(xiàn)lash EEPROM存儲(chǔ)器p C:表示該器件為CMOS產(chǎn)品p 5:固定不變p 1:表示芯片內(nèi)部程序存儲(chǔ)空間(ROM)的大小,決定了所能裝入執(zhí)行代碼的多少, p 1為4KB,2為8KB,3為12KB,4為16KB,16為64KBp RC:表示芯片內(nèi)部RAM的大小為512B,RD+表示內(nèi)部RAM為1280B。1.4 單片機(jī)學(xué)習(xí)基礎(chǔ)軟件p單片機(jī)數(shù)據(jù):二進(jìn)制,十進(jìn)制,十六進(jìn)制;p單片機(jī)的寄存器;pC51單片機(jī)編程語言單片機(jī)數(shù)

26、據(jù)的表示以及單片機(jī)的寄存器 由于單片機(jī)的電平特性和數(shù)字系統(tǒng)的特性,只有高低電平兩種狀態(tài),所以在單片機(jī)(數(shù)字電路)中必須使用二進(jìn)制。單片機(jī)系統(tǒng)中對數(shù)據(jù)的處理和運(yùn)算都是以二進(jìn)制格式進(jìn)行的。所以我們編寫控制單片機(jī)的程序最終都是要用編譯軟件編譯成二進(jìn)制格式的hex文件,然后再用下載軟件和下載器將hex文件燒錄到單片機(jī)中,這樣單片機(jī)就會(huì)按照我們編寫的程序執(zhí)行工作了。寄存器寄存器p我們知道單片機(jī)的內(nèi)部有ROM、有RAM、有并行I/O口,那么,除了這些東西之外,單片機(jī)內(nèi)部究竟還有些什么?p這些個(gè)零碎的東西怎么連在一起的? 在51單片機(jī)內(nèi)部有一個(gè)CPU用來運(yùn)算、控制,有四個(gè)并行I/O口,分別是P0、P1、P2

27、、P3,有ROM,用來存放程序,有RAM,用來存放中間結(jié)果,此外還有定時(shí)/計(jì)數(shù)器,串行I/O口,中斷系統(tǒng),以及一個(gè)內(nèi)部的時(shí)鐘電路。在一個(gè)51單片機(jī)的內(nèi)部包含了這么多的東西。p對并行I/O口的讀寫只要將數(shù)據(jù)送入到相應(yīng)I/O口的鎖存器就可以了,那么對于定時(shí)/計(jì)數(shù)器,串行I/O口等怎么用呢?在單片機(jī)中有一些獨(dú)立的存儲(chǔ)單元是用來控制這些器件的,被稱之為特殊功能寄存器(SFR)。單片機(jī)的編程語言p 很多很多硬件開發(fā)都用硬件開發(fā)都用C C語言編程;語言編程;p C C語言程序本身不依賴于機(jī)器硬件系統(tǒng),便于移植;語言程序本身不依賴于機(jī)器硬件系統(tǒng),便于移植;p C C語言提供了各種函數(shù)庫并支持浮點(diǎn)運(yùn)算,開發(fā)效

28、率高。語言提供了各種函數(shù)庫并支持浮點(diǎn)運(yùn)算,開發(fā)效率高。C51的運(yùn)算操作C51的數(shù)據(jù)類型基本數(shù)據(jù)類型C51的運(yùn)算操作 C-51的運(yùn)算符 與C語言基本相同: + - * / (加 減 乘 除) = (位右移 位左移) & | (按位與 按位或) (按位異或 按位取反)學(xué)習(xí)51單片機(jī)該掌握的內(nèi)容 (1) 掌握最小系統(tǒng)能夠運(yùn)行的必要條件: 電源、晶振、復(fù)位電路 (2) 掌握對單片機(jī)任意I/O口的操作: 輸出控制高低電平、輸入檢測高低電平 (3) 定時(shí)器: 重點(diǎn)掌握方式2 (4) 中斷: 掌握外部中斷、定時(shí)器中斷、串口中斷 (5) 串口通信: 掌握單片機(jī)之間的通信、單片機(jī)與電腦之間的通信 1.5 軟件使

29、用及點(diǎn)亮第一個(gè)流水燈(神程序) 如果你是用的是開發(fā)板并且上面有LED模塊,你可以查看電路圖。例如51START開發(fā)板電路圖 圖中VCC通過J1接到RP1上,RP1是排阻,圖中的1號(hào)腳是公共腳 ,在排阻的內(nèi)部從1號(hào)腳往29號(hào)每個(gè)管腳之間有一個(gè)1k電阻,總共8個(gè)1k電阻排列起來所所以叫做排阻。J1相當(dāng)于一個(gè)開關(guān),其實(shí)是兩個(gè)排針構(gòu)成的插座。如果插上跳線帽,就可以導(dǎo)通;拔下跳線帽,就斷開了。這樣設(shè)計(jì)的好處是,如果我要用LED模塊就插上跳線帽;而如果我不用LED模塊,而講IO口用于其他目的,這時(shí)LED就不會(huì)對我的電路產(chǎn)生干擾,因?yàn)長ED一端接IO口,另一端接到排阻上,而排阻另一端是懸空的,沒有接入電路。

30、 而圖中的標(biāo)號(hào)DB1DB8又接在單片機(jī)最小系統(tǒng)電路中的P1.0P1.7的IO口,所以在J1導(dǎo)通的情況下,P1.0P1.7的高低電平就能控制D1D8這八個(gè)LED的亮滅了。軟件使用及點(diǎn)亮第一個(gè)流水燈(神程序) 具體操作 單片機(jī)的編程,我們通常使用Keil軟件。Keil軟件光盤里有,安裝過程這里不做詳細(xì)介紹,值得注意的一點(diǎn)是。安裝的時(shí)候盡量安裝到英文目錄下,最好不要用中文,以免程序運(yùn)行出現(xiàn)問題。 我們打開Keil軟件,準(zhǔn)備給單片機(jī)寫程序。大家可以按照下面的步驟進(jìn)行(這里以Keil uv4英文版為例進(jìn)行說明。如果你使用的是Keil其他版本,操作方式基本相同)。KEIL的使用一、新建一、新建并配置工程并

31、配置工程 1、首先新建工程: 點(diǎn)擊菜單中的Project New uVision Project。KEIL的使用2、然后我們在電腦上為我們的工程新建一個(gè)文件夾,這里我的文件夾是51STARTLEDKEIL的使用3、打開文件夾,輸入工程的名稱,點(diǎn)擊保存。這里我輸入的是LED。KEIL的使用4、然后彈出一個(gè)窗口,讓我們選擇單片機(jī)的型號(hào)。我們用到的是STC89C52RC,而這里面可能沒有STC單片機(jī),我們只需要選擇完全兼容STC的Atmel系列AT89C52單片機(jī),點(diǎn)擊OK確認(rèn)即可。KEIL的使用KEIL的使用5、隨后會(huì)彈出一個(gè)窗口,提示我們是否需要添加8051的啟動(dòng)代碼到工程中,點(diǎn)擊否即可(如果我

32、們需要使用自定義的啟動(dòng)代碼,則可以點(diǎn)是,然后修改啟動(dòng)代碼。而我們編程用的是C語言,一般情況下不需要修改啟動(dòng)代碼。至于啟動(dòng)代碼有什么用處,則可以等到我們對單片機(jī)了解的比較深入的時(shí)候再查找相關(guān)資料進(jìn)行學(xué)習(xí))。KEIL的使用6、下面我們對工程進(jìn)行簡單的設(shè)置。右擊Target 1,選擇第一項(xiàng)Options for Target Target1,彈出工程屬性設(shè)置窗口。KEIL的使用7、我們打開Output標(biāo)簽,并勾選Create HEX File,然后點(diǎn)擊OK確認(rèn)即可。(編譯后可自動(dòng)成.HEX 的文件,可燒進(jìn)單片機(jī))KEIL的使用二、新建二、新建源文源文件并添加至工件并添加至工程中程中1、工程新建并配置

33、完成了,下面我們開始新建程序源文件。點(diǎn)擊菜單中的File-New,出現(xiàn)一個(gè)新的文件,如圖。KEIL的使用2、然后我們點(diǎn)擊保存按鈕,將其保存到工程文件夾Project01 - LED中,保存為擴(kuò)展名是“.c”的文件,如main.c。這里大家要注意的是,源文件其實(shí)只是一個(gè)普通的文本文件,不過擴(kuò)展名是c而不是txt。我們剛剛新建main.c文件的操作,也可以通過在資源管理器中新建文本文檔,然后重命名為main.c的方式進(jìn)行。KEIL的使用3、源文件新建好了。源文件只是一個(gè)獨(dú)立的文本文件,而工程文件現(xiàn)在和剛剛新建的源文件還是完全獨(dú)立、沒有關(guān)聯(lián)的。我們要把剛剛新建的main.c文件添加到我們的工程中來:

34、右擊Target 1/Source Group 1,并選擇菜單中的Add Files to Group Source Group 1來添加文件。KEIL的使用4、雙擊需要添加的文件main.c,或者選中它再點(diǎn)擊Add按鈕,從左邊的Project窗口就可以看到,文件就已經(jīng)被添加到工程中了。這時(shí)彈出的窗口并沒有關(guān)閉,因?yàn)檫@樣可以方便繼續(xù)添加其他文件。因?yàn)槲覀儸F(xiàn)在只需添加一個(gè)文件并且添加好了,所以點(diǎn)擊Close關(guān)閉彈出的窗口。KEIL的使用三三、編寫程序并、編寫程序并編譯編譯1、我們打開main.c,開始正式編寫程序了。我們編寫的程序如下并保存。至于這個(gè)程序是什么含義,之后將詳細(xì)介紹。注意一點(diǎn),我給

35、出的程序中設(shè)置的LED是P1.0,如果你的開發(fā)板或者自己搭建的電路中LED的IO口不是P1.0,你需要照著我給出的格式修改sbit那一行。這一點(diǎn)也充分體現(xiàn)了,單片機(jī)編程是和實(shí)際硬件電路息息相關(guān)的,程序和電路要配套,才能正常運(yùn)行。KEIL的使用2、點(diǎn)擊左上方的雙箭頭按鈕編譯全部文件,我們看到下方的輸出窗口顯示編譯完成,“creating hex file from LED”表明已經(jīng)編譯時(shí)創(chuàng)建了HEX文件(HEX文件是十六進(jìn)制文件,將燒寫進(jìn)單片機(jī)。相當(dāng)于Windows中的可執(zhí)行文件“.exe”),“0 Error(s), 0 Warning(s).”表示編譯成功,程序也沒有語法錯(cuò)誤。如果提示你的程

36、序有錯(cuò),請細(xì)心的檢查一下,有沒有發(fā)生漏掉分號(hào)等情況。STC-ISP(燒錄軟件)的使用 四四、燒寫程序到單片機(jī)、燒寫程序到單片機(jī)中中 在工程文件夾下,我們可以看到生成的LED.hex文件,這正是我們所需要的。下面我們將把LED.hex文件燒寫進(jìn)單片機(jī),我們將介紹下載程序的一般步驟。STC-ISP(燒錄軟件)的使用1、設(shè)置單片機(jī)型號(hào),這里我們設(shè)置單。片機(jī)為STC89C51RC。(根據(jù)你的單片機(jī)型號(hào)而定)。STC-ISP(燒錄軟件)的使用2、設(shè)置串口端口號(hào),波特率等參數(shù)。由于我們一般用的是USB轉(zhuǎn)串口芯片,不是真正的RS232串口,所以串口號(hào)不固定,每次插上轉(zhuǎn)接板或單片機(jī)學(xué)習(xí)板時(shí),我們應(yīng)打開設(shè)備管理

37、器如圖STC-ISP(燒錄軟件)的使用 (XP系統(tǒng):右擊“我的電腦”“屬性”“硬件”“設(shè)備管理器”;Win7系統(tǒng):右擊“計(jì)算機(jī)”“管理”“設(shè)備管理器”;WIN8系統(tǒng):右鍵開始,選擇設(shè)備管理器。)。找到端口(COM和LPT)選項(xiàng),展開,里面會(huì)有一個(gè)類似“Prolific USB-to-Serial Comm Port(COM1)”或者“USB-SERIAL CH431(COM1)”的項(xiàng)。括號(hào)里面的COMx就是我們要找的端口號(hào)。 填到STC-ISP中就可以了(如果有多項(xiàng)不知道是哪一個(gè),可以插拔單片機(jī)學(xué)習(xí)板看哪項(xiàng)會(huì)刷新)。如果很不幸,你的串口號(hào)很大,超出STC-ISP可設(shè)置的范圍了,可以右擊設(shè)備管理

38、器中顯示的那一項(xiàng)更改COM端口序號(hào)。波特率等選項(xiàng)一般按默認(rèn)即可,不需設(shè)置。 3、點(diǎn)擊“打開程序文件”,選擇要燒寫的單片機(jī)程序HEX或BIN文件。HEX或BIN文件是編譯之后的機(jī)器碼,打開后可以在STC-ISP右側(cè)程序文件中看到對應(yīng)的十六進(jìn)制數(shù)字。你可以選擇自己寫的程序產(chǎn)生的機(jī)器碼,也可以在STC-ISP的test-hex目錄中找一些測試程序。這里我們選擇剛剛編譯生成的HEX文件。 4、先點(diǎn)擊“下載”,然后再打開電源開關(guān),給單片機(jī)上電。稍后STC-ISP就會(huì)顯示正在燒寫程序。如果點(diǎn)擊“下載”前忘了先關(guān)電源,或者程序沒能下載,不需要點(diǎn)擊“停止”按鈕,直接斷電再上電嘗試即可。一般幾秒鐘就能下載完成,

39、STC-ISP中會(huì)顯示下載成功。STC-ISP(燒錄軟件)的使用下載成功STC-ISP(燒錄軟件)的使用 五五、觀察程序執(zhí)行結(jié)果,有必要的時(shí)調(diào)試程序、觀察程序執(zhí)行結(jié)果,有必要的時(shí)調(diào)試程序。 一般程序下載完成后,如果P1.0口接有LED,電路連接無誤,LED就會(huì)奇跡般的亮起來。我們就成功的讓單片機(jī)執(zhí)行了我們自己寫的程序。每個(gè)初學(xué)單片機(jī)的人在看到這一幕的時(shí)候,往往都會(huì)激動(dòng)萬分,正如我第一次學(xué)習(xí)單片機(jī)一樣開心。由于這里的程序非常簡單,基本不需要調(diào)試。這時(shí)你就可以向好友炫耀一下,展示你的勞動(dòng)成果了。STC-ISP(燒錄軟件)的使用成功點(diǎn)亮第一個(gè)成功點(diǎn)亮第一個(gè) LED點(diǎn)亮第一個(gè)LED的程序分析 # include # include 頭文件頭文件 第一行包含頭文件,這個(gè)和C語言編寫HelloWorld時(shí)的#include 一樣。頭文件reg52.h中定義了單片機(jī)的一些寄存器,如P0P3等。你可以把寄存器想象成C語言中常說的內(nèi)存。有興趣的讀者可以右擊reg52.h打開頭文件看一看。 sbit LED = P10;sbit LED = P10; C51C51的變量的變量類型類型 這里我們使用的語言是C51,和標(biāo)準(zhǔn)C語言相比,最主要的特點(diǎn)就是多出來兩種變量類型:sfr和sbit。sfr和char一樣是一個(gè)8位數(shù)據(jù)類型,表示一個(gè)8位的寄存器。例如頭文件reg52.h中就有一句sfr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論