初級組培訓-51通講2015-06-08_第1頁
初級組培訓-51通講2015-06-08_第2頁
初級組培訓-51通講2015-06-08_第3頁
初級組培訓-51通講2015-06-08_第4頁
初級組培訓-51通講2015-06-08_第5頁
已閱讀5頁,還剩58頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

電協初級組培訓

—51單片機通講

主講人:柏明明時間:2015年5月29日預備知識認識51

應用51題目講解預備知識電平特性進制邏輯運算C—51電平特性數字電路中電平只有兩種狀態:高電平和低電平電平分很多類:TTL、CMOS、EIA等。51單片機為TTL電平:高+5V低0V

(L<0.8VH>2.4V)TTL特點:速度快但是功耗高計算機RS232電平(EIA電平):高-12V低+12V所以計算機與單片機之間通訊時需要加電平轉換芯片max232二進制十進制二進制十進制二進制0081000101910012101010103111110114100121100510113110161101411107111151111十六進制是二進制的簡短表示形式。十進制中的0-15分別表示為十六進制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F熟練掌握二進制與十六進制之間的轉換。規律:一般把四個二進制數放在一起轉換成一個十六進制數,轉換時先把二進制數轉換成十進制數,再把十進制數轉換成十六進制數。如:0001B->1->1HB表示為二進制,H為十六進制

1001B->9->9H1010B->10->AH00101100->44->2CH

各種進位制的對應關系十進制二進制十六進制十進制二進制十六進制000910019111101010A2102111011B3113121100C41004131101D51015141110E61106151111F71117161000010810008

邏輯運算1.“與”運算“與”是實現“必須都有,否則就沒有”邏輯關系的運算。運算符為“&”,其運算規則如下:0&0=0,0&1=1&0=0,1&1=1

2.“或”運算“或”是實現“只要其中之一有,就有”邏輯關系的運算,其運算符為“|”。其運算規則如下:0|0=0,0|1=1|0=1,1|1=13.“非”運算“非”是實現“求反”這種邏輯的一種運算,“非”運算記作!其運算規則如下:

!1=0,!0=14.“異或”運算“異或”是實現“必須不同,否則就沒有”邏輯的運算,運算符為^。其運算規則如下:0^0=0,1^1=0,1^0=0^1=1C—51類型符號關鍵字數的表示范圍所占位數整型字符型實型有無(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortint160~65535有float323.4e-38~3.4e38有double321.7e-308~1.7e308有char8-128~127無unsignedchar80~255C-51的數據類型擴充定義sfr:特殊功能寄存器聲明(reg52.h)sfr16:sfr的16位數據聲明(TL0、TH0)sbit:特殊功能位聲明例:sfrSCON=0X98;sfr16T2=0xCC;sbitOV=PSW^2;C-51的包含的頭文件通常有:reg51.h

reg52.hmath.hstdio.hreg51.h/reg52.h:定義特殊功能寄存器和位寄存器的物理地址math.h:定義常用數學運算:sin()cos()tan()abs()fabs()等Stdio.h:putchar()getchar()puts()printf()等與C語言基本相同:+-*/(加減乘除)>>=<<=(大于大于等于小于小于等于)==!=(測試等于測試不等于)&&||!(邏輯與邏輯或邏輯非)&|(按位與按位或)>><<(位右移位左移)^~(按位異或按位取反)C-51的運算符

C-51的基本語句與標準C語言基本相同:

if選擇語言

while循環語言

for循環語言

switch/case多分支選擇語言

do-while循環語言

格式:voidmain(void)

特點:無返回值,無參。

任何一個C程序有且僅有一個main函數,它是整個程序開始執行的入口。

例:voidmain()

{

總程序從這里開始執行;

其他語句;

}主函數中斷服務程序void函數名()interruptn{

函數內部實現….}預備知識認識51

應用51題目講解什么是單片機將CPU、隨機存儲器RAM、只讀存儲器ROM、中斷系統、定時器/計數器以及I/O接口電路等微型計算機的主要部件集成在一塊芯片上(單片化),使其具有計算機的基本功能的芯片。

主要型號:Atmel公司AT89C51、AT89C52臺灣STC(宏晶)公司STC89C51、STC89C5251單片機的內部結構時鐘信號源外部事件信號BUS時鐘電路8KBFlashROM256BRAM128BSFR16位×3個定時/計數器64KB總線擴展控制器可編程并行口可編程全雙工串行口CPU中斷控制器外中斷8位×4個并行口串行通信總線控制BUS52單片機內部主要包括9個部分:一個8位的微處理器CPU8KB的片內程序存儲器FlashROM256B的片內數據存儲器RAM、128B特殊功能寄存器(SFR)3個16位的定時器/計數器有一個管理6個中斷源的中斷控制器4個8位并行I/O端一個全雙工的串行接口(UART)片內振蕩電路和時鐘發生器

可擴展64KB程序、64KB數據存儲器的三總線控制電路單片機的引腳封裝: 常用40DIP40個引腳分為4類:電源引腳晶振引腳控制信號輸入/輸出引腳T2/P1.0T2EX/P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1GATE0/INT0/P3.2GATE1/INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1Vss89C5289C5140393837363534333231302928272625242322211234567891011121314151617181920VccP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8一、電源引腳 Vcc(40腳):接5V電源正端 Vss(20腳):接5V電源地端二、晶振引腳XTAL1(19腳)XTAL2(18腳)晶振XTAL2XTAL1單片機C1C21819三、控制信號引腳:1、RST(9腳)

RST:復位信號輸入端,高電平有效。

單片機正常工作時:RST保持兩個機器周期的高電平就會使單片機復位;

上電時:RST上的高電平必須保持10ms以上才能保證有效復位,由于振蕩器需要一定的起振時間。

P3口控制引腳引腳第二、第三功能P3.0RXD:串行口輸入P3.1TXD:串行口輸出P3.2INT0/GATE0

:外部中斷0請求輸入/定時器/計數器0運行外部控制輸入P3.3INT1/GATE1

:外部中斷1請求輸入/定時器/計數器1運行外部控制輸入P3.4T0:定時器/計數器0外部計數脈沖輸入P3.5T1:定時器/計數器1外部計數脈沖輸入P3.6WR:外部數據存儲器寫控制信號輸出P3.7RD:外部數據存儲器讀控制信號輸出

時鐘與周期

狀態周期、機器周期、指令周期

機器周期:指CPU訪問一次存儲器所需要的時間。機器周期是量度時間的基本單位。機器周期與振蕩周期的關系:1個機器周期包含12個振蕩周期,即 機器周期=12/fosc 例如,單片機的振蕩頻率fosc為12MHz,則 機器周期=12/fosc=10-6s=1us

CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器;RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據;ROM:用以存放程序、一些原始數據和表格;I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出;T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;內部資源六個中斷源的中斷控制系統;一個全雙工UART(通用異步接收發送器)的串行I/O口,用于實現單片機之間或單片機與微機之間的串行通信;片內振蕩器和時鐘產生電路,石英晶體和微調電容需要外接。最高振蕩頻率取決于單片機型號及性能。總線(BUS)是計算機各部件之間傳送信息的公共通道。微機中有內部總線和外部總線兩類。內部總線是CPU內部之間的連線。外部總線是指CPU與其它部件之間的連線。外部總線有三種:數據總線DB(DataBus),地址總線AB(AddressBus)和控制總線CBControlBus)。預備知識認識51

