找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6384|回復(fù): 1
收起左側(cè)

建議 建立單片機(jī)制作版塊

[復(fù)制鏈接]
ID:16922 發(fā)表于 2009-9-27 22:53 | 顯示全部樓層 |閱讀模式
本人,單片機(jī)初學(xué)者,剛開始做實(shí)驗(yàn)板,發(fā)現(xiàn)關(guān)于制作和焊接的資料過少,建議大俠和前輩們,把你們制作過程中的圖片,步驟記錄下來,幫助我們這些初學(xué)者,讓前者帶動(dòng)后來者,讓大家一起進(jìn)步,這樣可行不?請大家參與談?wù),謝謝你的關(guān)注!
回復(fù)

使用道具 舉報(bào)

ID:17778 發(fā)表于 2009-10-3 00:49 | 顯示全部樓層

這個(gè)WORD還算詳細(xì)吧。

 

 

單片機(jī)入門級(jí)實(shí)驗(yàn)板制作

  隨著單片機(jī)生產(chǎn)成本的降低,其應(yīng)用也隨之增加。對(duì)于廣大電子愛好者來說,在原來硬件設(shè)計(jì)的基礎(chǔ)上,只要掌握了單片機(jī),那對(duì)完成的電子制作產(chǎn)品來說,簡直是如虎添翼。然而對(duì)于一些初學(xué)者來說,雖然也知道掌握了單片機(jī)技術(shù)有很多用武之地,但就是不知如何下手。有些朋友在大學(xué)里也學(xué)過一些關(guān)于單片機(jī)的知識(shí),可就是停留在理論的理解上,更有些自學(xué)的朋友,關(guān)于單片機(jī)入門的書買了不少,結(jié)果就買來的頭幾天看一下,以后的日子里天天讓書在書架上休假,然而自己的單片機(jī)應(yīng)用技術(shù)還是沒有絲毫的長進(jìn)。針對(duì)這些情況,同時(shí)結(jié)合幾位電子工程師學(xué)習(xí)單片機(jī)的經(jīng)驗(yàn),在這里談一下看法:

 學(xué)習(xí)單片機(jī)光看書的話進(jìn)展并不大的,對(duì)于有一定硬件技術(shù)的人來說,最好的方法還是看著別人寫的程序自己研究,結(jié)合硬件看實(shí)現(xiàn)的過程,當(dāng)遇到不明白的語句再去查看一下書上關(guān)于這些語句的介紹。這一方法可以使初學(xué)者快速完成對(duì)單片機(jī)的入門,而對(duì)于電子感興趣的人來說,只要入了門,加上后期的多實(shí)踐,提高水平是很容易的事。許多搞單片機(jī)的人,在開始學(xué)習(xí)時(shí),都會(huì)搞一個(gè)專門用于實(shí)驗(yàn)的單片機(jī)實(shí)驗(yàn)板,對(duì)實(shí)驗(yàn)板的選擇,筆者的看法是:實(shí)驗(yàn)板的主要目的是入門時(shí)做實(shí)驗(yàn)用的,真正常握了以后,還有哪個(gè)人會(huì)再去用實(shí)驗(yàn)板,換言之,實(shí)驗(yàn)板只要把你領(lǐng)入單片機(jī)之門,他的任務(wù)就完成了,可以扔了,因此沒必要去買些功能很多但價(jià)格較高的產(chǎn)品,真正要提高水平必須在掌握了基礎(chǔ)后不斷地在實(shí)踐中煅練,初學(xué)時(shí)的單片機(jī)實(shí)驗(yàn)板只要具備幾個(gè)發(fā)光管加蜂鳴器和通訊就足夠了。

學(xué)習(xí)單片機(jī)關(guān)鍵是要掌握以下步驟:

1、如何編寫程序;

2、如何將寫的程序變成二進(jìn)制或十六進(jìn)制代碼;

3、如何將代碼通過編程器(或下載線)寫入單片機(jī);

4、如何在實(shí)驗(yàn)板或應(yīng)用產(chǎn)品上實(shí)現(xiàn)所要達(dá)到的功能(有仿真器的可以直接仿真)。

     下面介紹一款初學(xué)者非常適合的2051實(shí)驗(yàn)板,價(jià)格較低,在我們相關(guān)的網(wǎng)頁上全有源程序,初學(xué)者可以對(duì)照程序?qū)W習(xí)單片機(jī)。同時(shí)我們會(huì)在講解第一個(gè)簡單源程序時(shí),介紹如何按上面提到的步驟進(jìn)行具體操作。

