1. 附上51片內資源簡介,再次記憶:
.8位cpu·4kbytes 程式儲存器(rom) (52為8k)
·256bytes的資料儲存器(ram) (52有384bytes的ram)
·32條i/o口線·111條指令,大部分為單位元組指令
·21個專用暫存器
·2個可程式設計定時/計數器·5個中斷源,2個優先順序(52有6個)
·乙個全雙工序列通訊口
·外部資料儲存器定址空間為64kb
·外部程式儲存器定址空間為64kb
·邏輯操作位定址功能·雙列直插40pindip封裝
·單一+5v電源供電
cpu:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能暫存器;
ram:用以存放可以讀寫的資料,如運算的中間結果、最終結果以及欲顯示的資料;
rom:用以存放程式、一些原始資料和**;
i/o口:四個8位並行i/o口,既可用作輸入,也可用作輸出;
t/c:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;
五個中斷源的中斷控制系統;
乙個全雙工uart(通用非同步接收傳送器)的序列i/o口,用於實現微控制器之間或微控制器與微機之間的序列通訊;
片內振盪器和時鐘產生電路,石英晶體和微調電容需要外接。最高振盪頻率為12m。
2. 從資料儲存型別來說,8051系列有片內、片外程式儲存器,片內、片外資料儲存器,片內程式儲存器還分直接定址區和間接定址型別,分別對應code、data、xdata、idata以及根據51系列特點而設定的pdata型別,使用不同的儲存器,將使程式執行效率不同,在編寫c51程式時,最好指定變數的儲存型別,這樣將有利於提高程式執行效率。與ansi-c稍有不同,它只分samll、compact、large模式,各種不同的模式對應不同的實際硬體系統,也將有不同的編譯結果。
程式可以簡單的分為code(程式)區,和data (資料)區,code區在執行的時候是不可以更改的,data區放全域性變數和臨時變數,是要不斷的改變的,cpu從code區讀取指令,對data區的資料進行運算處理,因此code區儲存在什麼介質上並不重要,象以前的電腦程式儲存在卡片上,code區也可以放在rom裡面,也可以放在ram裡面,也可以放在flash裡面(但是執行速度要慢很多,主要讀flash比讀ram要費時間),因此一般的做法是要將程式放到flash裡面,然後load到 ram裡面執行的;data區就沒有什麼選擇了,肯定要放在ram裡面,放到rom裡面改動不了。
在51系列中data,idata,xdata,pdata的區別:
data:固定指前面0x00-0x7f的128個ram,可以用acc直接讀寫的,速度最快,生成的**也最小。
idata:固定指前面0x00-0xff的256個ram,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似c中的指標方式訪問的。彙編中的語句為:
mox acc,@rx.(不重要的補充:c中idata做指標式的訪問效果很好)。
xdata:外部擴充套件ram,一般指外部0x0000-0xffff空間,用dptr訪問。
pdata:外部擴充套件ram的低256個位元組,位址出現在a0-a7的上時讀寫,用movx acc,@rx讀寫。這個比較特殊,而且c51好象有對此bug,建議少用。
51微控制器的一些複習
51微控制器的一些複習 sfr special function register特殊功能暫存器的縮寫 宣告可位元組定址的特殊功能暫存器,如sfr po 0x80,sbit 特殊功能暫存器位 宣告可位定址的特殊功能暫存器,如sbit a p0 0 這些都在標頭檔案中有定義 或reg51.h 中一共定...
關於聲音的一些基本知識
前些天的時候需要做乙個微控制器放 的程式。我覺得有必要稍微了解一下關於聲音的基本知識。我覺得應該重點看看這篇文章的音高和音色部分。既然我們程式設計的目的還是為了描述物理世界,那麼就有必要了解一些基本的知識。由於人耳聽覺系統非常複雜,迄今為止人類對它的生理結構和聽覺特性還不能從生理解剖角度完全解釋清楚...
關於事務的一些基本知識
原子性 atomicity 原子 的本意是 不可再分 事務的原子性表現為乙個事務中涉及到的多個操作在邏輯上缺一不可。事務的原子性要求事務中的所有操作要麼都執行,要麼都不執行。一致性 consistency 一致 指的是資料的一致,具體是指 所有資料都處於滿足業務規則的一致性狀態。一致性原則要求 乙個...