蜂鸣器与继电器电路原理图
硬件实现原理
通过对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 }