單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)?CPU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51 單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil 軟件是目前最流行開發(fā)MCS-51 系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil 即可看出。Keil 提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運(yùn)行Keil 軟件需要Pentium 或以上的CPU,16MB或更多RAM、20M 以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51 系列單片機(jī)的愛好者來說是十分必要的,如果你使用C 語言編程,那么Keil 幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用C 語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。我們將通過一些實(shí)例來學(xué)習(xí) Keil 軟件的使用,在這一部份我們將學(xué)習(xí)如何輸入源程序,建立工程、對工程進(jìn)行詳細(xì)的設(shè)置,以及如何將源程序變?yōu)槟繕?biāo)代碼。圖1 所示電路圖使用89C51 單片機(jī)作為主芯片,這種單片機(jī)性屬于MCS-51 系列,其內(nèi)部有4K 的FLASH ROM,可以反復(fù)擦寫,非常適于做實(shí)驗(yàn)。89C51 的P1 引腳上接8 個(gè)發(fā)光二極管,P3.2~P3.4 引腳上接4 個(gè)按鈕開關(guān),我們的第一個(gè)任務(wù)是讓接在P1 引腳上的發(fā)光二極管依次循環(huán)點(diǎn)亮。
標(biāo)簽: Keil 工程
上傳時(shí)間: 2013-11-06
上傳用戶:aesuser
如何導(dǎo)入ASM文件到工程(視頻教程)
標(biāo)簽: ASM 工程 視頻教程
上傳時(shí)間: 2013-10-22
上傳用戶:胡蘿卜醬
三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採用中斷式實(shí)現(xiàn)使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應(yīng)列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設(shè)計(jì)電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時(shí)去抖動(dòng) if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復(fù)位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計(jì)算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
標(biāo)簽: 4x4 鍵盤
上傳時(shí)間: 2013-11-12
上傳用戶:a673761058
基于ZedBoard和linux的應(yīng)用程序HelloWorld的實(shí)現(xiàn)(完整工程)獲取Zedboard可運(yùn)行的linux Digilent官網(wǎng)給出Zedboard的可運(yùn)行l(wèi)inux設(shè)計(jì)ZedBoard_OOB_Design包,可從http://www.digilentinc.com/Data/Documents/Other/ZedBoard_OOB_Design.zip獲取,下載后解壓,可以看到包的結(jié)構(gòu)和內(nèi)容
標(biāo)簽: HelloWorld ZedBoard linux 應(yīng)用程序
上傳時(shí)間: 2013-11-03
上傳用戶:lvzhr
ISE新建工程及使用IP核步驟詳解
標(biāo)簽: ISE IP核 工程
上傳時(shí)間: 2013-11-18
上傳用戶:peterli123456
講解到位,工程例子很全,適合下載學(xué)習(xí)。
標(biāo)簽: Altera FPGA CPLD 電子系統(tǒng)設(shè)計(jì)
上傳時(shí)間: 2013-10-29
上傳用戶:Pzj
通信工程施工新技術(shù)
標(biāo)簽: 通信 工程施工 新技術(shù)
上傳用戶:后時(shí)代明明
信息網(wǎng)絡(luò)工程實(shí)習(xí)資料
標(biāo)簽: 信息網(wǎng)絡(luò) 工程 實(shí)習(xí)
上傳時(shí)間: 2013-10-18
上傳用戶:dalidala
西電通信工程培養(yǎng)方案
標(biāo)簽: 通信工程 方案
上傳時(shí)間: 2013-11-07
上傳用戶:ppeyou
網(wǎng)絡(luò)工程概述
標(biāo)簽: 網(wǎng)絡(luò)工程
上傳時(shí)間: 2013-11-04
上傳用戶:1109003457
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1