分享一個(gè)小技巧,使用MDK編譯器,讓STM32程序HEX文件中加入固件版本信息,估計(jì)很多老手都已經(jīng)在使用(你有好的方法歡迎分享,希望我的磚能引來(lái)你的玉),該方法獻(xiàn)給新手或初學(xué)者。
單片機(jī)程序?qū)懞弥螅覀兌家殉绦蛳螺d到單片機(jī)的內(nèi)存中,單片機(jī)才會(huì)按照程序員的邏輯執(zhí)行命令實(shí)現(xiàn)功能。之前也講過(guò)下載單片機(jī)的幾種方式,比如ISP下載,JTAG下載,下載文件的格式最常見(jiàn)的是hex文件,這個(gè)格式大家都是知道的,還有一種bin文件是單片機(jī)的下載文件。本文詳細(xì)介紹了這兩種格式的區(qū)別。
首先設(shè)定一個(gè)兩周入門計(jì)劃: 所謂的“兩周”,根據(jù)每個(gè)人的時(shí)間安排不同而不同。這里列出一個(gè)思路,僅供參考。
一個(gè).C文件對(duì)應(yīng)一個(gè).H文件是一種良好的編程習(xí)慣,那么.C和.H文件之間的關(guān)系是怎么樣的呢?
晶振是單片機(jī)工作所必不可缺少的元器件,晶振的種類眾多,該如何選擇合適的晶振呢?在用51單片機(jī)設(shè)計(jì)電路時(shí),經(jīng)常會(huì)用到12M和11.0592M的晶振,有時(shí)候11.0592M的晶振用的頻率會(huì)更高,為什么一些比較有經(jīng)驗(yàn)的工程師會(huì)更喜歡用11.0592M呢?
這個(gè)是有一定的科學(xué)依據(jù)的,這要從早期的TTL邏輯電平說(shuō)起。 TTL電平邏輯規(guī)范 早期的TTL邏輯電平是5V,所以以5V供電作為主流,如8051單片機(jī)就是5V供電的。隨著技術(shù)的進(jìn)步,人們對(duì)電子設(shè)備的功耗越來(lái)越敏感,希望電子產(chǎn)品的功耗盡可能的少。減小電子產(chǎn)品功耗最直接的辦法就是降低芯片的供電電源,但是降到多少合適?既能滿足低功耗的需求,又要兼容5V的TTL電平?
本設(shè)計(jì)使用了一個(gè)4位的數(shù)碼管,為共陽(yáng)型,為了節(jié)省單片機(jī)的IO口,使用了兩片74HC595作為數(shù)碼管的驅(qū)動(dòng)芯片,共占用3個(gè)IO口。
單片機(jī)是嵌入式系統(tǒng)的核心元件,使用單片機(jī)的電路要復(fù)雜得多,但在更改和添加新功能時(shí),帶有單片機(jī)的電路更加容易實(shí)現(xiàn),這也正是電器設(shè)備使用單片機(jī)的原因。那么在單片機(jī)電路的設(shè)計(jì)中需要注意的難點(diǎn)有哪些?
學(xué)習(xí)單片機(jī)需要?jiǎng)邮郑皇钦罩n本去死記硬背。 所以學(xué)習(xí)單片機(jī)的第一個(gè)概念:確定好所學(xué)習(xí)的單片機(jī)具體型號(hào)。
學(xué)習(xí)單片機(jī)需要具備一定的電路基礎(chǔ)、數(shù)字電路、模擬電路、信號(hào)系統(tǒng)、C語(yǔ)言編程等相關(guān)的基礎(chǔ)知識(shí)。單片機(jī)的學(xué)習(xí)包括硬件設(shè)計(jì)和編程設(shè)計(jì),早期單片機(jī)用匯編編程的人比較多,現(xiàn)在越來(lái)越多的人用C語(yǔ)言進(jìn)行編程。下面和大家分享一下如何快速有效的學(xué)習(xí)單片機(jī)。
8*8點(diǎn)陣是一種應(yīng)用廣泛的顯示器件,像戶外的顯示屏、點(diǎn)陣屏都是由點(diǎn)陣拼接而成。而點(diǎn)陣其實(shí)是發(fā)光二極管LED的矩陣。 在驅(qū)動(dòng)點(diǎn)陣時(shí),雖然具有專用的點(diǎn)陣驅(qū)動(dòng)芯片,如MAX7219,但是該芯片價(jià)格比較高,所以應(yīng)用并沒(méi)有很普遍。而74HC595和74HC138的組合來(lái)驅(qū)動(dòng)點(diǎn)陣應(yīng)用卻非常廣泛。
單片機(jī)的GPIO口驅(qū)動(dòng)能力有限,不能直接驅(qū)動(dòng)較大功率的負(fù)載,如果負(fù)載的功率較大必須要考慮采用驅(qū)動(dòng)功率器件的方式,比如說(shuō)三極管、MOS管以及其他的專用驅(qū)動(dòng)芯片。下面結(jié)合幾個(gè)典型的例子來(lái)介紹一下如何提高單片機(jī)的驅(qū)動(dòng)能力。
單片機(jī)和嵌入式,其實(shí)沒(méi)有什么標(biāo)準(zhǔn)的定義來(lái)區(qū)分他們,對(duì)于進(jìn)行過(guò)單片機(jī)和嵌入式開(kāi)發(fā)的開(kāi)發(fā)者來(lái)說(shuō),都有他們自己的定義,接下來(lái),就談?wù)勥@兩個(gè)概念的深入理解。
數(shù)字電路剛通電時(shí)都會(huì)上電復(fù)位,復(fù)位的功能是將單片機(jī)里的重新開(kāi)始,主要防止程序混亂,也就是跑飛、或者死機(jī)等現(xiàn)象,目的是使系統(tǒng)進(jìn)入初始狀態(tài),以便隨時(shí)接受各種指令進(jìn)行工作,CPU的復(fù)位可靠性決定著產(chǎn)品系統(tǒng)的穩(wěn)定性,因此在電路當(dāng)中,發(fā)生任何一種復(fù)位后,系統(tǒng)程序?qū)闹匦麻_(kāi)始執(zhí)行,系統(tǒng)寄存器也都將恢復(fù)為默認(rèn)值。
前邊的文章《單片機(jī)技巧:快速入門有訣竅,先從最小系統(tǒng)開(kāi)始入手,事半功倍》里講解了單片機(jī)的最小系統(tǒng),單片機(jī)想要正常工作,電源電路、晶振電路、下載電路、復(fù)位電路等是必不可少的。今天來(lái)詳細(xì)講解一下復(fù)位電路。
有 朋友在后臺(tái)發(fā)消息,希望設(shè)計(jì)一個(gè)LED閃爍電路,閃爍頻率為2Hz,想了解LED閃爍的電路原理是什么,下面解答一下,看看有沒(méi)有寫(xiě)的很通俗易懂。
單片機(jī)是一種可編程器件,單片機(jī)的出現(xiàn)使硬件設(shè)計(jì)變得更為簡(jiǎn)單,產(chǎn)品的功能也更強(qiáng)大,而程序就是單片機(jī)的靈魂。 目前功能稍微復(fù)雜一點(diǎn)的電子產(chǎn)品,都是以單片機(jī)為核心,再加以不通的外設(shè)電路實(shí)現(xiàn)不通的功能需求。 單片機(jī)的編程可以通過(guò)匯編語(yǔ)言和C語(yǔ)言來(lái)實(shí)現(xiàn)。
單片機(jī)是可編程器件,在使用時(shí)需要編寫(xiě)滿足需求的程序。其C語(yǔ)言程序在各個(gè)端口、配置初始化完成后,會(huì)進(jìn)入一個(gè)死循環(huán),一般用while(1){;}的形式。初始化完成后,單片機(jī)就在死循環(huán)內(nèi)一遍又一遍的執(zhí)行程序邏輯。復(fù)位后,就從頭開(kāi)始,初始化完成后,再次進(jìn)入死循環(huán)。
應(yīng)某位朋友的要求,講解一下單片機(jī)中斷的知識(shí),那今天就以51單片機(jī)的外部中斷0為例,來(lái)簡(jiǎn)單講解一下單片機(jī)中斷的用法。
在學(xué)習(xí)單片機(jī)的時(shí)候,我們發(fā)現(xiàn)很多功能都是通過(guò)中斷來(lái)實(shí)現(xiàn)的。之前也舉過(guò)燒水的例子來(lái)闡述中斷,今天就講解一下定時(shí)器賦初值的方法。8位的定時(shí)器最大可計(jì)數(shù)2的8次方為256,16位的定時(shí)器最大可計(jì)數(shù)2的16次方為65536。