<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機一些基礎問(wèn)題

單片機一些基礎問(wèn)題

作者: 時(shí)間:2013-05-16 來(lái)源:網(wǎng)絡(luò ) 收藏

一般說(shuō)1T 4T 6T 12T的是指的什么?

標準51是12T的,就是說(shuō)12個(gè)時(shí)鐘周期(晶振周期,例如12M的,周期是1/12M,單位秒),機器做一個(gè)指令周期,剛好就是1/12M*12=1uS,常見(jiàn)指令例如nop就是一個(gè)周期,剛好1uS,其他的大多多于一個(gè)周期,乘除法更多。所以如果計算指令時(shí)間可以這樣算。

而現在很多51核的工藝質(zhì)量上去后,頻率大大提高,增強型51有6T的,如果接12M的話(huà),一個(gè)nop就只需要0.51uS,如果是STC的部分12T的話(huà),那只需要1/12uS。

單片機的晶振不是隨便選,要看技術(shù)手冊,看最高頻率,看支持類(lèi)型等等。一般12M,接串口的話(huà)11.0592M。如果是PIC,很多4M,8M。

不是越高越好,對很多不需要大量處理,只是控制的情況,為了增加可靠性,降低編程難度,降低功耗,往往可選用低頻的,例如實(shí)時(shí)時(shí)鐘的32768晶振。

外接晶體引腳

XTAL1 是片內振蕩器的反相放大器輸入端,XTAL2 則是輸出端,使用外部振蕩器

時(shí),外部振蕩信號應直接加到XTAL1,而XTAL2 懸空。內部方式時(shí),時(shí)鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時(shí)鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內選擇。電容取30PF 左右。

每個(gè)8051處理周期包括12 個(gè)振蕩周期每12 個(gè)振蕩周期用來(lái)完成一項操作如取指令和計算指令執行時(shí)間可把時(shí)鐘頻率除以12 取倒數然后指令執行所須的周期數。因此如果你的系統時(shí)鐘是11.059MHz 除以12 后就得到了每秒執行的指令個(gè)數為921583條指令取倒數將得到每條指令所須的時(shí)間1.085ms。

復位 RST

在振蕩器運行時(shí),有兩個(gè)機器周期(24 個(gè)振蕩周期)以上的高電平出現在此引腿時(shí),將使單片機復位,只要這個(gè)腳保持高電平,51 芯片便循環(huán)復位。復位后P0-P3 口均置1 引腳表現為高電平,程序計數器和特殊功能寄存器SFR 全部清零。當復位腳由

高電平變?yōu)榈碗娖綍r(shí),芯片為ROM 的00H 處開(kāi)始運行程序,復位操作不會(huì )對內部 RAM 有所影響。

輸入輸出引腳

(1) P0 端口[P0.0-P0.7] P0 是一個(gè)8 位漏極開(kāi)路型雙向I/O 端口,端口置1(對端口寫(xiě)1)時(shí)作高阻抗輸入端。作為輸出口時(shí)能驅動(dòng)8 個(gè)TTL。對內部Flash 程序存儲器編程時(shí),接收指令字節;校驗程序時(shí)輸出指令字節,要求外接上拉電阻。在訪(fǎng)問(wèn)外部程序和外部數據存儲器時(shí),P0 口是分時(shí)轉換的地址(低8 位)/數據

總線(xiàn),訪(fǎng)問(wèn)期間內部的上拉電阻起作用。

(2) P1 端口[P1.0-P1.7] P1 是一個(gè)帶有內部上拉電阻的8 位雙向I/0 端口。輸出時(shí)可驅動(dòng)4 個(gè)TTL。端口置1 時(shí),內部上拉電阻將端口拉到高電平,作輸入用。對內部 Flash 程序存儲器編程時(shí),接收低8 位地址信息。

(3) P2 端口[P2.0-P2.7] P2 是一個(gè)帶有內部上拉電阻的8 位雙向I/0 端口。輸出時(shí)可驅動(dòng)4 個(gè)TTL。端口置1 時(shí),內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash 程序存儲器編程時(shí),接收高8 位地址和控制信息。在訪(fǎng)問(wèn)外部程序和16 位外部數據存儲器時(shí),P2 口送出高8 位地址。而在訪(fǎng)問(wèn)8

位地址的外部數據存儲器時(shí)其引腳上的內容在此期間不會(huì )改變。

(4) P3 端口[P3.0-P3.7] P2 是一個(gè)帶有內部上拉電阻的8 位雙向I/0 端口。輸出時(shí)可驅動(dòng)4 個(gè)TTL。端口置1 時(shí),內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash 程序存儲器編程時(shí),接控制信息。除此之外P3 端口還用于一些專(zhuān)門(mén)功能,具體請看

P3 引腳兼用功能

P3.0 串行通訊輸入(RXD)

P3.1 串行通訊輸出(TXD)

P3.2 外部中斷0( INT0)

P3.3 外部中斷1(INT1)

P3.4 定時(shí)器0 輸入(T0)

