回覆列表
-
1 # 使用者3712683941992
-
2 # 使用者4038238679905
程式: ORG 0000H LJMP MAIN ORG 4000H MAIN:MOV R5,#04H LOOP:MOV R1,#00H MOV A,#0FEH L1:MOV P1,A LCALL DELAY RL A INC R1 CJNE R1,07H,L1 MOV R2,#00H MOV A,#01H L2:MOV P1,A LCALL DELAY RR A INC R2 CJNE R2,07H,L2 DJNE R5,LOOP DELAY:MOV R6,#02H D1:MOV R7,#0FFH D2:DJNZ R7,D2 DJNE R6,D1 RET END 電路: 連線燈的陰極至P1口上即可,復位和震盪電路不需要我說了吧 說明一下,延時時間不準確,不過基本接近1ms的 t=(256*2+1)*2+1+2=1028 如果想做到精確延時的話建議在DELAY中使用NOP指令調理,自己試一下吧 最好是用Keil模擬一下確定延時時間。 很久沒有彙編了,仔細檢查一下,估計有Bug也不一定。
學習微控制器的八大步驟(轉)
推薦 學習使用微控制器就是理解微控制器硬體結構,在彙編或C語言中學會各種功能的初始化設定,以及實現各種功能的程式編制。
第一步:數字I/O的使用
使用按鈕輸入訊號,發光二極體顯示輸出電平,就可以學習引腳的數字I/O功能,在按下某個按鈕後,某發光二極體發亮,這就是數位電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的微控制器程式設計思想,例如,必須設定很多暫存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。每使用微控制器的一個功能,就要對控制該功能的暫存器進行設定,這就是微控制器程式設計的特點,千萬不要怕麻煩,所有的微控制器都是這樣。
第二步:定時器的使用
學會定時器的使用,就可以用微控制器實現時序電路,時序電路的功能是強大的,在工業、家用電氣裝置的控制中有很多應用,例如,可以用微控制器實現一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一次後,燈亮3分鐘後自動滅,當按鈕連續按下兩次後,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。數字積體電路可以實現時序電路,可程式設計邏輯器件(PLD)可以實現時序電路,可程式設計控制器(PLC)也可以實現時序電路,但是隻有微控制器實現起來最簡單,成本最低。
定時器的使用是非常重要的,邏輯加時間控制是微控制器使用的基礎。
第三步:中斷
微控制器的特點是一段程式反覆執行,程式中的每個指令的執行都需要一定的執行時間,如果程式沒有執行到某指令,則該指令的動作就不會發生,這樣就會耽誤很多快速發生的事情,例如,按鈕按下時的下降沿。要使微控制器在程式正常執行過程中,對快速動作做出反應,就必須使用微控制器的中斷功能,該功能就是在快速動作發生後,微控制器中斷正常執行的程式,處理快速發生的動作,處理完成後,在返回執行正常的程式。中斷功能使用中的困難是需要精確地知道什麼時候不允許中斷髮生(遮蔽中斷)、什麼時候允許中斷髮生(開中斷),需要設定哪些暫存器才能使某
種中斷起作用,中斷開始時,程式應該幹什麼,中斷完成後,程式應該幹什麼等等 。
中斷學會後,就可以編制更復雜結構的程式,這樣的程式可以幹著一件事,監視著一件事,一旦監視的事情發生,就中斷正在乾的事情,處理監視的事情,當然也可以監視多個事情,形象的比喻,中斷功能使微控制器具有吃著碗裡的,看著鍋裡的功能。
以上三步學會,就相當於降龍十八掌武功,會了三掌了,可以勉強護身。
第四步:與PC機進行RS232通訊
微控制器都有USART介面,特別是MSP430系列中很多型號,都具有兩個USART介面。USART介面不能直接與PC機的RS232介面連線,它們之間的邏輯電平不同,需要使用一個MAX3232晶片進行電平轉換。
USART介面的使用是非常重要的,透過該介面,可以使微控制器與PC機之間交換資訊,雖然RS232通訊並不先進,但是對於介面的學習是非常重要的。正確使用USART介面,需要學習通訊協議,PC機的RS232介面程式設計等等知識。試想,微控制器實驗板上的資料顯示在PC機監視器上,而PC機的鍵盤訊號可以在微控制器實驗板上得到顯示,將是多麼有意思的事情啊!
第五步:學會A/D轉換
MAP430微控制器帶有多通道12位A/D轉換器,透過這些A/D轉換器可以使微控制器操作模擬量,顯示和檢測電壓、電流等訊號。學習時注意模擬地與數字地、參考電壓、取樣時間,轉換速率,轉換誤差等概念。
使用A/D轉換功能的簡單的例子是設計一個電壓表。
第六步:學會PCI、I2C介面和液晶顯示器介面
這些介面的使用可以使微控制器更容易連線外部裝置,在擴充套件微控制器功能方面非常重要。
第七步:學會比較、捕捉、PWM功能
這些功能可以使微控制器能夠控制電機,檢測轉速訊號,實現電機調速器等控制起功能。
如果以上七步都學會,就可以設計一般的應用系統,相當於學會十招降龍十八掌,可以出手攻擊了。
第八步:學習USB介面、TCP/IP介面、各種工業匯流排的硬體與軟體設計
學習USB介面、TCP/IP介面、各種工業匯流排的硬體與軟體設計是非常重要的,因為這是當前產品開發的發展方向。
到此為止,相當於學會15招降龍十八掌,但還不到打遍天下無敵手的境界。即使如此,也算是微控制器大蝦了。順便說一句,MSP430微控制器的技術支援是非常好的,負責任的工程師大蝦會在關鍵時候,挺身而出,使你化險為夷。