首頁>
9
回覆列表
  • 1 # 浪跡天涯33217

    1.定義的變量不要太多。低128位為用戶定義變量的存放區域(默認時),也可以把變量放在高128位,但容易出錯,盡量少放,最好不放。通過*.M51可以查看內存變量的存放,最好不要超過110個字節,否則程序無法運行或出錯。

    2.如一個變量多處使用可定義為全局變量。例如循環變量i、j,盡量減少參數傳遞。

    3.靜態變量最好放在程序存儲區,用code定義。

    4.變量應定義為無符號數,像標誌位等僅佔一位的變量應定義為bit。

    5.子程序在main()主程序之後的應事先聲明,放在前面的不用聲明。

    6.變量、子程序定義但沒使用,系統給出警告。

    7.雖然局部變量和全局變量不同名,但運行時可能被全局變量改變。

    8.程序在編譯後,有可能產生非常大的文件。比如原來5k,編譯後變成10k,這是C匯編時程序空間分配太隨意造成的。可首先屏蔽一部分程序編譯,然後再去屏蔽再編譯,可恢復,或一部分一部分複製到另一個文件中編譯。

    9.如產生脈衝信號用到定時器,要去掉脈衝信號時,應先關定時器,再按要求把電平置為高電平或低電平。

    10.可使用軟件實現“看門狗”功能。比如:一個程序運行一個循環需要50ms,則定時器可定位100ms,當超過100ms時,程序將復位,在程序循環最下面都重裝定時器或重置定時器參數。

    11.為了提高所求值的精度,可多次測量,然後排序,去掉最大值和最小值,求平均值,或直接求平均值。

    12.可使用一個定時器進行多個定時。一般來說,兩個定時器對大一點的程序就不夠用了,假如幾個定時時間分別為10ms、200us、50ms,則定時值可定位200us,另設兩個變量即可。在需要多個定時時,找到他們的最小公約數定時即可。

    13.我們往單片機中寫程序時,寫的是*.hex,不要被它的大小所迷惑,對於8k的單片機,小於20k的程序都可寫進去。

  • 2 # 恆信電器666

    學習51單片機硬件和編程基礎缺一不可。

    比如說基本電子元器件電阻電容、電感、三極管、按鍵開關、二極管等等。

    再比如說模擬電路、數字電路、AD Layou軟件、C語言等等知識。

    很多人看到這裡,還沒開始就已經結束了。

    要學的東西也太多了吧吧吧吧!!!還不如去做純軟件工資高。

    額。。工資這個問題先不討論,可以看我最近幾篇文章的講解。

    其實做單片機也好,嵌入式也罷。

    對於初學者最忌諱的就是:我要吃透某款單片機,或者吃透C語言,甚至吃透模電數電。

    因為想要吃透,需要一定的項目經驗來沉澱,就拿C語言指針來說,雖然你會用了,但是鬼知道它用在什麼場合。

    直到你幾年後進了芯片原廠寫SDK庫,你才發現原來指針簡直就是寫回調函數,封裝代碼的神器。

    Ok,廢話不多說,接下來我說下對於一個初學者,做單片機開發之前必須要掌握哪些知識。

    從2個方面來解答:

    1.硬件

    2.軟件

    一、硬件

    1.熟悉常用的元器件,如果你不知道哪些,找一個51開發板,把原理圖上的元器件全部熟悉一遍,知道他們的工作原理和使用場景。

    2.熟悉歐姆定律,基礎電路,直到你知道開發板上所有電路的原理。

    3 熟悉51單片機所有外設(IO、定時器、中斷、串口等等),這個跟C語言同步學,一邊學一遍實操效果才好!

    二、軟件

    軟件主要是C語言編程和Layout軟件的使用。

    1.C語言

    C語言學完結構體和指針,指針和結構體不懂沒關係,當你的代碼量上去以後自然就懂了,前面千萬別死磕,浪費時間。

    2.Layout

    個人推薦Protel99 SE或者AD就可以了,這兩個比較簡單,前期會用這個軟件看原理圖即可。

  • 蘿蔔絲粉條餡餅的做法?