国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

11個單片機程序設(shè)計經(jīng)典項目!25個項目資料免費放送!

發(fā)布時間:2016-6-21 20:56    發(fā)布者:dgdz2013
關(guān)鍵詞: 單片機
本文以STC89系列單片機為例,重點訓(xùn)練讀者的C語言基礎(chǔ)和單片機的程序設(shè)計能力。

項目1  P0.0接口驅(qū)動LED閃爍
閃爍控制是安全燈、高層建筑、高空飛行器、警示燈等設(shè)備燈光閃爍控制的原理基礎(chǔ),也是單片機項目學(xué)習(xí)過程中最簡單的項目。這里我們做為一個項目設(shè)計,詳細(xì)敘述項目實現(xiàn)的基本過程。

1.電路設(shè)計
電路硬件是單片機項目實現(xiàn)的基礎(chǔ),在項目設(shè)計過程中必須先設(shè)計項目的電路原理。為了提高程序和電路的聯(lián)調(diào)效果,我們采用Proteus軟件設(shè)計單片機項目的仿真電路,當(dāng)程序設(shè)計完成后,可在仿真系統(tǒng)中直接加載程序驗證程序設(shè)計的完整性。

(a)低電平驅(qū)動  (b)高電平驅(qū)動
圖1  P0接口驅(qū)動LED電路

LED閃爍電路參考圖1b低電平直接驅(qū)動方式。項目設(shè)計時,應(yīng)先根據(jù)項目的原理圖利用Proteus軟件設(shè)計仿真電路圖,下面重新說明Proteus使用過程。
(1)打開Proteus軟件的ISIS程序并保存文件
一個項目包含程序和電路兩部分,因此在使用Proteus軟件的設(shè)計電路時,應(yīng)首先考慮仿真電路文件的目錄。在學(xué)習(xí)項目設(shè)計過程中,建立科學(xué)的項目目錄結(jié)構(gòu)對于養(yǎng)成良好的項目開發(fā)習(xí)慣有很多益處,因為真正進(jìn)行單片機項目開發(fā)時,你所做的一切都很重要。項目1所在的目錄結(jié)構(gòu)見圖2所示。

圖2  項目1目錄結(jié)構(gòu)

操作過程中,首先打開Proteus ISIS程序,鼠標(biāo)左鍵點擊File→Save Design As,在彈出的窗口中選擇合適路徑,然后點擊“創(chuàng)建新文件夾”并命名為“項目1-LED閃爍”;然后進(jìn)入這個文件夾后,再創(chuàng)建一個新文件夾命名為“電路”。再一次進(jìn)入“電路”文件夾中,這時才對要保存電路文件命名,比如“LED閃爍”。
(2)Proteus ISIS設(shè)計電路
使用Proteus進(jìn)行原理圖設(shè)計主要操作為放置元器件和連線。本項目所使用的單片機型號雖然為STC89C51,但在Proteus中是51內(nèi)核的單片機都可以使用。這里選擇Micropocessor Ics-8051 Family中的80C51。Proteus原理圖中的單片機電路符號,含有完整的單片機最小系統(tǒng)模型,并且電源默認(rèn)連接完好。仿真電路設(shè)計見圖3所示,為了使LED達(dá)到顯示效果,上拉電阻R1取值為470歐姆,實際應(yīng)用要取值大一些。電路設(shè)計完成后,再次保存設(shè)計,下面就可以設(shè)計程序了。

圖3  項目1的仿真電路圖

2.程序設(shè)計
本項目采用Keil軟件進(jìn)行設(shè)計,基本操作共4個步驟,分別是創(chuàng)建一個項目、新建C文件、程序設(shè)計、生成HEX文件。創(chuàng)建項目和新建C文件比較簡單,這里不再詳細(xì)說明,但要注意,在打開Keil軟件時,新建的工程必須保存在項目1目錄下的程序中,新建一個C文件,應(yīng)保存為main.c,并加載到工程中。
(1)程序設(shè)計
由于單片機內(nèi)部的P0~P3寄存器都可以進(jìn)行位操作,程序設(shè)計過程中,可以利用程序?qū)0.0位直接操作即可控制LED的閃爍。
C51定義P0.0為P0^0,因此在利用C語言程序設(shè)計時,可使P0.0輸出高、低電平,如P0.0輸出低電平,程序中編寫P0^0 為0即可。為了使程序簡單明了,可以利用sbit LED = P0^0語句,讓LED代替P0^0。
在程序編寫過程中,項目程序設(shè)計的一般順序是先寫#include,然后編寫主函數(shù),用到LED時,才在程序的預(yù)處理區(qū)寫“sbit LED = P0^0;”,用到延時函數(shù)時才在主函數(shù)前面寫void delay(unsigned int x)函數(shù)。千萬不要按照提供的程序一步一步地照抄,因為這樣等于自己沒有一個完整的編程思路。本項目的具體程序為
#include  //包含頭文件
sbit LED = P0^0;  // LED接P0.0。在kell C51軟件中,定義P0.0為P0^0,        
void delay(unsigned int x)   //延時函數(shù)
{
        while(x--)
}
void main(void)   //主函數(shù)
{
        LED =0; //P0.0輸出低電平,LED1滅
        delay(50000); //調(diào)用延時函數(shù),延時一段時間,約0.3秒,不精確
        LED ==1; //P0.0輸出高電平,LED1亮
        delay(50000)
}

