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

11個單片機程序設計經典項目!25個項目資料免費放送!

發布時間:2016-6-21 20:56    發布者:dgdz2013
關鍵詞: 單片機
本文以STC89系列單片機為例,重點訓練讀者的C語言基礎和單片機的程序設計能力。

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

1.電路設計
電路硬件是單片機項目實現的基礎,在項目設計過程中必須先設計項目的電路原理。為了提高程序和電路的聯調效果,我們采用Proteus軟件設計單片機項目的仿真電路,當程序設計完成后,可在仿真系統中直接加載程序驗證程序設計的完整性。

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

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

圖2  項目1目錄結構

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

圖3  項目1的仿真電路圖

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

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

圖4  單片機大功率交流負載驅動

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

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

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

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

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

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

廠商推薦

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

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 加勒比一道本综合 | 99精品在线 | 欧美视频亚洲 | 国产成人精品日本亚洲语言 | 欧美日操 | 成年男女免费视频网站 | 在线a人片免费观看不卡 | 免费无限制观看黄的网址 | 四虎最新永久免费网址 | 九九精品在线播放 | 成年黄网站免费大全毛片 | 午夜久久免费视频 | 国产日韩欧美二区 | 福利国产 | 日本www在线播放 | 成人黄色在线 | 国产成人在线免费观看 | 免费欧洲毛片a级视频老妇女 | 精品欧美一区二区三区在线观看 | 国内精品久久久久激情影院 | 国产精品久久香蕉免费播放 | jizz日本zzz日本人 | 国产一毛片 | 免费观看黄色网页 | 91污网站 | 91麻豆精品国产91久久久久 | 99久久www免费人成精品 | 最新亚洲一区二区三区四区 | 黄页网站免费在线观看 | 日韩精品片 | 亚洲日本欧美产综合在线 | 亚洲男人天 | 久久福利资源网站免费看 | 亚洲一级毛片免费观看 | 国产亚洲精aa在线观看香蕉 | 香蕉成人福利片视频在线下载 | 第一福利精品老司机导航 | 亚洲香蕉久久一区二区三区四区 | 美国农夫激情在线综合 | 四虎影院在线网址 | 国产福利一区在线 |