一、電路原理圖

1、電路設(shè)計(jì)了6個(gè)輸出口驅(qū)動(dòng)發(fā)光二極管,可以設(shè)計(jì)流水燈等程序之用,也可用為其他指示

2、利用2051的電壓比較器端口,設(shè)計(jì)了光敏電阻輸入,可作為光線檢測等實(shí)驗(yàn);

3、蜂鳴器輸出口設(shè)計(jì),可作為各種動(dòng)作的響應(yīng)及報(bào)警等之用;

4、四位按鍵輸入,可作為類似鍵盤等輸入操作;

5、設(shè)計(jì)了將單片機(jī)的TTL電平轉(zhuǎn)RS232通訊協(xié)議的電平轉(zhuǎn)換電路,可完成各種與上位計(jì)算機(jī)的通訊之用。

制作好的實(shí)驗(yàn)板如下圖所示:

實(shí)戰(zhàn)練習(xí)1:點(diǎn)亮一個(gè)發(fā)光二極管

實(shí)戰(zhàn)練習(xí)2:流水燈程序設(shè)計(jì)

實(shí)戰(zhàn)練習(xí)3:蜂鳴器驅(qū)動(dòng)程序設(shè)計(jì)

實(shí)戰(zhàn)練習(xí)4:鍵盤輸入程序設(shè)計(jì)

實(shí)戰(zhàn)練習(xí)5:光控電路程序設(shè)計(jì)

實(shí)戰(zhàn)練習(xí)6:串行通訊程序設(shè)計(jì)

2051實(shí)驗(yàn)板全套散件:35元/套(不含USB線和串口線)

若需要配置USB電源線,2.5元/條,串口線為4元/條。

 

第一個(gè)單片機(jī)程序教程

  

一、實(shí)驗(yàn)器材:2051實(shí)驗(yàn)板一塊,USB線一條,51編程器一套,電腦一臺(tái),程序編輯軟件一套,編程器支持軟件一套;

二、程序功能:點(diǎn)亮一只發(fā)光二極管

三、實(shí)驗(yàn)?zāi)康模簬椭鯇W(xué)者了解單片機(jī)程序編制、編譯、生成*.HEX文件(16進(jìn)制文件)和寫入單片機(jī)及運(yùn)行程序等步驟,為學(xué)習(xí)者進(jìn)一步學(xué)習(xí)各種功能的程序編制打下基礎(chǔ)。

三、具體操作:

首先配置好51編程器一套(本站有經(jīng)濟(jì)型供貨,價(jià)格98元)2051實(shí)驗(yàn)板一塊(本站有經(jīng)濟(jì)型供貨,價(jià)格:35元)。

安裝計(jì)算機(jī)軟件。其實(shí)對(duì)于源程序的編寫,在一些文本編輯軟件上都可以進(jìn)行,如:WINDOWS系統(tǒng)上的寫字板、WORD軟件等都可以進(jìn)行,這里我們介紹一款集源程序編輯、編譯、生成十六進(jìn)制文件于一體的集成開發(fā)軟件,有需要的可以點(diǎn)擊下載。編程器的支持軟件下載。

LED1 EQU P1.7 ;引腳定義
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ORG 0000H ;定位程序起始地址為:0000
;上電復(fù)位后,程序從0000單元開始執(zhí)行
;復(fù)位后,單片機(jī)的P1、P3口全部輸出高電平,所有發(fā)光管全部滅
MAIN:
CLR LED1 ;P1.7為低電平輸入,點(diǎn)亮一個(gè)發(fā)光二極管
AJMP MAIN ;程序跳回MAIN處
END ;結(jié)束程序

1、編寫匯編源程序:

2、將編寫好的程序進(jìn)行編譯,具體見下圖:

3、生成HEX文件:

點(diǎn)擊“輸出Intel HEX文件...”后,程序彈出輸出文件對(duì)話框,詢問輸出的HEX文件的文件名:

命名好HEX文件名后,按“保存”鍵,輸出HEX文件。

經(jīng)過以上步驟的操作后,我們得到了一個(gè)文件名為:“第一個(gè)程序.HEX”的16進(jìn)制文件,只要將這個(gè)文件寫入單片機(jī),單片機(jī)便可以在實(shí)驗(yàn)板上運(yùn)行。下面我們介紹如何將該文件寫入單片機(jī)。

