李昊博
單片機(jī)是本次設(shè)計(jì)的電路的核心,單片機(jī)的性能決定的電路整體的運(yùn)行效果和穩(wěn)定性。單片機(jī)通過(guò)讀取ADC輸出的數(shù)字信號(hào)來(lái)獲取ADC轉(zhuǎn)換的結(jié)果,通過(guò)軟件程序?qū)DC的數(shù)據(jù)進(jìn)行濾波,得到有效的測(cè)量值,經(jīng)過(guò)計(jì)算得到被測(cè)電流值。單片機(jī)讀取數(shù)據(jù)與處理數(shù)據(jù)的速度顯示了系統(tǒng)的響應(yīng)速度,單片機(jī)讀取讀取和處理數(shù)據(jù)的速度越快頻率越高,系統(tǒng)的實(shí)時(shí)性越好,響應(yīng)速度越快,但同時(shí)功耗也提高,因此設(shè)計(jì)時(shí)要兼顧二者。
一、硬件電路設(shè)計(jì)
1、最小系統(tǒng)電路
主控制電路采用單片機(jī)。它包括復(fù)位電路和時(shí)鐘電路,復(fù)位電路可以由單穩(wěn)態(tài)電路實(shí)現(xiàn),也可以使用專用的復(fù)位芯片,這里我們選擇簡(jiǎn)單穩(wěn)定的RC充電電路來(lái)實(shí)現(xiàn)STC89C52單片機(jī)的上電復(fù)位功能,電容C1和電阻R1串聯(lián)組成RC串聯(lián)電路,當(dāng)+5V電源上電時(shí)電容C1兩端電壓不能突變?yōu)檎?V,單片機(jī)第9pin為高電平,隨著時(shí)間的推移5V電壓經(jīng)過(guò)電阻R1向C1充電,當(dāng)C1充滿電后單片機(jī)第9pin變?yōu)榈碗娖?,完成?fù)位。
2、按鍵電路設(shè)計(jì)
按鍵電路的功能是通過(guò)按鍵向單片機(jī)輸入信號(hào),單片機(jī)通過(guò)識(shí)別按鍵按下?tīng)顟B(tài)來(lái)執(zhí)行按鍵命令。本次設(shè)計(jì)的基于單片機(jī)的超大電流檢測(cè)系統(tǒng)有4個(gè)按鍵功能分是設(shè)置電流限值增加、設(shè)置電流限值減小、數(shù)據(jù)保持、恢復(fù)正常。用戶在使用時(shí)需要經(jīng)常操作按鍵,因此按鍵要設(shè)置在易于操作的位置,采用非自鎖的微動(dòng)開(kāi)關(guān),按下按鍵時(shí)按鍵導(dǎo)通,松開(kāi)按鍵后按鍵斷開(kāi),這樣的按鍵便于連續(xù)多次按下。微動(dòng)開(kāi)關(guān)在操作時(shí)按下開(kāi)關(guān)的動(dòng)作有較強(qiáng)的操作感,使用者可以根據(jù)按鍵觸感情況感受到按鍵已經(jīng)按下,是一種很人性化的機(jī)械按鍵。且單片機(jī)有多余的I/O口,為了提高響應(yīng)速度,簡(jiǎn)化電路和編程以達(dá)到最佳的穩(wěn)定性,因此使用獨(dú)立按鍵。4個(gè)按鍵S1、S2、S3、S4分別連接到單片機(jī)的P1.1、P1.3、P1.5、P1.7端口。P1口和P3口內(nèi)有上拉電阻,因此外部不需要再加上拉電阻。
3、電流檢測(cè)電路設(shè)計(jì)
這里選擇150A/5A的電流互感器,單匝穿芯時(shí)的初級(jí)側(cè)電流最大值是150A,互感器的最大容量是5VA,因此次級(jí)側(cè)選擇的電阻值是0.1歐姆,這樣互感器在最大量程下的功率是5*5*0.1=2.5VA,滿足互感器的設(shè)計(jì)容量。U3A是通用運(yùn)算放大器LM358,由LM358構(gòu)成反相放大器,互感器次級(jí)的電流信號(hào)在電阻R2上產(chǎn)生壓降,變成電壓信號(hào),這個(gè)電壓信號(hào)輸入至運(yùn)算放大器的反相輸入端,D6將電流互感器次級(jí)的正弦波信號(hào)負(fù)半周全反饋至輸入端,正半周信號(hào)經(jīng)過(guò)R1、R3、R4、R6構(gòu)成的電阻比例分壓網(wǎng)絡(luò)反饋至運(yùn)算放大器反相輸入端,調(diào)整R4可以調(diào)整運(yùn)算放大器的放大倍數(shù)。C3和C8是輸出濾波電容,使運(yùn)算放大器輸出的信號(hào)變得平滑更接近直流電壓的波形,R7和R12構(gòu)成電阻分壓網(wǎng)絡(luò),對(duì)輸出信進(jìn)行分壓,將輸出信號(hào)調(diào)整至ADC的量程范圍,使電路的測(cè)量精度更高。
4、報(bào)警電路設(shè)計(jì)
采用PNP型三極管S8550作為驅(qū)動(dòng)器件,S8550的集電極電流是1A,滿足蜂鳴器的工作電流要求。將三極管的基極連接至單片機(jī)的P2.0引腳,根據(jù)PNP三極管的工作原理和導(dǎo)通特性,當(dāng)單片機(jī)的P2.0輸出低電平時(shí),三極管Q1導(dǎo)通,蜂鳴器得電發(fā)聲;當(dāng)單片機(jī)的P2.0引腳輸出高電平時(shí),三極管Q1截止,蜂鳴器失電不發(fā)聲,因此單片機(jī)在程序中控制P2.0引腳的電平狀態(tài)就可以控制蜂鳴器是否發(fā)聲。
5、電源供應(yīng)電路設(shè)計(jì)
為了得到穩(wěn)定的電源供應(yīng)采用變壓器降壓的方法產(chǎn)生低壓直流電。交流220V電壓經(jīng)過(guò)變壓器轉(zhuǎn)換為低壓交流電,使用四個(gè)整流二極管構(gòu)成橋式整流電路,將交流電轉(zhuǎn)換為直流電,此時(shí)的直流電是脈動(dòng)直流電,在波形中有很多脈動(dòng)的峰值電壓,采用大容量的鋁電解電容對(duì)脈動(dòng)直流電進(jìn)一步濾波形成平滑的直流電。C9是主濾波電容,可以將脈動(dòng)直流電轉(zhuǎn)換為平滑直流電供低壓系統(tǒng)使用。U1是三端穩(wěn)壓器,U1的功能是穩(wěn)壓,為電路提供一個(gè)穩(wěn)定的5V電壓輸出,確保芯片穩(wěn)定工作。
6、顯示電路設(shè)計(jì)
本次設(shè)計(jì)的液晶顯示程序是向液晶屏寫(xiě)入要顯示的字符,不需要讀液晶屏,因此RW引腳保持接地狀態(tài)。EN信號(hào)是液晶屏的使能信號(hào),RS是命令與數(shù)據(jù)控制信號(hào),這兩個(gè)信號(hào)連接至單片機(jī)的P2.6和P2.7引腳,通過(guò)軟件程序控制這兩個(gè)信號(hào)的電平狀態(tài),實(shí)現(xiàn)數(shù)據(jù)顯示功能。
二、軟件程序設(shè)計(jì)
1、A/D轉(zhuǎn)換器程序設(shè)計(jì)
由溫度、煙霧傳感器采集的數(shù)據(jù),送至A/D轉(zhuǎn)換器,在CS為低電平時(shí),啟動(dòng)A/D轉(zhuǎn)換器,經(jīng)過(guò)四個(gè)時(shí)鐘脈沖后,由DO開(kāi)始一位一位的讀取并由函數(shù)存儲(chǔ)數(shù)據(jù)返回,送至單片機(jī)。讀完8位數(shù)據(jù)后,CS為高電平,此時(shí)關(guān)閉A/D轉(zhuǎn)換器,將經(jīng)過(guò)處理的數(shù)據(jù)返回,送至單片機(jī)。
2、數(shù)字濾波程序設(shè)計(jì)
本次設(shè)計(jì)的電路采用運(yùn)算放大器和電解電容將互感器次級(jí)側(cè)的電流信號(hào)轉(zhuǎn)換為直流電壓信號(hào),在程序中采用多次采集取平均值的方法進(jìn)行數(shù)字濾波。
本次設(shè)計(jì)的超大電流檢測(cè)系統(tǒng)對(duì)系統(tǒng)響應(yīng)速度要求不高,因此按常規(guī)選擇采樣10次求平均值的方法。在程序中設(shè)置一個(gè)變量Value_result用來(lái)存儲(chǔ)AD轉(zhuǎn)換的直接結(jié)果,設(shè)置num作為轉(zhuǎn)換次數(shù)計(jì)數(shù)變量,每次轉(zhuǎn)換的結(jié)果進(jìn)行累加,當(dāng)num等于10時(shí),將累加值除以10得到平均值。由平均值計(jì)算出ADC的輸入電壓值Ux=(Value_result*5)/255,得到ADC輸入端電壓值再乘以系數(shù)就可能得到被測(cè)電流值。
3、按鍵程序設(shè)計(jì)
本次電路中使用4個(gè)按鍵,每個(gè)按鍵的程序是相同的。因受按鍵機(jī)械特性影響和人按下按鍵時(shí)的動(dòng)作狀態(tài)影響,按鍵在按下瞬間會(huì)發(fā)生抖動(dòng)。理想狀態(tài)下按鍵按下后向單片機(jī)輸入一個(gè)平滑穩(wěn)定的低電平信號(hào),受按鍵抖動(dòng)影響,實(shí)際機(jī)械按鍵在按下瞬間輸出一段高低電平波動(dòng)的信號(hào),這個(gè)信號(hào)容易使單片機(jī)造成誤動(dòng)作,因此在設(shè)計(jì)軟件程序時(shí)要對(duì)按鍵進(jìn)行消抖動(dòng)處理。
按鍵消抖動(dòng)的方法是使用延時(shí)語(yǔ)句,當(dāng)按鍵按下后延時(shí)10ms再次檢測(cè)按鍵,如果按鍵仍然處于按下?tīng)顟B(tài)說(shuō)明按鍵確認(rèn)按下,可以執(zhí)行按鍵功能。對(duì)于本次所使用的點(diǎn)動(dòng)式按鍵不但要檢測(cè)按鍵按下,還要檢測(cè)按鍵松開(kāi),按鍵松開(kāi)時(shí)也會(huì)有抖動(dòng),因此在檢測(cè)按鍵松開(kāi)時(shí)也要使用延時(shí)語(yǔ)句消抖動(dòng)。單片機(jī)通過(guò)按鍵識(shí)別程序識(shí)別按鍵被按下的情況,當(dāng)檢測(cè)到某個(gè)按鍵被按下時(shí),執(zhí)行相應(yīng)的按鍵功能。
4、顯示程序設(shè)計(jì)
顯示程序的功能是驅(qū)動(dòng)液晶屏顯示電流檢測(cè)結(jié)果以及設(shè)定的電流限值等信息。顯示程序通過(guò)模擬液晶屏的動(dòng)作時(shí)序?qū)⒁@示的字符轉(zhuǎn)換為ASIIC碼值發(fā)送給液晶屏。在LCD1602初次上電時(shí)要對(duì)其進(jìn)行初始化,初始化的步驟是先設(shè)置顯示模式,再設(shè)置光標(biāo)位置,最后關(guān)閉光標(biāo)顯示。光標(biāo)位置提示了使用者字符出現(xiàn)的位置,一般情況下建議設(shè)置完成光標(biāo)位置后關(guān)閉光標(biāo)顯示,因?yàn)長(zhǎng)CD1602自身顯示面積很小,打開(kāi)光標(biāo)會(huì)占用一定的顯示空間,且閃爍的光標(biāo)使液晶屏的觀感變差。每次刷新顯示之前要對(duì)顯示進(jìn)行清屏,這樣可以起到更新顯示的作用。根據(jù)顯示內(nèi)容的需要,先寫(xiě)入顯示地址,再寫(xiě)入顯示數(shù)據(jù),依次將要顯示的電流值和設(shè)定的電流限值以字符形式輸出至液晶屏。