久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7610|回復: 2
收起左側

一小時入門MSP430單片機教程與例程下載(講得很好)

[復制鏈接]
ID:366517 發(fā)表于 2020-3-19 10:28 | 顯示全部樓層 |閱讀模式
本文原創(chuàng)作者是陸雪 純老 師,一個寫得很好的教程分享給大家一起來學習,共同進步:

大家好,我是東華大學13屆,信息科學與技術學院自動化專業(yè)的陸雪 純,作為NUEDC實驗室的負責人之一,我制作這份關于簡易入門單片機msp430,和Altium Designer(配有庫)的視頻教程,希望對大家有所幫助!本視頻盡量針對剛接觸C語言的大一、大二的人,所以會講解較為底層詳細的東西。本教程中一些用【】符合框起來的名詞,請按照生活中常規(guī)的意思去理解,不要和微機里面的專業(yè)術語混淆。
本視屏教程分為兩個部分——MSP430入門部分和Altium Designer入門部分。在MSP430中,我將從寄存器和內部電路簡易原理開始教大家點亮流水燈、定時器中斷、端口中斷、ADC的使用,了解了寄存器和內部電路原理之后,所有單片機幾乎是如出一轍的,我個人認為,現(xiàn)在大多數(shù)人都直接選擇用庫函數(shù),但是新手直接用庫,他很難有一種入門感,甚至可能會一頭霧水、沒有概念,但如果你對于寄存器有了一定的了解,那么用其他芯片的一些函數(shù)庫就是手到擒來。我選擇MSP430G2553為我們教程中的開發(fā)板,因為我們學校信息系電子類的很多老師有這個開發(fā)板幾十套,我們NUEDC實驗室也有很多,所以我們東華大學的學生可以免費獲得,所以選擇它為教學板。我在百度云連接中提供所有的安裝包、教程中的例程、MSP430G2553的那個寶鏈接和授課稿以及其他相關有用的資料,并且用所教內容布置實訓任務來幫助你們學以致用。在Altium Designer中,我已經用它繪制了飛思卡爾杯-平衡攝像頭組的硬件電路板,已經打板并且投入使用,但教程中我只提供初代板(是我畫的第一塊板子,bug很多),進行修改,刪掉UART模塊作為你們的練習,并將原理圖、pcb的布線,用到的集成庫、安裝包和其他有用的教程等都放入百度云鏈接,并且教會大家如何用Message、board information、view configurations進行排查,避免弱智的錯誤發(fā)生。
*******************************************************************************
首先把我資料包里的軟件安裝好,然后必須要搞到板子。
如果你沒有從老師和實驗室那里搞到開發(fā)板,那么我給你開發(fā)板淘寶鏈接,如果鏈接失效就直接搜索MSP430G2553,找那種有黑色方形紙盒子包裝的:見附件
打開文件后建立、保存工程的步驟,注意只要進行步驟一到四即可!!工程配置按照我給的工程的來!!!!!
*******************************************************************************
好,那廢話不多說!確保你手中有電腦,還有一塊MSP430G2553的開發(fā)板以及連接線,我們就開始吧!

在教你們控制單片機之前,我將先用五分鐘時間給你們講解一些相關的知識,這些知識我個人認為很重要,他能讓你們有個概念,避免一頭霧水的生搬硬套datasheet上的規(guī)則,這也是和網(wǎng)上千篇一律的教程不一樣的地方。