4、打開編程器支持軟件,進(jìn)行將源文件寫入單片機(jī)操作:

進(jìn)入程序后,依次按:(自動(dòng))打開文件→(自動(dòng))擦除器件→(自動(dòng))寫器件,當(dāng)經(jīng)過這幾步后,程序便寫入了單片機(jī)。

5、插上單片機(jī),運(yùn)行程序結(jié)果:

以上我們介紹了編程及寫入單片機(jī)并在實(shí)驗(yàn)板上運(yùn)行程序的整個(gè)過程,初學(xué)者只要經(jīng)過以上操作,便可以了解整個(gè)單片機(jī)應(yīng)用的過程,有了這個(gè)基礎(chǔ),只要再對(duì)一些常用程序進(jìn)行編寫并試驗(yàn),接下來完成各種實(shí)際應(yīng)用系統(tǒng)的開發(fā)便有了一個(gè)很好的開頭,繼續(xù)努力吧,各種智能電子產(chǎn)品的開發(fā)離你不會(huì)太遙遠(yuǎn)!

一下節(jié):流水燈程序設(shè)計(jì)

單片機(jī)入門教程之二

  

流水燈程序設(shè)計(jì)

在上一節(jié)中我們講述了第一個(gè)制作實(shí)驗(yàn),從中我們了解了如何編寫一個(gè)程序控制一個(gè)發(fā)光二極管,讓其發(fā)光,在這一節(jié)中,我們要讓幾個(gè)發(fā)光二極管動(dòng)起來,形成一個(gè)流水燈的效果。

源程序下載

LED1 EQU P1.7 ;引腳定義
LED2 EQU P1.6 ;
LED3 EQU P1.5 ;
LED4 EQU P1.4 ;
LED5 EQU P1.3 ;
LED6 EQU P1.2 ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ORG 0000H ;定位程序起始地址為:0000
;上電復(fù)位后,程序從0000單元開始執(zhí)行
;復(fù)位后,單片機(jī)的P1、P3口全部輸出高電平,所有發(fā)光管全部滅
MAIN:
SETB LED6 ;關(guān)第六個(gè)發(fā)光二極管
CLR LED1 ;P1.7為低電平輸入,點(diǎn)亮第一個(gè)發(fā)光二極管
ACALL DEL250MS ;延時(shí)250MS
SETB LED1 ;關(guān)第一個(gè)燈
CLR LED2 ;點(diǎn)亮第二個(gè)燈
ACALL DEL250MS ;延時(shí)
SETB LED2 ;關(guān)第二個(gè)燈
CLR LED3 ;開第三個(gè)燈
ACALL DEL250MS ;延時(shí)
SETB LED3 ;關(guān)第三個(gè)燈
CLR LED4 ;開第四個(gè)燈
ACALL DEL250MS ;延時(shí)
SETB LED4 ;關(guān)第四個(gè)燈
CLR LED5 ;開第五個(gè)燈
ACALL DEL250MS ;延時(shí)
SETB LED5 ;關(guān)第五個(gè)燈
CLR LED6 ;開第六個(gè)燈
ACALL DEL250MS ;延時(shí)
AJMP MAIN ;程序跳回MAIN處,循環(huán)執(zhí)行
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;12M晶振,每個(gè)機(jī)器周期所用時(shí)間為1uS
DEL5MS:
MOV R7, #94 ;占用一個(gè)機(jī)器周期
DEL5MS1:
MOV R6, #25 ;占用一個(gè)機(jī)器周期
DJNZ R6, $ ;占用二個(gè)機(jī)器周期
DJNZ R7, DEL5MS1 ;占用二個(gè)機(jī)器周期
RET ;總占用機(jī)器周期為:4983個(gè),即4.98MS

DEL250MS:
MOV R5, #50 ;
DEL250MS1:
ACALL DEL5MS ;
DJNZ R5, DEL250MS1;
RET ;子程序返回
END ;結(jié)束程序

在本程序的基礎(chǔ)上,網(wǎng)友可以根據(jù)自己的理解,將亮燈的方式進(jìn)行設(shè)計(jì),我們的教程是一個(gè)燈一個(gè)燈的點(diǎn)亮,網(wǎng)友可以讓燈二個(gè)二個(gè)點(diǎn)亮,或自己組合設(shè)計(jì)出更多種變化的亮燈過程,具體程序網(wǎng)友可以在我們給出的程序上進(jìn)行改動(dòng)。

