學了一段C語言基礎,買了ARM(4412)開發板準備學嵌入式,沒有任何基礎,看了幾天裸機教程,頭大啊真是從入門到放棄。欲速則不達,還是從基礎的學起吧,先搞51微控制器從基礎學起,然後在stm32,最後學ARM開發板。
花了幾百大洋買了嵌入式開發板,不想再買別的板子了,於是發現了新大陸---Proteus,不光能模擬51微控制器還能模擬stm32十分強大。
元件庫都是英文的,常用的幾種元件中英文對照如下。
RES:電阻;CAP:電容;BUTTON:按鍵開關;CRYSTAL:晶振;DIODE:二極體;LED:發光二極體。
51微控制器幾個重要元件MCU表示微控制器微處理器,簡單來說就是集CPU(運算、控制)、RAM(資料儲存-記憶體)、ROM(程式儲存)、輸入輸出裝置(串列埠、並口等)和中斷系統處於同一晶片的器件
微控制器最小系統必須包含:1.電源電路
2.晶體震盪電路
3.復位電路
51微控制器特有的程式設計語句1.標頭檔案#include<reg51.h>:定義了一些51微控制器特殊暫存器等
2.sfr(special function register):特殊功能暫存器宣告。
sfr P0 = 0x80;
0x80為暫存器地址,透過地址來訪問暫存器(注意這個 P 必須大寫)
只有聲明瞭這條語句,編譯器才知道P0是什麼東西。
3.sbit:特殊功能位宣告
sbit led = P0^0//P0口的第0位取了一個更形象的名字叫做led
IO口是特殊功能暫存器,初始化值為高電平。P0口有8位(bit),正好是一個位元組Byte
區分位元組地址和位地址
P0的位元組地址是80H。
SP的位元組地址是81H。
----
P0的位元組地址是80H,它有8個bit(P0^0 - P0^7), 對應的 位地址是80H~87H。
位地址81H,和SP的位元組地址81H,沒有衝突。
位 操作和匯流排操作 點亮ledkeil編譯c檔案,然後生成hex檔案載入到proteus中
1.位操作
#include<reg51.h> sbit led7 = P1^7;void main(){ led7=1; while(1);}
這樣就完成了操作,不影響P1口上其它IO的值
2.匯流排操作
要求讓P1口的最高位置(P1^7)為“1”,其它為0
#include<reg51.h>void main(){ P1 = 0x80;//注意:1000 0000 P0口中儲存的資料 while(1);}
記憶體地址是記憶體當中儲存資料的一個標識,並不是資料本身,透過記憶體地址可以找到記憶體當中儲存的資料。