Sunday, December 22, 2013

Interfacing Of a Buzzer Using Microcontroller 89C52/89S52

No comments:
Interfacing Of a Buzzer Using Microcontroller 89C52/89S52 



Welcome back embedded system geeks! In this article we are going to learn about the interfacing of a Buzzer with the microcontroller. But if this is your first mini-project you should probably check-out my previous article on Blinking LED'S for more understanding of the programming I will be dealing with this project. Once you get to know what Buzzer is and the programming logic behind connecting a Buzzer and a microcontroller you will able to apply the same logic to any microcontroller (i.e. your microcontroller may be a PIC or an AVR microcontroller). At the end of the explanation of the code there are some questions for you to answer which can help you to improve your programming skills.


why do we need a Buzzer? 

Buzzer is used many times in embedded systems. For an instance-Digital clock with an alarm-here buzzer can be used an alarm or a fire alarm or an intruder alarm. There are so many uses.

Components required

  • 1 microcontroller 89C52(89S52 will also do)
  • 1 potentiometer-10k
  • 2 ceramic capacitors-22pF
  • 1 switch(button for reset purpose)
  • 1 electrolytic capacitor-10uF,25V
  • 1 crystal oscillator-11.0592MHz
  • 1 resistor-10k
  • 5 LED's
  • 1 resistor-1k
  • 5 330 ohm resistor
  • 1 Buzzer
  • 1 transistor-BC548


Schematic Diagram 


 

This project has been made using Proteus software.If you want to learn more about the software you can watch the tutorials provided below

The connection of the circuit is explained below

  • Port 2 of the microcontroller is defined as the output port
  • Port 3 of the microntroller is defined as the output port
  • 4 LED's are connected to the four pins of the output port 2 from P2.0 TO P2.3 respectively
  • An LED is connected to the pin 3 of the output port 3 of the microcontroller
  • A Buzzer is connected to the pin 8 of the output port 3
  • Other components connected to the microcontroller are for the working of the microcontroller.
   

Working      

   
The working of the circuit is shown with an application of a decade counter. As soon as the microcontroller receives a power supply, the counter will start counting. An image of the counter is shown below


   

 

The Decade counter will count from 0 to 9 and when the counter counts 9, the buzzer will be switched ON.The transistor connected to the buzzer acts as a switch.The programming of the microcontroller is explained below:

#include "REGX52.H"
#include "delay.h" /*delay header file is included*/
void main()
{
P2=0X00;/*port 2 is defined as output port*/
P3=0XFF;/*port 3 is defined as output as port*/
while(1)
{ P3_2=0; /*set pin 3 of port 2 to logic 0 */
P3_7=0; /*set pin 8 of port 2 to logic 0 */
P2=0X00; /*code for the decade counter begins here*/
delay_sec(1);
P2=0X01;
delay_sec(1);
P2=0X02;
delay_sec(1);
P2=0X03;
delay_sec(1);
P2=0X04;
delay_sec(1);
P2=0X05;
delay_sec(1);
P2=0X06;
delay_sec(1);
P2=0X07;
delay_sec(1);
P2=0X08;
delay_sec(1);
P2=0X09;
delay_sec(1); /* code for decade counter ends here*/
if(P2==0X09)
{ P3_2=1; /*LED is switched ON*/
P3_7=1; /*buzzer is switched ON*/
delay_sec(3); /*buzzer is switched ON for 3 seconds*/
P3_2=0; /*LED is switched OFF*/
P3_7=0; /*buzzer is switched OFF*/
}
}
}





























































Try this for Fun      

Digital Clock Using Microcontroller 89C52/89S52

No comments:

                   Digital Clock Using Microcontroller 89C52/89S52

 




Are you a beginner in micro controller projects?and are you stuck where to start from?if yes,then this is one of the simplest mini projects that you can start from . This mini project will give you a clear understanding of programming your micro controller. we sometimes look at our watch and wonder " how does this thing work". Well, in this digital clock project, you will gain some insight on how micro controller can be used to make it work as a Digital Clock.

Components required:

  • 1 microcontroller 89C52(89S52 will also do)
  • 2 ceramic capacitors-22pF
  • 1 switch(button for reset purpose)
  • 1 electrolytic capacitor-10uF,25V
  • 1 crystal oscillator-11.0592MHz
  • 16x2 LCD display
  • 1 resistor-10k



Circuit diagram


Software you will need

This project has been done in proteus software.If you are new to proteus software, the tutorials given below may get you started with the software.note:if you are familiar with proteus you can skip this part.


The programming of the microcontroller is done using keil compiler.port 2 of 89C52 is used as the output port.whereas port 1 is used as the input port.when P1_4 is grounded the 12 hr mode is activated and when P1_5 is grounded the 24 hr mode is activated.In the schematic diagram P1_5 is grounded so the 24hr mode is activated.it is as shown below



Code:



The detail explanation of the code is done below:


