Voltmeter using 8051

admin October 4, 2012 14 Comments
Voltmeter using 8051. A simple 0-5V voltmeter using 8051 is shown in this article. This digital voltmeter has a sensitivity of  200mV which is a bit low but this project is meant for demonstrating how an ADC and seven segment display can be interfaced to 8051 to obtain a digital readout of the input voltage. A 31/2 digit high end voltmeter will be added soon. ADC0804 is the ADC and AT89S51 is the controller used in this project. Before...
read more

AVR Microcontroller Tutorial – The complete guide to learn AVR

jojo September 29, 2012 5 Comments
We have developed a complete guide to learn AVR microcontroller – a tutorial which teaches the architecture,pin diagram,how to program an avr micro controller, how to work with ADC of avr, how to work with SPI of avr,interfacing LCD with avr, the avr gcc library, how to work with external interrupts, how to establish a USART communication etc. We have also developed a simple project to try your hands on – a frequency counter circuit built using Avr Atmega8....
read more

Control structures and statements in C and C++

jojo September 20, 2012 8 Comments
Control structures form the basic entities of a “structured programming language“. We all know languages like C/C++ or Java are all structured programming languages. Control structures are used to alter the flow of execution of the program.  Why do we need to alter the program flow ? The reason is “decision making“! In life, we may be given with a set of option like doing “Electronics” or “Computer science”. We do make a decision by analyzing certain conditions (like...
read more

Quick Sorting algorithm with example code in C/C++/Java languages

jojo September 18, 2012 No Comments
We have seen 3 simple sorting algorithms already 1) Bubble Sorting 2) Selection Sorting and finally Insertion sorting. All these algorithms were so simple to understand and were easy to implement as a program in C/C++ or even Java. But at the same time all 3 of them were too inefficient.  Their execution time was of the order of n*n, where n is the number of elements to be sorted. In practice, these simple sorting algorithms are seldom used. ...
read more

Insertion sorting algorithm with example in C/C++/Java languages

jojo September 17, 2012 No Comments
So far we have seen 2 sorting algorithms:- 1) Bubble sorting and 2) Selection sorting. Now in this article, we are analyzing insertion sort algorithm with its example code suitable for C/C++/Java programming languages. I recommend you go through above articles of Bubble sorting and Selection sorting before reading further.  Insertion sorting algorithm sorts one element at a time. It begins by sorting the first 2 elements in order. In the next step, it takes the third element and compares it...
read more

Bit rate Vs Baud rate – the common misconception

Anish September 17, 2012 17 Comments
The two most common/confused words in digital communication – Bit rate and Baud rate. Generally, communication is concerned with transmission of data. In digital communication, there are two entities that are needed to carry out communication – the data to be transmitted and the signal over which the data is transmitted. Now, we have two entities to be worried about – the data and the signal. The most common misconception is that most people think both travel at the...
read more

Selection Sort in C/C++/Java programming languages

jojo September 17, 2012 No Comments
In the previous article, we have analysed Bubble sort algorithm and it’s implementation in C programs. In this article we are going to see another sorting algorithm, named, Selection sorting. Just like “Bubble sort”, selection sort is also considered as an inefficient sorting algorithm. If you are curious to know the reason for this, please read the article about Bubble sort carefully. The number of comparisons involved in an average bubble sort is 0.5*(n*n-n). Same is the index for...
read more

Difference between Procedure Oriented(POP) and Object Oriented Programming(OOP)

jojo September 14, 2012 7 Comments
We all know there exist 2 approaches to write a program – 1) Procedure oriented programming (POP) and 2) Object oriented programming (OOP). You can write a program in either way but there are notable differences between both approaches. These 2 approaches are the result of software development evolution over many decades. Since the invention of computer, many approaches and methods have been tried to write a program. It includes methods like a) Top-Down programming b) Bottom-Up programming c)...
read more

How to recover/reset admin username and password of Vbulletin forum software

jojo September 11, 2012 2 Comments
This article is a little off topic as it is not related to electronics! However I thought this would be useful for some one who manages a Vbulletin forum software. For those who find the name “Vbulletin” alien, it’s a forum management software. We use it to power our CircuitsToday-Forums. Recently we lost access to our “administrator” account of our forum software! There had been no way we could access the admin account and all attempts to retrieve password...
read more

Interfacing ADC to 8051

admin September 6, 2012 6 Comments
ADC (Analog to digital converter) forms a very essential part in many embedded projects and this  article is about interfacing an ADC to 8051 embedded controller. ADC 0804 is the ADC used here and before going through the interfacing  procedure, we must neatly understand how the ADC 0804 works. ADC 0804. ADC0804 is an 8 bit successive approximation analogue to digital converter from National semiconductors. The features of ADC0804 are  differential analogue voltage inputs, 0-5V input voltage range, no zero...
read more

How to work with the ADC unit of an AVR Micro-controller

Mathew Kevin July 9, 2017 3 Comments
Introduction                 The first step to digital signal processing is to convert a signal into digital data, and here the Analog to Digital Converter devices comes into action. Some of the AVR micro controllers include ADC unit in their features. This is a very useful unit for measurement related applications. The ADC used in AVR micro controllers are of successive approximation converter type. Read the Wikipedia article on SAR type ADC here. And you can read the Circuitstoday article...
read more

Working with External Interrupts in AVR micro controller

Mathew Kevin July 10, 2017 3 Comments
Introduction to Interrupts                 Although micro controllers can accept inputs from Digital I/O Ports,interrupts are preferred for accepting inputs generated by external events. This is mainly because of the less attention required for an interrupt based program. An Interrupt Event directs the flow of program execution to a totally independent piece of code, known as “Interrupt Sub-Routine”. There are many sources of Interrupts that are available for a micro controller. Most of them are generated by the internal modules...
read more