上一節(jié):點(diǎn)亮一個(gè)發(fā)光管 下一節(jié):蜂鳴器驅(qū)動(dòng)程序

初學(xué)者如在這個(gè)實(shí)驗(yàn)中遇到問題的,可以通過在線技術(shù)支持進(jìn)行咨詢:QQ:153286663 張工

 

單片機(jī)入門教程之三

  

蜂鳴器驅(qū)動(dòng)程序設(shè)計(jì)

在這一節(jié)中,我們將在上一節(jié)的基礎(chǔ)上,增加對(duì)蜂鳴器的驅(qū)動(dòng)控制。

LED1 EQU P1.7 ;引腳定義
LED2 EQU P1.6 ;
LED3 EQU P1.5 ;
LED4 EQU P1.4 ;
LED5 EQU P1.3 ;
LED6 EQU P1.2 ;
BL EQU P3.7 ;定義蜂鳴器引腳
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ORG 0000H ;定位程序起始地址為:0000
;上電復(fù)位后,程序從0000單元開始執(zhí)行
;復(fù)位后,單片機(jī)的P1、P3口全部輸出高電平,所有發(fā)光管全部滅
MAIN:
SETB LED6 ;關(guān)第六個(gè)發(fā)光二極管
CLR LED1 ;P1.7為低電平輸入,點(diǎn)亮第一個(gè)發(fā)光二極管
CLR BL ;
ACALL DEL250MS ;延時(shí)250MS
SETB BL ;
ACALL DEL250MS ;
SETB LED1 ;關(guān)第一個(gè)燈
CLR LED2 ;點(diǎn)亮第二個(gè)燈
CLR BL ;
ACALL DEL250MS ;延時(shí)250MS
SETB BL ;
ACALL DEL250MS ;
SETB LED2 ;關(guān)第二個(gè)燈
CLR LED3 ;開第三個(gè)燈
CLR BL ;
ACALL DEL250MS ;延時(shí)250MS
SETB BL ;
ACALL DEL250MS ;
SETB LED3 ;關(guān)第三個(gè)燈
CLR LED4 ;開第四個(gè)燈
CLR BL ;
ACALL DEL250MS ;延時(shí)250MS
SETB BL ;
ACALL DEL250MS ;
SETB LED4 ;關(guān)第四個(gè)燈
CLR LED5 ;開第五個(gè)燈
CLR BL ;
ACALL DEL250MS ;延時(shí)250MS
SETB BL ;
ACALL DEL250MS ;
SETB LED5 ;關(guān)第五個(gè)燈
CLR LED6 ;開第六個(gè)燈
CLR BL ;
ACALL DEL250MS ;延時(shí)250MS
SETB BL ;
ACALL DEL250MS ;
AJMP MAIN ;程序跳回MAIN處,循環(huán)執(zhí)行
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;12M晶振,每個(gè)機(jī)器周期所用時(shí)間為1uS
DEL5MS:
MOV R7, #94 ;占用一個(gè)機(jī)器周期
DEL5MS1:
MOV R6, #25 ;占用一個(gè)機(jī)器周期
DJNZ R6, $ ;占用二個(gè)機(jī)器周期
DJNZ R7, DEL5MS1 ;占用二個(gè)機(jī)器周期
RET ;總占用機(jī)器周期為:4983個(gè),即4.98MS

DEL250MS:
MOV R5, #50 ;
DEL250MS1:
ACALL DEL5MS ;
DJNZ R5, DEL250MS1;
RET ;子程序返回
END ;結(jié)束程序

上一節(jié):流水燈程序設(shè)計(jì) 下一節(jié):鍵盤輸入程序設(shè)計(jì)

初學(xué)者如在這個(gè)實(shí)驗(yàn)中遇到問題的,可以通過在線技術(shù)支持進(jìn)行咨詢:QQ:153286663 張工

 

如何購買?            我要訂貨!

說明:為了滿足部分網(wǎng)友的要求:希望我們幫他把套件做成調(diào)試好的成品,我們提供套件的制作業(yè)務(wù),統(tǒng)一收取的費(fèi)用為:一個(gè)人工工資或半個(gè)人工工資,即80元/人工,若簡單的則為半個(gè)人工工資,40元!

