怎麼樣學習微控制器

  想要學好微控制器,一定要有C語文的基礎,一定要付出一定的心血,下面是小編為你搜集到的相關內容,希望對你有所幫助。

  

  初步確定學習目標:是學習簡單便宜的51呢,還是學習簡單但是價效比已經不算太高的,但是功能強大穩定可靠的avr,還是物美價廉的stm32,或者ARM9***可以跑系統了***,再往上x86什麼的

  如果是學8位的微控制器,推薦一款模擬軟體proteus,支援的晶片很多比如atmel的最新版本是8.2,但是破解不大完全,不需要買硬體,寫好的程式可以直接在電腦上執行,還可以與keil聯調,推薦版本7.9或者7.8

  可以先學51,51是微控制器的鼻祖,圖書館找本51的基礎書來看,挑那種薄薄的,帶有較多的例子的,花個一兩天的時間看一下,然後按照書上的寫個點亮LED,嘗試寫下串列埠,中斷的程式,驅動一下數碼管之類的***當然程式在proteus下都可以直接執行的***。如果想深入51,後面可以忽略。

  也可以先學AVR***我們做航模飛控很多就是用的額Avr,現在atmega系列的48比較便宜才5塊錢一片******感謝@劉楊的提醒,avr不知有atmega還有atiny和at90***。avr與51的區別不多說,學習前期可以藉助模擬軟體proteus,然後照著書上的例子寫一些程式。中間datasheet很重要,前期可以看中文,但是一定要養成看英文datasheet的習慣。如果想繼續停在avr上,那就可以嘗試移植硬實時作業系統ucos等,這裡推薦一本書《深入淺出avr》,裡面的例子講的挺簡單的

  學習8位微控制器之後,學習ARM相對會容易很多***也可以直接上arm,本人不反對,但是我確實看到很多上我們學校的tm4c123g***一款TI的demo板***的課,因為零基礎而聽不懂的***,然後可以學習STM32了

  微控制器定址方式

  1. 暫存器定址 暫存器定址就是運算元存放在暫存器中,指令中指定的暫存器的內容就是運算元。

  2. 直接定址 直接定址方式就是在指令中直接給出運算元所在儲存單元的地址。此時,指令中運算元部分是運算元所在地址。

  3. 立即數定址 立即數定址就是運算元在指令中直接給出,或者說指令操作碼後面立即給出一位元組或兩位元組運算元

  4. 暫存器間接定址 暫存器間接定址是把指定暫存器的內容作為運算元地址,該地址所指定的單元內容作為運算元。為了區分暫存器定址和暫存器間接定址,在暫存器間接定址中,所用到的暫存器的前面要加間接定址符“@”。

  例:暫存器R0內容為30H,片內RAM 30H單元的內容為45H。

  解:指令“MOV A,R0”的功能是將R0的內容30H傳送給累加器A,指令執行結果是累加器A中的內容為30H。 指令“MOV A,@R0”的功能是將R0的內容30H作為運算元的地址,根據這一地址找到內部RAM 30H單元,將其內容45H傳送至累加器A,指令執行結果是累加器A中內容為45H。

  5. 變址定址***基址暫存器+變址暫存器間接定址*** 例如:指令“MOVC A,@A+DPTR”是變址定址。解:假設DPTR的內容為2030H,累加器A的內容為12H。 該指令的功能是將2030H和12H相加,得到2042H作為運算元地址,在程式儲存器中找到2042H單元,將其內容送至累加器A。

  6. 相對定址 例如:在程式儲存器中2000H單元有一條雙位元組的相對轉移指令“SJMP 75H”。 解:程式儲存器2000H、2001H單元的內容80H、75H是“SJMP 75H”的機器語言程式碼。