蜂鳴器與繼電器電路原理圖
硬件實現原理
通過對74HC138譯碼器以及M74HC573MIR鎖存器進行對應操作。
1.蜂鳴器
當蜂鳴器N_BUZZ端口輸出低電平,蜂鳴器即可發出聲音。(ULN2003芯片是通過非門集合的電路。輸出要是為低電平,輸入要高電平。)
2.繼電器
繼電器內部電路存在着線圈和鐵芯,當給線圈通電時就會產生磁場,鐵芯就會變成電磁鐵,就會吸合。
當N_RELAY端口輸出低電平時,內部就會產生磁場,二極管就會導通,二極管的作用是保護的作用。
代碼實現
1 #include "reg52.h"
2
3 typedef unsigned int u16; 4 typedef unsigned char u8; 5
6 sbit HC138_A = P2^5; 7 sbit HC138_B = P2^6; 8 sbit HC138_C = P2^7; 9
10 void delay(u16 i) 11 { 12 while(i--); 13 } 14
15 void beepInit() 16 { 17 HC138_A = 1; 18 HC138_B = 0; 19 HC138_C = 1; 20
21 P0 = 0x00; 22 } 23
24 void LED() 25 { 26 u8 i; 27 HC138_A = 0; 28 HC138_B = 0; 29 HC138_C = 1; 30
31 for(i =0;i <3;i++) 32 { 33 P0 = 0x00; 34 delay(60000); 35 P0 = 0xff; 36 delay(60000); 37 } 38
39 for(i=0;i<=7;i++) 40 { 41 P0=0xff<<i; 42 delay(60000); 43 } 44
45 HC138_A = 1; 46 HC138_B = 0; 47 HC138_C = 1; 48 P0 = 0x10; 49 delay(60000); 50 P0 = 0x00; 51
52 HC138_A = 1; 53 HC138_B = 0; 54 HC138_C = 0; 55
56 for(i=0;i<=7;i++) 57 { 58 P0=~(0xff<<i); 59 delay(60000); 60 } 61
62 HC138_A = 1; 63 HC138_B = 0; 64 HC138_C = 1; 65 P0 = 0x40; 66 delay(60000); 67 P0 = 0x00; 68
69 } 70 71 void main() 72 { 73 beepInit(); 74 while(1) 75 { 76 LED(); 77 } 78 }