① 如何高效學習單片機
如何高效學習單片機http://jingyan..com/article/0bc808fc41f7a81bd485b9b7.html
參考
學習單片機有自己的單片機開發板比較好,吳鑒鷹單片機開發板目前的主流
② 如何高效學習單片機,順便推薦一款單片機學習板給我,謝謝
如果是你說的單片機是51的話,有一丟丟基礎的話,可以建議你用最小系統板加外設模塊自己拼,做起東西來靈活,可更換,沒基礎確實可以買套開發板配著教學視頻學一遍,郭天祥的一套就可以,我51就是看他視頻學的。
我認為初學單片機最重要的,是實踐,如果沒有實物,只是跟著視頻打打程序,很快就會失去興趣,我周圍有太多因為這個原因而放棄的人了。
③ 如何高效的使用單片機的DMA
有DMA功能的單片機很少的,特別是8位單片機,基本來說是沒有DMA功能,PIC24系列部分單片機有DMA功能,可以選用。8位單片機,比如51,也可以藉助8237實現DMA功能。
④ 如何寫一段簡潔高效的單片機C語言子程序,實現這樣一個功能
1、首先調用,設置狀態靜態寄存器初值,計數靜態寄存器初值;2、調用一次,檢測一次,對比前次的靜態變數,不同則計數增1後反回,相同則清除計數返回;3、再調用一次,檢測一次,對比前次的靜態變數,不同則計數增1後反回,相同則清除計數返回;4、最後調用一次,檢測一次,作對比,相同則清除計數,不同則修改要更新的變數,改變狀態靜態變數,清除計數器,返回。
⑤ 目前性能最好的單片機是哪一款
比台灣單片機還便宜的日本NEC8位高性能單片機
NEC
78K0/Kx1+系列MCU中所採用的SuperFlash技術允許開發者升級程序,而且能用作非易失性數據存儲器.這使得快閃記憶體能替代外接的EEPROM,在電源關斷狀態時存儲數據,減少了整個系統的元件數量.
78K0/Kx1+系列MCU對所有的K1
MCU系列成員共享外設指令,包括廣泛使用的78K0/Kx1+系列.該器件的特性包括有時鍾監視器的安全保險(FailSafe)電路和獨立於主時鍾的內部時鍾,看門狗計時器和片內振盪器,器件和系統加電重置(POR)功能及低電壓指示器(LVI).此外,一些有44或更多引腳的78K0/Kx1+系列MCU具有用來進行軟體開發的片內調試器功能,能用真實的MCU來進行軟體開發,使開發更加接近實際情況.
78K0/Kx1+系列MCU工作速度20MHz,CPU處理速度比10MHz的78K0/Kx1系列MCU增加了100%.78K0/Kx1+系列MCU有片內安全功能,能檢測到由電磁干擾或靜電所引起的誤操作,使系統更加安全和可靠.
NEC的MCU最大特點:
1.高性價比!全線產品比PIC便宜近30%!個別產品的價格甚至比台灣的價格還低.
2.內置高精度的環行震盪器,在-40---85度的時候精度可達到0.1%.
3.模擬工具僅僅售人民幣1000元整,而且可以模擬NEC全系列(包括8位,16位,32位單片機),還帶燒寫功能
內置雙Ring-OSC(8MHz,240KHz),上電復位清零電路,低電壓偵測電路和獨立源看門狗電路
FLASH
ROM(8K-128K)
產品內置支持LIN-BUS的UART
2-4路串列口(內含2路UART,1路I2C,高端產品有1-2路帶自動轉發功能的CSI)
10pin-80pin
多路10BITA/D
低功耗,寬電壓范圍,超高抗干擾
支持在線編程(ISP)
單電壓編程,支持自編程和BOOT區切換
低價位開發工具,便捷的開發環境
應用於智能儀表,智能家電,工業控制,汽車電子領域
UPD78F9202(10P
4K
,8個I/Q,4路A/D)
UPD78F9222(20P
4K
,17個I/Q,4路A/D)
UPD78F9212,(16P
4K
,13個I/Q,4路A/D)
UPD78F9234(30P
8K
,26個I/Q,4路A/D)
UPD78F0511(44P
16K
,37個I/Q,4路A/D)
UPD78F0537(64P
128K
,55個I/Q,8路A/D)雙串口
⑥ 如何更高效地實現51單片機流水燈
要高效實現51單片機的流水燈,就用定時器來控制好了,這樣做效率最高。
⑦ 如何寫出高效的單片機C語言程序代碼
由於單片機的性能同電腦的性能是天淵之別的,無論從空間資源上、內存資源、工作頻率,都是無法
與之比較的。PC 機編程基本上不用考慮空間的佔用、內存的佔用的問題,最終目的就是實現功能就可以了。
對於單片機來說就截然不同了,一般的單片機的Flash 和Ram 的資源是以KB 來衡量的,可想而知,單片
機的資源是少得可憐,為此我們必須想法設法榨盡其所有資源,將它的性能發揮到最佳,程序設計時必須
遵循以下幾點進行優化:
1. 使用盡量小的數據類型
能夠使用字元型(char)定義的變數,就不要使用整型(int)變數來定義;能夠使用整型變數定義的變
量就不要用長整型(long int),能不使用浮點型(float)變數就不要使用浮點型變數。當然,在定義變
量後不要超過變數的作用范圍,如果超過變數的范圍賦值,C 編譯器並不報錯,但程序運行結果卻錯了,
而且這樣的錯誤很難發現。
2. 使用自加、自減指令
通常使用自加、自減指令和復合賦值表達式(如a-=1 及a+=1 等)都能夠生成高質量的
程序代碼,編譯器通常都能夠生成inc 和dec 之類的指令,而使用a=a+1 或a=a-1 之類
的指令,有很多C 編譯器都會生成二到三個位元組的指令。
3. 減少運算的強度
可以使用運算量小但功能相同的表達式替換原來復雜的的表達式。
(1) 求余運算
N= N %8 可以改為N = N &7
說明:位操作只需一個指令周期即可完成,而大部分的C 編譯器的「%」運算均是調用子程序來
完成,代碼長、執行速度慢。通常,只要求是求2n 方的余數,均可使用位操作的方法來代替。
(2) 平方運算
N=Pow(3,2) 可以改為N=3*3
說明:在有內置硬體乘法器的單片機中(如51 系列),乘法運算比求平方運算快得多, 因為浮點數
的求平方是通過調用子程序來實現的,乘法運算的子程序比平方運算的子程序代碼短,執行速度快。
(3) 用位移代替乘法除法
N=M*8 可以改為N=M<<3
N=M/8 可以改為N=M>>3
說明:通常如果需要乘以或除以2n,都可以用移位的方法代替。如果乘以2n,都可以生成左移
的代碼,而乘以其它的整數或除以任何數,均調用乘除法子程序。用移位的方法得到代碼比調用乘除法子
程序生成的代碼效率高。實際上,只要是乘以或除以一個整數,均可以用移位的方法得到結果。如N=M*9
可以改為N=(M<<3)+M;
(4) 自加自減的區別
例如我們平時使用的延時函數都是通過採用自加的方式來實現。
void DelayNms(UINT16 t)
{
UINT16 i,j;
for(i=0;i<t;i++)
for(j=0;i<1000;j++)
}
可以改為
void DelayNms(UINT16 t)
{
UINT16 i,j;
for(i=t;i>=0;i--)
for(j=1000;i>=0;j--)
}
說明:兩個函數的延時效果相似,但幾乎所有的C 編譯對後一種函數生成的代碼均比前一種代碼少1~3
個位元組,因為幾乎所有的MCU 均有為0 轉移的指令,採用後一種方式能夠生成這類指令。
4. while 與do...while 的區別
void DelayNus(UINT16 t)
{
while(t--)
{
NOP();
}
}
可以改為
void DelayNus(UINT16 t)
{
do
{
NOP();
}while(--t)
}
說明:使用do…while 循環編譯後生成的代碼的長度短於while 循環。
5. register 關鍵字
void UARTPrintfString(INT8 *str)
{
while(*str && str)
{
UARTSendByte(*str++)
}
}
可以改為
void UARTPrintfString(INT8 *str)
{
register INT8 *pstr=str;
while(*pstr && pstr)
{
UARTSendByte(*pstr++)
}
}
說明:在聲明局部變數的時候可以使用register 關鍵字。這就使得編譯器把變數放入一個多用途的寄存
器中,而不是在堆棧中,合理使用這種方法可以提高執行速度。函數調用越是頻繁,越是可能提高代碼的
速度,注意register 關鍵字只是建議編譯器而已。
6. volatile 關鍵字
volatile 總是與優化有關,編譯器有一種技術叫做數據流分析,分析程序中的變數在哪裡賦值、在
哪裡使用、在哪裡失效,分析結果可以用於常量合並,常量傳播等優化,進一步可以死代碼消除。一般來
說,volatile 關鍵字只用在以下三種情況:
a) 中斷服務函數中修改的供其它程序檢測的變數需要加volatile(參考本書高級實驗程序)
b) 多任務環境下各任務間共享的標志應該加volatile
c) 存儲器映射的硬體寄存器通常也要加volatile 說明,因為每次對它的讀寫都可能由不同意義
總之,volatile 關鍵字是一種類型修飾符,用它聲明的類型變數表示可以被某些編譯器未知的因素
更改,比如:操作系統、硬體或者其它線程等。遇到這個關鍵字聲明的變數,編譯器對訪問該變數的代碼
就不再進行優化,從而可以提供對特殊地址的穩定訪問。
⑧ 如何編寫高效率穩定的單片機代碼
要寫出高效率穩定的單片機代碼:
1、使用匯編語言編寫。
2、熟練掌握和靈活應用各種演算法。
⑨ MSP430有哪些高效能的特性
MSP430單片機簡介
MSP430系列單片機是美國德州儀器(TI)1996年開始推向市場的一種16位超低功耗、具有精簡指令集(RISC)的混合信號處理器(Mixed Signal Processor)。稱之為混合信號處理器,是由於其針對實際應用需求,將多個不同功能的模擬電路、數字電路模塊和微處理器集成在一個晶元上,以提供「單片」解決方案。該系列單片機多應用於需要電池供電的攜帶型儀器儀表中。
MSP430單片機的特點:
1.處理能力強
MSP430系列單片機是一個16位的單片機,採用了精簡指令集(RISC)結構,具有豐富的定址方式(7 種源操作數定址、4 種目的操作數定址)、簡潔的 27 條內核指令以及大量的模擬指令;大量的寄存器以及片內數據存儲器都可參加多種運算;還有高效的查表處理指令。這些特點保證了可編制出高效率的源程序。
2.運算速度快
MSP430 系列單片機能在25MHz晶體的驅動下,實現40ns的指令周期。16位的數據寬度、40ns的指令周期以及多功能的硬體乘法器(能實現乘加運算)相配合,能實現數字信號處理的某些演算法(如 FFT 等)。
3.超低功耗
MSP430 單片機之所以有超低的功耗,是因為其在降低晶元的電源電壓和靈活而可控的運行時鍾方面都有其獨到之處。 首先,MSP430 系列單片機的電源電壓採用的是1.8-3.6V 電壓。因而可使其在1MHz 的時鍾條件下運行時,晶元的電流最低會在165μA左右,RAM 保持模式下的最低功耗只有0.1μA。 其次,獨特的時鍾系統設計。在 MSP430 系列中有兩個不同的時鍾系統:基本時鍾系統、鎖頻環(FLL 和FLL+)時鍾系統和DCO數字振盪器時鍾系統。可以只使用一個晶體振盪器(32768Hz),也可以使用兩個晶體振盪器。由系統時鍾系統產生 CPU 和各功能所需的時鍾。並且這些時鍾可以在指令的控制下,打開和關閉,從而實現對總體功耗的控制。 由於系統運行時開啟的功能模塊不同,即採用不同的工作模式,晶元的功耗有著顯著的不同。在系統中共有一種活動模式(AM)和五種低功耗模式(LPM0~LPM4)。在實時時鍾模式下,可達2.5μA ,在RAM 保持模式下,最低可達0.1μA 。
4.片內資源豐富
MSP430 系列單片機的各系列都集成了較豐富的片內外設。它們分別是看門狗(WDT)、模擬比較器A、定時器A0(Timer_A0)、定時器A1(Timer_A1)、定時器B0(Timer_B0)、UART、SPI、I2C、硬體乘法器、液晶驅動器、10位/12位ADC、16位Σ-Δ ADC、DMA、I/O埠、基本定時器(Basic Timer)、實時時鍾(RTC)和USB控制器等若干外圍模塊的不同組合。其中,看門狗可以使程序失控時迅速復位;模擬比較器進行模擬電壓的比較,配合定時器,可設計出 A/D 轉換器;16 位定時器(Timer_A 和 Timer_B)具有捕獲/比較功能,大量的捕獲/比較寄存器,可用於事件計數、時序發生、 PWM 等;有的器件更具有可實現非同步、同步及多址訪問串列通信介面可方便的實現多機通信等應用;具有較多的 I/O 埠,P0、P1、P2 埠能夠接收外部上升沿或下降沿的中斷輸入;10/12位硬體 A/D 轉換器有較高的轉換速率,最高可達200kbps ,能夠滿足大多數數據採集應用;能直接驅動液晶多達 160 段;實現兩路的 12 位 D/A 轉換;硬體I2C串列匯流排介面實現存儲器串列擴展;以及為了增加數據傳輸速度,而採用的DMA模塊。MSP430 系列單片機的這些片內外設為系統的單片解決方案提供了極大的方便。 另外,MSP430 系列單片機的中斷源較多,並且可以任意嵌套,使用時靈活方便。當系統處於省電的低功耗狀態時,中斷喚醒只需5μs。
5.方便高效的開發環境
MSP430 系列有 OPT 型、 FLASH 型和 ROM 型三種類型的器件,這些器件的開發手段不同。對於 OPT 型和 ROM 型的器件是使用模擬器開發成功之後燒寫或掩膜晶元;對於 FLASH 型則有十分方便的開發調試環境,因為器件片內有 JTAG 調試介面,還有可電擦寫的 FLASH 存儲器,因此採用先下載程序到 FLASH 內,再在器件內通過軟體控製程序的運行,由 JTAG 介面讀取片內信息供設計者調試使用的方法進行開發。這種方式只需要一台 PC 機和一個 JTAG 調試器,而不需要模擬器和編程器。開發語言有匯編語言和 C 語言。
MSP430單片機家族
MSP430x1xx系列
基於快閃記憶體或 ROM 的超低功耗 MCU,提供 8MIPS,工作電壓為 1.8V - 3.6V,具有高達 60KB 的快閃記憶體和各種高性能模擬及智能數字外設。 超低功耗低至: 0.1μA RAM 保持模式 0.7μA 實時時鍾模式 200μA/MIPS 工作模式 在 6μs 之內快速從待機模式喚醒 器件參數: 快閃記憶體選項:1KB – 60KB ROM 選項:1KB – 16KB RAM 選項:512B – 10KB GPIO 選項:14、22、48 引腳 ADC 選項:10 和 12 位斜率 SAR 其它集成外設:模擬比較器、DMA、硬體乘法器、SVS、12 位 DAC[5]
MSP430F2xx系列
基於快閃記憶體的超低功耗 MCU,在 1.8V - 3.6V 的工作電壓范圍內性能高達 16MIPS。包含極低功耗振盪器 (VLO)、內部上拉/下拉電阻和低引腳數選擇。 超低功耗低至: 0.1μA RAM 保持模式 0.3μA 待機模式 (VLO) 0.7μA 實時時鍾模式 220μA/MIPS 工作模式 在 1μs 之內超快速地從待機模式喚醒 器件參數: 快閃記憶體選項:1KB – 120KB RAM 選項:128B – 8KB GPIO 選項:10、16、24、32、48、64 引腳 ADC 選項:10 和 12 位斜率 SAR、16 位 Σ-Δ ADC 其它集成外設:模擬比較器、硬體乘法器、DMA、SVS、12 位 DAC、運算放大器[6]
MSP430C3xx系列
舊款的 ROM 或 OTP 器件系列,工作電壓為 2.5V - 5.5V,高達 32KB ROM、4MIPS 和 FLL。 超低功耗低至: 0.1μA RAM 保持模式 0.9μA 實時時鍾模式 160μA/MIPS 工作模式 在 6μs 之內快速從待機模式喚醒 器件參數: ROM 選項:2KB – 32KB RAM 選項:512B – 1KB GPIO 選項:14、40 引腳 ADC 選項:14 位斜率 SAR 其它集成外設:LCD 控制器、硬體乘法器[7]
MSP430x4xx系列
基於 LCD 快閃記憶體或 ROM 的器件系列,提供 8-16MIPS,包含集成 LCD 控制器,工作電壓為 1.8V-3.6V,具有 FLL 和 SVS。低功耗測量和醫療應用的理想選擇。 超低功耗低至: 0.1μA RAM 保持模式 0.7μA 實時時鍾模式 200μA/MIPS 工作模式 在 6μs 之內快速從待機模式喚醒 器件參數: 快閃記憶體/ROM 選項:4kB – 120KB RAM 選項:256B – 8KB GPIO 選項:14、32、48、56、68、72、80 引腳 ADC 選項:10 和 12 位斜率 SAR、16 位 Σ-Δ ADC 其它集成外設:LCD 控制器、模擬比較器、12 位 DAC、DMA、硬體乘法器、運算放大器、USCI 模塊[8]
MSP430F5xx系列
新款基於快閃記憶體的產品系列,具有最低工作功耗,在 1.8V-3.6V 的工作電壓范圍內性能高達 25MIPS。包含一個用於優化功耗的創新電源管理模塊。 超低功耗低至: 0.1μA RAM 保持模式 2.5μA 實時時鍾模式 165μA/MIPS 工作模式 在 5μs 之內快速從待機模式喚醒 器件參數: 快閃記憶體選項:高達 256KB RAM 選項:高達 16KB ADC 選項:10 和 12 位 SAR 其它集成外設:USB、模擬比較器、DMA、硬體乘法器、RTC、USCI、12 位 DAC[9]
⑩ 怎麼才能高效地學好51單片機。。。。。。
開發板,常式,電路原理圖,先模仿別人的,然後自己就會有新想法,想實現些什麼新功能,然後自己找晶元,設計電路,寫程序,去實現。別急著一開始就自己設計