單片機(jī)入門教程之四

  

按鍵輸入程序設(shè)計(jì)

在這一節(jié)中,我們將介紹如何利用按鍵輸入控制信號(hào),來控制燈的變化。

LED1 EQU P1.7 ;引腳定義
LED2 EQU P1.6 ;
LED3 EQU P1.5 ;
LED4 EQU P1.4 ;
LED5 EQU P1.3 ;
LED6 EQU P1.2 ;
BL EQU P3.7 ;定義蜂鳴器引腳
K1 EQU P3.5 ;定義按鍵引腳
K2 EQU P3.4 ;
K3 EQU P3.3 ;
K4 EQU P3.2 ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ORG 0000H ;定位程序起始地址為:0000
;上電復(fù)位后,程序從0000單元開始執(zhí)行
;復(fù)位后,單片機(jī)的P1、P3口全部輸出高電平,所有發(fā)光管全部滅
MAIN:
JB K1, MAIN ;若K1為"1"(表示沒有按下鍵)則返回
ACALL DEL5MS ;延時(shí),去除抖動(dòng)
JB K1, MAIN ;短暫延時(shí)后,若K1變?yōu)?1",則為干擾,返回
CLR BL ;確為按鍵輸入后,蜂鳴器叫
JNB K1, $ ;若K1一直按著,則程序原地等待
SETB BL ;按鍵松開,開蜂鳴器
MOV A, P1 ;讀入P1口數(shù)據(jù)
CLR C ;C位清0
RRC A ;將亮的燈移動(dòng)一位
MOV P1, A ;從P1口輸出,點(diǎn)亮相應(yīng)指示燈
JNB P1.1, LOOP1 ;若1.1口為低電平輸出,則跳轉(zhuǎn)
AJMP MAIN ;返回主程序
LOOP1:
MOV P1, #0FFH ;關(guān)斷所有輸出燈
AJMP MAIN ;返回主程序
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;12M晶振,每個(gè)機(jī)器周期所用時(shí)間為1uS
DEL5MS:
MOV R7, #94 ;占用一個(gè)機(jī)器周期
DEL5MS1:
MOV R6, #25 ;占用一個(gè)機(jī)器周期
DJNZ R6, $ ;占用二個(gè)機(jī)器周期
DJNZ R7, DEL5MS1 ;占用二個(gè)機(jī)器周期
RET ;總占用機(jī)器周期為:4983個(gè),即4.98MS

DEL250MS:
MOV R5, #50 ;
DEL250MS1:
ACALL DEL5MS ;
DJNZ R5, DEL250MS1;
RET ;子程序返回
END ;結(jié)束程序

功能擴(kuò)展:通過按不同的按鍵,實(shí)現(xiàn)多種亮燈方式選擇

上一節(jié):蜂鳴器驅(qū)動(dòng)程序 下一節(jié):光控電路程序設(shè)計(jì)

單片機(jī)入門教程之五

  

光控電路程序設(shè)計(jì)

在這一節(jié)中,我們要介紹利用AT89C2051中的電壓比較器,來實(shí)現(xiàn)光線控制燈的亮與滅。

在編程前,我們先介紹一下電壓比較器,在AT89C2051單片機(jī)中,其P1.0和P1.1及P3.6組成一個(gè)電壓比較器。

其中P3.6引腳沒有外接端口,正常工作時(shí),當(dāng)P1.0腳電壓值大于P1.1腳時(shí),P3.6便輸出邏輯“1”,反之則輸出邏輯“0”,從2051實(shí)驗(yàn)板的原理圖我們可以看到,P1.0腳通過一個(gè)光敏電阻接地,當(dāng)光線較亮?xí)r,P1.0引腳上的電低于P1.1腳,這時(shí)P3.6輸出低電平,而當(dāng)光線較暗時(shí),光敏電阻阻值增大,隨之使P1.0腳的電壓上升,當(dāng)此腳電壓大于P1.1腳時(shí),P3.6便輸出“1”,這樣我們只要判斷P3.6腳的狀態(tài),便可以判斷出外界光線的明與暗。

