Hi, hôm nay Chip giới thiệu cho các bạn 3 phương pháp lập trình Hiển Thị Led 7 Thanh kết hợp IC số 74LS47, 74HC595 để tối ưu chân Vi Điều Khiển.

I. Phương pháp dùng 2 IC 74LS47 kết hợp hiển thị 2 Led 7 Thanh: Mất 1 Port của VĐK là 8 Chân
II. Phương Pháp dùng 1 IC 74HC595 kết hợp 2 tranzitor hiển thị 2 Led 7 Thanh: mất 5 chân VĐK
III. Phương Pháp dùng 1 IC 74LS47 kết hợp 2 tranzior hiển thị 2 Led 7 Thanh: Mất 6 chân VĐK

Tất cả các phương pháp trên Chip tích hợp trong cùng 1 code rất tiện sử dụng:


Code chương trình biên dịch bằng phần mềm Keil C 4:

/*********DESIGNER BY CHIPKOOL_ONLINE************/
//*************WWW.ECHIPKOOL.COM*************//ADMIN
//************WWW.CODIENTU.ORG***************/MOD
#include <REGX52.H>
#include <stdio.h>
#include <math.h>
#define bat 1
#define tat 0
/*************LAP TRINH VOI 74HC595**************/
sbit sh = P2^0;
sbit ds = P2^1;
sbit st = P2^2;
sbit Led1 = P2^3;
sbit Led2 = P2^4;
int m[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int donvi,chuc;
unsigned char num;
/****************LAP TRINH 2 IC 74LS47************/
int M47[11]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0x01};
unsigned char l;
/************LAP TRINH 74LS47 + QUET*************/
int MQ47[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
unsigned char p,so;
int donvi1,chuc1;
sbit Led3 = P3^4;
sbit Led4 = P3^5;
/**************CHUONG TRINH TRE***********************************/
void delay(unsigned int ms)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<125;j++){;}
}
/****************CHUONG TRINH CHUYEN NOI TIEP SONG SONG 74HC595*******/
void conv(unsigned char x)
{
unsigned int i,temp;
for(i=0;i<8;i++)
{
temp=x;
temp=temp&0x80;
if(temp==0x80)
ds=1;   
else
ds=0;    
x*=2;   
sh=1;   
sh=0;
st=1;
st=0;  
}
}
/**********CHUONG TRINH HIEN THI CHO 74HC595 + 7 DOAN********/
void hienthi(void)
{
int c;
for(c=0;c<100;c++)
{
chuc=num/10;
donvi=num%10;
conv(m[chuc]);
Led1 = bat;
delay(1);
Led1 = tat;
conv(m[donvi]);
Led2 = bat;
delay(1);
Led2 = tat;
}
}
/*****************CHUONG TRINH HIEN THI LED 7447**************/
 void hienthi47(void)
{
int n;
for(n=0;n<20;n++)
{
chuc1=so/10;
donvi1=so%10;
P3 =MQ47[chuc1];
Led3 = bat;
delay(1);
Led3 = tat;
P3 = MQ47[donvi1];
Led4 = bat;
delay(1);
Led4 = tat;
}
}
/***********CHUONG  TRINH HOAT DONG 2 IC 7447 + 2 LED 7 DOAN*/
void chay7447(void)
{
for(l=0;l<11;l++)
{
P0=M47[l];
delay(800);
}
}
/***********CHUONG TRINH HOAT DONG 74HC595 + 2 LED & DOAN QUET*/
void chay74hc595(void)
{
   hienthi();
num=num+1;
if(num==11)num=0;
delay(300);
}

/**********CHUONG TRINH HOAT DONG 1 IC 7447 + QUET************/
void chay7447quet(void)
{
  hienthi47();
so=so+1;
if(so==11)so=0;
delay(200);
}

/**********CHUONG TRINH CHINH**************************/
void main()
{
while(1)
{
//chay7447(); // Phuong phap 1
//chay74hc595();// Phuong Phap 2
chay7447quet(); // Phuong Phap 3
}  

}


( File Mô Phỏng + code)

Nguồn: Echipkool - Chia sẻ kiến thức - Kết nối đam mê điện tử

Đăng nhận xét

Đăng nhận xét

Author Name



Tôi là Ngọc Anh. Tôi đến từ Nghệ An. Tôi tốt nghiệp một trường đại học tại Sài Gòn. Hiện tôi đang phát triển công ty riêng. Liên lạc với tôi qua:






Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.