您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!
單片機(jī)對于我來說,就是一個超級大機(jī)器,上面有一排一排數(shù)不盡的開關(guān),我需要做的,就是根據(jù)我的設(shè)計,拿著一張超級大的表(Datasheet),把需要的開關(guān)(reg)都開關(guān)(config)到對應(yīng)功能的位置(硬件配置初始化),然后運行你設(shè)計的程序流程(while(1)后面的),這機(jī)器應(yīng)該先做什么在做什么,應(yīng)該一邊做什么但是過一會兒查一個什么,什么發(fā)生了應(yīng)該停下來做什么,什么來了應(yīng)該回復(fù)什么,這樣這樣
比如你需要使用一個io口,需要打開時鐘,配置方向,控制上下拉,甚至拓展附加功能
首先說說它的時鐘,51沒有時鐘控制這一說是因為51比32簡單,32內(nèi)部結(jié)構(gòu)很復(fù)雜,如果那個高頻的時鐘信號比如72M的那個,在所有內(nèi)部線路上跑,那么芯片就會很費電,如果學(xué)過場效應(yīng)管的原理你就會知道,數(shù)字電路讓晶體管工作在兩個狀態(tài)中,飽和和截止,為什么呢,數(shù)字電路在1的時候有電壓沒電流,數(shù)字電路在0的時候有電流沒電壓,P=UI可知,兩者只有其一(嚴(yán)格來說另一個很小),則功率很小,在中間切換的時候,處于放大區(qū),比較耗電,所以,時鐘是對功耗最好的控制,因此,默認(rèn)狀態(tài)下,大部分電路的時鐘都是關(guān)閉的,當(dāng)你要啟用哪個模塊,你就必須把他的時鐘打開,消耗能源,啟動功能。
第二個是屬性類,比如單片機(jī)是i口還是o口,要不要上下拉,因為32的設(shè)計應(yīng)用場景比較復(fù)雜,所以多樣化的可選配置可以讓32應(yīng)付各種各樣的設(shè)計。常用的有推挽(大拉力輸出),開漏(小電流再加上拉電阻驅(qū)動大電流),上下拉等。還有速度控制,可選高速中速低速。
第三個是附加功能類,比如io口可以用做pwm輸出,Adda輸入輸出,i2c,usart,等,根據(jù)不同的功能會有對應(yīng)的功能設(shè)置,這個具體要看數(shù)據(jù)手冊對相應(yīng)寄存器的設(shè)定,初學(xué)建議用c語言配合庫函數(shù)開發(fā)加深理解,一開始不要求自己能寫,你去看別人寫的初始化配置函數(shù),能看懂就行。
說完了寄存器配置,說說中斷,32的中斷寫法跟51的不一樣,但是思路是一樣的,保護(hù)現(xiàn)場,記錄斷點,跳轉(zhuǎn)中斷服務(wù),清除標(biāo)識,回到斷電,恢復(fù)現(xiàn)場,32的中斷比51多很多,也可以嵌套
說到底,32,51,430都只是單片機(jī),只要知道他們的寄存器在那里,如何根據(jù)自己的功能修改寄存器的值,剩下的功能邏輯實現(xiàn),就跟單片機(jī)無關(guān)了,對于你的顯示屏來說,它并不知道你的mcu是什么,只是它發(fā)現(xiàn)出來的信號都一樣,所以用51可以顯示一朵花,同樣的程序用32顯示也不會變成一棵樹,本質(zhì)一樣的掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08