應用51題目講解I/O口流水燈數碼管按鍵中斷定時器中斷串口中斷外部中斷LED電路加上拉電阻,低電平點亮sbitLED0=P1^0;voidmain(void){ LED0=1; while(1) { LED0=!LED0; DelayMs(200); } }閃爍LED數碼管

數碼管其實就是幾個連在一起LED燈,操作方法與LED燈一樣使用數碼管時要注意區分這兩種不同的接法。為了顯示數字或字符,必須對數字或字符進行編碼。共計8段,編碼是一個字節,dp、g在高位端。共陰極共陽極共陰數碼管碼表

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0 1 2 3

450x7d,0x07,0x7f,0x6f,0x77,0x7c,6 7 8 9

AB0x39,0x5e,0x79,0x71,0x00C

D

EF

無顯示數碼管電路靜態顯示的特點是每個數碼管的段選必須接一個8位數據線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。字形碼即是段選信號。靜態顯示動態掃描

動態顯示的特點是將所有數碼管段選并聯在一起,由位選控制是哪一位數碼管有效。選亮數碼管采用動態掃描顯示。所謂動態掃描即輪流向各位數碼管送出段選和位選,利用發光管的余輝和人眼視覺暫留作用,使人的感覺數碼管同時都在顯示。動態顯示的亮度比靜態顯示要差一些,選擇限流電阻時應略小于靜態顯示電路中的。sbitdula=P2^6;sbitwela=P2^7;unsignedcharcodetable[]=0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voidmain(void){ dula=1;//先送段選 P0=table[0]; dula=0; wela=1; P0=0XFE; wela=0; while(1);}靜態顯示

dula=1; P0=table[0]; dula=0; P0=0XFF;//??ó° wela=1; P0=0XFE; wela=0; DelayMs(50);//體現器實現過程 dula=1; P0=table[1]; dula=0; P0=0XFF;//??ó° wela=1; P0=0XFD; wela=0; DelayMs(50);動態掃描按鍵:分為按鍵和矩陣鍵盤抖動問題if(KEY1==0) { DelayMs(10); if(KEY1==0) {

操作語句;……… while(!KEY1); } }獨立按鍵核心代碼:P3=0XFE; temp=P3; temp&=0XF0; if(temp!=0XF0) { DelayMs(10); temp=P3; temp&=0XF0; if(temp!=0XF0) { temp=P3; switch(temp) { case0XEE:Key=0;break; case0XDE:Key=1;break; case0XBE:Key=2;break; case0X7E:Key=3;break; }

矩陣鍵盤核心代碼:while(temp!=0XF0){temp=P3; temp&=0XF0;}

} }

P3=0XFD;………執行主程序主程序繼續執行主程序斷點中斷請求中斷響應執行中斷處理程序中斷返回中斷關鍵寄存器:IE、IP

可以通過IP設置為高低兩個優先級,默認為低優先級。作用:當兩個中斷源同時發生時,執行的順序。高的先執行。同一優先級中斷源按以下順序處理。中斷響應條件中斷源有中斷請求;此中斷源的中斷允許位為1;

CPU開中斷(即EA=1)。以上三條同時滿足時,CPU才有可能響應中斷。模式1voidTimer_Init(void)

{

TMOD=0X01; //IETMODTCON

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

EA=1;

ET0=1;

TR0=1;

}模式2:初值自動重裝voidTimer_Init(void)

{

TMOD=0X02; //IETMODTCON

TH0=0x06;

TL0=0x06;

EA=1;

ET0=1;

TR0=1;

}//任務:LED=~LED;SCON是一個特殊功能寄存器,用以設定串行口的工作方式、接收/發送控制以及設置狀態標志:

關鍵寄存器:SCON、PCON

串口SCON中關鍵位:SM0、SM1、REN、TI、RI其余位:

溫馨提示

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

評論

0/150

提交評論