版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)入門基礎(chǔ)
1、什么是單片機(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)的布爾處理器。第一部分:?jiǎn)纹瑱C(jī)基礎(chǔ)
2、單片機(jī)能做什么凡是與控制或簡(jiǎn)單計(jì)算有關(guān)的電子設(shè)備都可以用單片機(jī)來實(shí)現(xiàn),再根據(jù)具體實(shí)際情況選擇不同性能的單片機(jī),如:atmel,stc,pic,avr,凌陽,80C51,arm等工業(yè)自動(dòng)化:數(shù)據(jù)采集、測(cè)控技術(shù)。智能儀器儀表:數(shù)字示波器、數(shù)字信號(hào)源、數(shù)字萬用表、感應(yīng)電流表等。消費(fèi)類電子產(chǎn)品:洗衣機(jī)、電冰箱、空調(diào)機(jī)、電視機(jī)、微波爐、手機(jī)、IC卡、汽車電子設(shè)備等。通訊方面:調(diào)制解調(diào)器、程控交換技術(shù)、手機(jī)、小靈通等。武器裝備:飛機(jī)、軍艦、坦克、導(dǎo)彈、航天飛機(jī)、魚雷制導(dǎo)、智能武器等。等…..
3、怎么開始學(xué)習(xí)?1、實(shí)踐第一。2、即缺什么補(bǔ)什么(補(bǔ)充必要的理論知識(shí))。3、做實(shí)際小制作積累經(jīng)驗(yàn),比如調(diào)試、編程。(可在網(wǎng)絡(luò)上搜集題目,也可自己有什么想法大膽的去試驗(yàn))4、80C51系列介紹
﹡
Intel的:80C31、80C51、87C51,80C32、80C52、87C52等;
﹡ATMEL的:89C51、89C52、89C2051等;
﹡
Philips、華邦、Dallas、STC等公司的許多產(chǎn)品。
80C51是MCS-51系列中的一個(gè)典型品種;其它廠商以8051為基核開發(fā)出的CMOS工藝單片機(jī)產(chǎn)品統(tǒng)稱為80C51系列。當(dāng)前常用的80C51系列單片機(jī)主要產(chǎn)品有:80C51的引腳封裝總線型非總線型總線(BUS)是計(jì)算機(jī)各部件之間傳送信息的公共通道。微機(jī)中有內(nèi)部總線和外部總線兩類。內(nèi)部總線是CPU內(nèi)部之間的連線。外部總線是指CPU與其它部件之間的連線。外部總線有三種:數(shù)據(jù)總線DB(DataBus),地址總線
AB(AddressBus)和控制總線
CB(ControlBus)。CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;RAM:用以存放可以讀寫的數(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ī)C語言入門1、C51簡(jiǎn)介
C語言是一種編譯型程序設(shè)計(jì)語言,它兼顧了多種高級(jí)語言的特點(diǎn),并具備匯編語言的功能。目前,使用C語言進(jìn)行程序設(shè)計(jì)已經(jīng)成為軟件開發(fā)的一個(gè)主流。用C語言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強(qiáng)程序的可讀性,便于改進(jìn)、擴(kuò)充和移植。而針對(duì)8051的C語言日趨成熟,成為了專業(yè)化的實(shí)用高級(jí)語言。
C語言作為一種非常方便的語言而得到廣泛的支持,很多硬件開發(fā)都用C語言編程,如:各種單片機(jī)、DSP、ARM等.C語言程序本身不依賴于機(jī)器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機(jī)中移植過來。
C提供了很多數(shù)學(xué)函數(shù)并支持浮點(diǎn)運(yùn)算,開發(fā)效率高,故可縮短開發(fā)時(shí)間,增加程序可讀性和可維護(hù)性。
C-51的特點(diǎn)C-51與ASM-51(匯編)相比,有如下優(yōu)點(diǎn):1.
對(duì)單片機(jī)的指令系統(tǒng)不要求了解,僅要求對(duì)8051的存貯器結(jié)構(gòu)有初步了解;2.
寄存器分配、不同存貯器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;3.
程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;4.
提供的庫(kù)包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;5.
由于具有方便的模塊化編程技術(shù),使已編好程序可容易地移植;2、單片機(jī)C程序設(shè)計(jì)的一般格式幾個(gè)基本概念(1)函數(shù):C語言程序由一個(gè)主函數(shù)和若干個(gè)其它函數(shù)構(gòu)成,程序中由主函數(shù)調(diào)用其它函數(shù),其它函數(shù)之間也可以相互調(diào)用。(2)指針與指針變量:若定義變量x,&x即為x的指針,指針變量是指針的指針,若xp=&x,利用*xp即可訪問變量x。(3)#include(包含處理命令):把一個(gè)源文件將另外一個(gè)源文件的全部?jī)?nèi)容包含進(jìn)來,或者說把一個(gè)外部文件包含到本文件之中。(4)#define(宏定義):在C程序中,可以指定一標(biāo)志符去定義一個(gè)常量或字符串。單片機(jī)C程序的基本結(jié)構(gòu)(1)主函數(shù)名必須為main()。C程序通過函數(shù)調(diào)用去執(zhí)行指定的工作。(2)一個(gè)函數(shù)由說明部分和函數(shù)體兩部分組成。函數(shù)說明部分是對(duì)函數(shù)名、函數(shù)類型、形參名和形參類型等所做的說明。(3)C程序的執(zhí)行總是從main()函數(shù)開始,而對(duì)該函數(shù)的位置無特殊規(guī)定。(4)在源程序文件需要包含其它源程序文件時(shí),應(yīng)在本程序文件頭部用包含命令#include處理。(5)C程序中的一個(gè)函數(shù)需要調(diào)用另一個(gè)子函數(shù)時(shí),另一個(gè)函數(shù)應(yīng)寫在前面,否則應(yīng)聲明。(6)C程序書寫格式自由,一行可寫一個(gè)語句或幾個(gè)語句。每個(gè)語句結(jié)尾用;結(jié)束。3、單片機(jī)C程序的數(shù)據(jù)類型常量和符號(hào)常量例:#definePARL3.14159(PARL即為符號(hào)常量)(1)整型常量,如11,o11,0xff等。(2)實(shí)型常量,如0.12,1.55e5等。(3)字符常量,如‘a(chǎn)’、‘A’等。(4)字符串常量,如“a”、“CHINA”等。變量(1)位變量:bit和sbit(2)字符變量:singedchar和unsignedchar(3)整型變量:singedint和unsignedint(4)長(zhǎng)整型變量:unsignedlong和signedlong(3)實(shí)型變量:float和double(4)寄存器變量:sfr和sfr164、單片機(jī)C程序的運(yùn)算符和表達(dá)式(1)算術(shù)運(yùn)算符13個(gè):+、-、*、/、%、=、+=、-=、*=、/=、%=、++、--(2)關(guān)系運(yùn)算符6個(gè):>、<、==、>=、<=、!=(3)邏輯運(yùn)算符3個(gè):&&、||、?。?)位操作運(yùn)算符7個(gè):>>、<<、|、&(相與)、^、~、&(變量取地址)(5)指針運(yùn)算符:*5、單片機(jī)C程序的一般語法結(jié)構(gòu)順序結(jié)構(gòu)例:main(){P0=0xff;P2=0x30;P1=0xff;P3=0xff;scan();test();}分支結(jié)構(gòu)(1)單分支結(jié)構(gòu)形式:if(條件表達(dá)式){執(zhí)行語句;}例:(2)雙分支結(jié)構(gòu):形式:if(條件表達(dá)式){語句1;}else{語句2;}例:(3)由雙分支結(jié)構(gòu)變化而成的多分支結(jié)構(gòu)形式:
if(表達(dá)式1)語句1;
elseif(表達(dá)式2)語句2;.
.elseif(表達(dá)式n)語句n;else語句n+1;例:(4)switch…case多分支轉(zhuǎn)移結(jié)構(gòu)語句形式:
switch(條件表達(dá)式)
{case常量表達(dá)式1:{語句1;break;}case常量表達(dá)式2:{語句2;break;}.
..case常量表達(dá)式n:{語句n;break;}default:{語句n+1;break;}}例:循環(huán)結(jié)構(gòu)(1)while(表達(dá)式){循環(huán)體語句;}例:voiddelay(unsignedchartimes){unsignedcharI;i=250;while(--times){while(--i);}}(2)do{循環(huán)體語句;}while(表達(dá)式);(3)for(表達(dá)式1;表達(dá)式2;表達(dá)式3){循環(huán)體語句;}例:6、C51區(qū)別于標(biāo)準(zhǔn)C語言的特點(diǎn)(1)使用文件包含命令#include應(yīng)注意對(duì)應(yīng)頭文件的名稱,要與規(guī)定名稱相符。(2)單片機(jī)中,一個(gè)變量可放在片內(nèi)存儲(chǔ)單元,也可放在片外存儲(chǔ)單元,放在片內(nèi)存儲(chǔ)單元還要區(qū)分是否可位尋址,或放在間接尋址區(qū)。例:intdatax,y;//表示整型變量指定在片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū)
charxdata
m,n;//表示字符變量指定在片外數(shù)據(jù)存儲(chǔ)區(qū)C51存儲(chǔ)類型存儲(chǔ)類型尋址空間數(shù)據(jù)長(zhǎng)度值域范圍data片內(nèi)直接尋址RAM800H~7FHidata片內(nèi)間接尋址RAM880H~FFHpdata分頁(yè)尋址片外RAM800H~FFH存儲(chǔ)類型尋址空間數(shù)據(jù)長(zhǎng)度值域范圍xdata片外數(shù)據(jù)存儲(chǔ)(64K)160000H~FFFFHcode片內(nèi)統(tǒng)一編址ROM(64K)160000H~FFFFHbdata片內(nèi)可位尋址的RAM(16byet)120H~2FH(3)21個(gè)SFR只能直接尋址,一般在頭文件中用字節(jié)定義方式定義。如:sfrTMOD=0x89;
(4)C51編譯器編譯源程序時(shí),數(shù)據(jù)類型和存儲(chǔ)類型都可預(yù)先定義,但數(shù)據(jù)具體放在哪一個(gè)單元不由用戶指定。(5)單片機(jī)C程序的中斷程序與匯編語言程序不同,中斷過程通過使用interrupt關(guān)鍵字和中斷號(hào)(0~31)來實(shí)現(xiàn)。中斷號(hào)告訴編譯器中斷程序的入口地址。單片機(jī)中斷源與C中斷程序中中斷號(hào)對(duì)照表C中的中斷號(hào)對(duì)應(yīng)單片機(jī)中的中斷源C中的中斷號(hào)對(duì)應(yīng)單片機(jī)中的中斷源0外部中斷03定時(shí)器1中斷1定時(shí)器0中斷4串行口中斷2外部中斷15定時(shí)器2中斷一個(gè)定時(shí)器0中斷程序編寫格式如下:Voidtimer0(void)interrupt1{TR0=0;TH0=0xff;TL0=0x30;TR0=0;
tick_count++;}用戶不必關(guān)心現(xiàn)場(chǎng)保護(hù)及恢復(fù)現(xiàn)場(chǎng)的問題,編譯器會(huì)自動(dòng)完成。中斷程序的入口地址被編譯器放在中斷向量中,無需用戶指定。(6)片外擴(kuò)展的I/O接口,可用#define進(jìn)行定義。如:#include"absacc.h"#defineADC0804XBYTE[0x7ffe]例1:清零程序(將2000H—20FFH的內(nèi)容清零)
★匯編語言程序
ORG0000HSE01:MOVR0,#00HMOVDPTR,#2000H;(0000H)送DPTRLOO1:CLRAMOVX@DPTR,A;0送(DPTR)INCDPTR;DPTR+1INCR0;字節(jié)數(shù)加1CJNER0,#00H,LOO1;不到FF個(gè)字節(jié)再清LOOP:SJMPLOOP程序示例清零程序(將2000H—20FFH的內(nèi)容清零)
★C-51程序
#include<reg51.h>main(){
inti;unsignedcharxdata*p=0x2000;
/*指針指向2000H單元*/
for(i=0;i<256;i++){*p=0;p++;}/*清零2000H-20FFH單元*/}★匯編語言程序
ORG0000HL00:MOVR0,#10H;查找16個(gè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 模板工程勞務(wù)分包班組合同
- 租賃合同終止的原因分析
- 飼料行業(yè)博覽會(huì)購(gòu)銷合同
- 專業(yè)財(cái)務(wù)外包協(xié)議范本
- 校園物資訂購(gòu)協(xié)議
- 政府單位采購(gòu)合同中的云計(jì)算采購(gòu)
- 家庭護(hù)理家政服務(wù)雇傭合同
- 高效消毒清潔協(xié)議
- 典型服務(wù)合同示范文本
- 農(nóng)村自來水安裝協(xié)議范本
- 中國(guó)地質(zhì)大學(xué)(武漢)《自然語言處理》2022-2023學(xué)年第一學(xué)期期末試卷
- 【物理】2024-2025學(xué)年人教版物理八年級(jí)上冊(cè) 期末復(fù)習(xí)計(jì)算題
- 2024年食品安全法知識(shí)培訓(xùn)考試題庫(kù)含答案(基礎(chǔ)題)
- 2024-2025學(xué)年語文二年級(jí)上冊(cè) 統(tǒng)編版期末測(cè)試卷(含答案)
- 康復(fù)評(píng)定試題及答案
- 【MOOC】學(xué)術(shù)交流英語-東南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年秋季學(xué)期建筑力學(xué)#補(bǔ)修課期末綜合試卷-國(guó)開(XJ)-參考資料
- 逆風(fēng)飛翔向陽而生抗逆力主題班會(huì)
- 古希臘文明智慧樹知到期末考試答案章節(jié)答案2024年復(fù)旦大學(xué)
- 小升初個(gè)人簡(jiǎn)歷模板下載
- 2023-2024學(xué)年四川省瀘州市小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)期末模考試卷
評(píng)論
0/150
提交評(píng)論