我曾經(jīng)做過兩年的單片機(jī)產(chǎn)品,在對(duì)單片機(jī)編程的過程中逐漸形成了一個(gè)大體固定的整體框架,也可以說是編程思路。現(xiàn)提出來供大家參考。
首先,對(duì)外圍芯片進(jìn)行分類,屬同一功能或同一芯片的程序采用模塊化的形式,用固定的幾個(gè)函數(shù)實(shí)現(xiàn),一般不同芯片之間的函數(shù)功能盡量不重疊,也不要使用一個(gè)函數(shù)覆蓋幾個(gè)芯片,以便于后期的調(diào)試,如果涉及到芯片之間通訊的,可以單獨(dú)列出,使用專門的函數(shù)進(jìn)行處理;
其次,將單片機(jī)中需要完成的工作按輕重緩急進(jìn)行分類,一般我會(huì)設(shè)置兩個(gè)定時(shí)中斷,其中一個(gè)定時(shí)時(shí)間大致在20mS左右,用來處理一些按鈕防抖處理、時(shí)間日期計(jì)算、對(duì)輸入處理后產(chǎn)生對(duì)應(yīng)標(biāo)志位、器件刷新等一些實(shí)時(shí)性要求不是很高,但必須有時(shí)間要求的事物處理,另外設(shè)立一個(gè)定時(shí)中斷大概在1mS以下,主要用來實(shí)現(xiàn)時(shí)鐘基準(zhǔn)和做一些實(shí)時(shí)性要求很高的操作,一般需要將實(shí)時(shí)性要求較高的定時(shí)中斷設(shè)置為高優(yōu)先級(jí),否則不能實(shí)現(xiàn)正常運(yùn)行,如果還有串行中斷需要處理,則需要嚴(yán)格控制實(shí)時(shí)中斷中的代碼長(zhǎng)度,以免耽誤串行中斷的處理,還有就是如果使用軟件實(shí)現(xiàn)串口及無(wú)線通訊軟解碼的場(chǎng)合,也要合理分配各部分的代碼長(zhǎng)度;
最后,將普通的事件檢測(cè)和處理以及響應(yīng)放在主程序體中實(shí)現(xiàn),該部分一般只需要幾個(gè)并行的函數(shù)就可以了,主程序體可以以簡(jiǎn)單的幾行代碼實(shí)現(xiàn)。
本人采用以上結(jié)構(gòu)開發(fā)了若干個(gè)單片機(jī)產(chǎn)品,包括包含無(wú)線軟解碼的無(wú)線防盜報(bào)警主機(jī)、RS485中繼器(一拖100)、帶中文顯示的報(bào)警接收機(jī)等,都實(shí)現(xiàn)了穩(wěn)定有效的運(yùn)行。
希望本人的一些體會(huì)會(huì)能給大家有所幫助!
-
芯片
+關(guān)注
關(guān)注
459文章
52481瀏覽量
440617 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4379瀏覽量
64834 -
單片機(jī)編程
+關(guān)注
關(guān)注
10文章
49瀏覽量
26328
原文標(biāo)題:談?wù)勎业膯纹瑱C(jī)編程思路
文章出處:【微信號(hào):wujianying_danpianji,微信公眾號(hào):?jiǎn)纹瑱C(jī)精講吳鑒鷹】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
遠(yuǎn)程升級(jí)單片機(jī)的設(shè)計(jì)思路

單片機(jī)編程語(yǔ)言的比較
怎么學(xué)習(xí)單片機(jī)編程
單片機(jī)學(xué)習(xí)要掌握哪些知識(shí)呢
請(qǐng)問怎么用單片機(jī)做一個(gè)比較有創(chuàng)新的東西?
狀態(tài)機(jī)思路在單片機(jī)程序設(shè)計(jì)中的應(yīng)用

狀態(tài)機(jī)思路在單片機(jī)程序設(shè)計(jì)中的應(yīng)用

51單片機(jī)的40個(gè)實(shí)驗(yàn)原理和程序(包含匯編和C語(yǔ)言程序)
單片機(jī)編程器是什么_單片機(jī)編程器應(yīng)用
如何對(duì)IAR單片機(jī)編程軟件進(jìn)行編譯優(yōu)化

如何快速有效的學(xué)習(xí)單片機(jī)
淺述單片機(jī)程序的整體框架設(shè)計(jì)的思路體會(huì)

單片機(jī)編程語(yǔ)言的比較

評(píng)論