LED1 EQU P1.7 ;引腳定義
LED2 EQU P1.6 ;
LED3 EQU P1.5 ;
LED4 EQU P1.4 ;
LED5 EQU P1.3 ;
LED6 EQU P1.2 ;
BL EQU P3.7 ;定義蜂鳴器引腳
K1 EQU P3.5 ;定義按鍵引腳
K2 EQU P3.4 ;
K3 EQU P3.3 ;
K4 EQU P3.2 ;
SUN_IN EQU P3.6 ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ORG 0000H ;定位程序起始地址為:0000
;上電復(fù)位后,程序從0000單元開始執(zhí)行
;復(fù)位后,單片機(jī)的P1、P3口全部輸出高電平,所有發(fā)光管全部滅
MAIN:
JNB SUN_IN, MAIN ;光線亮?xí)r,返回
ACALL DEL250MS ;延時(shí)250毫秒
JNB SUN_IN, MAIN ;為干擾則返回
LOOP1:
MOV P1, #3H ;確實(shí)為光線暗了,開啟所有燈
JB SUN_IN, LOOP1 ;光線檢測,為暗時(shí)一直循環(huán)亮燈
ACALL DEL250MS ;延時(shí)250毫秒
JB SUN_IN, LOOP1 ;為干擾,則返回,繼續(xù)亮燈
MOV P1, #0FFH ;光線亮后,關(guān)所有燈
AJMP MAIN ;返回主程序
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;12M晶振,每個(gè)機(jī)器周期所用時(shí)間為1uS
DEL5MS:
MOV R7, #94 ;占用一個(gè)機(jī)器周期
DEL5MS1:
MOV R6, #25 ;占用一個(gè)機(jī)器周期
DJNZ R6, $ ;占用二個(gè)機(jī)器周期
DJNZ R7, DEL5MS1 ;占用二個(gè)機(jī)器周期
RET ;總占用機(jī)器周期為:4983個(gè),即4.98MS

DEL250MS:
MOV R5, #50 ;
DEL250MS1:
ACALL DEL5MS ;
DJNZ R5, DEL250MS1;
RET ;子程序返回
END ;結(jié)束程序

在本實(shí)驗(yàn)程序中我們將光線亮?xí)r,關(guān)所有燈,而當(dāng)光線暗時(shí),點(diǎn)亮所有燈,這一功能便是一般的路燈控制的基本原理,若讀者在掌握了本實(shí)驗(yàn)后,通過單片機(jī)輸出不同的控制信號(hào),驅(qū)動(dòng)繼電器或其他設(shè)備,便可以設(shè)計(jì)出許多利用光線進(jìn)行控制的自動(dòng)化產(chǎn)品,這里不再詳述,留給感興趣的網(wǎng)友思考。

初學(xué)者如在這個(gè)實(shí)驗(yàn)中遇到問題的,可以通過在線技術(shù)支持進(jìn)行咨詢:QQ:153286663 張工

 

單片機(jī)入門教程之六

  

串行通訊程序設(shè)計(jì)

單片機(jī)的強(qiáng)大功能不光表現(xiàn)在本機(jī)進(jìn)行自動(dòng)化控制上,還可以通過與其他計(jì)算機(jī)的通訊進(jìn)行數(shù)據(jù)傳輸,實(shí)現(xiàn)遠(yuǎn)程控制。要實(shí)現(xiàn)計(jì)算機(jī)與計(jì)算機(jī)之間的通訊,目前應(yīng)用最廣的便是用RS232通訊協(xié)議。在這一節(jié)中,我們要介紹一個(gè)上位計(jì)算機(jī)與單片機(jī)的數(shù)據(jù)通訊的實(shí)驗(yàn)。對(duì)于計(jì)算機(jī)上的軟件,可以選用串口調(diào)試工具來完成,若沒有的網(wǎng)友,可以在我們這里下載

單片機(jī)通訊程序,所要完成的功能為:當(dāng)接收到16進(jìn)制數(shù):88后,改變6只發(fā)光二極管的狀態(tài),同時(shí)蜂鳴器響二聲,若接收到的數(shù)據(jù)不為88H,則蜂鳴器叫二聲表示接收到的數(shù)據(jù),P1口的輸出狀態(tài)不變。具體匯編程序如下:

