0% found this document useful (0 votes)
38 views5 pages

1. Led đơn sáng dần và tắt dần

Uploaded by

tranvantruc2502
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views5 pages

1. Led đơn sáng dần và tắt dần

Uploaded by

tranvantruc2502
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

1.

Led đơn sáng dần và tắt dần


#include <mega32.h>
#include <delay.h>
// Declare your global variables here

void main(void)
{ char i, j, tam, tam1;
DDRC=0xff;

while (1)
{

tam1=0;
for(i=0;i<8;i++)
{
tam=0x01;
for(j=0;j<8-i;j++)
{
PORTC=tam|tam1;
delay_ms(50);
tam=tam<<1;
};
tam1=PORTC;
};

}
}
2. 7 đoạn từ 0 tới 9
#include <mega32.h>
#include <delay.h>
unsigned char ma7doan_anode[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92,
0x82, 0xF8, 0x80, 0x90};

void main(void)
{
DDRC= 0XFF;
PORTC= 0XFF;

while (1)
{
int i;
for(i = 0; i<=10;i++)
{
PORTC= ma7doan_anode[i];
delay_ms(50);
}

}
}
3. Led 7 đoạn tăng giảm 1 đv
#include <mega32.h>
#include <delay.h>
#define Down PIND.3
#define Up PIND.2

unsigned char ma7doan_anode[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92,


0x82, 0xF8, 0x80, 0x90};
int number, chuc,dv;
interrupt [EXT_INT0] void ext_int0_isr(void)
{

number++;
chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];
}

interrupt [EXT_INT1] void ext_int1_isr(void)


{

number--;
chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];

void main(void)
{
DDRC=255;
DDRB=255;
DDRD=0;
PORTD=255;
GICR=0xc0;
MCUCR=0x0b;
number=00;

#asm("sei")

while (1)
{

chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];
delay_ms(1000);
}
}
4. Sử dụng nút nhấn điều khiển 8 led đơn
#include <mega32.h>
#include <delay.h>
void main(void)
{
DDRC=0xFF;
PORTC=0X00;
DDRD = 0X00;
PORTD = 0X00;
while (1)
{
if (PIND.2 == 1)
{
PORTC = 0XFF;
}
if (PIND.3 == 1)
{
PORTC = 0X00;
}

}
5. Led 7 đoạn sử dụng nút nhấn 00-99
#include <mega32.h>
#include <delay.h>
#define Down PIND.3
#define Up PIND.2

unsigned char ma7doan_anode[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92,


0x82, 0xF8, 0x80, 0x90};
int number, chuc,dv;

void main(void)
{

PORTC=0xFF;
DDRC=0xFF;
PORTB=0xFF;
DDRB=0xFF;

DDRD=0;
PORTD=0xff;

number=00;

while (1)
{
if (Up==0)
{

while(Up==0);
{
chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];
}
number++;
chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];

if (number>99)
number=0;
}
if (Down==0)
{
while(Down==0);
{
chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];
}
number--;
chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];

if (number<0)
number=0;
}

};
6.
#include <mega32.h>
#include <delay.h>
char i,tam;
void main(void)
{
DDRC=0xff;
PORTC=0;
while (1)
{
tam=0x00;
for(i=0;i<8;i++)
{

tam=(tam<<1)|0x01;
PORTC=tam;
delay_ms(100);
}
for(i=0;i<8;i++)
{
tam=(tam>>1);
PORTC=tam;
delay_ms(100);
}
}
}
7.
#include <mega32.h>
#include <delay.h>
unsigned char ma7doan_anode[10]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92,
0x82, 0xF8, 0x80, 0x90};
int number, chuc,dv;

void main(void)
{
PORTC=0xFF;
DDRC=0xFF;
PORTB=0xFF;
DDRB=0xFF;
number=00;
while (1)
{

chuc=number/10;
dv=number-chuc*10;
PORTC=ma7doan_anode[dv];
PORTB=ma7doan_anode[chuc];
delay_ms(50);

if (number<100)
{
number++;
}
else
number=0;
};

You might also like