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

下載本文檔

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

文檔簡介

51start第1講——單片機(jī)入門

ByXDLab本講重點(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ī)存儲器RAM、只讀存儲器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)。單片機(jī)是一種芯片,有各種各樣的封裝和型號單片機(jī)可以通過編程進(jìn)行控制單片機(jī)內(nèi)部包括CPU、總線、存儲器、I/O單片機(jī)外部需要配合一些器件才能發(fā)揮作用單片機(jī)其實(shí)就是小型微機(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、430、ARM。

幾種常見單片機(jī)簡介51單片機(jī)

是對所有兼容Intel8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來隨著Flashrom技術(shù)的發(fā)展,8031單片機(jī)取得了長足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號是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)的混合信號處理器(MixedSignalProcessor)。稱之為混合信號處理器,是由于其針對實(shí)際應(yīng)用需求,將多個(gè)不同功能的模擬電路、數(shù)字電路模塊和微處理器集成在一個(gè)芯片上,以提供“單片機(jī)”解決方案。該系列單片機(jī)多應(yīng)用于需要電池供電的便攜式儀器儀表中。AVR單片機(jī)是1997年由ATMEL公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC(ReducedInstructionSetCPU)精簡指令集高速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并非只是簡單地去減少指令,而是通過使計(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ì)的ARMCortex-M內(nèi)核。按內(nèi)核架構(gòu)分為不同產(chǎn)品:其中STM32F1系列有、STM32F103“增強(qiáng)型”系列、STM32F101“基本型”系列、STM32F105、STM32F107“互連型”系列。增強(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微處理器。更早稱作AcornRISCMachine。ARM處理器本身是32位設(shè)計(jì),但也配備16位指令集,一般來講比等價(jià)32位代碼節(jié)省達(dá)35%,卻能保留32位系統(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ī)絕大部分電子產(chǎn)品為單片機(jī)應(yīng)用由單片機(jī)到嵌入式的拓展發(fā)掘創(chuàng)意,設(shè)計(jì)作品、產(chǎn)品;我要學(xué)單片機(jī)學(xué)習(xí)單片機(jī)的重要性作為一個(gè)電子技術(shù)從業(yè)人員,如果你不懂單片機(jī),那實(shí)在是一種遺憾。如果你身為電子類專業(yè)畢業(yè)生還漠視單片機(jī),那你就太不識時(shí)務(wù)了。對于自動(dòng)化或者電子相關(guān)的理工科大學(xué)生,掌握單片機(jī)是最簡單和基本的要求,如果大學(xué)四年,你連單片機(jī)的知識都沒有掌握,更別提高級的CPLD、FPGA、DSP了,沒有單片機(jī)的知識作支撐,學(xué)習(xí)其他內(nèi)容更是難于上青天。如果你覺得自己沒事干,想學(xué)點(diǎn)東西卻又不知道該學(xué)啥的時(shí)候,靜下心來學(xué)學(xué)單片機(jī)吧,單片機(jī)的魔力會(huì)把你帶入一個(gè)展現(xiàn)自我價(jià)值的世界,讓你的知識升華,讓你的精神煥發(fā)。(1)單片機(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)等;汽車類電子:恒溫空調(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)的功能更強(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í)其他嵌入式控制器如ARM、DSP、FPGA的基礎(chǔ),任何嵌入式控制器都離不開單片機(jī)中所涵蓋的如中央處理器、定時(shí)器、中斷,IO口控制、串行通訊、I2C總線控制器、片內(nèi)外存儲控制器、C語言等概念??梢哉f學(xué)好單片機(jī),再去學(xué)習(xí)其他嵌入式控制器如ARM、DSP、FPGA的時(shí)候,你將會(huì)感覺比較簡單。嵌入式系統(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)外存儲控制器等。數(shù)字信號處理(DigitalSignalProcessing,簡稱DSP)是將信號以數(shù)字方式表示并進(jìn)行相應(yīng)處理的技術(shù),是單片機(jī)技術(shù)的拓展和功能的增強(qiáng),說白了就是專門用于數(shù)字信號處理的超高速單片機(jī)。FPGA(Field-ProgrammableGateArray)—即現(xiàn)場可編程門陣列,和單片機(jī)有相同的外圍資源,也有時(shí)鐘電路、FLASH和RAM,配置文件相當(dāng)于單片機(jī)的程序,硬件描述語言VHDL/Verilog和C語言是一樣的??梢姡度胧娇叵到y(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ù)控制設(shè)備中都有單片機(jī)的影子。我們通過編程來控制單片機(jī)的各個(gè)引腳的輸出(在不同的時(shí)間控制輸出不同的電平),從而控制與單片機(jī)的引腳連接的外圍電路的狀態(tài),實(shí)現(xiàn)我們想要實(shí)現(xiàn)的功能。單獨(dú)一個(gè)單片機(jī)是起不了什么作用,必須要和外圍器件才能發(fā)揮價(jià)值,如人腦和身體的關(guān)系。單片機(jī)編程、下載、運(yùn)行方法;單片機(jī)工作原理、運(yùn)行流程;單片機(jī)內(nèi)部資源的使用;單片機(jī)通過IO口控制外圍設(shè)備;單片機(jī)與外圍芯片的通信協(xié)議;單片機(jī)外圍電路的設(shè)計(jì);單片機(jī)向嵌入式的拓展;單片機(jī)應(yīng)用作品、項(xiàng)目和產(chǎn)品的設(shè)計(jì);學(xué)單片機(jī)該怎么學(xué)首先知識方面,在入門階段會(huì)簡單的C語言即可,了解51單片機(jī)的基本結(jié)構(gòu),不需要深究其內(nèi)部結(jié)構(gòu)。并不需要模電和數(shù)電知識,先從應(yīng)用學(xué)起,會(huì)用,等學(xué)到模電數(shù)電的時(shí)候,更能加深理解。其次硬件方面,要有一套好的開發(fā)板,一臺電腦,一本單片機(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)目;由易到難,循序漸進(jìn)注重實(shí)踐由最簡單的C語言入門到硬件的認(rèn)識重要的是一種學(xué)習(xí)方式/方法多翻書,多逛電子論壇《新概念51單片機(jī)C語言教程》郭天祥《例說51單片機(jī)(C語言版)》謝亮等《51單片機(jī)應(yīng)用從零開始》楊欣《電子設(shè)計(jì)從零開始》楊欣《愛上單片機(jī)》-杜洋-(適合業(yè)余DIY) 《C程序設(shè)計(jì)_第三版_譚浩強(qiáng)》《匠人手記:一個(gè)單片機(jī)工作者的實(shí)踐與思考》 《51單片機(jī)C語言常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講》《51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解》《51單片機(jī)應(yīng)用與實(shí)踐叢書:51單片機(jī)應(yīng)用》電子發(fā)燒友網(wǎng)/阿莫電子論壇http:///電子工程世界http:///愛板網(wǎng)http:///bbs/數(shù)據(jù)手冊網(wǎng)站http:///21IC電子網(wǎng)/與非網(wǎng)/電源網(wǎng)/程序員聯(lián)合開發(fā)網(wǎng)/CSDN

/電子設(shè)計(jì)技術(shù)網(wǎng)http:///電子工程專輯/1.3單片機(jī)基礎(chǔ)——硬件看電路圖、看原理圖(VCC、GND、VEE)單片機(jī)電平特性單片機(jī)最小系統(tǒng)常用電子元器件&常用電路知識了解一些模擬電路和數(shù)字電路了解一些集成電路芯片的作用單片機(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ù)位操作,從頭開始執(zhí)行程序。電路設(shè)計(jì):一般選取電阻10K,電解電容10-30UF3.晶振電路用途:給單片機(jī)提供時(shí)鐘信號,兩種方式:片內(nèi)時(shí)鐘振蕩方式(常用),外部接晶振(12M或11.0592M),兩引腳需并聯(lián)兩個(gè)振蕩電容(陶瓷10-30PF);外部時(shí)鐘,XTAL1接地,XTAL2接外部時(shí)鐘信號。單片機(jī)的電平特性單片機(jī)屬于數(shù)字電路,數(shù)字電路中只有兩種電平,高和低,分別代表1和0(正邏輯)或0和1(反邏輯),一般無特殊說明的都是正邏輯。這里51單片機(jī)為TTL電平:高(1)+5V,低(0)0V;其他單片機(jī)的還有:高(1)+3.3V,低(0)0V其他電平:RS232/RS485(計(jì)算機(jī)串口):反邏輯電平,高(1)-12V,低(0)+12V不同電平特性的引腳相連要保證匹配,否則就要用電平轉(zhuǎn)換芯片或電路來實(shí)現(xiàn)單片機(jī)引腳電源和時(shí)鐘引腳:

VCC(40)、GND(20)、XTAL1、XTAL2(19、18):外接時(shí)鐘信號。編程控制引腳:

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口由三態(tài)緩沖器、輸出驅(qū)動(dòng)電路、控制電路組成,比較復(fù)雜,我們通過下面的仿真來等效一下IO口,幫助大家理解?!狪O口等效模型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操作,然后才有可能讀出外部信號。3.P3口:作為普通IO口時(shí),與P1和P2類似;每個(gè)引腳都是多功能引腳,第一功能為基本IO口,第二功能為其他拓展功能。引腳是第一功能還是第二功能,由單片機(jī)的多功能選擇寄存器來配置。單片機(jī)的內(nèi)部資源時(shí)鐘電路SFR和RAM

ROMCPU定時(shí)/計(jì)數(shù)器并行端口中斷系統(tǒng)串行端口系統(tǒng)總線時(shí)鐘源T0T1P0

P1

P2

P3TXDRXD

INT0INT1單片機(jī)的內(nèi)部資源MCS-51單片機(jī)包含中央處理器(CPU)、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。8位CPU:

由運(yùn)算和控制邏輯組成同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器運(yùn)算器:對數(shù)據(jù)進(jìn)行加、減、乘、除等算術(shù)運(yùn)算;“與”、“或”、“異或”等邏輯運(yùn)算以及位操作運(yùn)算。PSW寄存器的值表示運(yùn)算的狀態(tài)。通用寄存器作為工作寄存器??刂破鳎簳r(shí)鐘電路、指令寄存器、譯碼器、堆棧指針、定時(shí)控制電路以及地址指針DPTR和程序計(jì)數(shù)器PC等。128B數(shù)據(jù)存儲器(RAM)(52為256B):用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);4K程序存儲器(ROM)(52為8K):用以存放程序、一些原始數(shù)據(jù)和表格定時(shí)/計(jì)數(shù)器:兩個(gè)16位可編程定時(shí)/計(jì)數(shù)器,既可以工作在定時(shí)模式,也可以工作在計(jì)數(shù)模式;單片機(jī)的內(nèi)部資源4組并行8位IO口:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出5個(gè)中斷源的中斷控制系統(tǒng):2個(gè)外部中斷、2個(gè)(52是3個(gè))定時(shí)器中斷、串行口中斷全雙工串行口(UART):