#include "REGX52.H"
#include "delay.h"
#include "lcd.h"
void main(void)
{
int hr=0; /*initiate hour=0 */
int min=0; /*initiate minutes=0 */
int sec=0; /*initiate seconds=0 */
P1=0xff; /*set port 1 as input port */
P2=0x00; /*set port 2 as output port*/
while(1)
{ LCD_INIT(); /*initialize LCD*/
if (P1_4==0)/*if P1_4 is grounded enter the 12hr loop */
{
for (sec=0;sec<60;sec )
{
LCD_DisplayNum(hr,2);
LCD_STRING(":");
LCD_DisplayNum(min,2);
LCD_STRING(":");
LCD_DisplayNum(sec,2);
LCD_STRING(" (12 HR)");
delay_sec(1);
LCD_CLEAR();
if (sec==59)
{
min=min 1;
if(min==60)
{
if(hr==11&&min==60&&sec==59)
{hr=0;min=0;sec=0;}
else
{ hr=hr 1;
min=0;}
}
}
} }
else
{
if(P1_5==0) /*if P1_5 is grounded enter the 24hr loop */
{
for (sec=0;sec<60;sec )
{
LCD_DisplayNum(hr,2);
LCD_STRING(":");
LCD_DisplayNum(min,2);
LCD_STRING(":");
LCD_DisplayNum(sec,2);
LCD_STRING(" (24 HR)");
delay_sec(1);
LCD_CLEAR();
if (sec==59)
{
min=min 1;
if(min==60)
{
if(hr==23&&min==60&&sec==59)
{hr=0;min=0;sec=0;}
else
{ hr=hr 1;
min=0;}
}
}
} }}
LCD_INIT();
}
}

 

 

 

 

 

 

 

 

 

 

 

 

 

Digital Locking System Using Microcontroller 89C52/89S52

No comments:
 Digital Locking System Using Microcontroller 89C52/89S52 


If you are a beginner in making micro controller projects then this mini project
might just work for you. It's very simple and anybody can make it. The aim
of the project is quite predictable from the title itself-you enter a wrong password
the application wont work(in this case led is used as the application) and on correct
entering of the password, the application as in this case "led" will glow.In this Digital locking system project you will learn more about interfacing keypad and 16x2 LCD to your micro controller along with the code.




components required

For this project you will need the following components:
  • 1 microcontroller 89C52(89S52 will also do)
  • 1 potentiometer-10k
  • 2 ceramic capacitors-22pF
  • 1 switch(button for reset purpose)
  • 1 electrolytic capacitor-10uF,25V
  • 1 crystal oscillator-11.0592MHz
  • 16x2 LCD display
  • 1 resistor-10k
  • 1keypad(here, i have used a calculator keypad.In proteus you can find it by typing keypad-smallcalc)
  • 1 led
  • 1 330 ohm resistor

Schematic diagram



Since this project has been made in proteus software you must have a prior knowledge of it. If you are unaware of the software here is a tutorial which i recommended in one of my previous articles.

The connection of the circuit is explained below:

  • Port 1 of the microcontroller is used as the output port
  • Port 2 of the microcontroller is used as the output port
  • Port 3 of the microcontroller is used as the input port.
  • The LCD is connected to port 2 since output is displayed on LCD
  • The led is connected to port 1 which is our application in this project
  • The keypad is connected to port 3
  • Other components like the crystal and switch are connected for the working of the microcontroller ( minimum circuitry required for proper working of the microcontroller).

working:

As soon as the power supply is provided to the microcontroller "password based" will be shown on the screen.This will remain for a second and after that "enter password" will be displayed as shown below.



The "ENTER PASSWORD " statement will remain for a second and then it will vanish.At this point you will have to enter password which will be shown in terms asterisk " **** ". 





The coding of the micro-controller is done such that only four numbers can be used to enter password. If you want to increase the length of the password you can do that by adding loops in the coding which will be dealt later. Here, in this project the password is set as 1234. when this password is entered the LCD will display "correct password" as shown below and the LED will turn on which is connected at port 1. you can set your own password by changing the password in the code.

If you want to set your password using the operators like " + ", " -" etc you can do it by setting the password in the code as follows:




  • for " ON/C " =16
  • for " + " =10
  • for " - " =14
  • for " = " =15
  • for " x " =11
  • for " ÷ " =13

programming:

The programming of the microcontroller is done using keil compiler.The codings for this project is explained below:



#include "REGX51.H"
#include "delay.h" /*the header file of delay is added*/
#include "lcd.h" /*the header file of LCD is added*/
#include "keypad.h" /*the header file of keypad is added*/
#define relay P1_7;
void main()
{
int first_key,second_key,third_key,fourth_key;
P1=0X00; /*port 1 is defined as the output port*/
P2=0x00; /*port 2 is defined as the output port*/
P3=0xff; /*port 3 is defined as the input port*/
LCD_INIT();/* the LCD display is initialized */
LCD_STRING("PASSWORD BASED");/*displays PASSWORD BASED on the lcd*/
delay_sec(1); /* provides a delay of 1 second */
LCD_CMD(PUTLINE2);
LCD_STRING("LOCKING SYSTEM");
LCD_CLEAR(); /*clears the LCD display*/
LCD_STRING("ENTER PASSWORD:");
delay_sec(1);
LCD_CLEAR();
while(key_get()==NOKEY);
first_key=key;
LCD_STRING("*"); /*when any key is pressed display it as " * " */
while(key_get()==NOKEY);
second_key=key;
LCD_STRING("*");
while(key_get()==NOKEY);
third_key=key;
LCD_STRING("*");
while(key_get()==NOKEY);
fourth_key=key;
LCD_STRING("*"); /* by adding another while loop you can further increase the length of your password */
while(1)
{
if((first_key==1)&&(second_key==2)&&(third_key==3)&&(fourth_key==4))/*here, the password set is 1234. you can change the password over here.if you have increased your password length see that you also make changes in the If loop over here i.e by adding further &&fifth_key=....&& sixth_.. and so on */
{
LCD_CLEAR();
LCD_STRING("Correct Password");
P1_2=1; /* if correct password is entered make P1_2 high which will turn on the led */
delay_sec(2);
}
else
{
LCD_CLEAR();
LCD_STRING("Incorrect Password");
delay_sec(2);
}
} }




































































\\\\related topics\\\



Electronics Lab Created By Muhammad Irfan