視頻教學如下:
<script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
1. 認真聽講,掌握語法規則,例如:
編譯器不是萬能的,有些錯誤無法檢查出來,需要掌握好語法規則。
C51語言的語句規則如下:
(1)每個變量必須先說明后引用,變量名的大小寫是有差別的。
(2)C51語言程序一行可以書寫多個語句,但每個語句必須以“;”結尾,一個語句也可以多行書寫。
(3)C51語言的注釋行可由“//”引起,注釋段可由“/*……*/”括起。
(4)“{”必須成對,位置任意,可緊挨在函數名后,也可另起一行;多個花括號可同行書寫,也可逐行書寫,為了層次分明,增加可讀性,同一層的“{”應對齊,并采用逐層縮進進行書寫。
(5)函數使用有兩種方法:方法1,把函數的聲明和定義都寫在main()函數前面,方法2,把函數的聲明寫在main()函數前面,函數的定義(即具體的實現)寫在main()函數后面。
2. 先記憶,再打字。
3. 中英文鍵盤切換,記得英文輸入模式下打字。
4. 字體改大,便于發現錯誤,Edit->Configuration->Colors&Fonts->8051:Edit Asm/C Files ->Text->點擊Font右邊按鈕,修改Size為24
5. 自查和互查,檢查的時候要一個字母,一個空格,一個符號逐個檢查。
6. 根據Build Output窗口提示的錯誤行數進行排查。例如:
DEMO.C(9): error C202: 'p1': undefined identifier
上述錯誤,代表第9行的代碼有誤。
7.拼寫錯誤檢查要點:
要點1:檢查大小寫,比如P1 寫錯成p1
要點2:檢查多敲入字符,比如sbit 錯寫成sbitt
要點3:檢查少敲入字符,比如sbit 錯寫成sbi
要點4:檢查符號是否漏掉,比如有的結尾少敲入分號“;”
要點5:檢查符號是否多余,比如for循環結尾敲入分號“;”
要點6:檢查括號是否匹配,有左括號必有右括號(),有左花括號必有花右括號{}
要點7:檢查是否符合敲錯,比如for循環里面的分號敲錯為逗號
8.常見錯誤原因和處理:
單片機Keil開發軟件常見編譯錯誤解釋及解決辦法
8.1.syntax error near 'XXX'
錯誤解釋:XXX附近參數錯誤
解決辦法:在XXX前后檢查是否有語法錯誤,比如結尾分號;漏掉?
括號沒有成對匹配?拼寫錯誤?
8.2.'XXX': undefined identifier
錯誤解釋:XXX是未定義的變量或符號
解決辦法:XXX拼寫是否有錯誤? XXX是不是沒有聲明為變量卻直接拿來使用?
8.3.FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
Target not created
錯誤解釋:嚴重錯誤L250:代碼長度受限,目標無法創建.
解決辦法:KEIL沒有破解,所以代碼的大小有2K的限制,找個KEIL對應版 本的注冊機,破解了就好了。
《 STC15 單片機實戰指南( C 語言版)》 一書以一堅科技研發的飛天三號( FSST15-V1.0)實驗板為硬件平臺, 以《 深入淺出玩轉 STC15 單片機》為配套視頻, 由清華大學出版社權威出版, 并且分別是 STC 官方大學計劃和高校高性能聯合實驗室推薦教程和視頻, 版權歸作者和清華大學出版社所有。
本資料以個人學習、 工作經驗以及宏晶科技單片機技術為素材, 以單片機初學者、單片機項目開發者為對象, 教大家如何走進單片機,繼而達到開發工程項目(如:四軸飛行器設計,多功能收音機等)為目的。 限于時間和水平關系,資料中難免有過失之處,望各位高手批評指教,多多拍磚,拍累了,你們休息,我繼續上路。
現已連載的方式免費共享于電子發燒友網,供單片機新手們參考學習,可以自由下載傳閱 ,但未經作者許可,不得用于任何商業目的, 轉載請注明出處。
作者 | 殘弈悟恩
編輯 | Garen
一個人,兩腳使勁踩 1 小時的自行車,只能跑 10 公里;開著寶馬,一腳輕踩油門 1 小時就能跑 100 公里;乘飛機,吃著美味、睡著大覺,也能跑 1000 公里。同樣的努力,不一樣的平臺和載體,結果就是不一樣。可問題是如何找到一個好的平臺,適合自己的才是最好的。從無到有,或者到合適,都需要一個由量變到質變的過程。通過這章的學習,力爭讀者掌握單片機開發的基本的軟件調試環境和硬件開發平臺。
2.1 硬件平臺—FSST15開發板
工欲善其事必先利其器。單片機的學習書本的理論知識,更需要實際操作的硬件平臺,否則一切是都是空中樓閣。除了硬件平臺,還需軟件開發工具,用于軟件開發的有 Keil、IAR、ST VisualDevelop 等,用于下載的有 STC-ISP、ST VisualProgrammer 等,但有些開發軟件自帶了下載功能。由于此書以 STC的 IAP15W4K58S4為核心處理器,所以這里主要介紹用于 STC單片機開發的 KeilμVision5和下載用的 STC-ISP。關于 PCB的繪制軟件,筆者特意寫了一章,等到后面再詳細講解,還有讀者最能學習一下上位機編程軟件(詳見《深入淺出玩轉 51單片機》一書),這樣單片機基本的開發工具就基本滿足了。本書所有實例是基于 FSST15(飛天三號)開發板的,該開發板由殘弈悟恩歷時半年親自研發,無論是從原理圖的設計、元件的選型、模塊的配置、PCB的繪制都是精心篩選、策劃的,讓每個讀者“玩”起來感覺舒心、快捷、方便、全面。配套的資料齊全、代碼編程風格規范,實例生動、可移植性高,最震撼的是殘弈悟恩貼身回答讀者學習過程中遇到的所有問題。
2.1.1 FSST15開發板功能框圖
開發板功能框圖如圖 2-1所示,開發板以 IAP15W4K58S4為核心芯片,周圍配備豐富的外圍設備,一板在手,學習無憂。
圖 2-1 FSST15 開發板資源分布圖
2.1.2 FSST15開發板基本配置
(1)主芯片是 STC公司的 IAP15W4K58S4,芯片特性見本書第 1章。
(2)特殊端口和 2組 I/O口全部用優質的排針引出,方便擴展。
(3)集成了 STC官方推薦的 USB 轉串口 IC(CH340T),實現一線下載、調試、供電,還可與上位機通信。
(4)集成有 STC的另外一顆單片機——STC15W104,配合外圍器件,便可實現一鍵自動(不需要冷啟動)下載程序。
(5)一個電源開關、電源指示燈,電源也用排針引出,方便擴展。
(6)具有一鍵開關鍵、模式設置等功能。
(7)搭載一顆 5V轉 3.3V芯片,便可為板子提供穩定的電源。
(8)12個 LED,三種顏色,并且排布為交通燈形式,不僅可實現流水燈、跑馬燈等試驗,還可作交通燈實驗。
(9)8位共陰極數碼,由 STC 官方推薦 74HC595 和三極管(擴流)驅動,便可做靜、動態數碼管實驗。
(10)LED點陣(8×8),可實現圖形的基本顯示和移動算法。
(11)一個 1602液晶,可以做液晶實驗;
(12)電機驅動接口一個,可以做步進電機、直流電機實驗;
(13)附帶萬能紅外接收頭,配合遙控器做紅外編、解碼實驗;
(14)16個按鍵組成了矩陣按鍵,可學習獨立按鍵、矩陣按鍵的使用;
(15)4個獨立按鍵,借助 STC單片機強大的 A/D轉換功能實現人機操作;
(16)一個觸摸按鍵,借助 STC單片機強大的 A/D和 PWM功能實現;
(17)一個電位器,可做 A/D轉換試驗;
(18)雙節濾波電路,可用 PWM功能實現 D/A實驗;
(19)EEPROM芯片 AT24C02,學習 I2C通信試驗;
(20)時鐘芯片 PCF8563,可以做時鐘試驗,該芯片還可以輸出可編程的 PWM波形;
(21)溫度傳感器芯片 LM75A,配合數碼管做溫度采集、顯示實驗,結合上位機還可做更多的實驗;
(22)集成一顆 RDA5807M收音機芯片,可直接將開發板做成收音機;
(23)集成一顆 SP3485芯片,可實現 RS485通信實驗;
(24)搭載一個 WIFI模塊接口,配合 WIFI模塊可以實現物聯網控制實驗;
(25)搭載一個 2.4G無線接口,配合無線模塊,可實現無線通信實驗;
(26)結合外圍器件做 RTX51 Ting 操作系統試驗,為以后學習 μCOS、Linux、winCE等操作系統奠定基礎。
2.2 開發環境—Keil μVision5
此書,所有的開發實例全是基于 Keil μVision5的,因此以 Keil μ Vision5為例來講解。先 COPY 點歷史,Keil 公司是一家業界領先的微控制器(MCU)軟件開發工具的獨立供應商。Keil公司由兩家私人公司聯合運營,分別是德國慕尼黑的 Keil Elektronik GmbH和美國德克薩斯的 KeilSoftwareInc。Keil公司所制造和銷售的開發工具種類比較多,包括ANSIC編譯器、宏匯編程序、調試器、連接器、庫管理器、固件和實時操作系統核心(real-timekernel)。有超過 10 萬名微控制器開發人員在使用這種得到業界認可的解決方案。其 KeilC51編譯器自 1988年引入市場以來成為市面上的行業標準,并支持超過 500種 8051變種。
Keil公司 2005年由 ARM公司收購。其兩家公司分別更名為 ARM Germany GmbH和 ARM Inc。Keilμ Vision5(以下簡稱 Keil5)是 2013年 10月由 ARM公司發布的,引入靈活的窗口管理系統,使開發人員能夠使用多臺監視器,并提供了視覺上的界面窗口,其位置完全可控。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個窗口,提供一個整潔,高效的環境來開發應用程序。新版本支持更多最新的 ARM芯片,還添加了一些其他新功能。要學習單片機,Keil5必須能熟練操作,說到熟練不是一個選項一個對話框的去查牛津詞典,死背每個選項的意思,沒必要,而是在實踐開發中用到什么,再去查什么,查的多了、用的多了,自然就熟悉了。萬物之規律----二、八分,什么意思,例如這個社會,20%的人掌握著 80%的財富。同樣,對于 Keil5軟件,只需用 20%的操作就可以實現 80%的功能了。
因此,大家只需按本書操作的實例,一步一步操作一遍,肯定就會掌握。