除電平特性外,符合RS232協(xié)議,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行信;SFR特殊功能寄存器:單片機(jī)對硬件的控制接口,映射到RAM的部分地址上總線:CPU與各個(gè)子模塊之間傳送信息的公共通道,有:數(shù)據(jù)總線、地址總線、控制總線?!ね獠繑?shù)據(jù)存儲器尋址空間為64kB·外部程序存儲器尋址空間為64kB·邏輯操作位尋址功能·雙列直插40PinDIP封裝·片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M—12M?!我?5V電源供電單片機(jī)的工作時(shí)序機(jī)器周期和指令周期

(1)振蕩周期:也稱時(shí)鐘周期,是指為單片機(jī)提供時(shí)鐘脈沖信號的振蕩源的周期。(2)狀態(tài)周期:每個(gè)狀態(tài)周期為時(shí)鐘周期的2倍,是振蕩周期經(jīng)二分頻后得到的。(3)機(jī)器周期:一個(gè)機(jī)器周期包含6個(gè)狀態(tài)周期S1~S6,也就是12個(gè)時(shí)鐘周期。在一個(gè)機(jī)器周期內(nèi),CPU可以完成一個(gè)獨(dú)立的操作。(4)指令周期:它是指CPU完成一條操作所需的全部時(shí)間。每條指令執(zhí)行時(shí)間都是有一個(gè)或幾個(gè)機(jī)器周期組成。MCS-51系統(tǒng)中,有單周期指令、雙周期指令和四周期指令。STC89C51RC名字含義

