<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 學(xué)習方法與實(shí)踐 > 51單片機C語(yǔ)言學(xué)習(第一課 建立您的第一個(gè)C項目)

51單片機C語(yǔ)言學(xué)習(第一課 建立您的第一個(gè)C項目)

——
作者: 時(shí)間:2007-03-30 來(lái)源: 收藏

學(xué)習單片機實(shí)在不是件易事,一來(lái)要購買(mǎi)高價(jià)格的編程器,仿真器,二來(lái)要學(xué)習編程語(yǔ)言,還有眾多種類(lèi)的單片機選擇真是件讓人頭疼的事。在眾多單片機中51架構的芯片風(fēng)行很久,學(xué)習資料也相對很多,是初學(xué)的較好的選擇之一。51的編程語(yǔ)言常用的有二種,一種是匯編語(yǔ)言,一種是C語(yǔ)言。匯編語(yǔ)言的機器代碼生成效率很高但可讀性卻并不強,復雜一點(diǎn)的程序就更是難讀懂,而C語(yǔ)言在大多數情況下其機器代碼生成效率和匯編語(yǔ)言相當,但可讀性和可移植性卻遠遠超過(guò)匯編語(yǔ)言,而且C語(yǔ)言還可以嵌入匯編來(lái)解決高時(shí)效性的代碼編寫(xiě)問(wèn)題。對于開(kāi)發(fā)周期來(lái)說(shuō),中大型的軟件編寫(xiě)用C語(yǔ)言的開(kāi)發(fā)周期通常要小于匯編語(yǔ)言很多。綜合以上C語(yǔ)言的優(yōu)點(diǎn),我在學(xué)習時(shí)選擇了C語(yǔ)言。以后的教程也只是我在學(xué)習過(guò)程中的一些學(xué)習筆記和隨筆,在這里加以整理和修改,希望和大家一起肥翼,一起交流,一起學(xué)習,一起進(jìn)步。
  *注:可以肯定的說(shuō)這個(gè)教程只是為初學(xué)或入門(mén)者準備的,筆者本人也只是菜鳥(niǎo)一只,有望各位大俠高手指點(diǎn)錯誤提出建議?!  ?BR>                          
 
第一課 建立您的第一個(gè)C項目
  使用C語(yǔ)言肯定要使用到C編譯器,以便把寫(xiě)好的C程序編譯為機器碼,這樣單片機才能執行編寫(xiě)好的程序。KEIL uVISION2是眾多單片機應用開(kāi)發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51架構的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和C語(yǔ)言的程序設計,它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調試程序,軟件仿真方面也有很強大的功能。因此很多開(kāi)發(fā)51應用的工程師或普通的單片機愛(ài)好者,都對它十肥也歡。
  以上簡(jiǎn)單介紹了KEIL51軟件,要使用KEIL51軟件,必需先要安裝它。KEIL51是一個(gè)商業(yè)的軟件,對于我們這些普通愛(ài)好者可以到KEIL中國代理周立功公司的網(wǎng)站上下載一份能編譯2K的DEMO版軟件,基本可以滿(mǎn)足一般的個(gè)人學(xué)習和小型應用的開(kāi)發(fā)。(安裝的方法和普通軟件相當這里就不做介紹了)
  安裝好后,你是不是迫不及待的想建立自己的第一個(gè)C程序項目呢?下面就讓我們一起來(lái)建立一個(gè)小程序項目吧?;蛟S你手中還沒(méi)有一塊實(shí)驗板,甚至沒(méi)有一塊單片機,不過(guò)沒(méi)有關(guān)系我們可以通過(guò)KEIL軟件仿真看到程序運行的結果。
  首先當然是運行KEIL51軟件。怎么打開(kāi)?噢,天!那你要從頭學(xué)電腦了。呵呵,開(kāi)個(gè)玩笑,這個(gè)問(wèn)題我想讀者們也不會(huì )提的了:P。運行幾秒后,出現如圖1-1的屏幕。


圖1-1 啟動(dòng)時(shí)的屏幕
 
  接著(zhù)按下面的步驟建立您的第一個(gè)項目:
 ?。?)點(diǎn)擊Project菜單,選擇彈出的下拉式菜單中的New Project,如圖1-2。接著(zhù)彈出一個(gè)標準Windows文件對話(huà)窗口,如圖1-3,這個(gè)東東想必大家是見(jiàn)了N次的了,用法技巧也不是這里要說(shuō)的,以后的章節中出現類(lèi)似情況將不再說(shuō)明。在"文件名"中輸入您的第一個(gè)C程序項目名稱(chēng),這里我們用"test",這是筆者慣用的名稱(chēng),大家不必照搬就是了,只要符合Windows文件規則的文件名都行。"保存"后的文件擴展名為uv2,這是KEIL uVision2項目文件擴展名,以后我們可以直接點(diǎn)擊此文件以打開(kāi)先前做的項目。


圖1-2 New Project菜單 


 

圖1-3 文件窗口
 
 ?。?)選擇所要的單片機,這里我們選擇常用的Ateml公司的AT89C51。此時(shí)屏幕如圖1-4所示。AT89C51有什么功能、特點(diǎn)呢?不用急,看圖中右邊有簡(jiǎn)單的介紹,稍后的章節會(huì )作較詳細的介紹。完成上面步驟后,我們就可以進(jìn)行程序的編寫(xiě)了。
 ?。?)首先我們要在項目中創(chuàng )建新的程序文件或加入舊程序文件。如果你沒(méi)有現成的程序,那么就要新建一個(gè)程序文件。在KEIL中有一些程序的Demo,在這里我們還是以一個(gè)C程序為例介紹如何新建一個(gè)C程序和如何加到您的第一個(gè)項目中吧。點(diǎn)擊圖1-5中1的新建文件的快捷按鈕,在2中出現一個(gè)新的文字編輯窗口,這個(gè)操作也可以通過(guò)菜單File-New或快捷鍵Ctrl+N來(lái)實(shí)現。好了,現在可以編寫(xiě)程序了,光標已出現在文本編輯窗口中,等待我們的輸入了。第一程序嘛,寫(xiě)個(gè)簡(jiǎn)單明了的吧。下面是經(jīng)典的一段程序,呵,如果你看過(guò)別的程序書(shū)也許也有類(lèi)似的程序:

