<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機一些基礎(chǔ)問題

          單片機一些基礎(chǔ)問題

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

          一般說1T 4T 6T 12T的是指的什么?

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

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

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

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

          外接晶體引腳

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

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

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

          復(fù)位 RST

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

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

          輸入輸出引腳

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

          總線,訪問期間內(nèi)部的上拉電阻起作用。

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

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

          位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。

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

          P3 引腳兼用功能

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

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

          P3.2 外部中斷0( INT0)

          P3.3 外部中斷1(INT1)

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

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

          P3.6 外部數(shù)據(jù)存儲器寫選通WR

          P3.7 外部數(shù)據(jù)存儲器寫選通RD

          波特率與比特率:

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

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

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

          KEIL uVision2 C51 編譯器所支持的數(shù)據(jù)類型

          數(shù)據(jù)類型長度值域

          Unsigned char單字節(jié)0~255

          Signed char單字節(jié)-128~+127

          Unsigned int雙字節(jié)0~65535

          Signed int雙字節(jié)-32768~+32767

          Unsigned long四字節(jié)0~4294967295

          Signed long四字節(jié)-2147483648~+2147483647

          float四字節(jié)±1.175494E-38~±3.402823E+38

          bit1位0或1

          sfr單字節(jié)0~255

          sfr16雙字節(jié)0~65535

          Sbit1位0或1

          變量的定義可以使用所有C51 編譯器支持的數(shù)據(jù)類型,而常量的數(shù)據(jù)類型只有整型、浮點型、字符型、字符串型和位標(biāo)量

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

          8051 結(jié)構(gòu)提供給用戶3 個不同的存儲空間

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

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


          上一頁 1 2 3 4 5 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();