How to Establish A PC-Micro controller USART communication

Mathew Kevin July 10, 2017 8 Comments
 Introduction USART is one of the primitive inter-device communication protocols. It is not used in modern computers. But still, a few mother boards come with the module necessary for an USART communication. Here, in the case of PCs, the port is known as COM port and it follows RS232 protocol. It is no different from USART except for the voltage levels and some additional signals. Commonly MAX232 IC is used to translate the voltage level. MAX232 is a simple...
read more

Water Level Controller using 8051

admin January 23, 2018 178 Comments
Water level controller using 8051. A water level controller  using 8051 is shown in this article. A lot of water level controller projects have been published in this website but this is the first one based on a microcontroller. This water level controller monitors the level of the over head tank  and automatically switches on the water pump when ever the level goes below a preset limit. The level of the over head tank is indicated using 5 LED’s...
read more

Bubble Sorting with example in C/C++/Java

jojo September 17, 2012 6 Comments
Bubble sorting is one of the simplest sorting algorithm that we can use to sort an array or a structure. Though it is so simple to implement in a C program, bubble sort is also considered as an inefficient sorting algorithm. Bubble sort comes handy in cases where the total number of elements to be sorted is so small (may be in the 100’s range). When the data size is large/huge bubble sort is seldom used in practical programming world. Let’s...
read more

How to Work With SPI in AVR Micro Controllers

Mathew Kevin July 10, 2017 12 Comments
Introduction                 Micro controllers support wired communication protocols. Most of the time, microcontrollers come along with internal modules that support these protocols. The commonly supported protocols are: UART or USART communication SPI TWI USI etc. And few advanced protocols like: USB CAN Ethernet  etc. SPI stands for Serial Peripheral Interface and it is the simplest among all the communication protocols. 8bit data registers in the devices are connected by wires. These data registers works as shift registers and one...
read more

Void pointers in C

jojo July 26, 2012 8 Comments
In this article we are learning about “void pointers” in C language. Before going further it will be good if you refresh about pointers by reading – Introduction to pointers in C.  A pointer variable is usually declared with the data type of the “content” that is to be stored inside the memory location (to which the pointer variable points to). Ex:- char  *ptr;       int  *ptr;      float  *ptr; A pointer variable declared using a...
read more

Introduction to pointers in C

jojo July 25, 2012 9 Comments
The basic purpose of developing a C programming tutorial for this website – CircuitsToday – is to make it useful for people who wish to work with embedded systems. Really good C programming skill is an essential to work with embedded systems and “Pointers” is the most important concept in C that should be mastered by an embedded systems programmer. “Pointers” are so important because it enables a programmer to work directly with memory of the system. Memory of...
read more

Compilers vs Interpreters – An overview of the differences

jojo July 19, 2012 5 Comments
It is a general notion that people try to classify programming languages as either “compiled” language or “interpreted” language. Even experienced programmers tend to get confused here! But the fact is, programming languages are neither “compiled” nor “interpreted” types. They can be both at the same time. Compiling or interpreting -both are 2 different ways of implementing the same program written using a programming language. A program written in C language can either be compiled or can be interpreted....
read more

How to Work With 32K crystal and AVR Microcontroller

Mathew Kevin July 10, 2017 4 Comments
This article teaches you how to add 32K external crystal source to  AVR micro controller (Atmega8 ) with circuit diagram & C program. Introduction Timing-is one of the basic function, performed by the micro controllers. Every microcontroller has at least one timer/counter module in its architecture.  However if the counter is clocked internally a few issues may arise in some cases. Sometimes the clock frequency may not stable, or sometimes the clock frequency may be too high than necessary....
read more

How to use Turbo C/C++ to run your first C program

jojo July 18, 2012 20 Comments
There is no one in this world who is born as a programmer 😉 To write efficient programs using any languages you have to learn it by doing! You have to write as many different programs using as many different algorithms. You have to break codes, make errors, debug errors and sometimes you have to approach the same problem using 2 or 3 different logics. To learn “C language” efficiently, you must write a lot of different C programs...
read more

Download and Install Turbo C/C++ for Windows 7 (32 bit and 64 bit)

jojo July 18, 2012 31 Comments
There are many compilers available for C language for different platforms, of which Turbo C is the one used commonly for Windows operating systems. You may all know that Turbo C/C++ is a 16 bit compiler which was originally developed for Windows versions up to XP. Nowadays most people uses latest versions of Windows like Vista and Windows 7. The primary reason behind this shift in usage of operating systems is “stability”! Windows XP is an unstable operating system...
read more

Transmitting data from PC to LCD using UART of PIC16F628A

Anish July 17, 2012 12 Comments
Our world relies upon Communication. In today’s world, we can make almost anything communicate with everything! How about communication between a PC and a microcontroller (PIC)? Now, before making a PC and a PIC talk, if you are not sure about USART module and LCD, here are some good articles about them to just refresh: 1. PIC USART module – CT 2. A note on character LCD displays – CT In layman terms, a USART module in a PIC...
read more

Languages Used for Embedded Firmware Development

Mathew Kevin July 10, 2017 4 Comments
Introduction                 Every digital device that is driven by a CPU core processes some sort of digital information. Not all of them are digital data. In fact, major portion of them are some kind of instruction to the CPU. As we all know, they are patterns of zeros and ones. In groups, those zeros and ones are called as nibbles (a group of 4), bytes (A group of 8), half word (group of 16) and word (group of 32)....
read more