#i nclude <AT89X51.H>
#i nclude <stdio.h>

void main(void)
{
 SCON = 0x50; //串口方式1,允許接收
 TMOD = 0x20; //定時(shí)器1定時(shí)方式2
 TCON = 0x40; //設定時(shí)器1開(kāi)始計數
 TH1 = 0xE8; //11.0592MHz 1200波特率
 TL1 = 0xE8;
 TI = 1;
 TR1 = 1; //啟動(dòng)定時(shí)器

 while(1)
  {
   printf ("Hello World!n"); //顯示Hello World
  }
}
 

 


圖1-4選取芯片

 


圖1-5新建程序文件
 
這段程序的功能是不斷從串口輸出"Hello World!"字符,我們先不管程序的語(yǔ)法和意思吧,先看看如何把它加入到項目中和如何編譯試運行。
 ?。?)點(diǎn)擊圖1-5中的3保存新建的程序,也可以用菜單File-Save或快捷鍵Ctrl+S進(jìn)行保存。因是新文件所以保存時(shí)會(huì )彈出類(lèi)似圖1-3的文件操作窗口,我們把第一個(gè)程序命名為test1.c,保存在項目所在的目錄中,這時(shí)你會(huì )發(fā)現程序單詞有了不同的顏色,說(shuō)明KEIL的C語(yǔ)法檢查生效了。如圖1-6鼠標在屏幕左邊的Source Group1文件夾圖標上右擊彈出菜單,在這里可以做在項目中增加減少文件等操作。我們?quot;Add File to Group 'Source Group 1'"彈出文件窗口,選擇剛剛保存的文件,按ADD按鈕,關(guān)閉文件窗,程序文件已加到項目中了。這時(shí)在Source Group1文件夾圖標左邊出現了一個(gè)小+號說(shuō)明,文件組中有了文件,點(diǎn)擊它可以展開(kāi)查看。


圖1-6把文件加入到項目文件組中
 
 ?。?)C程序文件已被我們加到了項目中了,下面就剩下編譯運行了。這個(gè)項目我們只是用做學(xué)習新建程序項目和編譯運行仿真的基本方法,所以使用軟件默認的編譯設置,它不會(huì )生成用于芯片燒寫(xiě)的HEX文件,如何設置生成HEX文件就請看下面的第三課。我們先來(lái)看圖1-7吧,圖中1、2、3都是編譯按鈕,不同是1是用于編譯單個(gè)文件。2是編譯當前項目,如果先前編譯過(guò)一次之后文件沒(méi)有做動(dòng)編輯改動(dòng),這時(shí)再點(diǎn)擊是不會(huì )再次重新編譯的。3是重新編譯,每點(diǎn)擊一次均會(huì )再次編譯鏈接一次,不管程序是否有改動(dòng)。在3右邊的是停止編譯按鈕,只有點(diǎn)擊了前三個(gè)中的任一個(gè),停止按鈕才會(huì )生效。5是菜單中的它們,我個(gè)人就不習慣用它了。嘿嘿,這個(gè)項目只有一個(gè)文件,你按123中的一個(gè)都可以編譯。按了?好快哦,呵呵。在4中可以看到編譯的錯誤信息和使用的系統資源情況等,以后我們要查錯就靠它了。6是有一個(gè)小放大鏡的按鈕,這就是開(kāi)啟關(guān)閉調試模式的按鈕,它也存在于菜單Debug-StartStop Debug Session,快捷鍵為Ctrl+F5。

 


圖1-7編譯程序
 
  (6)進(jìn)入調試模式,軟件窗口樣式大致如圖1-8所示。圖中1為運行,當程序處于停止狀態(tài)時(shí)才有效,2為停止,程序處于運行狀態(tài)時(shí)才有效。3是復位,模擬芯片的復位,程序回到最開(kāi)頭處執行。按4我們可以打開(kāi)5中的串行調試窗口,這個(gè)窗口我們可以看到從51芯片的串行口輸入輸出的字符,這里的第一個(gè)項目也正是在這里看運行結果。這些在菜單中也有,這里不再一一介紹大家不妨找找看,其它的功能也會(huì )在后面的課程中慢慢介紹。首先按4打開(kāi)串行調試窗口,再按運行鍵,這時(shí)就可以看到串行調試窗口中不斷的打?quot;Hello World!"。呵呵,是不是不難呀?這樣就完成了您的第一個(gè)C項目。最后我們要停止程序運行回到文件編輯模式中,就要先按停止按鈕再按開(kāi)啟關(guān)閉調試模式按鈕。然后我們就可以進(jìn)行關(guān)閉KEIL等相關(guān)操作了。
  到此為止,第一課已經(jīng)完結了,初步學(xué)習了一些KEIL uVision2的項目文件創(chuàng )建、編譯、運行和軟件仿真的基本操作方法。其中一直有提到一些功能的快捷鍵的使用,的確在實(shí)際的開(kāi)發(fā)應用中快捷鍵的運用可以大大提高工作的效率,建議大家多多使用,還有就是對這里所講的操作方法舉一反三用于類(lèi)似的操作中。 

 


圖1-8調試運行程序
 

51單片機相關(guān)文章:51單片機教程


c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理




關(guān)鍵詞: 51單片機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>