- Aim: To make a Digital Timer using ATmega16 microcontroller and seven segment displays.
- Code:
#define F_CPU 8000000UL
#include<avr/io.h>
#include<util/delay.h>
int main()
{
DDRD=0xFF;
DDRB=0xFF;
DDRC=0xFF;
DDRA=0xFF;
char ar[10]={0x81,0xF3,0x49,0x61,0x33,0x25,0x05,0xF1,0x01,0x21};
int i,j,k,l,m,n,o,p;
for(i=0;i<3;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<6;k++)
{
for(l=0;l<10;l++)
{
for(m=0;m<6;m++)
{
for(n=0;n<10;n++)
{
for(o=0;o<10;o++){
for(p=0;p<10;p++){
if(j==2 && i==4){
j=0;
i=0;
}
PORTD=0b000101010;
PORTB=ar[n];
PORTC=ar[l];
PORTA=ar[j];
_delay_ms(9);
PORTD=0b000010101;
PORTB=ar[m];
PORTC=ar[k];
PORTA=ar[i];
_delay_ms(1);
}}}}}}}}}
#include<avr/io.h>
#include<util/delay.h>
int main()
{
DDRD=0xFF;
DDRB=0xFF;
DDRC=0xFF;
DDRA=0xFF;
char ar[10]={0x81,0xF3,0x49,0x61,0x33,0x25,0x05,0xF1,0x01,0x21};
int i,j,k,l,m,n,o,p;
for(i=0;i<3;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<6;k++)
{
for(l=0;l<10;l++)
{
for(m=0;m<6;m++)
{
for(n=0;n<10;n++)
{
for(o=0;o<10;o++){
for(p=0;p<10;p++){
if(j==2 && i==4){
j=0;
i=0;
}
PORTD=0b000101010;
PORTB=ar[n];
PORTC=ar[l];
PORTA=ar[j];
_delay_ms(9);
PORTD=0b000010101;
PORTB=ar[m];
PORTC=ar[k];
PORTA=ar[i];
_delay_ms(1);
}}}}}}}}}
- Hardware information:
PortB= Seconds
PortC= Minutes
PortA= Hours
- Proteus Simulation:
Digital timer simulation |
- Constraints:
1) To reset, Close the program and the restart.
2) Uses nearly all ports of micro controller.
- Conclusion:
Comments
Post a Comment