自學(xué)單片機(jī)心得體會
無論是作為一名業(yè)余的電子愛好者還是一名電子行業(yè)的相關(guān)從業(yè)人員,掌握單片機(jī)技術(shù)無疑可以使您如虎添翼,為您的電子小制作或者開發(fā)設(shè)計(jì)電子產(chǎn)品時打開方便的大門!
而且現(xiàn)在學(xué)習(xí)單片機(jī)技術(shù)的熱潮正在不斷升溫,電子發(fā)燒友網(wǎng)開設(shè)了詳細(xì)的單片機(jī)學(xué)習(xí)專欄和人氣非常旺的論壇討論組,對于想學(xué)習(xí)單片機(jī)的朋友來說幫助很大,可以說現(xiàn)在的單片機(jī)學(xué)習(xí)環(huán)境是最好的,經(jīng)過一段時間的努力,采用單片機(jī)來開發(fā)設(shè)計(jì)電子產(chǎn)品已經(jīng)不再是專業(yè)電子工程師的“專利”!作為一個普通的電子愛好者完全可以通過一番努力后熟練掌握!國外的電子愛好者采用單片機(jī)來設(shè)計(jì)小制作非常普及,一些智能機(jī)器人、智能自動裝置內(nèi)部都離不開單片機(jī)的身影~~~
學(xué)習(xí)單片機(jī)技術(shù)有一定的難度,不花費(fèi)一番努力是很難學(xué)會的,但是只要不斷努力就一定能成功,套用一句廣告歌詞:努力總有回報(bào)!
學(xué)習(xí)單片機(jī)最好從51系列開始,第一是書多、資料多,而且掌握51技術(shù)的人多,碰到問題能請教的老師也就多了,51系列的實(shí)驗(yàn)芯片AT89C51價格低廉而且很容易買到,AT89C51芯片而且可以反復(fù)擦寫1000次以上,對于初學(xué)者來說真是太合適了,就算以后考慮工業(yè)運(yùn)用,也可以先學(xué)透51后再學(xué)其他類型的單片機(jī),畢竟技術(shù)是相通的。
學(xué)習(xí)單片機(jī)的第一步是看書,單片機(jī)是一個知識密集的東東,不看書是絕對不行的,北京航空航天大學(xué)出版社出版了大量單片機(jī)方面的好書,你可以直接登錄他們的網(wǎng)站進(jìn)行郵購。本人認(rèn)為第一本書應(yīng)該是8051單片機(jī)的基礎(chǔ)原理書,我看的第一本書是問單位一位大學(xué)生同事借的清華大學(xué)出版社的《單片機(jī)的原理及接口技術(shù)》這本是51的大學(xué)教科書,比較系統(tǒng)地介紹了51芯片的基礎(chǔ)知識,我認(rèn)為這本書對我?guī)椭€是很大的,可以很系統(tǒng)地了解51單片機(jī),雖然一開始不容易看懂,不過確實(shí)很有用,很有嚼頭,可以先大致看一遍,不消化的可以以后在試驗(yàn)實(shí)踐中反復(fù)研究。
這里我推薦初學(xué)者一張學(xué)習(xí)單片機(jī)的多媒體光盤,這張光盤中有比較詳細(xì)的單片機(jī)基礎(chǔ)知識,因?yàn)槭菆D文并茂,所以學(xué)習(xí)起來比較容易上手,學(xué)習(xí)容易產(chǎn)生興趣,當(dāng)然最終還是要看書的,畢竟書更系統(tǒng)全面。
《MCS-51單片機(jī)實(shí)用接口技術(shù)》這是一本北京航空航天大學(xué)出版社出版的一本好書,它詳細(xì)描述了單片機(jī)的常見接口技術(shù),對于想以后開發(fā)產(chǎn)品的話,那就人手一本吧!《單片機(jī)實(shí)踐與運(yùn)用》這本書詳細(xì)介紹了用單片機(jī)作的實(shí)驗(yàn),有很實(shí)用的匯編源程序,可以通過學(xué)習(xí)模仿上面的程序加以試驗(yàn),快速掌握單片機(jī)技術(shù)。
學(xué)習(xí)單片機(jī)的第二步是購買工具,單片機(jī)芯片必須借助編程器才能寫入程序,站長用的編程器是一種性能較好的Genius NSP 通用編程器,通用編程器的特點(diǎn)是專為開發(fā)單片機(jī)和燒寫各類存儲器而設(shè)計(jì)的通用機(jī)型,它的編程可靠性高,支持的器件品種很多。
Genius NSP 通用編程器:
4Opins萬用鎖緊插座。適應(yīng)絕大多數(shù)器件編程之所需。使用適配器能夠支持非DIP封裝器件的編程。
RS232竄口通訊。通訊波特率:57600bit/s
9V/500mA電源轉(zhuǎn)換器。
主要功能:EPROM、EEPROM、FLASH、MPU/CPU、PLD。Serial EEPROM六大類器件的編程;RAM器件及CMOS/TTL器件的測試等等。
可選擇的器件插入自動探測啟動功能,即當(dāng)您選擇該功能并啟動后,不再需要每次點(diǎn)擊鼠標(biāo)啟動操作,每次當(dāng)您更換芯片并鎖緊萬用插座后操作自動啟動。
Genius NSP 可以在 WINDOS95、 98、me、2000、XP上運(yùn)行。
從長遠(yuǎn)的方面考慮,購置一臺通用編程器是很有必要的。
學(xué)習(xí)單片機(jī)的第三步是反復(fù)編程實(shí)踐,這里需要一塊AT89C51的試驗(yàn)板。
仿真器對單片機(jī)初學(xué)者來說既是那么耳熟,同時又有些陌生,這主要是因?yàn)槭袌錾蟼鹘y(tǒng)的仿真器價格都在千元以上,對經(jīng)濟(jì)不是非常寬裕的人來說是不小的開支。同時仿真器是用來提高調(diào)試程序效率的,也不是非需不可的,所以站長在自學(xué)單片機(jī)開始的時候也沒有用過仿真器,碰到程序出錯的時候,只好苦思冥想,或者在程序中插入一些驅(qū)動端口的指令,然后再接上一些發(fā)光二極管做簡單指示,一般調(diào)試一個程序,反復(fù)燒寫幾十次芯片是很經(jīng)常的。
現(xiàn)在我們介紹一種新型的廉價在線仿真器:它使用一片宏晶公司 【SST公司】的STC89C516RD 的單片機(jī),仿真機(jī)通過串口與 PC 連接,該型號單片機(jī)是51系列單片機(jī)中的一種,具有ISP(在系統(tǒng)可編程)功能,程序可串行下載,可仿真63K用戶程序空間,具有450個外部RAM字節(jié)。
具備了必要的工具以后就可以開始學(xué)習(xí)單片機(jī)了,對單片機(jī)進(jìn)行編程可以采用匯編語言或者C語言,匯編語言的特點(diǎn)是代碼緊湊,對初學(xué)者的電腦水平要求低、上手快,但是程序編寫工作量大,站長網(wǎng)站的程序范例就是采用匯編語言編寫的,這里說的C語言是專用于51單片機(jī)的C語言,它的特點(diǎn)是編寫效率高,但是對使用者的電腦水平要求高,最好是已經(jīng)會C語言了,電子發(fā)燒友網(wǎng)網(wǎng)站上也有單片機(jī)C語言教程。我認(rèn)為初學(xué)單片機(jī)的人最好懂一些匯編語言,匯編語言可以直接控制單片機(jī)的資源,比如具體的單片機(jī)引腳、內(nèi)存地址,掌握這些也是很有必要的,學(xué)會匯編語言可以打下比較好的基礎(chǔ),很多參考書也是這么說的,如果你是專業(yè)單片機(jī)開發(fā)人員,那么C語言效率高,更適合你。
自學(xué)匯編語言,首先要學(xué)會看懂別人的匯編語言程序,可以將匯編語言的指令翻譯成自己容易理解的功能描述性文字,詳細(xì)注釋在程序后面,這樣便于自己以后引用或者別人容易看懂。站長看到別人寫的一些匯編程序的注釋都非常少,這非常不利于初學(xué)者學(xué)習(xí)和互相交流,所以只要是站長寫的程序都做了非常詳細(xì)的注釋。
學(xué)習(xí)匯編語言可以參考相關(guān)的書,匯編語言有100多條指令,但是常用的指令也就二三十條,可以先記住常用的匯編指令,如果一時記不住可以打印在紙上慢慢熟悉,然后對別人的匯編程序再加以試驗(yàn)驗(yàn)證,最后還可以在自己理解的基礎(chǔ)上對匯編程序的相關(guān)參數(shù)修改再反復(fù)試驗(yàn),這是快速掌握單片機(jī)的捷徑!
一、八路LED跑馬燈實(shí)驗(yàn)
現(xiàn)在讓我們開始做第一個實(shí)驗(yàn):八路發(fā)光二極管輪流點(diǎn)亮的實(shí)驗(yàn),也就是通常所說的跑馬燈實(shí)驗(yàn),首先讓我們來完成必須的硬件部分,我們需要焊接上8個發(fā)光二極管和8個限流電阻,可以參考下面的原理圖和實(shí)物圖像進(jìn)行操作,需要注意的是LED是有極性的,引腳長的為正極,引腳短的為負(fù)極,負(fù)極和電阻一側(cè)連接,如果接錯那么相應(yīng)的那一路可能在實(shí)驗(yàn)中不會點(diǎn)亮了,在焊接前要看仔細(xì)哦~~~
下面我們來完成軟件編程設(shè)計(jì),這里我們沒有采用高深的編程技巧,而是用了最笨、最直接的向端口送數(shù)的辦法來實(shí)現(xiàn),一來程序比較簡單,沒必要玩深沉,而且初學(xué)者看起來直觀易懂。
ORG 0000H
START:MOV P1,#01111111B;最下面的LED點(diǎn)亮
LCALL DELAY;延時1秒
MOV P1,#10111111B;最下面第二個的LED點(diǎn)亮
LCALL DELAY;延時1秒
MOV P1,#11011111B;最下面第三個的LED點(diǎn)亮 (以下省略)
LCALL DELAY
MOV P1,#11101111B
LCALL DELAY
MOV P1,#11110111B
LCALL DELAY
MOV P1,#11111011B
LCALL DELAY
MOV P1,#11111101B
LCALL DELAY
MOV P1,#11111110B
LCALL DELAY
MOV P1,#11111111B;完成第一次循環(huán)點(diǎn)亮,延時約0.25秒
AJMP START;反復(fù)循環(huán)
;延時子程序,12M晶振延時約250毫秒
DELAY:
MOV R4,#2
L3: MOV R2 ,#250
L1: MOV R3 ,#250
L2: DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R4 ,L3
RET
END
如何精確計(jì)算延時子程序的執(zhí)行時間?
匯編語言的一大優(yōu)勢就是能夠精確控制程序的執(zhí)行時間,這在編寫一些對時序要求嚴(yán)格的外圍器件驅(qū)動時由為重要!
二、兩位數(shù)碼管循環(huán)顯示00~99的實(shí)驗(yàn)
現(xiàn)在讓我們用實(shí)驗(yàn)板上的兩個數(shù)碼管來做一個循環(huán)顯示00~99數(shù)字的實(shí)驗(yàn),先來完成必要的硬件部分,
數(shù)碼管有共陰和共陽的區(qū)分,單片機(jī)都可以進(jìn)行驅(qū)動,但是驅(qū)動的方法卻不同,并且相應(yīng)的0~9的顯示代碼也正好相反。
首先我們來介紹兩位共陽數(shù)碼管的單片機(jī)驅(qū)動方法,電路如下圖:
網(wǎng)友可以看到:P2.6和P2.7端口分別控制數(shù)碼管的十位和個位的供電,當(dāng)相應(yīng)的端口變成低電平時,驅(qū)動相應(yīng)的三極管會導(dǎo)通,+5V通過IN4148二極管和驅(qū)動三極管給數(shù)碼管相應(yīng)的位供電,這時只要P0口送出數(shù)字的顯示代碼,數(shù)碼管就能正常顯示數(shù)字。
因?yàn)橐@示兩位不同的數(shù)字,所以必須用動態(tài)掃描的方法來實(shí)現(xiàn),就是先個位顯示1毫秒,再十位顯示1毫秒,不斷循環(huán),這樣只要掃描時間小于1/50秒,就會因?yàn)槿搜鄣囊曈X殘留效應(yīng),看到兩位不同的數(shù)字穩(wěn)定顯示。
下面我們再介紹一種共陰數(shù)碼管的單片機(jī)驅(qū)動方法,電路如下圖:
網(wǎng)友可以看到:+5V通過1K的排阻直接給數(shù)碼管的8個段位供電,P2.6和P2.7端口分別控制數(shù)碼管的十位和個位的供電,當(dāng)相應(yīng)的端口變成低電平時,相應(yīng)的位可以吸入電流。單片機(jī)的P0口輸出的數(shù)據(jù)相當(dāng)于將數(shù)碼管不要顯示的數(shù)字段對地短路,這樣數(shù)碼管就會顯示需要的數(shù)字。
網(wǎng)友可以看到,共陰數(shù)碼管的硬件更簡單,所以在批量生產(chǎn)時,硬件開銷小,節(jié)省PCB面積,減少焊接工作量,降低綜合成本,所以采用共陰數(shù)碼管更有利于批量生產(chǎn),現(xiàn)在銷售的試驗(yàn)板都是采用共陰數(shù)碼管了。
以下是用AT89C51實(shí)驗(yàn)板的兩位數(shù)碼管顯示00~99依次循環(huán)的匯編語言程序
a_bit equ 20h ;數(shù)碼管個位數(shù)存放內(nèi)存位置
b_bit equ 21h ;數(shù)碼管十位數(shù)存放內(nèi)存位置
temp equ 22h ;計(jì)數(shù)器數(shù)值存放內(nèi)存位置
star: mov temp,#0 ;初始化計(jì)數(shù)器,從0開始
stlop: acall display;調(diào)用顯示子程序
inc temp;對計(jì)數(shù)器加1
mov a,temp
cjne a,#100,next ;判斷計(jì)數(shù)器是否滿100?
mov temp,#0;滿100就清零重新開始
next: ljmp stlop;不滿就循環(huán)執(zhí)行
;顯示子程序
display: mov a,temp ;將temp中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制
mov b,#10 ;10進(jìn)制/10=10進(jìn)制
div ab
mov b_bit,a ;十位在a
mov a_bit,b ;個位在b
mov dptr,#numtab ;指定查表啟始地址
mov r0,#4
dpl1: mov r1,#250 ;
dplop: mov a,a_bit ;取個位數(shù)
MOVC A,@A+DPTR ;查個位數(shù)的7段代碼
mov p0,a ;送出個位的7段代碼
clr p2.7 ;開個位顯示
acall d1ms ;顯示162微秒
setb p2.7;關(guān)閉個位顯示,防止鬼影
mov a,b_bit ;取十位數(shù)
MOVC A,@A+DPTR ;查十位數(shù)的7段代碼
mov p0,a ;送出十位的7段代碼
clr p2.6 ;開十位顯示
acall d1ms ;顯示162微秒
setb p2.6;關(guān)閉十位顯示,防止鬼影
djnz r1,dplop ;循環(huán)執(zhí)行250次
djnz r0,dpl1 ;循環(huán)執(zhí)行250X4=1000次
ret
;2+2X80=162微秒,延時按12MHZ計(jì)算
D1MS: MOV R7,#80
DJNZ R7,$
RET
;實(shí)驗(yàn)板上的7段數(shù)碼管0~9數(shù)字的共陰顯示代碼
numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH
end
;如果是共陽數(shù)碼管的顯示代碼
numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H
三、單片機(jī)演奏音樂實(shí)驗(yàn)
利用單片機(jī)演奏音樂大概是單片機(jī)愛好者感興趣的問題之一。這里我們用網(wǎng)站提供的實(shí)驗(yàn)板來做這個實(shí)驗(yàn),并且了解單片機(jī)演奏音樂的基本原理,和相關(guān)的源程序。
首先來完成必要的硬件部分,硬件部分比較簡單,如下圖:
AT89C51單片機(jī)的P2.5口控制一個8550的三極管,三極管控制電磁蜂鳴器的電源通斷。
我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。
例如,要產(chǎn)生200HZ的音頻信號,200HZ音頻的變化周期為1/200秒,即5ms。這樣,當(dāng)P2.5的高電平或低電平的持續(xù)時間為2.5ms時就能發(fā)出200HZ的音調(diào)。
樂曲中,每一音符對應(yīng)著確定的頻率,我們將每一音符的時間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。
此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。
為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個相同音符)音插入一個時間單位的頻率略有不同的音符。
程序框圖如圖2所示。
下面給出程序序請單,可直接在51實(shí)驗(yàn)板上進(jìn)行演奏。本程序演奏的是民歌“八月桂花遍地開”,C調(diào),節(jié)奏為94拍/分。網(wǎng)友也可以自行找出一首歌,將樂曲翻譯成碼表輸入機(jī)器,而程序不變。本實(shí)驗(yàn)方法簡便,即使不懂音樂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機(jī)器的演奏學(xué)唱一首歌曲,其趣味無窮。
;標(biāo)題 ‘八月桂花香’發(fā)聲程序
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中斷服務(wù),中斷計(jì)數(shù)器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中斷
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表頭地址送DPTR
MOV 20H,#00H ;中斷計(jì)數(shù)器清0
MUSIC1:
NOP
CLR A ;A清零
MOVC A,@A+DPTR ;查表取代碼
JZ END0 ;是00H,則結(jié)束
CJNE A,#0FFH,MUSIC5 ;如果是休止符,往下執(zhí)行
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A ;R6=18H音符的頻率
INC DPTR DPTR加一
MOV A,#0
MOVC A,@A+DPTR ;取節(jié)拍代碼送R7
MOV R7,A ;R7=30H音符發(fā)音的時間
SETB TR0 ;啟動計(jì)數(shù)
MUSIC2:
NOP
CPL P2.5 ;P2.5是音樂輸出引腳
MOV A,R6
MOV R3,A ;R3=R6=18H
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中斷計(jì)數(shù)器(20H)=R7否?
;不等,則繼續(xù)循環(huán)
MOV 20H,#00H ;等于,則取下一代碼
INC DPTR
LJMP MUSIC1
MUSIC3:
NOP ;休止100毫秒
CLR TR0
MOV R2,#0DH ;R2=13
MUSIC4:
NOP
MOV R3,#0FFH ;R3=255
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#0FFH ;歌曲結(jié)束,延時1秒后繼續(xù)
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
DB 18H, 30H, 1CH, 10H
DB 20H, 40H, 1CH, 10H
DB 18H, 10H, 20H, 10H
DB 1CH, 10H, 18H, 40H
DB 1CH, 20H, 20H, 20H
DB 1CH, 20H, 18H, 20H
DB 20H, 80H, 0FFH, 20H
DB 30H, 1CH, 10H , 18H
DB 20H, 15H, 20H , 1CH
DB 20H, 20H, 20H , 26H
DB 40H, 20H , 20H , 2BH
DB 20H, 26H, 20H , 20H
DB 20H, 30H , 80H , 0FFH
DB 20H, 20H, 1CH , 10H
DB 18H, 10H, 20H , 20H
DB 26H, 20H , 2BH , 20H
DB 30H, 20H , 2BH , 40H
DB 20H, 20H , 1CH , 10H
DB 18H, 10H, 20H, 20H
DB 26H, 20H , 2BH, 20H
DB 30H, 20H, 2BH , 40H
DB 20H, 30H, 1CH , 10H
DB 18H, 20H , 15H , 20H
DB 1CH, 20H , 20H , 20H
DB 26H, 40H, 20H , 20H
DB 2BH, 20H, 26H , 20H
DB 20H, 20H, 30H , 80H
DB 20H, 30H, 1CH , 10H
DB 20H, 10H, 1CH , 10H
DB 20H, 20H, 26H , 20H
DB 2BH, 20H, 30H , 20H
DB 2BH, 40H, 20H , 15H
DB 1FH, 05H, 20H , 10H
DB 1CH, 10H, 20H , 20H
DB 26H, 20H, 2BH , 20H
DB 30H, 20H, 2BH , 40H
DB 20H, 30H, 1CH , 10H
DB 18H, 20H , 15H , 20H
DB 1CH, 20H , 20H , 20H
DB 26H, 40H, 20H , 20H
DB 2BH, 20H, 26H , 20H
DB 20H, 20H, 30H, 30H
DB 20H, 30H, 1CH, 10H
DB 18H, 40H, 1CH, 20H
DB 20H, 20H, 26H, 40H
DB 13H, 60H, 18H , 20H
DB 15H, 40H, 13H , 40H
DB 18H, 80H, 00H
end
四、單片機(jī)倒計(jì)時定時器
這里我們先要安裝好51試驗(yàn)板上的兩個輕觸按鈕開關(guān),我們采用的是獨(dú)立式按鈕開關(guān),也就是說將開關(guān)直接連接到電源的地和單片機(jī)的對應(yīng)引腳之間,這里K1接到單片機(jī)的P3.6引腳,K2接到P3.7。正常情況下單片機(jī)的P3.6、P3.7都被程序初始化時置“1” 當(dāng)有按鍵按下時對應(yīng)的單片機(jī)引腳被按鈕開關(guān)下拉為“0”,這種方法比較直觀,而且比較簡單,在按鍵數(shù)量不多的場合下使用很廣泛。
因?yàn)?a href="http://www.brongaenegriffin.com/v/tag/1472/" target="_blank">機(jī)械開關(guān)開關(guān)時有抖動,所以需要在程序中加一個軟件去抖動程序,它的工作原理如下:當(dāng)單片機(jī)檢測到有按鍵被按下后立即執(zhí)行一個10毫秒的延時程序,然后再在檢測該引腳是否仍然為閉合狀態(tài)?如果仍然為閉合說明確認(rèn)該鍵被按下立即執(zhí)行相應(yīng)的處理程序,否則可能是干擾,丟棄這次檢測結(jié)果。
接下來我們再安裝一個四位的撥碼開關(guān),就是圖中紅色的開關(guān),它相當(dāng)于四個裝在一起的撥動開關(guān),當(dāng)開關(guān)撥到“ON”一側(cè)時,對應(yīng)的那路就會接通,反之?dāng)嚅_。它在單片機(jī)中一般用于設(shè)置初始參數(shù),而且不經(jīng)常改變的場合。這里因?yàn)閱纹瑱C(jī)引腳資源不夠,所以我們只使用了撥碼開關(guān)的第2、3、4位,第1位閑置。三個開關(guān)可以邏輯組合出8種狀態(tài),所以我們能夠方便靈活地預(yù)置多達(dá)7種的倒計(jì)時時間。
最后我們來安裝兩個繼電器和相關(guān)電路,有了繼電器我們的實(shí)驗(yàn)板不再僅僅是做做實(shí)驗(yàn)而已,可以用于控制一些負(fù)載,比如說:充電器,洗衣機(jī),電風(fēng)扇等,使我們的實(shí)驗(yàn)板的實(shí)用功能大大增強(qiáng),這也是電子制作實(shí)驗(yàn)室網(wǎng)站的單片機(jī)實(shí)驗(yàn)板和其他公司的產(chǎn)品不同的地方。
這里繼電器由相應(yīng)的S8050三極管來驅(qū)動,開機(jī)時,單片機(jī)初始化后的P2.3/P2.4為高電平,+5伏電源通過電阻使三極管導(dǎo)通,所以開機(jī)后繼電器始終處于吸合狀態(tài),如果我們在程序中給單片機(jī)一條:CLR P2.3或者CLR P2.4的指令的話,相應(yīng)三極管的基極就會被拉低到零伏左右,使相應(yīng)的三極管截至,繼電器就會斷電釋放,每個繼電器都有一個常開轉(zhuǎn)常閉的接點(diǎn),便于在其他電路中使用,繼電器線圈兩端反相并聯(lián)的二極管是起到吸收反向電動勢的功能,保護(hù)相應(yīng)的驅(qū)動三極管,這種繼電器驅(qū)動方式硬件結(jié)構(gòu)比較簡單。
;電子制作實(shí)驗(yàn)室http://www.xie-gang.com/
;可設(shè)定時間的倒計(jì)時定時器,可選擇5/15/20/30/35/45/50分鐘倒計(jì)時
;倒計(jì)時時間由四位撥碼開關(guān)的2/3/4位來控制,
;第2位表示5分鐘,第3位表示15分鐘,第4位表示30分鐘,
;通過不同的組合可以產(chǎn)生5/15/20/30/35/45/50分鐘倒計(jì)時
;P1.0口的外接的發(fā)光二極管為狀態(tài)LED,定時未開始時LED常亮,定時過程中LED閃爍
;K1為開始按鈕,K2為停止按鈕
a_bit equ 20h ;數(shù)碼管個位數(shù)存放內(nèi)存位置
b_bit equ 21h ;數(shù)碼管十位數(shù)存放內(nèi)存位置
temp equ 22h ;計(jì)數(shù)器數(shù)值存放內(nèi)存位置
;開機(jī)初始化
MOV P3,#0FFH;對P3口初始化,設(shè)置為高電平,用于按鍵輸入
MOV P0,#0FFH;使顯示時間數(shù)碼管熄滅
CLR P1.0;點(diǎn)亮LED指示燈
;等待鍵盤輸入
START:JB P3.6,$;循環(huán)判斷開始按鈕K1是否按下?
ACALL DELAY10;延時10毫秒觸點(diǎn)消抖
JB P3.6,START;如果是干擾就返回
JNB P3.6,$;等待按鍵松開
;讀撥碼開關(guān)的狀態(tài),獲得倒計(jì)時時間
SET:MOV A,#0;首先對A清零
JB P2.0,A1;判斷撥碼開關(guān)的第2位是否接通,接通就對A加5
ADD A,#5
A1:JB P2.1,A2;判斷撥碼開關(guān)的第3位是否接通,接通就對A加15
ADD A,#15
A2:JB P2.2,A3;判斷撥碼開關(guān)的第4位是否接通,接通就對A加30
ADD A,#30
A3:MOV TEMP,A
;這時TEMP中的值就是倒計(jì)時時間
;數(shù)碼管顯示定時時間的程序
display:CLR P2.4;使繼電器1釋放,開始定時(開機(jī)時繼電器處于吸合狀態(tài))
CLR P2.3;使繼電器2釋放,開始定時(開機(jī)時繼電器處于吸合狀態(tài))
MOV R2,#120
AB:MOV R3,#250
TIME1:mov a,temp ;將temp中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制
mov b,#10 ;10進(jìn)制/10=10進(jìn)制
div ab
mov b_bit,a ;十位在a
mov a_bit,b ;個位在b
mov dptr,#numtab ;指定查表啟始地址
mov r0,#4
dpl1: mov r1,#250 ;
dplop: mov a,a_bit ;取個位數(shù)
MOVC A,@A+DPTR ;查個位數(shù)的7段代碼
mov p0,a ;送出個位的7段代碼
clr p2.7 ;開個位顯示
ACALL DELY1;顯示1毫秒
setb p2.7;關(guān)閉個位顯示,防止鬼影
mov a,b_bit ;取十位數(shù)
MOVC A,@A+DPTR ;查十位數(shù)的7段代碼
mov p0,a ;送出十位的7段代碼
clr p2.6 ;開十位顯示
ACALL DELY1;顯示1毫秒
setb p2.6;關(guān)閉十位顯示,防止鬼影
;插入一段判斷定時過程中是否有按鍵輸入的程序段
C1:JB P3.6,B1
ACALL DELAY10;延時10毫秒消抖
JB P3.6,C1
JNB P3.6,$;等待按鍵松開
AJMP SET
B1:JB P3.7,M33
ACALL DELAY10;延時10毫秒消抖
JB P3.7,B1
JNB P3.7,$;等待按鍵松開
AJMP OVER
M33:djnz r3,TIME1 ;2毫秒循環(huán)執(zhí)行250次,時間約0.5秒
CPL P1.0;使LED每1秒閃爍一次
djnz r2,AB ;循環(huán)執(zhí)行120次,時間為1分鐘
DEC TEMP;滿一分鐘對定時時間減1
MOV A,TEMP
JNZ DISPLAY;判斷TEMP的數(shù)值是否為0?不為0循環(huán)
;結(jié)束定時
OVER:CLR P1.0;LED指示燈常亮
SETB P2.4;繼電器1吸合,定時結(jié)束,退回到開機(jī)時的狀態(tài)
SETB P2.3;繼電器2吸合,定時結(jié)束,退回到開機(jī)時的狀態(tài)
AJMP START;退到開機(jī)初始化狀態(tài)
;1毫秒延時子程序
DELY1:MOV R4,#2
D1:MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
RET
;10毫秒延時子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET
;實(shí)驗(yàn)板上的7段數(shù)碼管0~9數(shù)字的共陰顯示代碼
numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH
end
五、單片機(jī)和PC機(jī)串口通訊試驗(yàn)
51單片機(jī)有一個全雙工的串行通訊口,所以單片機(jī)和電腦之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我們采用了專用芯片MAX232進(jìn)行轉(zhuǎn)換,雖然也可以用幾個三極管進(jìn)行模擬轉(zhuǎn)換,但是還是用專用芯片更簡單可靠。我們采用了三線制連接串口,也就是說和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機(jī)的11腳連接,第9腳和單片機(jī)的10腳連接,第15腳和單片機(jī)的20腳連接。電子制作實(shí)驗(yàn)室網(wǎng)站的提供的帶擴(kuò)展元件的51單片機(jī)實(shí)驗(yàn)板上已經(jīng)裝配好了全部硬件。
串口通訊的硬件電路如上圖所示,我們可以采用以下方法來判斷串口是否存在硬件問題,將MAX232的第9腳接地,測量一下串口的第3腳和第5腳之間是否輸出10V左右的直流電壓?將MAX232的第9腳接正5V,測量一下串口的第3腳和第5腳之間是否輸出-10V左右的直流電壓?這樣可以判斷MAX232是否完好和串口線的排線壓接處是否有接觸不良。
為了能夠在電腦端看到單片機(jī)發(fā)出的數(shù)據(jù),我們必須借助一個WINDOWS軟件進(jìn)行觀察,這里我們利用一個免費(fèi)的電腦串口調(diào)試軟件。
點(diǎn)擊這里可以下載并運(yùn)行這個串口調(diào)試軟件,這是一個綠色的軟件,無需安裝,可以直接在當(dāng)前位置運(yùn)行這個軟件。軟件界面如上圖,我們先要設(shè)置一下串口通訊的參數(shù),將波特率調(diào)整為4800,勾選十六進(jìn)制顯示。串口選擇為COM1,當(dāng)然將網(wǎng)站提供的51單片機(jī)實(shí)驗(yàn)板的串口也要和電腦的COM1連接,將燒寫有以下程序的單片機(jī)插入單片機(jī)實(shí)驗(yàn)板的萬能插座中,并接通51單片機(jī)實(shí)驗(yàn)板的電源,這時只要按下K1一次,在串口調(diào)試助手軟件的接收區(qū)界面中就會增加一個“AF”字符,表示單片機(jī)向電腦發(fā)送“AF”字符成功。串口實(shí)驗(yàn)的源程序如下所示:
;這是一個AT89C51單片機(jī)實(shí)驗(yàn)開發(fā)板向PC機(jī)的串口單向發(fā)送數(shù)據(jù)AF的演示程序
;采用MAX232專用芯片作RS232/TTL電平轉(zhuǎn)換。
;通訊波特率為4800KBPS,只要按下一次K1(就是P3.6引腳變成低電平)
;就發(fā)送一個16進(jìn)制的AF字符
ORG 0000H
MOV SCON,#50H;設(shè)置成串口1方式
MOV TMOD,#20H;波特率發(fā)生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍為2400x2=4800BPS
MOV TH1,#0F3H;預(yù)置初值(按照波特率2400BPS預(yù)置初值)
MOV TL1,#0F3H;預(yù)置初值(按照波特率2400BPS預(yù)置初值)
SETB TR1;啟動定時器T1
;以上完成通訊初始化設(shè)置
WRIT:JB P3.6,$;判斷K1是否按下,如果沒有按下就等待
ACALL DELAY10;延時10毫秒消觸點(diǎn)抖動
JB P3.6,WRIT;去除干擾信號
JNB P3.6,$;等待按鍵松開
MOV A,#0AFH;將16進(jìn)制的字符AF發(fā)送到串口去
MOV SBUF,A;將AF通過串口發(fā)送出去
AJMP WRIT
;10毫秒延時子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET
END
六、紅外線遙控器聲光測試器
這里我們要用單片機(jī)實(shí)驗(yàn)板制作一個紅外線遙控器聲光測試器,紅外線遙控器廣泛用于電視機(jī)、VCD、音響等家用電器中,經(jīng)過長時間使用可能會出現(xiàn)一些小故障,用我們制作的測試器可以方便地判斷遙控器是否能發(fā)射紅外信號?各個按鍵工作是否可靠?這個測試器非常簡單,制作也很容易,但是也有一定的實(shí)用價值,站長就是用這個小東東幫鄰居修了不少遙控器哦~~
首先讓我們來完成試驗(yàn)板上的硬件部分,需要再焊接一個一體化紅外接收器,一體化紅外線接收器是一種集紅外線接收和放大于一體,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,而體積又很小巧,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。 再焊上兩個濾波電容,可以使接收器工作更可靠
ORG 0000H
START:MOV P0,#0FFH;開機(jī)初始化
MOV P1,#0FFH
MOV P2,#11100111B
MOV P3,#0FFH
JB P3.2,$;等待遙控信號出現(xiàn)
MOV P1,#0
MOV p2,#0
JNB P3.2,$;如果是低電平就原地等待,如果出現(xiàn)高電平就退出
AJMP START
END
七、紅外線遙控器解碼程序
這里我們以紅外線遙控編碼芯片為LC7461等芯片為例來說明用單片機(jī)實(shí)現(xiàn)紅外遙控解碼的詳細(xì)過程,站長琢磨這個解碼程序花了相當(dāng)多的精力,期間幾經(jīng)修改逐步完善,后來還用它開發(fā)了幾個小產(chǎn)品,希望能對網(wǎng)友學(xué)習(xí)單片機(jī)有所幫助。
紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外線遙控裝置具有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),因而,繼彩電、錄像機(jī)之后,在錄音機(jī)、音響設(shè)備、空凋機(jī)以及玩具等其它小型電器裝置上也紛紛采用紅外線遙控。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。
1 紅外遙控系統(tǒng)
通用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,應(yīng)用編/解碼專用集成電路芯片來進(jìn)行控制操作,如圖1所示。發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。
2 遙控發(fā)射器及其編碼
遙控發(fā)射器專用芯片很多,根據(jù)編碼格式可以分成脈沖寬度調(diào)制和脈沖相位調(diào)制兩大類,這里我們以運(yùn)用比較廣泛,解碼比較容易的脈沖寬度調(diào)制來加以說明,現(xiàn)以LC7461組成發(fā)射電路為例說明編碼原理。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:
采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”
上述“0”和“1”組成的42位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射,
7461產(chǎn)生的遙控編碼是連續(xù)的42位二進(jìn)制碼組,其中前26位為用戶識別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼用于核對數(shù)據(jù)是否接收準(zhǔn)確。
當(dāng)遙控器上任意一個按鍵按下超過36ms時,LC7461芯片的振蕩器使芯片激活,將發(fā)射一個特定的同步碼頭,對于接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭可以使程序知道從這個同步碼頭以后可以開始接收數(shù)據(jù)。
解碼的關(guān)鍵是如何識別“0”和“1”,從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。如果從0.56ms低電平過后,開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此?。?.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。
根據(jù)紅外編碼的格式,程序應(yīng)該等待9ms的起始碼和4.5ms的結(jié)果碼完成后才能讀碼。
如果郵購我們開發(fā)的51單片機(jī)試驗(yàn)板和擴(kuò)展元件的網(wǎng)友,可以獲得如上圖所示的紅外遙控手柄,這種遙控器的編碼格式符合上面的描述規(guī)律,而且價格低廉,有32個按鍵,按鍵外形比較統(tǒng)一,如果用于批量開發(fā),可以把遙控器上貼膜換成你需要的字符,這為開發(fā)產(chǎn)品提供了便利。
接收器及解碼
LT0038是塑封一體化紅外線接收器,它是一種集紅外線接收、放大、整形于一體的集成電路,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,沒有紅外遙控信號時為高電平,收到紅外信號時為低電平,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。
下面是一個對51實(shí)驗(yàn)板配套的紅外線遙控器的解碼程序,它可以把上圖32鍵的紅外遙控器每一個按鍵的鍵值讀出來,并且通過實(shí)驗(yàn)板上P1口的8個LED顯示出來,在解碼成功的同時并且能發(fā)出“嘀嘀嘀”的提示音。
ORG 0000H
AJMP MAIN;轉(zhuǎn)入主程序
ORG 0003H ;外部中斷P3.2腳INT0入口地址
AJMP INT ;轉(zhuǎn)入外部中斷服務(wù)子程序(解碼程序)
;以下為主程序進(jìn)行CPU中斷方式設(shè)置
MAIN:SETB EA ;打開CPU總中斷請求
SETB IT0 ;設(shè)定INT0的觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
SETB EX0 ;打開INT0中斷請求
;以下對單片機(jī)的所有引腳進(jìn)行初始化,全部設(shè)置成高電平
MOV P2,#11100111B
AJMP $
;以下為進(jìn)入P3.2腳外部中斷子程序,也就是解碼程序
INT: CLR EA ;暫時關(guān)閉CPU的所有中斷請求
MOV R6,#10
SB: ACALL YS1;調(diào)用882微秒延時子程序
JB P3.2,EXIT;延時882微秒后判斷P3.2腳是否出現(xiàn)高電平如果有就退出解碼程序
DJNZ R6, SB;重復(fù)10次,目的是檢測在8820微秒內(nèi)如果出現(xiàn)高電平就退出解碼程序
;以上完成對遙控信號的9000微秒的初始低電平信號的識別。
JNB P3.2, $ ;等待高電平避開9毫秒低電平引導(dǎo)脈沖
ACALL YS2 ;延時4.74毫秒避開4.5毫秒的結(jié)果碼
MOV R7,#26;忽略前26位系統(tǒng)識別碼
JJJJA:JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態(tài)
MOV C,P3.2;將P3.2引腳此時的電平狀態(tài)0或1存入C中
JNC UUUA;如果為0就跳轉(zhuǎn)到UUUA
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結(jié)束
UUUA: DJNZ R7,JJJJA
MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū)
MOV R2,#2;接收從1AH到1BH的2個內(nèi)存,用于存放操作碼和操作反碼
PP: MOV R3,#8;每組數(shù)據(jù)為8位
JJJJ: JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態(tài)
MOV C,P3.2;將P3.2引腳此時的電平狀態(tài)0或1存入C中
JNC UUU;如果為0就跳轉(zhuǎn)到UUU
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結(jié)束
UUU: MOV A,@R1;將R1中地址的給A
RRC A;將C中的值0或1移入A中的最低位
MOV @R1,A;將A中的數(shù)暫時存放在R1數(shù)值的內(nèi)存中
DJNZ R3,JJJJ;接收滿8位換一個內(nèi)存
INC R1;對R1中的值加1,換下一個RAM
DJNZ R2,PP ;接收完8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,存放在1AH/1BH中
MOV A,1AH
CPL A;對1AH取反后和1BH比較
CJNE A,1BH,EXIT;如果不等表示接收數(shù)據(jù)發(fā)生錯誤,放棄
MOV P1,1AH;將按鍵的鍵值通過P1口的8個LED顯示出來!
CLR P2.5;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功
LCALL YS2
LCALL YS2
LCALL YS2
SETB P2.5;蜂鳴器停止
EXIT: SETB EA ;允許中斷
RETI ;退出解碼子程序
YS1: MOV R4,#20 ;延時子程序1,精確延時882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;延時子程序2,精確延時4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R4,#2;延時程序3,精確延時1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
END
這是按照紅外遙控器按鍵的實(shí)際位置給出的32個按鍵的鍵值(16進(jìn)制)
八、 紅外線電腦遙控器
將燒寫文件燒錄到AT89C51單片機(jī)內(nèi)部后,再將電腦串口連接好帶有擴(kuò)展元件的51實(shí)驗(yàn)板,打開51實(shí)驗(yàn)板電源后,P1.0端口上的LED就會閃爍,這說明單片機(jī)程序已經(jīng)正常運(yùn)行了,再把紅色的撥碼開關(guān)的第2、第3位開關(guān)打開。
如上圖所示就可以接收紅外遙控編碼了。這時實(shí)驗(yàn)板就變成了一個超級的PC遙控器了。當(dāng)然我們還要借助Grider軟件來實(shí)現(xiàn)。
1.安裝軟件
Grider是國外一款很優(yōu)秀的免費(fèi)紅外遙控軟件,支持多種的硬件,如紅外鍵盤鼠標(biāo),紅外接收器等,軟件的功能強(qiáng)大有OSD屏顯,名種常用的相關(guān)系統(tǒng)操作如開關(guān)顯示器等等。這里就簡單介紹一些簡單的用法。首先要安裝軟件,點(diǎn)擊這里下載Grider3.2,也可到www.grider.nl上下載新版或舊版的。下載完后運(yùn)行。出現(xiàn)下面的畫面:
點(diǎn)NEXT,再到下一畫面:
選上“I accept the agreement”,再按Next,這些都是通常的安裝步驟,不多說,一直按Next,直到出現(xiàn)完成畫面。
然后就可以在“開始”中找到程序并運(yùn)行它了。
2.設(shè)置軟件
運(yùn)行Girder3.2程序后,點(diǎn)擊File菜單->Settings打開設(shè)置窗口
在設(shè)置菜單UserInterface(用戶界面)頁中,選擇設(shè)置中文菜單,再按Apply鍵,這時程序就變成了中文漢化版的了。
在“常規(guī)”頁中可以設(shè)置是否自動加載設(shè)置文件,隨WINDOWS啟動,啟動后只出現(xiàn)在任務(wù)欄而不出現(xiàn)主窗口等等。好了下面的硬件設(shè)置是最重要的。
在插件頁中選中UIR/IRman/IRA.。..。.(選中QuestionOSD就可以使用像電視中的屏顯提示了),選好后你就按設(shè)置彈出下面的畫面
然后按畫面上的設(shè)置進(jìn)行設(shè)置,當(dāng)然串口就選你自己所連接的串口,再把前面一個畫面中的“自動打開輸入設(shè)置”選中就可以了。
3遙控鍵學(xué)習(xí)
在圖中空白處右擊彈出菜單,選添加命令,則新建了一個命令,可以對其重命名。
以打開WINAMP為例,在“系統(tǒng)頁”選“執(zhí)行”,按“瀏覽”找到你所安裝的WINAMP的程序文件,這里中文件中有其詳細(xì)路徑,再按“應(yīng)用”,最后按學(xué)習(xí)事件
然后按我們配套的紅外遙控器,軟件就取得了實(shí)驗(yàn)板上發(fā)來的紅外編碼,并在圖中1處顯示。comments是注釋命令有的,圖中2是設(shè)定重復(fù)按鍵的等待時間,就是說按下一個鍵執(zhí)行命令后,要等多久才能再次響應(yīng)該鍵。這樣就定義了一個鍵的命令。軟件功能很強(qiáng)大這里也無法一一說明。自已多使用摸索幾次就可以輕松上手了。
?
評論