版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
目錄
1設(shè)計(jì)簡(jiǎn)介...................................................................................................................1
2系統(tǒng)硬件電路設(shè)計(jì).......................................................................................................1
2.1STC89C52單片機(jī)系統(tǒng)設(shè)計(jì).............................................................................1
2.1.1STC89C52的概述...................................................................................1
2.1.2主要特性...................................................................................................2
2.1.3STC89C52的引腳說(shuō)明...........................................................................3
2.1.4定時(shí)器/計(jì)數(shù)器......................................................................................4
2.2電路的設(shè)計(jì)及原理..........................................................................................7
2.2.1最小系統(tǒng)原理圖....................................................................................7
2.2.2三點(diǎn)式振蕩器與波形轉(zhuǎn)換.......................................................................9
2.3原理圖繪制軟件的介紹................................................................................10
2.4系統(tǒng)硬件測(cè)試................................................................................................10
3系統(tǒng)軟件部分設(shè)計(jì)....................................................................................................11
3.1頻率獲得..........................................................................................................11
3.2鍵盤接收...........................................................................................................12
4設(shè)計(jì)小結(jié)....................................................................................................................14
5附錄.............................................................................................................................15
附錄一原理圖............................................................................................................15
附錄二實(shí)物圖............................................................................................................16
附錄三元器件清單....................................................................................................17
附錄四PCB板圖.........................................................................................................18
附錄五源程序代碼....................................................................................................19
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
基于51單片機(jī)金屬探測(cè)器系統(tǒng)設(shè)計(jì)與制作
1設(shè)計(jì)簡(jiǎn)介
金屬探測(cè)器是專門用來(lái)探測(cè)金屬的儀器,廣泛應(yīng)用于工業(yè)生產(chǎn)、安檢、娛
樂(lè)等領(lǐng)域。采用新的原理,設(shè)計(jì)一個(gè)基于單片機(jī)的手持金屬探測(cè)器,利用其檢
測(cè)人們隨身攜帶的金屬物品,如小刀、鋼筆,甚至可以檢測(cè)到香煙盒的鋁薄。
可隨身攜帶,使用方便。
本文設(shè)計(jì)的金屬探測(cè)是根據(jù)電磁感應(yīng)原理制成的,將一金屬置于變化的磁
場(chǎng)當(dāng)中時(shí),根據(jù)電磁感應(yīng)原理就會(huì)在金屬內(nèi)部產(chǎn)生渦流,渦流產(chǎn)生的磁場(chǎng)反過(guò)
來(lái)又影響原磁場(chǎng),這種變化可以轉(zhuǎn)換為頻率和幅值的變化,供相關(guān)電路進(jìn)行檢
測(cè)。
由電容三點(diǎn)式振蕩電路產(chǎn)生正弦波,對(duì)其放大和整形后,送入單片機(jī),由
單片機(jī)探測(cè)它頻率的變化。當(dāng)遇見(jiàn)金屬時(shí)由于電磁感應(yīng)原理原先建立起來(lái)的振
蕩將受到影響,頻率將發(fā)生變化,單片機(jī)探測(cè)到這種變化后進(jìn)行報(bào)警。
本文的金屬探測(cè)器設(shè)計(jì)了接口,可以和外圍的系統(tǒng)進(jìn)行通訊,實(shí)現(xiàn)了與
AT89S52管理的液晶顯示及鍵盤組成的外圍數(shù)據(jù)處理與顯示模塊的通信。對(duì)前
端探測(cè)到的數(shù)據(jù)進(jìn)行再處理和分析,并將結(jié)果顯示在液晶屏幕上,并可以通過(guò)
鍵盤對(duì)前端的探測(cè)精度進(jìn)行設(shè)置。
2系統(tǒng)硬件電路設(shè)計(jì)
系統(tǒng)主要有STC89C52單片機(jī)最小系統(tǒng)和LCD1602液晶顯示、LM393電壓
比較器,LC三端振蕩器等組成。
2.1STC89C52單片機(jī)系統(tǒng)設(shè)計(jì)
2.1.1STC89C52的概述
本設(shè)計(jì)是STC89C52單片機(jī)為控制核心,QJ004為MP3信號(hào)輸出,基于
QJ004串行MP3芯片綜合實(shí)現(xiàn)所有功能。系統(tǒng)框圖如下圖:
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
按鍵輸入
液晶顯示
控制器
金屬探測(cè)器
警報(bào)
單片機(jī)是STC公司最新推出的一種新型51內(nèi)核的單片機(jī)。片內(nèi)含有Flash
程序存儲(chǔ)器、SRAM、UART、SPI、PWM等模塊。封裝圖如下圖:
2.1.2主要特性
1.增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意
選擇,指令代碼完全兼容傳統(tǒng)8051.
2.工作電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V單片機(jī))
3.工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實(shí)際工作
頻率可達(dá)48MHz
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
4.用戶應(yīng)用程序空間為8K字節(jié)5.片上集成512字節(jié)RAM
6.通用I/O口(32個(gè)),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,
P0口是漏極開(kāi)路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口
用時(shí),需加上拉電阻。
ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用
仿真器,可通過(guò)串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完
成一片
具有EEPROM功能
具有看門狗功能
10.共3個(gè)16位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T2
11.外部中斷4路,下降沿中斷或低電平觸發(fā)電路,PowerDown模式可
由外部中斷低電平觸發(fā)中斷方式喚醒
12.通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART
13.工作溫度范圍:-40~+85℃(工業(yè)級(jí))/0~75℃(商業(yè)級(jí))
2.1.3STC89C52的引腳說(shuō)明
VCC(40引腳):電源電壓
VSS(20引腳):接地
P0端口(P0.0~P0.7,39~32引腳):P0口是一個(gè)漏極開(kāi)路的8位雙向
I/O口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL負(fù)載,對(duì)端口P0寫入“1”
時(shí),可以作為高阻抗輸入。在訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也可以提供
低8位地址和8位數(shù)據(jù)的復(fù)用總線。此時(shí),P0口內(nèi)部上拉電阻有效。在
FlashROM編程時(shí),P0端口接收指令字節(jié);而在校驗(yàn)程序時(shí),則輸出指令字
節(jié)。驗(yàn)證時(shí)要求外接上拉電阻。
P1端口(P1.0~P1.7,1~8引腳):P1口是一個(gè)帶內(nèi)部上拉電阻的8位雙
向I/O口。P1的輸出緩沖器可驅(qū)動(dòng)(吸收或者輸出電流方式)4個(gè)TTL輸入。
對(duì)端口寫入1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入
口。P1口作輸入口使用時(shí),因?yàn)橛袃?nèi)部上拉電阻,那些被外部拉低的引腳會(huì)輸
出一個(gè)電流。
P2端口(P2.0~P2.7,21~28引腳):P2口是一個(gè)帶內(nèi)部上拉電阻的8位
雙向I/O端口。P2的輸出緩沖器可以驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)TTL輸
入。對(duì)端口寫入1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,這時(shí)可用作輸
入口。P2作為輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
引腳會(huì)輸出一個(gè)電流
P3口引腳復(fù)用功能引腳號(hào)復(fù)用功能
P3.0RXD(串行輸入口)
P3.1TXD(串行輸出口)
P3.2(外部中斷0)
P3.3(外部中斷1)
P3.4T0(定時(shí)器0的外部輸入)
P3.5T1(定時(shí)器1的外部輸入)
P3.6(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通)
RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個(gè)機(jī)器周期以上高電平時(shí)為有
效,用來(lái)完成單片機(jī)單片機(jī)的復(fù)位初始化操作。看門狗計(jì)時(shí)完成后,RST引腳
輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可
以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。
ALE/(30引腳):地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),
鎖存低8位地址的輸出脈沖。在Flash編程時(shí),此引腳()也用作編程輸入脈
沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外
部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE
脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址位8EH的SFR的第0位置“1”,ALE操
作將無(wú)效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOV指令時(shí)有效。否則,
ALE將被微弱拉高。這個(gè)ALE使能標(biāo)志位(地址位8EH的SFR的第0位)的設(shè)
置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。
VPP(31引腳):訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到
FFFFH的外部程序存儲(chǔ)器讀取指令,必須接GND。注意加密方式1時(shí),將內(nèi)部
鎖定位RESET。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在Flash編程期間,也接
收12伏VPP電壓。
XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。
XTAL2(18引腳):振蕩器反相放大器的輸入端。
2.1.4定時(shí)器/計(jì)數(shù)器
89單片機(jī)至少有兩個(gè)16位內(nèi)部定時(shí)器/計(jì)數(shù)器(T/CTimer/Counter)。分別
是定時(shí)器/計(jì)數(shù)器0(T/C0)和定時(shí)器/計(jì)數(shù)器1(T/C1),另外一個(gè)是定時(shí)器/
計(jì)數(shù)器2(T/C2)。它們既可以編程為定時(shí)器使用,也可以編程為計(jì)數(shù)器使用。
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
T/C是加1計(jì)數(shù)的,不支持減1計(jì)數(shù)。當(dāng)T/C工作在定時(shí)器時(shí),對(duì)振蕩
源12分頻的脈沖計(jì)數(shù),即每個(gè)機(jī)器周期計(jì)數(shù)值加1,計(jì)數(shù)頻率=當(dāng)前單片機(jī)工
作頻率/12。當(dāng)單片機(jī)工作在12MHz時(shí),計(jì)數(shù)頻率=1MHz,單片機(jī)每1us計(jì)數(shù)
值加1。當(dāng)T/C工作在計(jì)數(shù)器時(shí),計(jì)數(shù)脈沖來(lái)自外部脈沖輸入引腳
T0(P3.4)T1(P3.5)。當(dāng)T0或T1引腳上負(fù)跳變時(shí)計(jì)數(shù)值加1。識(shí)別引腳上的負(fù)跳
變需要2個(gè)機(jī)器周期,即24個(gè)振蕩周期。所以T0或者T1輸入的可計(jì)數(shù)外部
脈沖的最高頻率為當(dāng)前單片機(jī)工作頻率/24。當(dāng)單片機(jī)工作在12MHz時(shí),最高
計(jì)數(shù)頻率500KHz,高于該頻率將計(jì)數(shù)出錯(cuò)。
TMOD在內(nèi)存RAM中位于特殊功能寄存器區(qū)的89H處,其高4位用于設(shè)置
定時(shí)器/計(jì)數(shù)器T1的工作方式,低4位用于設(shè)置定時(shí)器/計(jì)數(shù)器T0的工作方
式。由于T0和T1的用法很相似,所以,在此只結(jié)合TMOD的低4位講解定時(shí)
器/計(jì)數(shù)器T0的用法。
D7D6D5D4D3D2D1D0
GATEC/TM1M0GATEC/TM1M0
T1控制字T0控制字
當(dāng)GATE=0時(shí),定時(shí)器/計(jì)數(shù)器開(kāi)始工作或停止工作不受GATE位的控制,
而只受TCON寄存器中的TR0位控制,TR0=0時(shí)定時(shí)器/計(jì)數(shù)器T0停止工作,
而當(dāng)TR0=1時(shí)定時(shí)器/計(jì)數(shù)器T0開(kāi)始工作。
當(dāng)GATE=1時(shí),定時(shí)器/計(jì)數(shù)器T0工作的起停除了受TCON寄存器中的TR0
位控制外,還受單片機(jī)外部引腳P3.2的控制,只有該引腳為高電平且TR0=1這
兩個(gè)條件同時(shí)滿足時(shí),定時(shí)器/計(jì)數(shù)器才開(kāi)始工作,一般這種用法通常用來(lái)測(cè)量
P3.2引腳上正脈沖的寬度。對(duì)于控制T1方式字段中的GATE位和T0中的用法
完全一樣,只是當(dāng)GATE位為1時(shí)受單片機(jī)外部引腳P3.3和TCON中TR1的控
制。
C/T位決定T0工作在定時(shí)方式還是計(jì)數(shù)方式。當(dāng)C/T=0時(shí),T0工作在
定時(shí)方式,此時(shí)由TH0和TL0組成的16位計(jì)數(shù)容器,這個(gè)容器會(huì)對(duì)晶振產(chǎn)
生的脈沖再12分頻后的脈沖進(jìn)行計(jì)數(shù),如果單片機(jī)外部接的是12M晶振,
則TH0和TL0組成的16位計(jì)數(shù)容器中的數(shù)據(jù)就會(huì)每隔1微妙自動(dòng)加1;
當(dāng)C/T=1時(shí),T0工作在計(jì)數(shù)方式,由TH0和TL0組成的16位計(jì)數(shù)容
器會(huì)對(duì)從單片機(jī)外部引腳P3.4輸入單片機(jī)的脈沖進(jìn)行計(jì)數(shù),每輸入一個(gè)脈
沖,則TH0和TL0組成的16位計(jì)數(shù)容器中的數(shù)據(jù)會(huì)自動(dòng)加1。如果TMOD
高4位中的C/T=0,表示T1工作在定時(shí)方式,而當(dāng)C/T=1表示T1工作在
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
計(jì)數(shù)方式,計(jì)的是來(lái)自單片機(jī)外部引腳傳入單片機(jī)的脈沖數(shù)。
M1和M0兩位都可以設(shè)置成0或1,因此這兩位有4種組合,這4種組合
決定了T0的計(jì)數(shù)容器TH0和TL0共同構(gòu)成的16位計(jì)數(shù)容器中所計(jì)的脈沖數(shù)的
變化規(guī)律。具體見(jiàn)下表:
M1M0工作模式TH0和TL0構(gòu)成的16位計(jì)數(shù)容器的計(jì)數(shù)方式的描述
00模式0此時(shí)TH0和TL0構(gòu)成16位計(jì)數(shù)容器,最大計(jì)數(shù)范圍0~65535共65536個(gè)數(shù)
01模式1此時(shí)TH0和TL0構(gòu)成16位計(jì)數(shù)容器,最大計(jì)數(shù)范圍0~65535共65536個(gè)數(shù)
TH0和TL0成為兩個(gè)8位計(jì)數(shù)器,TH0中的數(shù)據(jù)固定為開(kāi)始設(shè)定的值不變,TL0
10模式2中數(shù)據(jù)按晶振12分頻后速度自動(dòng)加1至溢出,TH0中數(shù)據(jù)自動(dòng)拷貝給TL0,在
此基礎(chǔ)上自加,TL0如此循環(huán)自加
只有T0可用于本模式,T1不可以,此時(shí)T0的TH0和TL0成為兩個(gè)獨(dú)立的8
11模式3位計(jì)數(shù)器,且TH0只能用于定時(shí)方式;TL0可以工作與定時(shí)方式也可以工作與
計(jì)數(shù)方式
定時(shí)器/計(jì)數(shù)器控制寄存器TCON如下表所示,其中高4位和定時(shí)器/計(jì)數(shù)
器T0及T1有關(guān)。TCON是一個(gè)八位寄存器,用于控制定時(shí)器的啟動(dòng)/停止及標(biāo)
志定時(shí)器溢出中斷申請(qǐng),既可以進(jìn)行字節(jié)尋址也可以進(jìn)行位尋址。
TCONTF1TR1TF0TR0IE1IT1IE0IT0
位地址8FH8EH8DH8CH8BH8AH89H88H
TF1—T1溢出標(biāo)志為。當(dāng)定時(shí)器/計(jì)數(shù)器發(fā)生溢出時(shí),該位由硬件置1,表示
計(jì)數(shù)容器已經(jīng)計(jì)滿溢出,所謂溢出就是計(jì)數(shù)容器中的數(shù)從最大變成0的現(xiàn)象。
向CPU申請(qǐng)中斷進(jìn)入終端服務(wù)程序,TF1又由硬件清零0,也可以軟件清零0。
TF0—T0溢出標(biāo)志。其功能操作與TF1相同。
TR1—T1運(yùn)行控制位,可通過(guò)軟件置1或0來(lái)啟動(dòng)關(guān)閉定時(shí)器1。
TR0—T0運(yùn)行控制位,其功能操作與TR0相同1。
中斷允許寄存器IE
D7D6D5D4D3D2D1D0
EAET2ESET1EX1ET0EX0
當(dāng)ET0=1(SETBET0)時(shí),單片機(jī)的CPU能夠在定時(shí)器/計(jì)數(shù)器T0的計(jì)數(shù)容
器發(fā)生溢出時(shí)中斷主程序而去執(zhí)行相應(yīng)的中斷服務(wù)子程序;當(dāng)ET0=0(CLRET0)
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
時(shí),單片機(jī)的CPU不能夠在定時(shí)器/計(jì)數(shù)器T0的計(jì)數(shù)容器發(fā)生溢出時(shí)中斷主
程序而去執(zhí)行相應(yīng)的中斷服務(wù)子程序。
當(dāng)ET1=1(SETBET1)時(shí),單片機(jī)的CPU能夠在定時(shí)器/計(jì)數(shù)器T1的計(jì)數(shù)容
器發(fā)生溢出時(shí)中斷主程序而去執(zhí)行相應(yīng)的中斷服務(wù)子程序;當(dāng)ET1=0(CLRET1)
時(shí),即使定時(shí)器/計(jì)數(shù)器T1的計(jì)數(shù)容器發(fā)生了溢出,單片機(jī)也不能中斷主程序
而去執(zhí)行相應(yīng)的中斷服務(wù)子程序。
EA為總中斷允許控制位,將EA位設(shè)置成0關(guān)中斷。
2.2電路的設(shè)計(jì)及原理
2.2.1最小系統(tǒng)原理圖
單片機(jī)最小系統(tǒng)由電源接口,開(kāi)關(guān),時(shí)鐘電路,下載接口,復(fù)位電路和
STC89c52單片機(jī)組成。
復(fù)位電路:當(dāng)在89C51單片機(jī)的RST引腳引入高電平并保持2個(gè)機(jī)器周期
時(shí),單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循
環(huán)復(fù)位狀態(tài))
復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。
最簡(jiǎn)單的上電自動(dòng)復(fù)位電路中上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充
放電來(lái)實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。
除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。本設(shè)計(jì)就是用的按鍵手動(dòng)復(fù)
位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過(guò)RST(9)
端與電源Vcc接通而實(shí)現(xiàn)的。按鍵手動(dòng)復(fù)位電路見(jiàn)下圖。時(shí)鐘頻率用12MHZ
時(shí)C取10uF,R取10kΩ。
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
時(shí)鐘電路:STC89C52RC單片機(jī)的時(shí)鐘信號(hào)通常有兩種方式產(chǎn)生:一是內(nèi)部
時(shí)鐘方式,二是外部時(shí)鐘方式。內(nèi)部時(shí)鐘方式如圖3所示。在89S51單片機(jī)內(nèi)
部有一振蕩電路,只要在單片機(jī)的XTAL1(18)和XTAL2(19)引腳外接石英
晶體(簡(jiǎn)稱晶振),就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。
圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF,典型值為
30pF。晶振CYS的振蕩頻率范圍在1.2~12MHz間選擇,典型值為12MHz和
6MHz。
下載接口:STC89C52系列單片機(jī)具有在系統(tǒng)可編程(ISP)特性,IS
P的好處是:省去購(gòu)買通用編程器,單片機(jī)在用戶系統(tǒng)上即可下載/燒錄用戶
程序,而無(wú)須將單片機(jī)從已生產(chǎn)好的產(chǎn)品上拆下,再用通用編程器將程序代碼
燒錄進(jìn)單片機(jī)內(nèi)部。有些程序尚未定型的產(chǎn)品可以一邊生產(chǎn),一邊完善,加快
了產(chǎn)品進(jìn)入市場(chǎng)的速度,減小了新產(chǎn)品由于軟件缺陷帶來(lái)的風(fēng)險(xiǎn)。由于可以在
用戶的目標(biāo)系統(tǒng)上將程序直接下載進(jìn)單片機(jī)看運(yùn)行結(jié)果對(duì)錯(cuò),故無(wú)須仿真器。
單片機(jī)出廠時(shí)就已完全加密。需要單片機(jī)內(nèi)部的電放光后上電復(fù)位(冷起動(dòng))
才運(yùn)行系統(tǒng)ISP程序,如從P3.0/RxD檢測(cè)到合法的下載命令流就下
載用戶程序,如檢測(cè)不到就系統(tǒng)復(fù)位到用戶程序區(qū)。具體如下圖所示:
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2.2.2三點(diǎn)式振蕩器與波形轉(zhuǎn)換
圖C4,C7和L2組成的三點(diǎn)式LC振蕩器,根據(jù)振蕩器的組成原則及反饋網(wǎng)
絡(luò),輸出信號(hào)IN做為L(zhǎng)M393的反相輸入信號(hào),LM393的第二管腳作為參考電
壓輸入端,有電壓比較器的原理,輸出可以供數(shù)字電路處理的方波。
處理結(jié)果示意圖如下:
振蕩波形
0
整形波形
0
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2.3原理圖繪制軟件的介紹
AltiumDesigner是Altium公司于2004年推出的電路設(shè)計(jì)軟件版本,該軟件
能實(shí)現(xiàn)從概念設(shè)計(jì),頂層設(shè)計(jì)直到輸出生產(chǎn)數(shù)據(jù)以及這之間的所有分析驗(yàn)證和
設(shè)計(jì)數(shù)據(jù)的管理。當(dāng)前比較流行的Protel98、Protel99SE和ProtelDXP,就是
它的前期版本。
AltiumDesigner2004已不是單純的PCB(印制電路板)設(shè)計(jì)工具,而是由多個(gè)
模塊組成的系統(tǒng)工具,分別是SCH(原理圖)設(shè)計(jì)、SCH(原理圖)仿真、PCB(印制
電路板)設(shè)計(jì)、AutoRouter(自動(dòng)布線器)和FPGA設(shè)計(jì)及嵌入式軟件開(kāi)發(fā)等,覆
蓋了以PCB為核心的整個(gè)物理設(shè)計(jì)。該軟件將項(xiàng)目管理方式、原理圖和PCB圖
的雙向同步技術(shù)、多通道設(shè)計(jì)、拓樸自動(dòng)布線以及電路仿真等技術(shù)結(jié)合在一
起,為電路設(shè)計(jì)提供了強(qiáng)大的支持。
與較早的版本Protel99相比,AltiumDesigner2004不僅在外觀上顯得更加
豪華、人性化,而且極大地強(qiáng)化了電路設(shè)計(jì)的同步化,同時(shí)整合了VHDL和
FPGA設(shè)計(jì)系統(tǒng),其功能大大加強(qiáng)了。
2.4系統(tǒng)硬件測(cè)試
系統(tǒng)硬件電路的測(cè)試主要是檢測(cè)電路是否出現(xiàn)漏焊、短路、斷路、虛焊、
一些具有方向的元件是否方向弄錯(cuò)、電路設(shè)計(jì)錯(cuò)誤等情況。
對(duì)于漏焊、元件方向弄錯(cuò)的檢測(cè)方法是將實(shí)物電路板對(duì)照著PCB圖的線
路,檢查每一個(gè)元件和導(dǎo)線在實(shí)物上是否有出現(xiàn)。如果發(fā)現(xiàn)沒(méi)有或者對(duì)不上的
情況下需及時(shí)的重新對(duì)照確定漏焊時(shí)及時(shí)的補(bǔ)焊。
對(duì)于短路、斷路、虛焊這些情況采用數(shù)字萬(wàn)用表。將數(shù)字萬(wàn)用表打到二極
管檔位,然后通過(guò)紅表筆和黑表筆碰一起,萬(wàn)用表會(huì)發(fā)出鳴叫警示。根據(jù)這個(gè)
原理就可以用來(lái)檢測(cè)短路、斷路、虛焊。在需要檢測(cè)的元件或?qū)Ь€的兩端用兩
根表筆檢測(cè),如果導(dǎo)通蜂鳴器會(huì)鳴叫,如果斷開(kāi)蜂鳴器不叫。這樣根據(jù)我們所
需要檢測(cè)的情況,在結(jié)合檢測(cè)的現(xiàn)象就可以測(cè)出線路是否有問(wèn)題。
在調(diào)試上主要遇到了以下幾個(gè)問(wèn)題:
(1)按鍵無(wú)法正常的工作,按下后沒(méi)有反應(yīng)。
解決方法:通過(guò)對(duì)矩陣鍵盤的電路圖分析,和實(shí)際使用的微動(dòng)開(kāi)關(guān)進(jìn)行分
析,得知使用到的微動(dòng)開(kāi)關(guān)四個(gè)引腳,其中有兩對(duì)引腳內(nèi)部是連接的,也就相
當(dāng)于只有兩只有用的引腳,另外兩個(gè)和這兩個(gè)是連接在一起。然后觀察在實(shí)際
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
焊接的時(shí)候沒(méi)有分按鍵的引腳,出現(xiàn)焊接都是亂的,最后通過(guò)重新焊接矩陣鍵
盤后單片機(jī)可以正常的獲取按鍵信息。
3系統(tǒng)軟件部分設(shè)計(jì)
硬件電路要完成的任務(wù)是,產(chǎn)生振蕩,并將波形變換為能夠被單片機(jī)處理
的方波,接下來(lái)進(jìn)行頻率測(cè)定、報(bào)警、通訊等都要用程序?qū)崿F(xiàn)最后燒入單片機(jī)。
以下是各功能模塊的軟件設(shè)計(jì)。
軟件模塊是整個(gè)系統(tǒng)的靈魂,軟件部分設(shè)計(jì)的好壞直接影響到系統(tǒng)的精度、
可用性、方便性和智能性金屬探測(cè)器中的程序分為兩個(gè)部分,前端軟件模塊和
外圍數(shù)據(jù)處理與顯示模塊,前端軟件完成的是一些比較基礎(chǔ)的工作,如振蕩頻
率的檢測(cè),比較,報(bào)警等,而外圍數(shù)據(jù)處理與顯示模塊是進(jìn)行數(shù)據(jù)的再處理對(duì)
其進(jìn)行處理顯示。結(jié)合起來(lái)實(shí)現(xiàn)了一個(gè)更加方便、智能的數(shù)字金屬探測(cè)器。
3.1頻率獲得
獲得頻率是通過(guò)定時(shí)器T0和計(jì)數(shù)器T1兩個(gè)協(xié)同工作而完成的。程序中所使用
的頻率是新探測(cè)的頻率,都是1s內(nèi)所獲得的脈沖數(shù)。這對(duì)此次設(shè)計(jì)的手持式金屬
探測(cè)器已經(jīng)足夠了,要想提高精度,一是延長(zhǎng)獲得脈沖的時(shí)間,二是減小△
PRISE(它是頻率波動(dòng)的范圍,如果超出此范圍則報(bào)警)。
精度設(shè)置是通過(guò)按鍵改變傳給比較值,比較值設(shè)置的比較大則對(duì)微小的頻
率變化系統(tǒng)不會(huì)發(fā)出警報(bào)。
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
開(kāi)始
定時(shí)器T1計(jì)數(shù)
計(jì)算振蕩頻率
顯示振蕩頻率
否判斷振蕩頻率大于設(shè)置頻率
是
警報(bào)
結(jié)束
3.2鍵盤接收
鍵盤是輸入設(shè)備,用它來(lái)實(shí)現(xiàn)人機(jī)交互,讓機(jī)器更好的按人的要求去工作。
這里引入鍵盤的目的是,進(jìn)行金屬探測(cè)精度的設(shè)置。由于鍵盤普遍存在抖動(dòng)現(xiàn)
象,如果抖動(dòng)現(xiàn)象處理不好,會(huì)發(fā)生意想不到的結(jié)果。為了防止抖動(dòng),在程序
設(shè)計(jì)中采用了,一次鍵位判斷,兩次鍵位檢測(cè)的方法,每一步驟間隔5ms,每次
鍵位確定需要15ms,在檢測(cè)與接受過(guò)程中每一步驟出現(xiàn)錯(cuò)誤都將從新開(kāi)始驗(yàn)證,
因此保證了對(duì)用戶輸入的無(wú)誤接受。鍵盤接受模塊的程序流程圖如圖所示。
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
開(kāi)始
Key1==0否
是
Key==0
計(jì)時(shí)sec
計(jì)時(shí)
否sec
Shu=Shu+1Sec==3
否
Sec==3Shu=Shu+1
是
是
Shu=Shu+10
Shu=Shu+10
否Key1==1
Key2==1否
是
是
Sec=0Sec=0
結(jié)束
3.3系統(tǒng)軟件測(cè)試
測(cè)試所需的工具:KEIL軟件、系統(tǒng)硬件、PL2303下載器等。
系統(tǒng)的軟件方面通過(guò)KEIL軟件進(jìn)行編寫,將編寫好的程序生成.HEX文件后
通過(guò)PL2303下載器下載到單片機(jī)中。通過(guò)觀察整個(gè)系統(tǒng)運(yùn)行的狀態(tài),然后進(jìn)行
反復(fù)的修改調(diào)試程序,最終得到一個(gè)完善的程序。
在系統(tǒng)軟件調(diào)試上主要遇到以下問(wèn)題。
(1)數(shù)碼管顯示出現(xiàn)閃爍現(xiàn)象
解決方法:在程序上一開(kāi)始對(duì)每一位的顯示之間延時(shí)過(guò)短造成了顯示頻率
過(guò)快人眼還沒(méi)反應(yīng)過(guò)來(lái)就更換顯示了,所以造成看到的顯示會(huì)在閃爍,后修改
了延時(shí)函數(shù)顯示正常。
(2)按鍵無(wú)法正常的工作,按下后沒(méi)有反應(yīng)。
解決方法:通過(guò)對(duì)矩陣鍵盤的電路圖分析,和實(shí)際使用的微動(dòng)開(kāi)關(guān)進(jìn)行分
析,得知使用到的微動(dòng)開(kāi)關(guān)四個(gè)引腳,其中有兩對(duì)引腳內(nèi)部是連接的,也就相
當(dāng)于只有兩只有用的引腳,另外兩個(gè)和這兩個(gè)是連接在一起。然后觀察在實(shí)際
焊接的時(shí)候沒(méi)有分按鍵的引腳,出現(xiàn)焊接都是亂的,最后通過(guò)重新焊接矩陣鍵
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
盤后單片機(jī)可以正常的獲取按鍵信息。
4設(shè)計(jì)小結(jié)
經(jīng)過(guò)制作設(shè)計(jì)的這段時(shí)間的努力終于將本設(shè)計(jì)方案要求基本實(shí)現(xiàn)。由于時(shí)
間、水平和經(jīng)驗(yàn)有限,設(shè)計(jì)的作品還存在著一些的不足之處。
對(duì)于這次設(shè)計(jì)來(lái)說(shuō)既是一次機(jī)遇,又是一次挑戰(zhàn)。在這次的設(shè)計(jì)過(guò)程中,
本人學(xué)到了很多東西,通過(guò)自己的實(shí)踐,增強(qiáng)了動(dòng)手能力。通過(guò)實(shí)際工程的設(shè)
計(jì)也使我了解到書本知識(shí)和實(shí)際應(yīng)用的差別。在實(shí)際應(yīng)用中遇到很多的問(wèn)題,
這都需要我對(duì)問(wèn)題進(jìn)行具體的分析,并一步一步地去解決它。
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5附錄
附錄一原理圖
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
附錄二實(shí)物圖
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
附錄三元器件清單
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
附錄四PCB板圖
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
附錄五源程序代碼
#include<reg52.h>//頭文件
#include"eeprom52.h"http://調(diào)用EEPROM處理程序
#defineucharunsignedchar//宏定義
#defineuintunsignedint
#defineLCD1602_datP0//LCD1602數(shù)據(jù)傳輸IO口
sbitLCD1602_rs=P2^5;//LCD1602控制IO口//I/O定義
sbitLCD1602_rw=P2^6;//I/O定義
sbitLCD1602_e=P2^7;
sbitkey_1=P1^3;//按鍵控制IO口
sbitkey_2=P1^4;
sbitbeep=P1^5;//蜂鳴器控制IO口
sbitled=P1^0;//指示燈控制IO口
unsignedlongshu1,shu=1500;//檢測(cè)頻率變量,頻率限制變量
ucharms,sec;//50ms計(jì)數(shù)變量,秒計(jì)數(shù)變量
uintcs;//中斷溢出計(jì)數(shù)變量
bitOK,beep1;//標(biāo)志位
/********************************************************************
*名稱:delay()
*功能:小延時(shí)。
*輸入:無(wú)
*輸出:無(wú)
***********************************************************************/
voiddelay(uintT)//延時(shí)程序
{
while(T--);
}
/********************************************************************
*名稱:LCD1602_write(ucharorder,dat)
*功能:1602寫如數(shù)據(jù)函數(shù)
*輸入:輸入的命令值
*輸出:無(wú)
***********************************************************************/
19
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
voidLCD1602_write(ucharorder,dat)//1602一個(gè)字節(jié)處理
{
LCD1602_e=0;
LCD1602_rs=order;
LCD1602_dat=dat;
LCD1602_rw=0;
LCD1602_e=1;
delay(10);
LCD1602_e=0;
}
/********************************************************************
*名稱:LCD1602_writebye(uchar*prointer)
*功能:1602寫入數(shù)據(jù)函數(shù)指針式
*輸入:輸入的命令值
*輸出:無(wú)
***********************************************************************/
voidLCD1602_writebyte(uchar*prointer)//1602字符串處理
{
while(*prointer!='\0')
{
LCD1602_write(1,*prointer);
prointer++;
}
}
/********************************************************************
*名稱:LCD1602_cls()
*功能:初始化1602液晶
*輸入:無(wú)
*輸出:無(wú)
***********************************************************************/
voidLCD1602_cls()//1602初始化
{
LCD1602_write(0,0x01);//1602清屏指令
delay(1500);
LCD1602_write(0,0x38);//功能設(shè)置8位、5*7點(diǎn)陣
delay(1500);
LCD1602_write(0,0x0c);//設(shè)置光標(biāo)不顯示開(kāi)關(guān)、不顯示光標(biāo)、字符不閃爍
LCD1602_write(0,0x06);
LCD1602_write(0,0xd0);
delay(1500);
}
voidshow()
20
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
{
LCD1602_write(0,0x80);//0發(fā)送命令
LCD1602_writebyte("NowFreq:");//顯示檢測(cè)頻率
LCD1602_write(1,0x30+shu1/100000%10);//1發(fā)送數(shù)據(jù)
LCD1602_write(1,0x30+shu1/10000%10);//因?yàn)橐壕е荒茱@示字符,所以我們?cè)谶@里
加一個(gè)0x30把數(shù)字強(qiáng)制轉(zhuǎn)換成字符,0x30是字符0
LCD1602_write(1,0x30+shu1/1000%10);
LCD1602_writebyte(".");
LCD1602_write(1,0x30+shu1/100%10);
LCD1602_writebyte("KHz");
LCD1602_write(0,0xc0);
LCD1602_writebyte("SetFreq:");//顯示限制頻率
LCD1602_write(1,0x30+shu/1000%10);
LCD1602_write(1,0x30+shu/100%10);
LCD1602_write(1,0x30+shu/10%10);
LCD1602_writebyte(".");
LCD1602_write(1,0x30+shu%10);
LCD1602_writebyte("KHz");
}
/********************************************************************
*名稱:key()
*功能:按鍵控制程序
*輸入:無(wú)
*輸出:無(wú)
***********************************************************************/
voidkey()
{
if(OK==1)
{
if(!key_1)//判斷按鍵是否按下
{
OK=0;
if(sec==3)//執(zhí)行按鍵對(duì)應(yīng)的控制內(nèi)容
{
if(shu<3000)shu+=10;//長(zhǎng)按處理
}else
{
if(shu<3000)shu+=1;//短按處理
}
SectorErase(0x2000);//保存數(shù)據(jù)到單片機(jī)EEPROM中
21
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
byte_write(0x2000,shu/256);
byte_write(0x2001,shu%256);
}
if(!key_2)//判斷按鍵是否按下
{
OK=0;//執(zhí)行按鍵對(duì)應(yīng)的控制內(nèi)容
if(sec==3)
{
if(shu>200)shu-=10;//長(zhǎng)按處理
}else
{
if(shu>200)shu-=1;//短按處理
}
SectorErase(0x2000);//保存數(shù)據(jù)到單片機(jī)EEPROM中
byte_write(0x2000,shu/256);
byte_write(0x2001,shu%256);
}
}
if(key_1==1&&key_2==1)//判斷按鍵是否按下
{
sec=0;//重新計(jì)時(shí)
}
}
/********************************************************************
*名稱:proc()
*功能:報(bào)警指示燈處理函數(shù)
*輸入:無(wú)
*輸出:無(wú)
***********************************************************************/
voidproc()
{
if(shu1>=(shu*100)|shu1==0)
{
led=0;
beep1=1;
}else
{
led=1;
beep1=0;
}
}
22
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
/********************************************************************
*名稱:main()
*功能:主程序
*輸入:無(wú)
*輸出:無(wú)
***********************************************************************/
voidmain()
{
ucharH,L;
TMOD=0x51;//定時(shí)器0配置方式0定時(shí)模式;定時(shí)器1配置方式0計(jì)數(shù)
模式
TH1=0;//定時(shí)器賦初值
TL1=0;
TL0=0xB0;//設(shè)置定時(shí)初值
TH0=0x3C;//設(shè)置定時(shí)初值
TR0=1;//定時(shí)器0啟動(dòng)定時(shí)
TR1=1;//定時(shí)器0啟動(dòng)計(jì)數(shù)
EA=1;//打開(kāi)總中斷
ET0=1;//定時(shí)器0中斷
ET1=1;//定時(shí)器1中斷
H=byte_read(0x2000);//讀取單片機(jī)EEPROM中保存的數(shù)據(jù)
L=byte_read(0x2001);
shu=H*256+L;
if(shu>3000)shu=1500;//判斷讀出的數(shù)據(jù)是否正確如果不正確//則重新賦值
LCD1602_cls();//LCD1602初始化
while(1)
{
key();//調(diào)用按鍵控制程序
show();//調(diào)用LCD1602液晶顯示程序
proc();//調(diào)用程序處理函數(shù)
}
}
voidinit_1()interrupt1
{
TL0=0xB0;//設(shè)置定時(shí)初值
TH0=0x3C;//設(shè)置定時(shí)初值
ms++;//50ms定時(shí)計(jì)數(shù)
if(ms%4==0)//按鍵處理時(shí)間控制沒(méi)200ms處理一次
{
OK=1;
}
23
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
if(ms%5==0)//蜂鳴器報(bào)警,指示燈閃爍處理
{
if(beep1==1)
{
led=0;
beep=!beep;
}else
{
led=1;
beep=1;
}
}
if(ms>19)//1s定時(shí)處理
{
shu1=(long)cs*65535+TH1*256+TL1;//計(jì)算頻率
cs=TH1=TL1=0;
ms=0;
if(!key_1||!key_2)//按鍵長(zhǎng)按處理
{
sec++;
if(sec>3)//長(zhǎng)按3s判斷
{
sec=3;
}
}else
{
sec=0;
}
}
}
voidinit_3()interrupt3//外部中斷檢測(cè)當(dāng)前傳感器頻率
{
cs++;//中斷溢出計(jì)數(shù)
}
#ifndef_EEPROM52_H_
#define_EEPROM52_H_
#include<intrins.h>
/********STC89C52扇區(qū)分布*******
第一扇區(qū):1000H--11FF
第二扇區(qū):1200H--13FF
第三扇區(qū):1400H--15FF
24
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
第四扇區(qū):1600H--17FF
第五扇區(qū):1800H--19FF
第六扇區(qū):1A00H--1BFF
第七扇區(qū):1C00H--1DFF
第八扇區(qū):1E00H--1FFF
*****************/
/********STC89C52扇區(qū)分布*******
第一扇區(qū):2000H--21FF
第二扇區(qū):2200H--
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年青海省安全員-C證考試(專職安全員)題庫(kù)及答案
- 2025貴州省安全員-C證考試(專職安全員)題庫(kù)及答案
- 2025吉林省安全員B證考試題庫(kù)附答案
- 2025江蘇建筑安全員-C證(專職安全員)考試題庫(kù)
- 2025年湖南省安全員-C證考試題庫(kù)
- 離心泵知識(shí)培訓(xùn)課件
- 普通話口語(yǔ)訓(xùn)練(課件)
- 【物理課件】透鏡成像作圖法課件
- 材料物理化學(xué)課件緒論
- 《BA工法簡(jiǎn)介》課件
- 玻璃采光頂施工工藝
- 多聯(lián)機(jī)空調(diào)安裝技術(shù)交底記錄大全
- 電壓10kV及以下送配電系統(tǒng)調(diào)試報(bào)告
- 用合像水平儀測(cè)量直線誤差
- 最新手機(jī)開(kāi)發(fā)項(xiàng)目流程圖
- 反滲透凈水機(jī)節(jié)水技術(shù)創(chuàng)新
- 北京市工傷保險(xiǎn)實(shí)施細(xì)則
- 象棋老師崗位職責(zé)任職要求
- 國(guó)家開(kāi)放大學(xué)(電大)土木工程力學(xué)網(wǎng)考答案整理
- 教學(xué)改革計(jì)劃項(xiàng)目申請(qǐng)書模板
- 東神汽車售后服務(wù)手冊(cè)
評(píng)論
0/150
提交評(píng)論