一、安裝keil5及proteus
keil5安裝 相關(guān)博客
Keil C是德國KEIL公司開發(fā)的單片機C語言編譯器。μVision 4是一個窗口環(huán)境下的、集成化的C51開發(fā)環(huán)境。集成了項目管理、文件編輯、編譯連接、軟件仿真調(diào)試等多種功能。
proteus7安裝 相關(guān)博客
proteus 8.12安裝 相關(guān)博客
Proteus軟件是英國ab Center Electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前比較好的仿真單片機及外圍器件的工具。
二、MCS-51單片機結(jié)構(gòu)與原理
(一).8051單片機基本組成
(二).8051單片機引腳
單獨的單片機芯片是工作無法獨立工作的,由此引出單片機最小系統(tǒng)。
單片機最小系統(tǒng),能使單片機正常工作的最基本元件組成的系統(tǒng),包括外接電源正負極(VCC40引腳、VSS20引腳),復(fù)位電路使單片機初始化,晶振電路為單片機提供時鐘脈沖信號。各種引腳等看完數(shù)電模電再來填坑,I/O等學完單片機再來填坑
。
1.電源引腳
2.時鐘電路引腳
3.控制信號引腳
4.輸入/輸出端口
(三) 并行輸入/輸出端口結(jié)構(gòu)
三、單片機cx51編程基礎(chǔ)
Cx51語言所用到的數(shù)據(jù)、變量、運算符、流程控制語句等與C語言基本相同。
(一).變量定義
C51定義一個變量的格式如下 數(shù)據(jù)類型 [存儲類型] 變量名表
,其中數(shù)據(jù)類型與存儲類型可以調(diào)換,存儲類型可以缺省。
unsigned int i;//定義無符號整數(shù)
unsigned char bdata value;//定義無符號字符 value,定義在片內(nèi)RAM位尋址區(qū)
為了提高執(zhí)行效率和資源利用率,在程序運行期間根據(jù)數(shù)據(jù)的不同采用不同的方法進行處理,需要將數(shù)據(jù)定義為不同的類型。
(二).數(shù)據(jù)類型
Cx51支持的數(shù)據(jù)類型
前8種在c語言中具體介紹,后四種為keil c51新增類型,不支持數(shù)組和指針操作。這四種簡單了解下,在后面應(yīng)用時再做詳細學習。
-
bit
用來定義位變量,位于8051單片機內(nèi)部RAM位尋址區(qū)(20H~2FH)。如果指定bit
存儲類型只能使用data
或者idata
。 -
sfr
用于定義特殊功能寄存器變量,例如對P0
口。該變量存儲在片內(nèi)的特殊功能寄存器存儲區(qū)中,用來對特殊功能寄存器進行讀寫操作。 -
sbit
用于定義特殊功能寄存器位變量,用來對特殊功能寄存器的可位尋址位進行讀寫操作。 -
sfr16
也用于定義特殊功能寄存器,所不同的是它用于操作占兩個字節(jié)的特殊功能寄存器。
unsigned char bdata value;//定義無符號字符 value,定義在片內(nèi)RAM位尋址區(qū)
bit value_0 = value^0;
sfr P0 = 0x90;定義P0端口在片內(nèi)寄存器,通過改變P0值對該端口寄存器(地址0x90)進行操作
sfr16 DPTR = 0x82;// DPTR低8位地址為 0x82 高地址為0x83
sbit P0_0 = P0^0;// 對P0第0位操作可以用P0_0代替
(三).存儲類型
在Keil中,片內(nèi)存儲目標代碼對變量訪問速度快,存儲空間有限,片外存儲雖然訪問速度慢但容量大。
51單片機有片內(nèi)數(shù)據(jù)存儲區(qū)和程序存儲區(qū),在片內(nèi)存儲區(qū)空間不足時需要擴展片外存儲區(qū)。
-
data
區(qū)訪問速度最快,不過DATA
區(qū)存儲空間有限,除了包含程序變量外,還包含堆棧和寄存器組,因此不可定義過多,以避免影響中斷等正常功能。 -
bdata
允許位與字節(jié)混合訪問。 -
idata
使用指針來進行尋址和訪問。 -
pdata
存儲在片外存儲器的第一頁,尋址時只需裝入8位地址,相對于xdata
要快。 -
xdata
尋址需要完整的16位地址。 -
code
將變量存儲在程序存儲器中,不占用RAM空間。缺點變量只讀不能寫,因此適合存儲常量或者查表類數(shù)組數(shù)據(jù)。
(四).Cx51語言程序結(jié)構(gòu)
Cx51語言程序由編寫者組織和定義的一個或者多個函數(shù)構(gòu)成,通過函數(shù)的有序調(diào)用完成預(yù)期功能。
函數(shù)分為主函數(shù),標準函數(shù)庫,自定義函數(shù)。
四、簡單實現(xiàn)案例
在8051單片機上的P1.0端口接上LED,實現(xiàn)LED周期閃爍。
一些器件名稱 CAP 電容;CAP-ELEC電解電容;CRYSTAL 晶振;RES電阻;
原理圖
代碼實現(xiàn)
#include<reg51.h> //包含單片機定義寄存器的頭文件
sbit led = P1^0; //將led定義為P1.0位
void delay(void) //延時函數(shù)
{
unsigned int i; //定義無符號整數(shù),最大取值范圍65535
for(i=0;i<20000;i++);//做20000次空循環(huán),以進行延時。
}
int main(void ) //主函數(shù)
{
while(1) //無限循環(huán),以使LED持續(xù)閃爍。
{
led =0; // P1.0輸出低電平,燈亮
delay(); //延時一段時間
led =1; // P1.0輸出高電平,燈滅
delay(); //延時一段時間
}
}
其他
protues如何選擇器件?
普通器件
電源接地等。。。
總線使用
proteus總線使用及網(wǎng)格標號相關(guān)博客文章來源:http://www.zghlxwxcb.cn/news/detail-421660.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-421660.html
到了這里,關(guān)于51單片機入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!