【正文】
1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528P3.2/INT012P3.1/TXD11P3.0/RXD10XTAL119XTAL218RST9PSEN29ALE30EA31P1.0/T21P1.1/T2EX2P1.23P1.34P3.3/INT113P1.45P1.56P1.67P1.78P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17X?AT89C52VCCVCCAABBCCDDEEFFGGDP12U?LED1S P E A K E RQ?P N PR92KR81KV C C 繼電器驅(qū)動電路設計 當檢測到人體內(nèi)血液濃度超過標定值時,如果駕駛員有意向開啟汽車鑰匙(電路里面用按鈕表示),那么酒后駕駛智能閉鎖系統(tǒng)將驅(qū)動繼電器動作(電路設計中由單片機的 ),切斷汽車引擎電源,從而使汽車無法啟動,從而有效的防止駕駛員酒后駕車。繼電器驅(qū)動電路原理圖如下圖,繼電器為雙刀雙擲HRS2HSDC5V小功率電磁繼電器,額定電壓 3V~ 24V,額定電力消耗 200mW~ 360mW。 I N 4 1 4 8D S 1 D S 28 5 5 0P N PR11KR3100123V C CR2100V C C 系統(tǒng)總體硬件電路圖 4 系統(tǒng)軟件設計 主程序流程圖 S P E A K E RC230pC330pC11μ FY14. 0 00 M H ZI N 4 14 8D S 1 D S 285 5 0P N PR5P O T 2R61KR78. 2 KR11KR3100R E S E T123V C CR2100V C CBI1CI2LT3B I /R B O4R B I5DI6AI7E9D10C11B12A13G14F15X?S N 74 L S 4 7N ( 1 6)P 0. 0/ A D 039P 0. 1/ A D 138P 0. 2/ A D 237P 0. 3/ A D 336P 0. 4/ A D 435P 0. 5/ A D 534P 0. 6/ A D 633P 0. 7/ A D 732P 2. 0/ A 821P 2. 1/ A 922P 2. 2/ A 1023P 2. 3/ A 1124P 2. 4/ A 1225P 2. 5/ A 1326P 2. 6/ A 1427P 2. 7/ A 1528P 3. 2/ I N T 012P 3. 1/ T X D11P 3. 0/ R X D10X T A L 119X T A L 218R S T9P S E N29A L E30EA31P 1. 0/ T 21P 1. 1/ T 2E X2P 1. 23P 1. 34P 3. 3/ I N T 113P 1. 45P 1. 56P 1. 67P 1. 78P 3. 4/ T 014P 3. 5/ T 115P 3. 6/ W R16P 3. 7/ R D17X?A T 89 C 5 2V C CV C CI N 026m sb2 1212 220I N 1272 3192 418I N 2282 582 615I N 312 714ls b2 817I N 42E O C7I N 53A D D A25I N 64A D D B24A D D C23I N 75A L E22r e f( )16E N A B L E9S T A R T6r e f( + )12C L O C K10U?A D C 08 0 8 V C CV C CAABBCCDDEEFFGGDP 1 2U?L E D 1Q?P N PR92KR81KV C C開始 程序初始化 調(diào)節(jié)電位器 Y N 源程序設計 include define ui unsigned int sbit U4_OE=P3^4。 //對各控制引腳進行定義 ; sbit U4_EOC=P3^5。 sbit U4_ALE=P3^6。 sbit U4_START=P3^7。 sbit U3=P2^0。 sbit R5=P2^1。 void delay(ui x) //延時子程序,延時時間由實參傳值確定; { ui i。 while(x) { for(i=0。i10。i++) {。} A/D轉(zhuǎn)換 線性化處理 儀表放大器放大處理 是否超過報警限度 電壓值顯示 報警處理 驅(qū)動繼電器 斷開啟動機電源 } } //主程序; void main() { void display5in0(ui zhi)。 //各個子程序的聲明,延時程序在前則不必; void warning()。 void AD_IN0()。 ui aa。 U3=1。R5=1。 while(1) //設置大循環(huán),模數(shù)轉(zhuǎn)換不停進行; { AD_IN0()。 //調(diào)用通道 0轉(zhuǎn)換子程序; aa=P0。 //將轉(zhuǎn)換后的數(shù)字量給變量 aa; if(aa==0xff) //判斷是否超出量程; {warning()。} //超出則調(diào)用警告子程序; else display5in0(aa)。/*調(diào)用通道 0 的 5V顯示子程序; */ } } //5V量程通道 0顯示程序; void display5in0(ui zhi) { ui shu1,shu2。 shu2=zhi/51。 //對數(shù)字量除以 256,再乘以量程 5,則為顯示值的個位; shu1=zhi%51。 //求上次運算的余數(shù); shu1=shu1/5。 //余數(shù)乘以 10,乘以 5,再除以 256,表示小數(shù)點位; if(shu22||(shu2==2amp。amp。shu1=4)) {U3=0。 R5=0。} else {U3=1。R5=1。} shu2=shu2+0x20。 //個位和片選信號相加, 0x20 是二進制 0010 0000,對低四位 BCD數(shù)據(jù)值不影響,即 ,方便的 shu1=shu1+0x10。 //四位 BCD值加上片選信號, 0x10選擇 對應數(shù)碼管; P1=shu2。 //點亮一片數(shù)碼管,顯示個位數(shù)值,其它均關閉; delay(1)。 //稍加延時, 1毫秒以內(nèi); P1=shu1。 //點亮另一片數(shù)碼管,顯示小數(shù)位數(shù)值,其它的關閉; delay(1)。 //稍加延時; } //超出量程警告程序,若判斷超出量程,數(shù)碼管顯示零并閃爍; void warning() { P1=0xf0。 delay(3000)。 P1=0xff。 delay(3000)。 } //通道 0轉(zhuǎn)換程序 void AD_IN0() { P3=0。 //通道 0地址 U4_ALE=1。 U4_ALE=0。//地址所存; U4_START=1。 //啟動轉(zhuǎn)換; U4_START=0。 while(U4_EOC!=1) //判斷轉(zhuǎn)換是否完成; 。 //未完成則等待; U4_OE=1。 //完成則輸出數(shù)字量; } 5 系統(tǒng)軟硬件調(diào)試 系列單片機軟件開發(fā)及調(diào)試工具 單片機的程序設計需要在特定的編譯器中進行。編譯器完成對程序的編譯、連接等工作,并最終生成可執(zhí)行文件。對于 51單片機程序的開發(fā),一般采用 Keil公司的μ Vison 系列的集成開發(fā)環(huán)境。μ Vison 系列開發(fā)工具目前的最高版本是μ Vison3,支持匯編語言以及 C51 等的 程序設計。 硬件系統(tǒng)仿真工具 Proteus就是一款功能強大的 EDA仿真軟件。它擁有豐富的庫元件,尤其是動態(tài)外設的仿真極大地補充了其他仿真軟件的不足;虛擬工具箱的引入為仿真測試提供了方便。本文以 51單片機為例具體分析了該軟件在仿真微處理器及其外設硬件方面的獨到之處, protues能有效的仿真 51單片機及其常用外設硬件,大幅提高開發(fā)效率和降低開發(fā)成本。 仿真電路圖及仿真結果 A B C D E F G1.51 . 41 . 5ABCDEFG P 3 . 6P 3 . 61.4Q2A L EQ2A L EQ1 CL KQ1C13 0 pC23 0 pC31uFR31KR48 .2 kX1CR Y S T A LV C CG NDG NDU2A N DU3NO TR L 1RLY DP CO R11kG ND42%R V 11 0 0G NDV C CX T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .0 /T 21P 1 .1 /T 2 E X2P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 2A7QA13B1QB12C2QC11D6QD10B I /RB O4QE9RB I5QF15LT3QG14U57 4 L S 4 7Q2NP NU4( CLO CK )R51 0 0O UT 121A DD B24A DD A25A DD C23