(2)程序說明
1)本項目中,單片機型號為STC89C51,因此程序包含reg51.h文件,reg51.h文件定義了51單片機所有特殊功能寄存器的名稱定義和相對應(yīng)的地址值。
2)單片機程序順序執(zhí)行,先執(zhí)行主函數(shù),在主函數(shù)內(nèi)可以調(diào)用子函數(shù),子函數(shù)可以調(diào)用子函數(shù),但子函數(shù)不能調(diào)用主函數(shù)。單片機程序從主函數(shù)入口依次執(zhí)行每一條指令,執(zhí)行完畢后返回到主函數(shù)入口進(jìn)行下次循環(huán)。
3)延時函數(shù)。延時的過程是程序執(zhí)行了一個延時函數(shù)delay()。在主函數(shù)調(diào)用延時的過程中,如果單片機沒有中斷發(fā)生,單片機只能忙于執(zhí)行這個延時函數(shù)。
單片機在執(zhí)行延時函數(shù)相關(guān)指令時,每一條指令都會占用一定數(shù)量的機器周期,執(zhí)行完延時函數(shù)的所有指令,浪費或占用的時間就是調(diào)用延時函數(shù)所獲得的延時時間,但執(zhí)行延時函數(shù)不能得到精確的延時時間。
4)利用位定義命令讓LED等價于P0.0位,程序執(zhí)行LED1=1后,單片機內(nèi)部位寄存器P0.0位就設(shè)置為高電平,同時P0.0端口就會輸出高電平。單片機的所有I/O接口都可以進(jìn)行位操作,也可以字節(jié)操作。
5)利用C語言編寫單片機程序時,每個人都有自己的風(fēng)格。雖然C語言格式自由,但作為單片機的程序語言,具有嚴(yán)格的書寫格式。為了提高單片機C語言程序的可讀性,增加程序頁的層次感,一般情況下,函數(shù)的字符左邊距為0,函數(shù)體每條語句前留一個“tab”鍵空;算數(shù)邏輯符號的左右各留一個空格,關(guān)鍵語句要有中文或英文注釋,關(guān)鍵函數(shù)有時需要用“/**...**/”說明,并把主函數(shù)所在的程序命名為main.c。
6)實際應(yīng)用中,把LED換成繼電器或其它驅(qū)動電路,就可以讓單片機間接驅(qū)動一個大功率的負(fù)載,如額定電壓為交流220V、200W的紅色的燈泡閃爍。圖4電路為安全燈閃爍驅(qū)動電路,雙向光電晶閘管型號為MOC3061,再加上一級晶閘管VTH,可以實現(xiàn)更大功率的負(fù)載驅(qū)動。

圖4  單片機大功率交流負(fù)載驅(qū)動

3.程序編譯并創(chuàng)建HEX文件
程序編譯是檢驗程序設(shè)計格式或代碼錯誤的過程。如果程序在編譯過程中出錯,會在Keil的編譯結(jié)果欄中進(jìn)行提示。程序的調(diào)試修改過程一般先用鼠標(biāo)左鍵雙擊最上面的錯誤提示進(jìn)行修改,然后再編譯,一直到無錯誤、無警告為止。
HEX文件是單片機可以執(zhí)行的二進(jìn)制文件,程序編譯無誤后可以通過Keil軟件創(chuàng)建一個HEX文件。在工具欄中Project→Options For Target ‘target 1’→Output窗口中選中“Create HEX Fi”,再編譯時,Keil即可創(chuàng)建一個HEX文件,這個文件自動保存在項目程序的目錄下。 可將Keil軟件創(chuàng)建的HEX文件直接下載到實驗開發(fā)板上的單片機中運行,也可以加載到仿真電路中的單片機內(nèi)運行。

