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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7742|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本文原創(chuàng)作者是陸雪 純老 師,一個(gè)寫得很好的教程分享給大家一起來學(xué)習(xí),共同進(jìn)步:

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

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

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

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

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

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

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

你的例子:如果允許T0中斷,你再人為的置T0中斷標(biāo)志,CPU就會(huì)響應(yīng)了。


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

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

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

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

視頻:https://www.bilibili.com/video/av13010650/


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

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-3-19 23:56 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:69829 發(fā)表于 2020-3-20 08:54 | 只看該作者
好資料,收藏學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级片免费网站 | 国产成人在线视频 | 日韩电影中文字幕在线观看 | 久久久国产精品视频 | 日日天天 | 国产99久久精品 | 羞羞色网站 | 免费一区 | 亚洲精品国产综合区久久久久久久 | 美女在线一区二区 | 日韩欧美在线不卡 | 蜜桃臀av一区二区三区 | 成人在线免费网站 | 午夜av毛片| 亚洲成av人影片在线观看 | 亚洲第一成人影院 | 免费精品 | 久久久入口 | 91成人在线视频 | 97精品超碰一区二区三区 | 日日骚网| 国产精品爱久久久久久久 | 四虎影院在线免费观看 | 欧美日韩18 | 日韩一区二区三区四区五区 | 欧美影院| 伊人春色成人 | 欧美 日韩 亚洲91麻豆精品 | 中文字幕一区二区三区四区五区 | 精品国产精品国产偷麻豆 | 91超碰caoporn97人人 | www.jizzjizz| 国产在线播放一区二区三区 | 91最新在线视频 | 亚洲国产精品成人综合久久久 | 亚洲精品99 | 一区二区日本 | 欧产日产国产精品视频 | 成人在线视频免费观看 | 成人一区在线观看 | 国产精久久久久久久 |