單片機(jī)實(shí)驗(yàn)開發(fā)板測(cè)試程序詳解
掃描二維碼
隨時(shí)隨地手機(jī)看文章
通常我們網(wǎng)站提供的試驗(yàn)開發(fā)板是焊接并測(cè)試好的成品板,如果是購(gòu)買套件的網(wǎng)友,可以開始51單片機(jī)實(shí)驗(yàn)板的一系列安裝與實(shí)驗(yàn),網(wǎng)友郵購(gòu)的實(shí)驗(yàn)板套件包含以下的元件清單,收到貨物后請(qǐng)仔細(xì)核對(duì)一下元件清單:
AT89C51單片機(jī)實(shí)驗(yàn)開發(fā)板套件元件清單:
專門設(shè)計(jì)的全工藝電路板一塊
電源部分元件:
1. 9伏左右直流插頭式小電源,帶插頭(空載12伏)
2. 電源插座一個(gè)
3. 7805穩(wěn)壓芯片一個(gè)
4. 470UF/16V電源濾波電容兩個(gè)
5. 0.1UF獨(dú)石電容兩個(gè)
6. 電源指示綠色LED一個(gè)
7. LED限流電阻560歐姆電阻一個(gè)
單片機(jī)必須部分的元件:
1. AT89C51單片機(jī)芯片一片
2. 40腳零拔插力ZIF插座一個(gè)
3. 復(fù)位用電容22UF/16V電容一個(gè)
4. 復(fù)位用電阻1K一個(gè)
5. 30P小電容2個(gè)
6. 12M晶振一個(gè)
實(shí)驗(yàn)部分元件:
1. 8個(gè)小紅色長(zhǎng)方形LED
2. 8位1K數(shù)碼管限流排阻
3. 1個(gè)共陰兩位一體化的數(shù)碼管一個(gè)
4. 一個(gè)5伏電磁型蜂鳴器
5. 1個(gè)8550驅(qū)動(dòng)三極管(e/b/c)
6. 3個(gè)1K三極管基極驅(qū)動(dòng)電阻
7. 微型輕觸開關(guān)4個(gè)
8. 4位的紅色撥碼開關(guān)一個(gè)
9. 2個(gè)12伏JQC-3F繼電器(一組常開轉(zhuǎn)常閉)
10.2個(gè)IN4148防反峰二極管
11. 2個(gè)8050驅(qū)動(dòng)三極管(e/b/c)
12. 2個(gè)繼電器狀態(tài)指示紅色發(fā)光二極管
1. 原裝進(jìn)口MAX232芯片一片
2. 5.1K上拉電阻兩個(gè)
3. 10UF電容4個(gè)
4. 塑封一體化紅外線接收頭一個(gè)
5. AT24C02存儲(chǔ)器芯片一片
6. 220UF濾波電容一個(gè)
7. 0.1UF電容一個(gè)
8. 32個(gè)按鍵的紅外遙控手柄一個(gè)
9. 串口通訊電纜一根
10. DS18B20的4.7K上拉電阻一個(gè)
對(duì)于購(gòu)買成品板的網(wǎng)友拿到的是經(jīng)過焊接好的產(chǎn)品,并且經(jīng)過測(cè)試完好,不管是購(gòu)買套件還是成品單片機(jī)實(shí)驗(yàn)開發(fā)板的網(wǎng)友得到的單片機(jī)中都已經(jīng)燒錄了一個(gè)測(cè)試程序,測(cè)試程序主要是用來測(cè)試51試驗(yàn)板的單片機(jī)和相關(guān)外圍元件的好壞,如果這個(gè)程序能夠順利運(yùn)行,說明實(shí)驗(yàn)板的各方面都很正常。
測(cè)試程序?qū)τ诔鯇W(xué)者來說可能比較復(fù)雜,但是也是由網(wǎng)站上幾個(gè)小程序組合而成的,初學(xué)者可以通過后面教程的學(xué)習(xí)來掌握這段程序。
[!--empirenews.page--]這個(gè)測(cè)試程序的功能是:接通電源后P0口的八個(gè)發(fā)光二極管依次從下往上點(diǎn)亮,然后蜂鳴器鳴叫一聲,兩個(gè)繼電器輪流動(dòng)作一次,數(shù)碼管的個(gè)位顯示8,再換成十位顯示8,然后不斷循環(huán),如果這時(shí)按下紅外遙控器的按鍵時(shí),蜂鳴器立即發(fā)出“滴滴滴”的提示音,同時(shí)將這個(gè)按鍵的鍵值通過串口在電腦屏幕上顯示出來(需要運(yùn)行串口調(diào)試軟件)通過這個(gè)程序可以判斷單片機(jī)實(shí)驗(yàn)開發(fā)板的各個(gè)部分的硬件和軟件都是完好的,具體的源程序如下:
ORG 0000H
AJMP MAIN;轉(zhuǎn)入主程序
ORG 0003H;外部中斷P3.2腳INT0入口地址
AJMP INT;轉(zhuǎn)入外部中斷服務(wù)子程序(紅外遙控解碼程序)
;以下為主程序進(jìn)行CPU中斷方式設(shè)置
MAIN:LCALL YS3;等待硬件上電穩(wěn)定
SETB EA;打開CPU總中斷請(qǐng)求
SETB IT0;設(shè)定INT0的觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
SETB EX0;打開INT0中斷請(qǐng)求
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;啟動(dòng)定時(shí)器T1
;以上完成串口通訊初始化設(shè)置
START:MOV P1,#01111111B
LCALL DELAY
MOV P1,#10111111B
LCALL DELAY
MOV P1,#11011111B
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;P1口的LED循環(huán)由下往上點(diǎn)亮一次,延時(shí)約250毫秒
LCALL DELAY
MOV P2,#11011111B;蜂鳴器鳴響一聲
LCALL DELAY
MOV P2,#11101111B;繼電器J1吸合一次
LCALL DELAY
MOV P2,#11110111B;繼電器J2吸合一次
LCALL DELAY
MOV P0,#0FFH
MOV P2,#01111111B;數(shù)碼管個(gè)位顯示8
LCALL DELAY
MOV P0,#0FFH
MOV P2,#10111111B;數(shù)碼管十位顯示8
LCALL DELAY
AJMP START;反復(fù)循環(huán)
;以下為進(jìn)入P3.2腳外部中斷子程序,也就是解碼程序
INT: CLR EA;暫時(shí)關(guān)閉CPU的所有中斷請(qǐng)求
MOV R6,#10
SB: ACALL YS1;調(diào)用882微秒延時(shí)子程序
JB P3.2,EXIT;延時(shí)882微秒后判斷P3.2腳是否出現(xiàn)高電平如果有就退出解碼程序
DJNZ R6, SB;重復(fù)10次,目的是檢測(cè)在8820微秒內(nèi)如果出現(xiàn)高電平就退出解碼程序
;以上完成對(duì)遙控信號(hào)的9000微秒的初始低電平信號(hào)的識(shí)別。
JNB P3.2, $;等待高電平避開9毫秒低電平引導(dǎo)脈沖
ACALL YS2;延時(shí)4.74毫秒避開4.5毫秒的結(jié)果碼
MOV R7,#26;忽略前26位系統(tǒng)識(shí)別碼
JJJJA:JNB P3.2,$;等待地址碼第一位的高電平信號(hào)
LCALL YS1;高電平開始后用882微秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(tài)
MOV C,P3.2;將P3.2引腳此時(shí)的電平狀態(tài)0或1存入C中
JNC UUUA;如果為0就跳轉(zhuǎn)到UUUA
LCALL YS3;檢測(cè)到高電平1的話延時(shí)1毫秒等待脈沖高電平結(jié)束
UUUA: DJNZ R7,JJJJA
MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū)
MOV R2,#2;接收從1AH到1BH的2個(gè)內(nèi)存,用于存放操作碼和操作反碼
PP: MOV R3,#8;每組數(shù)據(jù)為8位
JJJJ: JNB P3.2,$;等待地址碼第一位的高電平信號(hào)
LCALL YS1;高電平開始后用882微秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(tài)
MOV C,P3.2;將P3.2引腳此時(shí)的電平狀態(tài)0或1存入C中
JNC UUU;如果為0就跳轉(zhuǎn)到UUU
LCALL YS3;檢測(cè)到高電平1的話延時(shí)1毫秒等待脈沖高電平結(jié)束
UUU: MOV A,@R1;將R1中地址的給A
RRC A;將C中的值0或1移入A中的最低位
MOV @R1,A;將A中的數(shù)暫時(shí)存放在R1數(shù)值的內(nèi)存中
DJNZ R3,JJJJ;接收滿8位換一個(gè)內(nèi)存
INC R1;對(duì)R1中的值加1,換下一個(gè)RAM
DJNZ R2,PP ;接收完8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,存放在1AH/1BH中
MOV A,1AH
CPL A;對(duì)1AH取反后和1BH比較
CJNE A,1BH,EXIT;如果不等表示接收數(shù)據(jù)發(fā)生錯(cuò)誤,放棄
MOV P1,1AH;將按鍵的鍵值通過P1口的8個(gè)LED顯示出來!
MOV A,1AH;將紅外遙控器具體按鍵的鍵值發(fā)送到串口去
MOV SBUF,A;通過串口在電腦屏幕上顯示出來
CLR P2.5;蜂鳴器鳴響嘀嘀嘀的聲音,表示解碼成功
LCALL YS2
LCALL YS2
LCALL YS2
SETB P2.5;蜂鳴器停止
EXIT: SETB EA ;允許中斷
RETI ;退出解碼子程序
YS1: MOV R4,#20 ;(占用R4/R5)延時(shí)子程序1,精確延時(shí)882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;(占用R4/R5)延時(shí)子程序2,精確延時(shí)4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R4,#2;(占用R4/R5)延時(shí)程序3,精確延時(shí)1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
DELAY:MOV R1,#08H;(占用R1/R2/R3)延時(shí)子程序,12M晶振延時(shí)約250毫秒
L3: MOV R2 ,#0FAH
L1: MOV R3 ,#0FAH
L2: DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R1 ,L3
RET
END
[!--empirenews.page--]單片機(jī)電源及基本部分的安裝調(diào)試
1。5伏電源安裝調(diào)試
首先我們來完成最基本,最必須的電源部分安裝調(diào)試,任何電路都離不開電源部分,單片機(jī)系統(tǒng)也不例外,而且我們應(yīng)該高度重視電源部分,不能因?yàn)殡娫床糠蛛娐繁容^簡(jiǎn)單而有所忽略,其實(shí)有將近一半的故障或制作失敗都和電源有關(guān),電源部分做好才能保證電路的正常工作。
AT89C51實(shí)驗(yàn)開發(fā)板提供了一個(gè)9伏400毫安的外接交流電源,它能空載輸出12伏的直流電壓,如果有的網(wǎng)友不需要我們提供的穩(wěn)壓電源,需要自己配的話,可以選擇輸出直流電壓為10~15伏之間電源,并且插頭極性為內(nèi)正外負(fù)的電源,切記!穩(wěn)壓電源輸出的直流電壓通過專門的電源插座把直流電壓引入實(shí)驗(yàn)開發(fā)板,左邊兩個(gè)是12伏的電源濾波電容,一般大電容旁邊并聯(lián)一個(gè)小電容的目的是降低高頻內(nèi)阻,因?yàn)榇蟮碾娊怆娙菀话悴捎镁砝@工藝制造,所以等效電感較大,小電容可以提供一個(gè)小內(nèi)阻的高頻通道,降低電源全頻帶內(nèi)阻,這個(gè)在實(shí)際電路中非常常見哦~
首先我們從套件中找出要用到的元件,如下圖:
電源部分兵分兩路,一路直接提供12伏的直流電源,主要是提供給繼電器使用的,另一路通過三端穩(wěn)壓芯片7805穩(wěn)壓成5伏直流電源提供給單片機(jī)系統(tǒng)使用,右邊兩個(gè)電容是5伏電源的濾波電容,電阻和綠色的LED組成5伏電源的工作指示電路,只要電源部分正常,綠色的LED1就會(huì)點(diǎn)亮,我們可以根據(jù)這個(gè)LED來判斷整個(gè)電源部分是否工作正常,電源部分就是下面圖像中需要安裝的元件。
注意事項(xiàng):
1。有極性的電解電容正負(fù)不要顛反,引腳長(zhǎng)的哪個(gè)為正極
2。三端穩(wěn)壓7805不要裝反,可以參照?qǐng)D片位置依葫蘆畫瓢~~
3。LED極性不要顛反,引腳長(zhǎng)的哪個(gè)為正極
最后請(qǐng)用萬用表測(cè)量+12V和+5V輸出是否正常。
2。AT89C51單片機(jī)最小化系統(tǒng)安裝測(cè)試
我們從套件中找出要用到的元件,如下圖:
單片機(jī)的最小化系統(tǒng)是指單片機(jī)能正常工作所必須的外圍元件,主要可以分成時(shí)鐘電路和復(fù)位電路,我們采用的是AT89C51芯片,它內(nèi)部自帶4K的FLASH程序存儲(chǔ)器,一般情況下,這4K的存儲(chǔ)空間足夠我們使用,所以我們將AT89C51芯片的第31腳固定接高電平(PCB畫板時(shí)已經(jīng)接死),所以我們只用芯片內(nèi)部的4K程序存儲(chǔ)器。單片機(jī)的時(shí)鐘電路有一個(gè)12M的晶振和兩個(gè)30P的小電容組成,它們決定了單片機(jī)的工作時(shí)間精度為1微秒。復(fù)位電路由22UF的電容和1K的電阻及IN4148二極管組成,以前教科書上常推薦用10UF電容和10K電阻組成復(fù)位電路,這里我們根據(jù)實(shí)際經(jīng)驗(yàn)選用22UF的電容和1K的電阻,其好處是在滿足單片機(jī)可靠復(fù)位的前提下降低了復(fù)位引腳的對(duì)地阻抗,可以顯著增強(qiáng)單片機(jī)復(fù)位電路的抗干擾能力。二極管的作用是起快速泄放電容電量的功能,滿足短時(shí)間多次復(fù)位都能成功。
判斷單片機(jī)芯片及時(shí)鐘系統(tǒng)是否正常工作有一個(gè)簡(jiǎn)單的辦法,就是用萬用表測(cè)量單片機(jī)晶振引腳(18、19腳)的對(duì)地電壓,以正常工作的單片機(jī)用數(shù)字萬用表測(cè)量為例:18腳對(duì)地約2.24V,19腳對(duì)地約2.09V。對(duì)于懷疑是復(fù)位電路故障而不能正常工作的單片機(jī)也可以采用模擬復(fù)位的方法來判斷,單片機(jī)正常工作時(shí)第9腳對(duì)地電壓為零,可以用導(dǎo)線短時(shí)間和+5V連接一下,模擬一下上電復(fù)位,如果單片機(jī)能正常工作了,說明這個(gè)復(fù)位電路有問題。