P3.5 定時(shí)器1 輸入(T1)

P3.6 外部數據存儲器寫(xiě)選通WR

P3.7 外部數據存儲器寫(xiě)選通RD

波特率與比特率:

波特率是指數據信號對載波的調制速率,它用單位時(shí)間內載波調制狀態(tài)改變的次數來(lái)表示,其單位是波特(Baud)。比特率:每秒鐘傳送的二進(jìn)制位數,用 b / s 表示(b表示bit)波特率與比特率的關(guān)系是比特率=波特率X單個(gè)調制狀態(tài)對應的二進(jìn)制位數。

兩相調制(單個(gè)調制狀態(tài)對應1個(gè)二進(jìn)制位)的比特率等于波特率;四相調制(單個(gè)調制狀態(tài)對應2個(gè)二進(jìn)制位)的比特率為波特率的兩倍;八相調制(單個(gè)調制狀態(tài)對應3個(gè)二進(jìn)制位)的比特率為波特率的三倍;依次類(lèi)推。

晶振可以根據自己的情況使用,一般實(shí)驗板上是用11.0592MHz 或12MHz,使用前者的好外是可以產(chǎn)生標準的串口波特率,后者則一個(gè)機器周期為1 微秒,便于做精確定時(shí)。在自己做實(shí)驗里,注意的是VCC 是+5V 的,不能高于此值,否則將損壞單片機,太低則不能正常工作。在31 腳要接高電平,這樣我們才能執行片內的程序,如接低電平則使用片外的程序存儲器。

KEIL uVision2 C51 編譯器所支持的數據類(lèi)型

數據類(lèi)型長(cháng)度值域

Unsigned char單字節0~255

Signed char單字節-128~+127

Unsigned int雙字節0~65535

Signed int雙字節-32768~+32767

Unsigned long四字節0~4294967295

Signed long四字節-2147483648~+2147483647

float四字節±1.175494E-38~±3.402823E+38

bit1位0或1

sfr單字節0~255

sfr16雙字節0~65535

Sbit1位0或1

變量的定義可以使用所有C51 編譯器支持的數據類(lèi)型,而常量的數據類(lèi)型只有整型、浮點(diǎn)型、字符型、字符串型和位標量

長(cháng)整型就在數字后面加字母L,如104L,034L,0xF340 等。浮點(diǎn)型常量可分為十進(jìn)制和指數表示形式(12e5表示12*10^5)

8051 結構提供給用戶(hù)3 個(gè)不同的存儲空間

第一個(gè)存儲空間是代碼段(CODE)用來(lái)存放可執行代碼被16 位尋址空間可達64K;除了可執行代碼還可在代碼段中存儲查尋表為達此目的8051 提供了通過(guò)數據指針DPTR 或程序計數器加上由累加器提供的偏移量進(jìn)行尋址的指令這樣就可以把表頭地址裝入DPTR 中把表中要尋址的元素的偏移量裝入累加器中8051 在執行指令時(shí)的過(guò)程中把這兩者相加由此可節省不少指令周期。

第二個(gè)存儲區是8051 內128 字節的內部RAM 或8052 的前128 字節內部RAM 這部分主要是作為數據段稱(chēng)為DATA 區指令用一個(gè)或兩個(gè)周期來(lái)訪(fǎng)問(wèn)數據段訪(fǎng)問(wèn)DATA 區比訪(fǎng)問(wèn)XDATA 區要快因為它采用直接尋址方式而訪(fǎng)問(wèn)XDATA 須采用間接尋址必須先初始化DPTR 通常我們把使用比較頻繁的變量或局部變量存儲在DATA 段中但是必須節省使用DATA 段因為它的空間畢竟有限。在數據段中也可通過(guò)R0 和R1 采用間接尋址R0 和R1 被作為數據區的指針將要恢復或改變字節的地址放入R0 或R1 中根據源操作數和目的操作數的不同執行指令需要一個(gè)或兩個(gè)周期。數據段中有兩個(gè)小段第一個(gè)子段包含四組寄存器組每組寄存器組包含八個(gè)寄存器共32 個(gè)寄存器可在任何時(shí)候通過(guò)修改PSW 寄存器的RS1 和RS0 這兩位來(lái)選擇四組寄存器的任意一組作為工作寄存器組8051 也可默認任意一組作為工作寄存器組工作寄存器組的快速切換不僅使參數傳遞更為方便而且可在8051 中進(jìn)行快速任務(wù)轉換另外一個(gè)子段叫做位尋址段BDATA 包括16 個(gè)字節共128 位每一位都可單獨尋址8051 有好幾條位操作指令這使得程序控制非常方便并且可幫助軟件代替外部組合邏輯這樣就減少了系統中的模塊數位尋址段的這16 個(gè)字節也可像數據段中其它字節一樣進(jìn)行字節尋址。


上一頁(yè) 1 2 3 4 5 下一頁(yè)

關(guān)鍵詞: 單片機 基礎問(wèn)題 函數

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>