0% found this document useful (0 votes)
9 views7 pages

Sáng dần từ 1 đến 8 và tắt dần từ 8 về 1

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)
9 views7 pages

Sáng dần từ 1 đến 8 và tắt dần từ 8 về 1

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/ 7

Sáng dần từ 1 đến 8 và tắt dần từ 8 về 1

#include <mega32.h>
#include <delay.h>
int i,tam;
void main(void)
{ DDRC=0xff;
PORTC=0x00;
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);
}
}
}
8 led đơn sáng tắt
#include <mega32.h>
#include <delay.h>
void main(void)
{ DDRC=0xff;
PORTC=0x00;
while (1)
{
PORTC=0Xff;
delay_ms(100);
PORTC=0x00;
delay_ms(100);
}
}
Led 7 đoạn tự động đếm từ 0 đến 9
#include <mega32.h>
#include <delay.h>
char led7doan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int i=0;
void main(void)
{ DDRC=0xff;
PORTC=0xff;
while (1)
{
PORTC=led7doan[i];
delay_ms(500);
i=i+1 ;
if (i>9) i=0;
}
}
Sử dụng 2 nút điều khiển 8 led đơn bật tắt
#include <mega32.h>
#include <delay.h>
#define bat PIND.2
#define tat PIND.3
void main(void)
{ DDRC=0xff;
PORTC=0x00;
DDRD=0;
PORTD=0xff;
while (1)
{ if (bat==0)
{ delay_ms(100);
PORTC=0xff;
delay_ms(100);
}
if (tat==0)
{
delay_ms(100);
PORTC=0x00;
}
}
}
Sáng 3 lần
#include <mega32.h>
#include <delay.h>
int tam, i, j;
void main(void)
{
PORTC=0;
DDRC= 0xff;
for( i = 0; i < 3 ; i++)
{
PORTC = 0xff;
delay_ms(300);
PORTC = 0;
delay_ms(300);
}
for (i=0; i <2; i++)
{ tam = 0;
for(j =0; j < 8; j++)
{
tam = (tam<<1)|0X01;
PORTC= tam;
delay_ms(50);
}
for( j = 0; j < 8; j++)
{
tam = (tam>>1);
PORTC = tam;
delay_ms(50);
}
}
}
Nút nhấn
#include <mega32.h>
#include <delay.h>
int tam, i, j, a;
void main(void)
{
PORTC=0;
DDRC= 0xff;
DDRD=0;
PORTD=0xff;
while(1)
{
if( PIND.2== 0)
{
delay_ms(20);
if(!PIND.2)
{
a++;
while(!PIND.2){;}
if( a == 3 ) a = 0;
}
if (a == 1)
{
for( i = 0; i < 3 ; i++) //sang tat 3 lan
{
PORTC = 0XFF;
delay_ms(50);
PORTC = 0;
delay_ms(50);
}
}
if (a == 2)
{
for (i=0; i <2; i++) // sang tat trai sang phai 2 lan
{
tam = 0;
for(j =0; j < 8; j++)
{
tam = (tam<<1)|0X01;
PORTC= tam;
delay_ms(50);
}
for( j = 0; j < 8; j++)
{
tam = (tam>>1);
PORTC = tam;
delay_ms(50);
}
}
}
if ( a == 0 ) PORTC = 0;
}
}
}
7 đoạn đếm 50
#include <mega32.h>
#include <delay.h>
char led[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int i,ch,dv;
void main(void)
{
DDRC=0XFF;
DDRA=0XFF;
PORTC=0XFF;
PORTA=0XFF;
while (1)
{ for (i=0;i<50;i++)
{ ch=i/10;
dv=i%10;
PORTC=led[ch];
PORTA=led[dv];
delay_ms(300);
}
}
}
7 đoạn nut tăng giảm
#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;
PORTA=0xFF;
DDRA=0xFF;
DDRD=0;
PORTD=0xff;
number=50;
while (1)
{
if (Up==0)
{
delay_ms(20);
if (Up==0)
{
while(Up==0);
chuc=number/10;
dv=number%10;
PORTC=ma7doan_anode[chuc];
PORTA=ma7doan_anode[dv];
number++;

}
if (number>99)
number=0;
}
if (Down==0)
{
delay_ms(30);
if (Down==0)
{
while(Down==0);
chuc=number/10;
dv=number%10;
PORTC=ma7doan_anode[chuc];
PORTA=ma7doan_anode[dv];
number--;
}
if (number<0)
number=99;
}
chuc=number/10;
dv=number%10;
PORTC=ma7doan_anode[chuc];
PORTA=ma7doan_anode[dv];
delay_ms(200);
}
}

You might also like