學習單片機編程,需要有基礎,需要有方法。
一,寫不出單片機程序的原因有哪些?
C語言掌握不夠,常用的語法不理解.
單片機知識點沒有掌握。
單片機編程沒有入門。
1.調用的頭文件不一樣。
2.編譯器的不同會造成單片機C程序編寫過程中細節的差異,比如unsignedint類型,在某些編譯器當中是與unsigendchar一樣的位寬。
單片機分為很多種,8位單片機,16位單片機,32位單片機,從未接觸過單片機開發的初學者,在選擇開發板時,建議用從8位單片機如AT89S51作為單片機入門芯片。
對于基礎知識較薄弱的同學,不建議一開始就學習stm32,因stm32學習難度會大很多,知識點也更多,學不好會打擊積極性。
二,能熟練編寫單片機程序,有什么方法?
1,開發環境的搭建和使用,下載程序的操作。這一塊非常重要,這個學不會,后面的單片機編程無從談起。
2,端口IO輸出,實操LED燈的亮滅,流水燈實驗。
3,端口IO輸入,實操按鍵的輸入高低電平變化,操作LED的亮滅。
4,串口的輸入輸出,掌握ASCII碼的字符與0-255數字的對應關系,并學會利用串口進行調試信息打印,掌握利用串口調試代碼的方法。(這種調試方法很重要,很多單片機不能在線仿真,只能用串口調試)
5,掌握定時器功能。掌握普通定時器中斷函數的寫法和用法,如果對應的單片機包含PWM設置,也必須掌握PWM的配置和使用。
6,掌握IIC時序操作,很多常用芯片都用IIC通信,比如EEPORM存儲芯片,掌握后讀寫相關參數.存儲的數據斷電不丟失。
7,一般開發板都會有實時時鐘芯片如DS1302,掌握其用法,可以在綜合練習中用到。
一定要熟練掌握以上知識點,初學者心中要形成自己單片機開發的知識樹。
第一,多學習和多看教學資料和視頻,目前51級別的開發板非常多,價格實惠,而且有很多優質的教學視頻。可以作為入門教程。
第二,推薦郭天祥的入門書籍《手把手教你學單片機C語言》,以及他的教學視頻《十天學會單片機編程》,我就是看了這本書和視頻,然后不斷練習,才踏入單片機編程領域的。
第二,多練習,想需要單片機,看得懂不一定寫得出來,一定要跟著視頻書籍和老師的要求,自己一點點的編寫出來,并每個知識點做好記錄。并思考總結,消耗吸收變成自己的知識。
綜合實驗
根據自己所學習的知識點,完成一個帶定時鬧鐘功能的實時時鐘,
1通過按鍵設置鬧鐘,需要將鬧鐘時間存儲在EEPORM中。
2,通過按鍵修改時間,對ds1302的操作,時間計數的累加,
3,通過切換鬧鐘-時間顯示模式,比如長按,短按鍵的搭配等
4,數碼管在不同的模式下分別顯示時間和鬧鐘。