4.軟件仿真
軟件仿真是一種單片機系統(tǒng)測試,在沒有硬件的條件下,利用Protuse進(jìn)行軟件仿真可以快速檢驗單片機程序設(shè)計的正確性。本項目在仿真時,需要利用Protuse先畫出項目的參考電路,然后把本項目程序創(chuàng)建的HEX文件加載到單片機中,最后單擊運行即可可以看到本項目LED閃爍的效果。
Proteus是單片機程序設(shè)計的重要仿真工具,但軟件仿真不能測試軟件的安全性和可靠性,也不能測試電路電氣特性的完整性。單片機的程序設(shè)計或相關(guān)產(chǎn)品開發(fā)必須有相關(guān)的軟件和硬件實驗支撐。本項目中,為了進(jìn)一步驗證程序的可靠性,可以把程序下載到實驗開發(fā)板或?qū)嶒炏渲械膯纹瑱C內(nèi)進(jìn)行實際運行。
因為本項目比較簡單,初學(xué)者在了解項目的設(shè)計過程后可親自動手設(shè)計電路并編寫程序,實現(xiàn)項目的功能和要求。如果能看到成功的仿真結(jié)果,一定會有成就感,這就是項目設(shè)計的興趣所在。
在完成了P0.0驅(qū)動LED閃爍項目程序設(shè)計后,我們就可以在此基礎(chǔ)上增加一些器件,如利用P0驅(qū)動8只LED按照一定順序閃爍,進(jìn)一步學(xué)習(xí)單片機I/O口的輸出控制原理。

由于篇幅所限,后續(xù)10個經(jīng)典項目將不在此貼出,如果大家需要,小編將在以后陸續(xù)為大家補上。它們分別是:
流水燈程序設(shè)計(項目2)
數(shù)碼管0~9顯示程序設(shè)計(項目3)
單片機系統(tǒng)的按鍵(項目4)
利用外部中斷實現(xiàn)按鍵的輸入(項目5)
單只數(shù)碼管秒顯示(項目6)
6位數(shù)碼管動態(tài)顯示(項目7)
PC與MCS-51系列單片機的串行通信(項目8)
電子表程序設(shè)計(項目9)
單片機片內(nèi)看門狗定時器的使用(項目10)
單片機片內(nèi)A-D轉(zhuǎn)換器的使用(項目11)

文章選自
《單片機開發(fā)從入門到精通》白林峰等編著
小編特意拿出該書全部25個項目的實例資料提供給大家。
獲取方式:關(guān)注公眾號(機械工業(yè)出版社E視界),回復(fù)“52034
本文地址:http://m.qingdxww.cn/thread-169277-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
ywc3000 發(fā)表于 2016-6-22 12:57:33
52034
dgdz2013 發(fā)表于 2016-6-22 13:47:52
ywc3000 發(fā)表于 2016-6-22 12:57
52034

先得關(guān)注公眾號,然后在公眾號里回復(fù)。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉(zhuǎn)USB橋接器以及基于CAN的主機和自舉程序應(yīng)用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品免费一区二区三区 | 日日操天天操 | 国产成人欧美 | 亚洲精品 欧美 | 日本在线网站 | 免费亚洲一区 | 麻豆精品国产自产在线 | 69视频最新在线观看 | 日本国产网站 | 久久精品夜夜春 | 99热这里只有精品第一页 | 色狠狠狠色噜噜噜综合网 | 免费5xx| 91密桃| 日本高清视频色www在线观看 | 在线视频精品一区 | 欧美高清在线观看视频 | 国产亚洲一区二区在线观看 | 寡妇一级a毛片免费播放 | 九九亚洲综合精品自拍 | 国产欧美日韩精品专区 | 久久六热| 在线免费观看国产精品 | 久久久久久国产精品免费免费 | 日本高清在线观看视频 | 成人免费网站视频ww | 在线观看人成网站深夜免费 | 五月激情久久 | 热re99久久精品国产99热 | 亚洲欧洲国产视频 | 日本污视频网站 | 国产成人午夜极速观看 | 片成年免费观看网站黄 | 久草视频一区 | 亚洲成年人专区 | 四虎在线视频免费观看视频 | 国产亚洲一区二区三区在线观看 | 日本又黄又裸一级大黄裸片 | 幸福宝8008app隐藏入口 | 靠逼久久 | 69免费在线视频 |