首先從小小二極管開始講起:
二極管,我們高中就接觸過,需要大于門坎電壓(如硅管門坎電壓為0.5v)之后,才會被導通,導通的時候,二極管的正向導通電壓是一個特定的值(硅管正向導通電壓為0.7v)。
假設3v及以上代表高電平,用“1”來表示,0.7及以下代表低電平,用“0”來表示。
而這小小的二極管,按照我們的設計,組合成邏輯電路,就可以進行各種計算,比如下圖的一個簡單電路,它由二極管和電阻組成:(這個電路具體工作原理,感興趣的同學可以點擊以下鏈接進一步了解
這個電路起到什么作用呢?如果A,B兩端都接入高電平“1”,那么Y端也會輸出一個高電平“1”,如果A,B兩端中至少有一端接入的是低電平“0”,那么Y端只會輸出一個低電平“0”。也就是說,這個電路已經能實現(xiàn)一個“與”計算功能了。
(如果你不知道與運算是什么,可以點擊這個鏈接https://www.zybang.com/question/ ... 53561eeabc8759.html
如果你忘了與運算是什么,沒關系,暫時不要去了解,并不影響我要講的東西。你只要記住,我講這個電路只想要指出以下五點:
  • 這個電路,它的功能,是實現(xiàn)與運算,也就是一種【計算】。我們用的電腦,手機,要學習的單片機,他們都是由數(shù)以百萬計的功能各異的電路,通過一定的規(guī)律組合、集成起來(所以為什么叫大規(guī)模集成電路,就是這個原理),來進行復雜的計算的(這就是為什么電腦也叫計算機),計算的過程,就是電腦運行的過程

  • 這個電路里,只有高電平“1”和低電平“0”的概念,所以說,大規(guī)模集成電路——電腦在運行的時候,里面只有高低電平的出現(xiàn),電腦只處理邏輯上的“0”和“1”,也就是我們學的二進制(一開始很多人都不知道學這個二進制干嘛,有何意義,01010的),也就是——機器語言機器語言是用二進制代碼表示的計算機能直接識別和執(zhí)行的
我們現(xiàn)在學的C語言,或者以后會學的C++,Java之類的各種語言,都必須要被翻譯成機器語言,計算機才能識別并執(zhí)行,那么什么東西才能把C語言之類的高級語言翻譯成機械語言呢?那就是我們很熟的軟件——編譯器了,也叫開發(fā)平臺、開發(fā)工具等。比如我們東華大學的學生學C語言的時候,用到的編譯器Microsoft Visual C++,圖標長這樣:
界面長這樣:
(后來我聽說現(xiàn)在大一大二的小朋友又換編譯器用DevC++了)
        而我們控制的單片機MSP430也要用到相應的編譯器,我們的編譯器是 IAR for MSP430(安裝包百度云鏈接都有)
  • 在第2點中,我已經指出了高級語言、機器語言的概念,那么你們就應該明白一個道理:我們的C語言是高級語言,高級語言是高度封裝了的(舉個例子,你要裝修你的家,你設計房間里需要用到空調、煤氣灶等東西,你用高級語言寫明了你的思想“要用空調、煤氣灶”,然后你從商場購置來了空調和煤氣灶,可以直接使用,不需要你從元器件一點點自己做個空調、煤氣灶出來。類比到C語言里,高級語言就是C語言;空調、煤氣灶等就是你可以直接使用的printf()scanf()函數(shù),而商場就是函數(shù)庫,所以你要包含這個庫函數(shù),也就是代碼里要寫上#include<stdio.h>,同樣的,我們操作單片機,我們的單片機型號是MSP430G2553,那我們就需要包含頭文件#include <MSP430G2553.h>
  • I/0口(也叫I/0接口,或者輸入輸出管腳)的概念,I/O就是inputoutput的縮寫,輸入輸出的意思,I/O口就是輸入輸出的管腳(管腳英語:PIN)。用以控制外圍電路,什么是外圍電路?看看開發(fā)板上,左下角有兩個led燈,他們就是外圍電路,他們和相應的管腳相連(P1.0  P1.6
  • 仍然是在第二點中我強調了:電腦在運行的時候,里面只有高低電平的出現(xiàn),電腦只處理邏輯上的“0”和“1”。也就是說,微觀上,在電腦的芯片里,程序、信息、指令的存儲方式,只能由高電平“1”,低電平“0”兩種量來表示,也就是二進制表示。
單片機采用的是TTL電平,標準TTL輸入高電平最小2V,輸出高電平最小2.4V,典型值3.4V,也就是說,在單片機當中,2v-5v就屬于高電平,常見高電平的典型值為3.4v;輸入低電平最大0.8V,輸出低電平最大0.4V,典型值0.2V。也就是說0v-0.8v屬于低電平,常見的典型低電平為0.2v。各個廠家生產的器件會有一些差異,高低電平的極限值會在標準值附近有一定的浮動。
這里,我引進一句話(不準確,但足夠幫你了解并使用單片機):控制單片機,就是配置寄存器,而寄存器,是寄存【指令】的器件。[錦囊1]
       這句話具體含義是什么,就由接下來的“點亮LED燈”來具體說明吧!

點亮流水燈:可以直接打開百度云鏈接里配置好的工程文件,直接燒寫,熟練了之后,按照一開始給的教程鏈接,自己建立工程文件,自己配置函數(shù)。
我已經在之前說過,寄存器里面的指令以二進制存儲。
代碼中,等號左邊是寄存器,等號右邊是指令。
你要控制單片機去點亮外圍電路的一個LED燈(高電平可以點亮),在我們的MSP430開發(fā)板中,管腳P1.0連接的是LED1,我們就去試試點亮LED1,那么你具體要做的是使單片機的管腳P1.0去“輸出 高電平”,那么你需要做兩步:
  • 讓單片機連接著LED1的管腳P1.0的方向為輸出P1DIR
  • 讓輸出的電平為高電平P1OUT
以上兩步,都有專門對應的寄存器。“控制單片機,就是配置寄存器,而寄存器,是寄存【指令】的器件。[錦囊1]”
那么這時候我們查閱MSP430G2553的user’s guide:
管腳的方向不是輸入就是輸出,管腳的狀態(tài)不是高電平就是低電平(AD,DA除外)[錦囊2]
接下來就是要配置工程,然后燒錄程序了!根據(jù)我上一次培訓的經驗來看,有很多學弟學妹想知道“我們?yōu)槭裁匆渲霉こ蹋俊边@里我就要稍微說一下單片機的工作的的一些原理了。
首先要指出的是,電腦和人腦不一樣,電腦里存儲的任何信息(比如你燒寫進去的程序、它自身計算的一些結果等)都是存放在存儲單元的,這些存儲單元都是有地址的,不同型號的單片機,內部的內存大小、存儲結構是不一樣的,所以你燒寫程序,程序按照不同單片機的不同要求,按照應該被存入的單元的地址存入。你使用C語言編寫或者C++編寫,它翻譯成機器語言的方式也不一樣(好比英語、法語書,肯定要對應的英語翻譯、法語翻譯來翻譯),所以【相應的規(guī)則】也不同,你必須要告訴你的編譯器你的芯片是什么型號,你用的什么語言寫的代碼,你的芯片和電腦是什么方式連接的(SWD還是JTAG還是JLINK還是別的什么)

下圖是工程配置 option中的選定單片機型號
選定你用的語言
我們開發(fā)板上是把仿真器也做進去了的,具體看圖靠上三分之一處,有個白色字體EMULATION,所以那一部分都是硬件仿真器部分,EMULATION是仿真器的意思,毫無疑問是硬件仿真,所以我們點選硬件仿真。而且我們的連接線也是USB連接線,所以連接選項connection按照圖勾選。
FET DEBUGGER中文翻譯就是硬件仿真
(對仿真好奇的同學點這里:https://zhidao.baidu.com/question/449972284.html
好了,配置完之后,點一下菜單欄中的綠色三角,就能燒錄了,你會發(fā)現(xiàn),LED0,亮了……亮了……這是成功的第一步,我在這個小例子里面和之前都把很多延伸的概念講了,這些概念,應用到其他各種型號的單片機,都應該可以觸類旁通。
**********************定時器**********************
那么,接下來就要講解定時器了。定時器是單片機中最重要的內容之一,你以后做的所有開發(fā),都不太可能脫離定時器。
那么,定時器是個什么東西呢?顧名思義,就是——“你定下來,過了200秒后,你要停下手頭的活,去做另一件事”
這句短短的話,包含了很多信息
1.“秒”,如同“時”、“分”一樣,是個計時單位,也是一個衡量的基準單位,你不能說,“你過了200之后,去做某事情,200什么?200秒還是200分鐘?”所以你要配置一個計時單位,要讓計數(shù)器“過了200個計時單位后,去做某事”,這里我們計時單位選的是1/12KHZ   秒
2.“200”是一個閾值,毫無疑問,我們程序里面寫的CCR0=12000就是說閾值是12000,當記到12000個計數(shù)單位后,就要進入中斷了 。也就是 1/12000  *  12000 =1秒
3.題目中的這句話還有一個隱藏條件,就是說,“你【知道】,你過了500秒后要去做某事”,如果你不知道你要去做某事,那就不會執(zhí)行中斷行為,所以要開啟中斷_EINT();   計時,就是從使能中斷后開始的
4.手頭的活(main())、去做某事(中斷服務函數(shù)),這是兩個不同的行動,相當于你本來執(zhí)行的一個動作,現(xiàn)在要去執(zhí)行另一個動作(所以通過中斷向量表里記錄的中斷函數(shù)的首地址,跳倒中斷函數(shù)里,去執(zhí)行中斷服務函數(shù))
#pragma vector=TIMER0_A0_VECTOR//表示給這個向量表中的【定時器中斷】所對應的地址進行賦值,并賦值為函數(shù)void Timer_A (void)的首地址。
其中,關鍵字__interrupt則表示這個函數(shù)是【中斷服務函數(shù)】這種特殊函數(shù)。
5.你接完電話之后,回來繼續(xù)做你原來做的事情(中斷標志位清零,CPU一看,清零了,就認為中斷的任務已經完成,于是就退出了中斷)
這里講解一個時鐘的概念(真的是很基礎的知識點啊)
時鐘,顧名思義,是一種計時用具,我們可以用它來記錄時間。在單片機中,時鐘信號的表現(xiàn)形式為“頻率固定,只有高電平()低電平()的矩形波”
時鐘邊沿就是圖中的豎線,從低電平變成高電平的叫上跳沿,反之叫下跳沿。
單片機可以計算時鐘邊沿的個數(shù),比如時鐘的頻率為2Hz,那么時鐘的周期(圖中兩端紅線內的部分)就是0.5s,如果單片機記錄到了2個下跳沿,那么兩個下跳沿中的時間就是0.5s,如果記錄到了3個下跳沿,就是1s。這就是一種計時功能,所以叫做時鐘。
51hei.png
*********************端口中斷***********************
1.你知道這個是電話鈴聲(init里的配置符合中斷的條件),且有電話鈴聲響的時候,“你要去”接電話(開啟中斷)(且中斷標志置1,一旦中斷標志位置1,CPU立刻去執(zhí)行中斷工作)

中斷標志說明的是“當前有中斷請求”,CPU如果要響應的話,還必須要使能這個中斷。也就是說工作的原理是:先判斷“中斷請求標志”再判斷這個中斷使能標志是否Enable了,或者講是否這兩個標志是否都有效了,系統(tǒng)才會響應這個中斷。
不開中斷使能,只是置位中斷標志的話,就像我們定義了一個用戶的bit標志,我們只是給它置1或者0,但我們從來不判斷它為1的時候做什么,為0的時候做什么是一樣的道理。

你的例子:如果允許T0中斷,你再人為的置T0中斷標志,CPU就會響應了。


2.手頭的活(main())、去接電話(中斷服務函數(shù)),這是兩個不同的行動,相當于你本來執(zhí)行的一個動作,現(xiàn)在要去執(zhí)行另一個動作(所以跳倒中斷函數(shù)里)

MSP430內部有一個中斷向量表,只要往里面對應向量(實際也是某地址)填相應函數(shù)的首地址,該中斷發(fā)生時,就能根據(jù)填入的函數(shù)首地址自動【跳轉到該函數(shù)】。

#pragma vector=這句話就是給這個中斷向量表進行賦值的。
#pragma vector=PORT1_VECTOR表示給這個向量表中的【外部端口中斷】所對應的地址進行賦值,并賦值為函數(shù)void Port_1(void)的首地址。
其中,關鍵字__interrupt則表示這個函數(shù)是【中斷服務函數(shù)】這種特殊函數(shù)。

3.你接完電話之后,回來繼續(xù)做你原來做的事情(中斷標志位清零,CPU一看,清零了,就認為中斷的任務已經完成,于是就退出了中斷)
按鍵消抖:百度百科
上拉電阻、下拉電阻:http://www.zg4o1577.cn/bbs/dpj-182292-1.html
www點bubuko點com/infodetail-449501.html
https://wenku.baidu.com/view/1623511552d380eb62946d55.html
**********************ADC************************
模擬量:表示某種待轉換量(可能是溫度、濕度)的程度的電壓值(可能是2.1v,也可能是1.3v)。
數(shù)字量:僅用0,1(高低電平)來表示的量。
十進制
二進制(3位)
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
采樣頻率:
《MSP430單片機基礎與實踐》
軟件部分告一段落,非常感謝大家看到這里,如果對你們有一些幫助,那我真的很高興。我個人(不謙虛的講),水平在實驗室里真的非常一般,而且我一開始邏輯性天賦都很差,硬咬牙才學會了這些,效率上和最終熟練度、掌握知識的深度廣度,與其他那些思維方式很好、邏輯性很強的人相比有很大差距,所以我水平的確有限,如果有錯誤,請直接彈幕,感謝大家不吝賜教!

視頻:https://www.bilibili.com/video/av13010650/
51hei.png

全部資料51hei下載地址:
一小時入門單片機軟件部分.zip (5.31 MB, 下載次數(shù): 75)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:328014 發(fā)表于 2020-3-19 23:56 | 顯示全部樓層
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:69829 發(fā)表于 2020-3-20 08:54 | 顯示全部樓層
好資料,收藏學習!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 春色av| 国产美女在线观看 | 国产福利在线视频 | 国内自拍偷拍视频 | 性色av网站| 欧美久久一区二区三区 | 成人在线免费观看视频 | 久久久久久久久一区 | 欧美11一13sex性hd | 美国a级毛片免费视频 | 亚洲欧美在线一区 | 成人免费区一区二区三区 | 在线观看中文视频 | 久久国产精品免费一区二区三区 | 国产亚洲欧美在线 | 欧美视频一区二区三区 | 男女羞羞网站 | av色站| 国产精品久久久久久久久久免费 | 欧美一级电影免费 | 视频一二三区 | 成人国产精品久久久 | 国产一二三视频在线观看 | 懂色中文一区二区在线播放 | 久久久久久免费毛片精品 | 日韩三级| 欧美性精品 | 天堂国产 | 在线看片国产 | 亚洲福利在线观看 | 亚洲www啪成人一区二区麻豆 | 日本激情视频在线播放 | 午夜在线视频 | 精品不卡 | 成人av在线大片 | 亚洲欧美日韩中文字幕一区二区三区 | 亚洲视频一区在线播放 | 欧美一区二区三区视频 | 日韩免费毛片视频 | 成人在线 | 免费一区二区 |