資源描述:
《LCDHome論壇_單片機(jī)C語言教程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、單片機(jī)C語言教程(一)學(xué)習(xí)單片機(jī)實(shí)在不是件易事,一來要購買高價(jià)格的編程器,仿真器,二來要學(xué)習(xí)編程語言,還有眾多種類的單片機(jī)選擇真是件讓人頭腦的事。在眾多單片機(jī)中51架構(gòu)的芯片風(fēng)行很久,學(xué)習(xí)資料也相對很多,是初學(xué)的較好的選擇之一。51的編程語言常用的有二種,一種是匯編語言,一種是C語言。匯編語言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C語言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語言相當(dāng),但可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過匯編語言,而且C語言還可以嵌入?yún)R編來解決高時(shí)效性的代碼編寫問題。對于開發(fā)周期來說,中大型的軟件編寫用C語言的開發(fā)周期通常要小于匯編語言很多
2、。綜合以上C語言的優(yōu)點(diǎn),我在學(xué)習(xí)時(shí)選擇了C語言。以后的教程也只是我在學(xué)習(xí)過程中的一些學(xué)習(xí)筆記和隨筆,在這里加以整理和修改,希望和大家一起分享,一起交流,一起學(xué)習(xí),一起進(jìn)步?! ?注:可以肯定的說這個(gè)教程只是為初學(xué)或入門者準(zhǔn)備的,筆者本人也只是菜鳥一只,有望各位大俠高手指點(diǎn)錯(cuò)誤提出建議。 明浩 2003-3-30 pnzwzw@163.com?第一課 建立您的第一個(gè)C項(xiàng)目 使用C語言肯定要使用到C編譯器,以便把寫好的C程序編譯為機(jī)器碼,這樣單片機(jī)才能執(zhí)行編寫好的程序。KEILuVISION2是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀
3、的軟件之一,它支持眾多不同公司的MCS51架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和C語言的程序設(shè)計(jì),它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。因此很多開發(fā)51應(yīng)用的工程師或普通的單片機(jī)愛好者,都對它十分喜歡?! ∫陨虾唵谓榻B了KEIL51軟件,要使用KEIL51軟件,必需先要安裝它。KEIL51是一個(gè)商業(yè)的軟件,對于我們這些普通愛好者可以到KEIL中國代理周立功公司的網(wǎng)站上下載一份能編譯2K的DEMO版軟件,基本可以滿足一般的個(gè)人學(xué)習(xí)和小型應(yīng)用的開發(fā)。(安裝的方法和普通軟件相當(dāng)這里就不做介紹
4、了) 安裝好后,你是不是迫不及待的想建立自己的第一個(gè)C程序項(xiàng)目呢?下面就讓我們一起來建立一個(gè)小程序項(xiàng)目吧。或許你手中還沒有一塊實(shí)驗(yàn)板,甚至沒有一塊單片機(jī),不過沒有關(guān)系我們可以通過KEIL軟件仿真看到程序運(yùn)行的結(jié)果?! ∈紫犬?dāng)然是運(yùn)行KEIL51軟件。怎么打開?噢,天!那你要從頭學(xué)電腦了。呵呵,開個(gè)玩笑,這個(gè)問題我想讀者們也不會提的了:P。運(yùn)行幾秒后,出現(xiàn)如圖1-1的屏幕。圖1-1 啟動(dòng)時(shí)的屏幕 接著按下面的步驟建立您的第一個(gè)項(xiàng)目: ?。?)點(diǎn)擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如圖1-2。接著彈出一個(gè)標(biāo)準(zhǔn)Windows文件對話窗口,如圖1-3
5、,這個(gè)東東想必大家是見了N次的了,用法技巧也不是這里要說的,以后的章節(jié)中出現(xiàn)類似情況將不再說明。在"文件名"中輸入您的第一個(gè)C程序項(xiàng)目名稱,這里我們用"test",這是筆者慣用的名稱,大家不必照搬就是了,只要符合Windows文件規(guī)則的文件名都行。"保存"后的文件擴(kuò)展名為uv2,這是KEILuVision2項(xiàng)目文件擴(kuò)展名,以后我們可以直接點(diǎn)擊此文件以打開先前做的項(xiàng)目。圖1-2 NewProject菜單圖1-3 文件窗口 ?。?)選擇所要的單片機(jī),這里我們選擇常用的Ateml公司的AT89C51。此時(shí)屏幕如圖1-4所示。AT89C51有什么功能、特點(diǎn)呢?不用急,看圖中右邊有簡單的
6、介紹,稍后的章節(jié)會作較詳細(xì)的介紹。完成上面步驟后,我們就可以進(jìn)行程序的編寫了?! 。?)首先我們要在項(xiàng)目中創(chuàng)建新的程序文件或加入舊程序文件。如果你沒有現(xiàn)成的程序,那么就要新建一個(gè)程序文件。在KEIL中有一些程序的Demo,在這里我們還是以一個(gè)C程序?yàn)槔榻B如何新建一個(gè)C程序和如何加到您的第一個(gè)項(xiàng)目中吧。點(diǎn)擊圖1-5中1的新建文件的快捷按鈕,在2中出現(xiàn)一個(gè)新的文字編輯窗口,這個(gè)操作也可以通過菜單File-New或快捷鍵Ctrl+N來實(shí)現(xiàn)。好了,現(xiàn)在可以編寫程序了,光標(biāo)已出現(xiàn)在文本編輯窗口中,等待我們的輸入了。第一程序嘛,寫個(gè)簡單明了的吧。下面是經(jīng)典的一段程序,呵,如果你看過別的程
7、序書也許也有類似的程序:#include#includevoidmain(void){ SCON=0x50;//串口方式1,允許接收 TMOD=0x20;//定時(shí)器1定時(shí)方式2 TCON=0x40;//設(shè)定時(shí)器1開始計(jì)數(shù) TH1=0xE8;//11.0592MHz1200波特率 TL1=0xE8; TI=1; TR1=1;//啟動(dòng)定時(shí)器 while(1) { printf("HelloWorld!");//顯示HelloWorld }}圖1-4選取芯片圖1-5新建程序文件這段程序