Beruflich Dokumente
Kultur Dokumente
=========================================================================
#include<mega16.h>
#include<delay.h>
unsigned char count;
interrupt[EXT_INT0]void car_in()
{ count++;}
interrupt[EXT_INT1]void car_out()
{ count--;}
void main()
{
unsigned char DISP[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
DDRA=0xFF;
PORTA=0x00;
MCUCR=0x0F;
GICR|=0xC0;
#asm("sei");
while(1)
{ PORTA=DISP[count]; }
}
=========================================================================
LCD DiSPLaY
=========================================================================
#include<mega16.h>
#include<delay.h>
#define CPRT PORTB //Control port
#define DPRT PORTA //Data port
#define RS PORTB.0
#define E PORTB.1
void init_LCD()
{
DDRA=0xFF;
E=0;
delay_ms(2); //Not Necessary
cmnd(0x38); //2 line 5x7 matrix
cmnd(0x0E); //display on,cursor on
cmnd(0x01); //clear LCD Screen
delay_ms(2); //Minimum 2 Milli-Seconds
cmnd(0x06); //shift cursor right
}
void main()
{
DDRA=0xFF;
DDRB=0xFF;
init_LCD(); //initialize LCD
lcd_goxy(1,1); //1st Row 1st Box
print("0123456789ABCDEF");
lcd_goxy(1,2); //2nd Row 1st Box
print("FEDCBA9876543210");
while(1); //Not Necessary
}
=========================================================================
BlinK
=========================================================================
#include<mega16.h>
#include<delay.h>
#define a_bit PORTB.4
void main()
{
DDRB=0x10;
a_bit=0;
while(1)
{
a_bit=~a_bit;
delay_ms(100);
}
}
=========================================================================
8-BiT CouNteR
=========================================================================
#include<mega16.h>
#include<delay.h>
unsigned char z;
void main()
{
DDRC=255;
PORTC=0;
while(1)
{
for(z=0;z<=255;z++)
{
PORTC=z;
delay_ms(400);
}
}
}