51微控制器pc程式計數器,51微控制器計數器怎麼使用 ?

時間 2022-02-05 05:20:10

1樓:匿名使用者

從51微控制器 ram 資料儲存器分布圖可知,從80h—ffh位址單元(也是128個位元組)為特殊暫存器(sfr)單元,位址從00h—7fh單元(共128個位元組)為使用者資料ram,使用者資料單元,只指使用者在程式設計時可以定義的暫存器,一般用於計算、暫存或轉換作用,如沒有這些單元,那基本上微控制器就沒有作用了

所以作為微控制器選型時,ram的大小也直接決定了它的成本,不存在樓主所說的浪費現象,可以根據自己程式的複雜度來決定選型ram的大小。

51微控制器的ram分布如下圖

2樓:匿名使用者

特殊暫存器不在ram內,只是和ram統一編址,pc指標在cpu內。

補充一下:

從結構角度講,特殊暫存器和ram 不可能在一起,因為他們根本就不是一樣的東西。只是為了使用方便,統一編址。

cpu對ram 對特殊暫存器甚至你自己接的外設都是採用同樣的定址方式,所以為了使用者使用方便把特殊暫存器和ram統一編址。

而作為乙個使用者,所關心的應該是關心的是ram到底有多大。

51微控制器的ram 128位元組,只是80-ff這麼大,所以說它的儲存器就這麼大,其他空餘的地方根本就沒有ram。所以不會浪費。

3樓:

特殊暫存器sfr是在ram裡面的,位於高128位中,而真正能給使用者自由使用的ram則是位於ram的低128位(52的話,高128位也是可以給使用者自由使用的,只不過52對於高128位的ram的訪問,用定址方式區分,這裡不做討論)。

使用者自由使用的ram是給使用者存放中間結果或暫時資料儲存的。

內部ram的大小,對於同樣結構的mcu來說,也決定了在設計軟體在功能的複雜程度,ram比較小的,就決定了功能就不能太複雜

當然ram也能外部擴充套件,但是其訪問速度遠遠低於內部ram的訪問。

4樓:匿名使用者

特殊暫存器怎麼可能位於ram中呢,只不過高128byteram位址與特殊暫存器位址重疊而已,通過訪問方式區別罷了。特殊暫存器是微控制器片內外設用來控制用的,通過內部匯流排與cpu相連。

ram作用:

一、存放一些程式變數(部分變數編譯器把它存放在了r0,r1等暫存器中了)

二、函式呼叫時的堆疊存放

51微控制器計數器怎麼使用 ?

5樓:melody丶丨

設定t0模式 為計數模式就行了 就是tmod的c/t位置1;

脈衝從t0輸入 t0就計數了

你讀取th0和tl0就曉得脈衝個數了

有了這個脈衝個數 輸出到數碼管即ok

6樓:小周愛嘮叨

main()

}void timer0() interrupt 1

51微控制器的程式計數器pc的作用

7樓:有學問的免子

pc的作用是用來存放將要執行的指令位址,共16位,可對64k rom直接定址,pc低8位經p0口輸出,高8位經p2口輸出。也就是說,程式執行到什麼地方,程式計數器pc就指到**,它始終是跟躥著程式的執行。我們知道,使用者程式是存放在內部的rom中的,我們要執行程式就要從rom中乙個個位元組的讀出來,然後到cpu中去執行,那麼rom具體執行到哪一條呢?

這就需要我們的程式計數器pc來指示。

程式計數器pc具有自動加1的功能,即從儲存器中讀出乙個位元組的指令碼後,pc自動加1(指向下乙個儲存單元)。

微控制器中的程式計數器pc用來做什麼

8樓:匿名使用者

滿意回答bai的解釋錯誤,dupc並不是在本zhi條指令執行完的瞬間加一dao

,而是在回取完指令後便加一答

org 0000h

start:

mov a,#30h

ajmp main

org 0030h

main:

movc a,@a+pc //執行完本條指令後,a的值為61h

//若是在執行完本條指令後再加一a的值應該為60hmov a,#30h

ajmp main

org 0060h

db 60h,61h,62h,63h

end此程式已說明問題

所以選c

9樓:匿名使用者

答案是c,,是用來存放下一條指令位址的

10樓:

選b,這是最基本問題

微控制器的程式計數器pc的構成

11樓:

他就是乙個單元,只是這個單元裝的是位址而已。

給你舉個通俗的例子,假設你是乙個網咖唯一的網管,任務是負責網咖600號電腦的檢查。

你上班開始,就從1號電腦檢查,有問題維修,沒問題就檢查2號,接著是3號。。。。

檢查第8號機的時候,8號機主告訴你說 19號機有問題,這個時候,你離開8號機之後,不是去9號,而去19號,19號機處理完之後,19號機主告訴你,113號機有問題,此時,你又去113號機,處理完113號機之後,113號機主沒有給你其他機主的資訊,那麼,你就重新返回9號機去處理,然後是10號機,然後是11號。。。。

這個例子雖然不百分百的符合微控制器的工作過程,但是差不多。

這個例子裡的 「你」,相當於pc程式計數器,你就是乙個人,然後要對付600臺機器的問題,所以你所需要的,就是600臺機器的編號而已,根據編號跳轉,而並不是說你要長得跟600臺機器那麼大。

同理,pc暫存器就是乙個16位的單元,因為是16位,所以,可以容納的數字是 0---65535一共65536個數字。那麼,我把程式空間做成65536個單元,每個單元給乙個編號,我只要把編號給pc就可以了,並不需要pc長成那麼大。

12樓:捷爾達公司

跳轉出現時,內部邏輯電路強制把跳轉位址寫入pc

影響pc跳轉的程式指令很多

但結構類似

51微控制器計數器怎麼用,51微控制器計數器怎麼用 50

51微控制器是基礎入門的一個微控制器,還是應用最廣泛的。51微控制器的定時 計數器的概念 微控制器中,脈衝計數與時間之間的關係十分密切,每輸入一個脈衝,計數器的值就會自動累加1,只要相鄰兩個計數脈衝之間的時間間隔相等,則計數值就代表了時間的流逝,因此,微控制器中的定時器和計數器其實是同一個物理的電子...

51微控制器的定時器和計數器分別定時和計數的週期是多長時間,這個脈衝週期有規定嗎

應該每個定時器都是有timrh和timrl,最大計數時間就是timrh timrl 匯流排頻率 時鐘分頻後的頻率 徐志尚 與晶振 工作方式 初值有關 51微控制器,計數器和定時器具體這麼用?計數器記的是誰的脈衝數? 水依若雨 定時器和計數器雖然有定時和技術兩種工作模式,但其本質都是使用加法計數器對脈...

以51微控制器為基體,設計59計數器要程序

include define uint unsigned int define uchar unsigned charuchar j uchar a,b uchar a1 uchar code sz uchar code wx void qf 區分個十百千位 a1 1 a 10 a1 2 a 10 ...