LED1 EQU P1.7 ;引腳定義
LED2 EQU P1.6 ;
LED3 EQU P1.5 ;
LED4 EQU P1.4 ;
LED5 EQU P1.3 ;
LED6 EQU P1.2 ;
BL EQU P3.7 ;定義蜂鳴器引腳
K1 EQU P3.5 ;定義按鍵引腳
K2 EQU P3.4 ;
K3 EQU P3.3 ;
K4 EQU P3.2 ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ORG 0000H ;程序定位于0000開始執(zhí)行
AJMP START ;跳轉(zhuǎn)至START
ORG 0023H ;定位于串行中斷入口地址
AJMP RECIVE ;執(zhí)行串行中斷程序
START:
MOV SCON,#50H ;設(shè)置成串口1方式0101,0000
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 ;啟動(dòng)定時(shí)器T1
SETB ES ;開串口中斷
SETB EA ;開總中斷
;以上完成通訊初始化設(shè)置
MOV P1, #0FFH ;
MOV P3, #0FFH ;
MAIN:
AJMP MAIN ;程序原地等待
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;串行中斷子程序
RECIVE:
CLR EA ;關(guān)總中斷
MOV A, SBUF ;讀取串口接收到的數(shù)據(jù)
CJNE A, #88H, RE1 ;不等于88H,則跳轉(zhuǎn)RE1
MOV A, P1 ;讀取P1口數(shù)據(jù)
CPL A ;取反
MOV P1, A ;送回P1口,顯示與原來相反
RE1:
CLR BL ;蜂鳴器響二聲
ACALL DEL250MS ;
SETB BL ;
ACALL DEL250MS ;
CLR BL ;
ACALL DEL250MS ;
SETB BL ;
CLR RI ;清串口中斷標(biāo)志
SETB EA ;開總中斷,繼續(xù)接收數(shù)據(jù)
RETI ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;12M晶振,每個(gè)機(jī)器周期所用時(shí)間為1uS
DEL5MS:
MOV R7, #94 ;占用一個(gè)機(jī)器周期
DEL5MS1:
MOV R6, #25 ;占用一個(gè)機(jī)器周期
DJNZ R6, $ ;占用二個(gè)機(jī)器周期
DJNZ R7, DEL5MS1 ;占用二個(gè)機(jī)器周期
RET ;總占用機(jī)器周期為:4983個(gè),即4.98MS

DEL250MS:
MOV R5, #50 ;
DEL250MS1:
ACALL DEL5MS ;
DJNZ R5, DEL250MS1;
RET ;子程序返回
END ;結(jié)束程序

程序演示說明:

將串口線插在計(jì)算機(jī)的串行通訊口上,另一端與實(shí)驗(yàn)板上的串口插座相連,接通實(shí)驗(yàn)板電源,打開串口調(diào)試助手軟件,其界面如下:

設(shè)定相應(yīng)的參數(shù),串口選實(shí)際計(jì)算機(jī)上的串口號(hào),在我們操作的計(jì)算機(jī)上選用的COM4,因此所選項(xiàng)也為:COM4;

波特率選4800,因?yàn)閱纹瑱C(jī)的程序我們設(shè)為4800,兩者要一致,否則無法通訊;

其他各項(xiàng)參數(shù)設(shè)成和我們給出的圖上一致就可以了。

全部設(shè)好后,用鼠標(biāo)點(diǎn)“手動(dòng)發(fā)送”鍵,88H這個(gè)數(shù)據(jù)就發(fā)送到單片機(jī)上了,這時(shí)你可以看到輸出的發(fā)光管的狀態(tài)改變了,同時(shí)蜂鳴器叫二聲,若發(fā)送的是另外的數(shù)據(jù),則蜂鳴器叫二聲,但發(fā)光管的狀態(tài)不會(huì)改變。

通過以上程序練習(xí),學(xué)習(xí)者可以掌握如何用計(jì)算機(jī)向單片機(jī)發(fā)出控制指令,單片機(jī)在接收到上位機(jī)傳來的控制指令后,執(zhí)行相應(yīng)的動(dòng)作。在本程序中,只傳輸了一個(gè)控制字,傳輸多個(gè)字節(jié)的內(nèi)容,原來也基本相同,學(xué)習(xí)者可以根據(jù)自己的理解,通過對(duì)接收到的不同字節(jié)信息,控制單片機(jī)的相關(guān)設(shè)備執(zhí)行不同的動(dòng)作,從而實(shí)現(xiàn)點(diǎn)動(dòng)鼠標(biāo)便可以控制各種電子硬件設(shè)備的目的。

 


 

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表