如何學(xué)習(xí)51單片機(jī)/心得/KEIL4/DXP
什么是單片機(jī)
學(xué)習(xí)使用單片機(jī)就是理解單片機(jī)硬件結(jié)構(gòu),以及內(nèi)部資源的應(yīng)用,在匯編或C語(yǔ)言中學(xué)會(huì)各種功能的初始化設(shè)置,以及實(shí)現(xiàn)各種功能的程序編制。
有人覺(jué)得要先學(xué)匯編。不過(guò)我個(gè)人覺(jué)得,學(xué)習(xí)51單片機(jī),還是從C語(yǔ)言入手,一來(lái)方便,二來(lái)容易上手,仁者見(jiàn)仁,智者見(jiàn)智吧。
關(guān)于學(xué)習(xí)51單片機(jī)的書(shū)籍,市場(chǎng)上有很多,大家可以擇優(yōu)選取。
那么,如何用程序控制單片機(jī)的呢?
我開(kāi)始學(xué)單片機(jī)的時(shí)候也曾有過(guò)這樣的困惑啊,ok,下面幫大家整理一下思路。
怎么在Keil里寫(xiě)程序?keil怎么安裝破解?
用過(guò)VC6.0的同學(xué)都知道,VC6.0是一個(gè)編譯環(huán)境。什么是編譯環(huán)境?簡(jiǎn)單地說(shuō),就是你寫(xiě)代碼的地方。 那么,同理,單片機(jī)的編譯環(huán)境就是Keil(除了Keil以外,還有IAR啊等等,不過(guò)我推薦大家用KEIL吧) Keil有很多版本,最新版本是Keil4,所以我毫不猶豫地選擇了Keil4。大家都知道,像這種軟件,一般都不是免費(fèi)的。
But!! 我們的毛爺爺說(shuō)了,人有多大膽,地有多大產(chǎn)
國(guó)內(nèi)從事于破解工作的牛人還是不少的,所以,安裝和破解keil是很輕松的
破解方法
1.安裝 Keil For 51 執(zhí)行 setup.exe
2.注冊(cè) l 開(kāi)打 KEIL4 軟件(WIN7要以管理員身份運(yùn)行) 執(zhí)行菜單命令 file > License Management l 打開(kāi)注冊(cè)機(jī) (下載地址見(jiàn)上)
3.目標(biāo) Target 選擇 C51。
4.拷貝 CID 框里的內(nèi)容到注冊(cè)機(jī)的 CID 里。
5.點(diǎn)擊注冊(cè)機(jī)里的 GENERATE 生成代碼。
6.然后拷貝注冊(cè)碼到 keil 里的 New License ID Code 中點(diǎn)擊 ADD LIC 即可。
苦逼的寫(xiě)完了,怎么生成HEX文件?
在keil中編寫(xiě)完程序后,要將程序通過(guò)燒錄器燒寫(xiě)到單片機(jī)中,這時(shí)就需要在keil中產(chǎn)生一個(gè)hex格式的文件,只有通過(guò)這種格式,燒錄器才能將程序燒寫(xiě)到單片機(jī)中。hex文件格式是Intel公司提出的按地址排列的數(shù)據(jù)信息,數(shù)據(jù)寬度為字節(jié),所有數(shù)據(jù)使用16進(jìn)制數(shù)字表示, 常用來(lái)保存單片機(jī)或其他處理器的目標(biāo)程序代碼。它保存物理程序存儲(chǔ)區(qū)中的目標(biāo)代碼映象。一般的編程器都支持這種格式。如何才能產(chǎn)生這種格式的文件呢? 在keil中對(duì)其進(jìn)行如下設(shè)置,便能產(chǎn)生hex文件:
1.點(diǎn)擊菜單“Option for Tagret '...'”
2.選擇“Output”頁(yè)
3.鉤選“Create HEX File”
4.重編譯 如果程序無(wú)誤,在Project的當(dāng)前目錄即會(huì)產(chǎn)生HEX文件
什么是串口?51和串口和電腦又是什么關(guān)系?
串口是51單片機(jī)與PC機(jī)之間的連接橋梁,
如果 PC 機(jī)有 COM 串口 用 RS232轉(zhuǎn)換TTL 與單片機(jī) RXD TXD 連接,由此對(duì)應(yīng)PL2303模塊
如果 PC 機(jī)沒(méi)有 COM 串口 用 USB轉(zhuǎn)換TTL 與單片機(jī) RXD TXD 連接,由此對(duì)應(yīng)CH340模塊
這兩種方式都可以進(jìn)行下載
STC-ISP是神馬,它怎么就可以下載?什么是冷啟動(dòng)?
STC-ISP 是一款單片機(jī)下載編程燒錄軟件,是針對(duì)STC系列單片機(jī)而設(shè)計(jì)的,可下載STC89系列、12C2052系列和12C5410等系列的STC單片機(jī),使用簡(jiǎn)便,現(xiàn)已被廣泛使用。具體可以問(wèn)問(wèn)度娘 。冷啟動(dòng)就是:開(kāi)發(fā)板先斷電,在運(yùn)行下載軟件,之后出現(xiàn)“仍在連接中, 請(qǐng)給 MCU 上電...”后,在給開(kāi)發(fā)板通電,這樣子才能下載進(jìn)去,否則STC-ISP顯示:
連接失敗,請(qǐng)嘗試以下操作:
1.在單片機(jī)停電狀態(tài)下,點(diǎn)下載按鈕,再給單片機(jī)上電
2.停止下載,重新選擇 RS-232 串口, 接好電纜
3.可能需要先將 P1.0/P1.1 短接到地
4.可能外部時(shí)鐘未接
5.因 PLCC、PQFP 轉(zhuǎn)換座引線過(guò)長(zhǎng)而引起時(shí)鐘不振蕩,請(qǐng)調(diào)整參數(shù)
6.可能要升級(jí)電腦端的 STC ISP.exe 軟件
7.若仍然不成功,可能 MCU/單片機(jī)內(nèi)無(wú) ISP 系統(tǒng)引導(dǎo)碼,或需退回升級(jí),或 MCU 已損壞
8.若使用 USB 轉(zhuǎn) RS-232 串口線下載,可能會(huì)遇到不兼容的問(wèn)題,可以讓我們幫助購(gòu)買(mǎi)兼容的 USB 轉(zhuǎn) RS-232串口線仍在連接中, 請(qǐng)給 MCU 上電...
單片機(jī)需要掌握一些什么內(nèi)容?
第一步:數(shù)字I/O的使用
使用按鈕輸入信號(hào),發(fā)光二極管顯示輸出電平,就可以學(xué)習(xí)引腳的數(shù)字I/O功能,在按下某個(gè)按鈕后,某發(fā)光二極管發(fā)亮,這就是數(shù)字電路中組合邏輯的功能,雖然很簡(jiǎn)單,但是可以學(xué)習(xí)一般的單片機(jī)編程思想,例如,必須設(shè)置很多寄存器對(duì)引腳進(jìn)行初始化處理,才能使引腳具備有數(shù)字輸入和輸出輸出功能。每使用單片機(jī)的一個(gè)功能,就要對(duì)控制該功能的寄存器進(jìn)行設(shè)置,這就是單片機(jī)編程的特點(diǎn),千萬(wàn)不要怕麻煩,所有的單片機(jī)都是這樣。IO口的使用,最簡(jiǎn)單的就是點(diǎn)亮流水燈啦~Come on!為了讓沒(méi)有單片機(jī)的同學(xué)也能順利學(xué)習(xí),我們可以用仿真軟件來(lái)做,有視頻喔,學(xué)習(xí)更簡(jiǎn)單,麻麻再也不用擔(dān)心了,哈哈。請(qǐng)看:帖子鏈接
第二步:定時(shí)器和按鍵的使用
學(xué)會(huì)定時(shí)器的使用,就可以用單片機(jī)實(shí)現(xiàn)時(shí)序電路,時(shí)序電路的功能是強(qiáng)大的,在工業(yè)、家用電氣設(shè)備的控制中有很多應(yīng)用,例如,可以用單片機(jī)實(shí)現(xiàn)一個(gè)具有一個(gè)按鈕的樓道燈開(kāi)關(guān),該開(kāi)關(guān)在按鈕按下一次后,燈亮3分鐘后自動(dòng)滅,當(dāng)按鈕連續(xù)按下兩次后,燈常亮不滅,當(dāng)按鈕按下時(shí)間超過(guò)2s,則燈滅。數(shù)字集成電路可以實(shí)現(xiàn)時(shí)序電路,可編程邏輯器件(PLD)可以實(shí)現(xiàn)時(shí)序電路,可編程控制器(PLC)也可以實(shí)現(xiàn)時(shí)序電路,但是只有單片機(jī)實(shí)現(xiàn)起來(lái)最簡(jiǎn)單,成本最低。定時(shí)器的使用是非常重要的,邏輯加時(shí)間控制是單片機(jī)使用的基礎(chǔ)。 按鍵,就不用說(shuō)了吧,應(yīng)用很廣泛的,不多說(shuō),參見(jiàn)帖子,注意,按鍵掃描程序是用if還是while喔~最近在某論壇發(fā)現(xiàn)了一種新型按鍵識(shí)別思路(利用AD),也可以看看~
第三步:中斷
單片機(jī)的特點(diǎn)是一段程序反復(fù)執(zhí)行,程序中的每個(gè)指令的執(zhí)行都需要一定的執(zhí)行時(shí)間,如果程序沒(méi)有執(zhí)行到某指令,則該指令的動(dòng)作就不會(huì)發(fā)生,這樣就會(huì)耽誤很多快速發(fā)生的事情,例如,按鈕按下時(shí)的下降沿。要使單片機(jī)在程序正常運(yùn)行過(guò)程中,對(duì)快速動(dòng)作做出反應(yīng),就必須使用單片機(jī)的中斷功能,該功能就是在快速動(dòng)作發(fā)生后,單片機(jī)中斷正常運(yùn)行的程序,處理快速發(fā)生的動(dòng)作,處理完成后,在返回執(zhí)行正常的程序。中斷功能使用中的困難是需要精確地知道什么時(shí)候不允許中斷發(fā)生(屏蔽中斷)、什么時(shí)候允許中斷發(fā)生(開(kāi)中斷),需要設(shè)置哪些寄存器才能使某 種中斷起作用,中斷開(kāi)始時(shí),程序應(yīng)該干什么,中斷完成后,程序應(yīng)該干什么等等 。
中斷學(xué)會(huì)后,就可以編制更復(fù)雜結(jié)構(gòu)的程序,這樣的程序可以干著一件事,監(jiān)視著一件事,一旦監(jiān)視的事情發(fā)生,就中斷正在干的事情,處理監(jiān)視的事情,當(dāng)然也可以監(jiān)視多個(gè)事情,形象的比喻,中斷功能使單片機(jī)具有吃著碗里的,看著鍋里的功能。 以上三步學(xué)會(huì),就相當(dāng)于降龍十八掌武功,會(huì)了三掌了,可以勉強(qiáng)護(hù)身。
第四步:與PC機(jī)進(jìn)行RS232通信
單片機(jī)都有USART接口,特別是MSP430系列中很多型號(hào),都具有兩個(gè)USART接口。USART接口不能直接與PC機(jī)的RS232接口連接,它們之間的邏輯電平不同,需要使用一個(gè)MAX3232芯片進(jìn)行電平轉(zhuǎn)換。USART接口的使用是非常重要的,通過(guò)該接口,可以使單片機(jī)與PC機(jī)之間交換信息,雖然RS232通信并不先進(jìn),但是對(duì)于接口的學(xué)習(xí)是非常重要的。正確使用USART接口,需要學(xué)習(xí)通信協(xié)議,PC機(jī)的RS232接口編程等等知識(shí)。試想,單片機(jī)實(shí)驗(yàn)板上的數(shù)據(jù)顯示在PC機(jī)監(jiān)視器上,而PC機(jī)的鍵盤(pán)信號(hào)可以在單片機(jī)實(shí)驗(yàn)板上得到顯示,將是多么有意思的事情啊!
第五步:學(xué)會(huì)A/D與D/A
STC12C5A60S2單片機(jī)帶有多通道10位A/D轉(zhuǎn)換器,通過(guò)這些A/D轉(zhuǎn)換器可以使單片機(jī)操作模擬量,顯示和檢測(cè)電壓、電流等信號(hào)。學(xué)習(xí)時(shí)注意模擬地與數(shù)字地、參考電壓、采樣時(shí)間,轉(zhuǎn)換速率,轉(zhuǎn)換誤差等概念。 使用A/D轉(zhuǎn)換功能的簡(jiǎn)單的例子是設(shè)計(jì)一個(gè)電壓表。DA的芯片承建的有,DAC8032, DAC8032請(qǐng)看: Proteus仿真鏈接
第六步:學(xué)會(huì)PCI、I2C接口和液晶顯示器接口
這些接口的使用可以使單片機(jī)更容易連接外部設(shè)備,在擴(kuò)展單片機(jī)功能方面非常重要。
那我們來(lái)看一下如何實(shí)現(xiàn)LCD1602的顯示吧:帖子鏈接+仿真鏈接
第七步:學(xué)會(huì)比較、捕捉、PWM功能
這些功能可以使單片機(jī)能夠控制電機(jī),檢測(cè)轉(zhuǎn)速信號(hào),實(shí)現(xiàn)電機(jī)調(diào)速器 等控制起功能。 如果以上七步都學(xué)會(huì),就可以設(shè)計(jì)一般的應(yīng)用系統(tǒng),相當(dāng)于學(xué)會(huì)十招降龍十八掌,可以出手攻擊了。
第八步:學(xué)習(xí)USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設(shè)計(jì)
學(xué)習(xí)USB接口、TCP/IP接口、各種工業(yè)總線(CAN總線 、SPI總線 )的硬件與軟件設(shè)計(jì)是非常重要的,因?yàn)檫@是當(dāng)前產(chǎn)品開(kāi)發(fā)的發(fā)展方向。到此為止,相當(dāng)于學(xué)會(huì)15招降龍十八掌,但還不到打遍天下無(wú)敵手的境界。即使如此,也算是單片機(jī)大蝦了。
第九步:學(xué)習(xí)無(wú)線傳輸?shù)挠布c軟件設(shè)計(jì)
PT2262/PT2272 是臺(tái)灣普城公司生產(chǎn)的一種CMOS 工藝制造的低功耗低價(jià)位通用編解碼電路,PT2262/PT2272 最多可有12 位(A0-A11)三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441 地址碼,PT2262 最多可有6 位(D0-D5)數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17 腳串行輸出,可用于無(wú)線遙控發(fā)射電路。編碼芯片PT2262 發(fā)出的編碼信號(hào)由:地址碼、數(shù)據(jù)碼、同步碼組成一個(gè)完整的碼字,解碼芯片PT2272 接收到信號(hào)后,其地址碼經(jīng)過(guò)兩次比較核對(duì)后,VT 腳才輸出高電平,與此同時(shí)相應(yīng)的數(shù)據(jù)腳也輸出高電平,如果發(fā)送端一直按住按鍵,編碼芯片也會(huì)連續(xù)發(fā)射。當(dāng)發(fā)射機(jī)沒(méi)有按鍵按下時(shí),PT2262 不接通電源,其17 腳為低電平,所以315MHz 的高頻發(fā)射電路不工作,當(dāng)有按鍵按下時(shí),PT2262 得電工作,其第17 腳輸出經(jīng)調(diào)制的串行數(shù)據(jù)信號(hào),當(dāng)17 腳為高電平期間315MHz 的高頻發(fā)射電路起振并發(fā)射等幅高頻信號(hào),當(dāng)17 腳為低平期間315MHz 的高頻發(fā)射電路停止振蕩,所以高頻發(fā)射電路完全受控于PT2262 的17 腳輸出的數(shù)字信號(hào),從而對(duì)高頻電路完成幅度鍵控(ASK 調(diào)制)相當(dāng)于調(diào)制度為100%的調(diào)幅。
擴(kuò)展閱讀:什么是單片機(jī)?51單片機(jī)學(xué)前預(yù)備知識(shí)
編輯:admin 最后修改時(shí)間:2018-05-22