STC:表示STC(中國宏晶)公司產(chǎn)品8:表示該芯片為8051內(nèi)核芯片9:表示內(nèi)部含F(xiàn)lashEEPROM存儲器C:表示該器件為CMOS產(chǎn)品5:固定不變1:表示芯片內(nèi)部程序存儲空間(ROM)的大小,決定了所能裝入執(zhí)行代碼的多少,

1為4KB,2為8KB,3為12KB,4為16KB,16為64KBRC:表示芯片內(nèi)部RAM的大小為512B,RD+表示內(nèi)部RAM為1280B。1.4單片機(jī)學(xué)習(xí)基礎(chǔ)——軟件單片機(jī)數(shù)據(jù):二進(jìn)制,十進(jìn)制,十六進(jìn)制;單片機(jī)的寄存器;C51——單片機(jī)編程語言單片機(jī)數(shù)據(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í)行工作了。寄存器我們知道單片機(jī)的內(nèi)部有ROM、有RAM、有并行I/O口,那么,除了這些東西之外,單片機(jī)內(nèi)部究竟還有些什么?這些個(gè)零碎的東西怎么連在一起的?

在51單片機(jī)內(nèi)部有一個(gè)CPU用來運(yùn)算、控制,有四個(gè)并行I/O口,分別是P0、P1、P2、P3,有ROM,用來存放程序,有RAM,用來存放中間結(jié)果,此外還有定時(shí)/計(jì)數(shù)器,串行I/O口,中斷系統(tǒng),以及一個(gè)內(nèi)部的時(shí)鐘電路。在一個(gè)51單片機(jī)的內(nèi)部包含了這么多的東西。對并行I/O口的讀寫只要將數(shù)據(jù)送入到相應(yīng)I/O口的鎖存器就可以了,那么對于定時(shí)/計(jì)數(shù)器,串行I/O口等怎么用呢?在單片機(jī)中有一些獨(dú)立的存儲單元是用來控制這些器件的,被稱之為特殊功能寄存器(SFR)。單片機(jī)的編程語言很多硬件開發(fā)都用C語言編程;C語言程序本身不依賴于機(jī)器硬件系統(tǒng),便于移植;C語言提供了各種函數(shù)庫并支持浮點(diǎn)運(yùn)算,開發(fā)效率高。C51的運(yùn)算操作C-51的數(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軟件使用及點(diǎn)亮第一個(gè)流水燈(神程序)如果你是用的是開發(fā)板并且上面有LED模塊,你可以查看電路圖。例如51START開發(fā)板電路圖圖中VCC通過J1接到RP1上,RP1是排阻,圖中的1號腳是公共腳,在排阻的內(nèi)部從1號腳往2~9號每個(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口,另一端接到排阻上,而排阻另一端是懸空的,沒有接入電路。而圖中的標(biāo)號DB1~DB8又接在單片機(jī)最小系統(tǒng)電路中的P1.0~P1.7的IO口,所以在J1導(dǎo)通的情況下,P1.0~P1.7的高低電平就能控制D1~D8這八個(gè)LED的亮滅了。軟件使用及點(diǎn)亮第一個(gè)流水燈(神程序)具體操作單片機(jī)的編程,我們通常使用Keil軟件。Keil軟件光盤里有,安裝過程這里不做詳細(xì)介紹,值得注意的一點(diǎn)是。安裝的時(shí)候盡量安裝到英文目錄下,最好不要用中文,以免程序運(yùn)行出現(xiàn)問題。我們打開Keil軟件,準(zhǔn)備給單片機(jī)寫程序。大家可以按照下面的步驟進(jìn)行(這里以Keiluv4英文版為例進(jìn)行說明。如果你使用的是Keil其他版本,操作方式基本相同)。KEIL的使用一、新建并配置工程1、首先新建工程:點(diǎn)擊菜單中的Project–

NewuVisionProject。KEIL的使用2、然后我們在電腦上為我們的工程新建一個(gè)文件夾,這里我的文件夾是51START——LEDKEIL的使用3、打開文件夾,輸入工程的名稱,點(diǎn)擊保存。這里我輸入的是LED。KEIL的使用4、然后彈出一個(gè)窗口,讓我們選擇單片機(jī)的型號。我們用到的是STC89C52RC,而這里面可能沒有STC單片機(jī),我們只需要選擇完全兼容STC的Atmel系列AT89C52單片機(jī),點(diǎn)擊OK確認(rèn)即可。KEIL的使用KEIL的使用5、隨后會(huì)彈出一個(gè)窗口,提示我們是否需要添加8051的啟動(dòng)代碼到工程中,點(diǎn)擊否即可(如果我們需要使用自定義的啟動(dòng)代碼,則可以點(diǎn)是,然后修改啟動(dòng)代碼。而我們編程用的是C語言,一般情況下不需要修改啟動(dòng)代碼。至于啟動(dòng)代碼有什么用處,則可以等到我們對單片機(jī)了解的比較深入的時(shí)候再查找相關(guān)資料進(jìn)行學(xué)習(xí))。KEIL的使用6、下面我們對工程進(jìn)行簡單的設(shè)置。右擊Target1,選擇第一項(xiàng)OptionsforTarget‘Target1’…,彈出工程屬性設(shè)置窗口。KEIL的使用7、我們打開Output標(biāo)簽,并勾選CreateHEXFile,然后點(diǎn)擊OK確認(rèn)即可。(編譯后可自動(dòng)成.HEX的文件,可燒進(jìn)單片機(jī))KEIL的使用二、新建源文件并添加至工程中1、工程新建并配置完成了,下面我們開始新建程序源文件。點(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文件添加到我們的工程中來:右擊Target1/SourceGroup1,并選擇菜單中的AddFilestoGroup‘SourceGroup1’…來添加文件。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),我給出的程序中設(shè)置的LED是P1.0,如果你的開發(fā)板或者自己搭建的電路中LED的IO口不是P1.0,你需要照著我給出的格式修改sbit那一行。這一點(diǎn)也充分體現(xiàn)了,單片機(jī)編程是和實(shí)際硬件電路息息相關(guān)的,程序和電路要配套,才能正常運(yùn)行。KEIL的使用2、點(diǎn)擊左上方的雙箭頭按鈕編譯全部文件,我們看到下方的輸出窗口顯示編譯完成,“creatinghexfilefrom‘LED’”表明已經(jīng)編譯時(shí)創(chuàng)建了HEX文件(HEX文件是十六進(jìn)制文件,將燒寫進(jìn)單片機(jī)。相當(dāng)于Windows中的可執(zhí)行文件“.exe”),“0Error(s),0Warning(s).”表示編譯成功,程序也沒有語法錯(cuò)誤。如果提示你的程序有錯(cuò),請細(xì)心的檢查一下,有沒有發(fā)生漏掉分號等情況。STC-ISP(燒錄軟件)的使用四、燒寫程序到單片機(jī)中在工程文件夾下,我們可以看到生成的LED.hex文件,這正是我們所需要的。下面我們將把LED.hex文件燒寫進(jìn)單片機(jī),我們將介紹下載程序的一般步驟。STC-ISP(燒錄軟件)的使用1、設(shè)置單片機(jī)型號,這里我們設(shè)置單。片機(jī)為STC89C51RC。(根據(jù)你的單片機(jī)型號而定)。STC-ISP(燒錄軟件)的使用2、設(shè)置串口端口號,波特率等參數(shù)。由于我們一般用的是USB轉(zhuǎn)串口芯片,不是真正的RS232串口,所以串口號不固定,每次插上轉(zhuǎn)接板或單片機(jī)學(xué)習(xí)板時(shí),我們應(yīng)打開設(shè)備管理器如圖

STC-ISP(燒錄軟件)的使用(XP系統(tǒng):右擊“我的電腦”→“屬性”→“硬件”→“設(shè)備管理器”;Win7系統(tǒng):右擊“計(jì)算機(jī)”→“管理”→“設(shè)備管理器”;WIN8系統(tǒng):右鍵開始,選擇設(shè)備管理器。)。找到端口(COM和LPT)選項(xiàng),展開,里面會(huì)有一個(gè)類似“ProlificUSB-to-SerialCommPort(COM1)”或者“USB-SERIALCH431(COM1)”的項(xiàng)。括號里面的COMx就是我們要找的端口號。填到STC-ISP中就可以了(如果有多項(xiàng)不知道是哪一個(gè),可以插拔單片機(jī)學(xué)習(xí)板看哪項(xiàng)會(huì)刷新)。如果很不幸,你的串口號很大,超出STC-ISP可設(shè)置的范圍了,可以右擊設(shè)備管理器中顯示的那一項(xiàng)更改COM端口序號。波特率等選項(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)擊“停止”按鈕,直接斷電再上電嘗試即可。一般幾秒鐘就能下載完成,STC-ISP中會(huì)顯示下載成功。STC-ISP(燒錄軟件)的使用下載成功STC-ISP(燒錄軟件)的使用五、觀察程序執(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è)LED點(diǎn)亮第一個(gè)LED的程序分析#include<reg52.h>頭文件第一行包含頭文件,這個(gè)和C語言編寫HelloWorld時(shí)的#include一樣。頭文件reg52.h中定義了單片機(jī)的一些寄存器,如P0~P3等。你可以把寄存器想象成C語言中常說的內(nèi)存。有興趣的讀者可以右擊reg52.h打開頭文件看一看。sbitL

溫馨提示

  • 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)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論