Tải bản đầy đủ - 0 (trang)
Sơ đồ nguyên lý mạch đèn giao thông

Sơ đồ nguyên lý mạch đèn giao thông

Tải bản đầy đủ - 0trang

Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THƠNG Báo



cáo



Vi Xử Lý

----------------------------------------------------------------------------------------------------



Hình 11 : Sơ đồ khối vi xử lý AT89C52.



http://www.ebook.edu.vn



- 22 -



-22-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THƠNG Báo



cáo



Vi Xử Lý

----------------------------------------------------------------------------------------------------



Hình 12 : Khối Led 7 thanh và khối giải mã 74HC595.



Hình 13 : Cột đèn giao thơng.



http://www.ebook.edu.vn



- 23 -



-23-



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THƠNG Báo



Báo cáo mơn học:VI XỬ LÝ



cáo



Vi Xử Lý

----------------------------------------------------------------------------------------------------



3. Chương trình điều khiển

 Chương trình chính (File Main.c) :

#include

#define DELAY



500



//khai bao cac chuong trinh con

void _TachSo(char Dem, char *H1, char *H2);

hang don vi cua thoi gian hien thi cuar led 7 thanh



//Ham tach hàng chuc,



void _HienThiLed(char H1, char H2, char H3, char H4, char H5, char H6, char

H7, char H8);//Ham hien thi led 7 thanh

void _DelayScan(char H1, char H2, char H3, char H4, char H5, char H6, char

H7, char H8, int t);

//Ham chon thu tu led sang

//cac ham bat den

void _DenXanh_1(void);

void _DenVang_1(void);

void _DenDo_1(void);

void _DenXanh_2(void);

void _DenVang_2(void);

void _DenDo_2(void);

//------------CHUONG TRINH

CHINH--------------------------------------------------void main(void)

{

//khai bao bien cuc bo o day



http://www.ebook.edu.vn



- 24 -



-24-



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THƠNG Báo



Báo cáo mơn học:VI XỬ LÝ



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------char H1, H2, H3, H4, H5, H6, H7, H8; // khai bao led

signed char DenXanh_1=30,Den_Vang_1=3,Den_Do_1;

gian hien thi cua den xanh=30s, vang=3s cot 1&3



// khai bao thoi



signed char DenXanh_2=45,Den_Vang_2=3,Den_Do_2;

gian hien thi cua den xanh=45s, vang=3s cot 2&4



// khai bao thoi



signed char Dem=0;



// bien dem



// ham khoi tao ic74HC595

_KhoiTao74HC595();

// khoi tao bien cho các den xanh do vang

DEN_XANH_1=0;

DEN_VANG_1=0;

DEN_DO_1=0;

DEN_XANH_2=0;

DEN_VANG_2=0;

DEN_DO_2=0;



while(1)

{

Den_Do_1 = DenXanh_2 + Den_Vang_2; // thoi gian DenDo1= thoi gian

DenXanh2+DenVang2

Den_Do_2 = DenXanh_1 + Den_Vang_1; // thoi gian DenDo2= thoi gian

DenXanh1+DenVang1

_DenDo_1();



//bat Den Do 1 cot 1&3



for(Dem=Den_Do_1;Dem>=0;Dem--)

DenDo1 cua cot 1&3



http://www.ebook.edu.vn



//Vong lap cho thoi gian hien thi



- 25 -



-25-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THÔNG Báo



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------{

// So sanh, thoi gian hien thi cua DenDo1 <= time DenVang2 thi bat

DenVang2, nguoc lai bat DenXanh2

if(Dem<=Den_Vang_2)

{

_DenVang_2();//Ham Bat DenVang2

_TachSo(Dem,&H1,&H2);//tach hang chuc hang don vi

cua thoi gian hien thi DenVang2 cot 2

_TachSo(Dem,&H5,&H6);//tach hang chuc hang don vi

cua thoi gian hien thi DenVang2 cot 4

}

else

{

_DenXanh_2(); //Bat DenXanh2

_TachSo(Dem-Den_Vang_2,&H1,&H2);//tach hang chuc

hang don vi cua thoi gian hien thi DenXanh2 cot 2

_TachSo(Dem-Den_Vang_2,&H5,&H6);//tach hang chuc

hang don vi cua thoi gian hien thi DenXanh2 cot 4

}

_TachSo(Dem,&H3,&H4);//tach hang chuc hang don vi cua thoi gian

hien thi DenDo1 cot 1

_TachSo(Dem,&H7,&H8);//tach hang chuc hang don vi cua thoi gian

hien thi DenDo1 cot 3

_DelayScan(H1,H2,H3,H4,H1,H2,H3,H4,DELAY);//bat led hien thi

thoi gian cua cac den

}

_DenDo_2();



http://www.ebook.edu.vn



//Bat DenDo2 cot 2&4



- 26 -



-26-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THÔNG Báo



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------for(Dem=Den_Do_2;Dem>=0;Dem--)

//Vong lap cho thoi gian hien thi

DenDo2 cua cot 2&4

{

// So sanh, thoi gian hien thi cua DenDo2 <= time DenVang1 thi bat

DenVang1, nguoc lai bat DenXanh1

if(Dem<=Den_Vang_1)

{

_DenVang_1();//Ham Bat DenVang1

_TachSo(Dem,&H3,&H4); //tach hang chuc hang don vi

cua thoi gian hien thi DenVang1 cot 1

_TachSo(Dem,&H7,&H8); //tach hang chuc hang don vi

cua thoi gian hien thi DenVang1 cot 3

}

else

{

_DenXanh_1(); //Ham Bat DenXanh1

_TachSo(Dem-Den_Vang_1,&H3,&H4); //tach hang chuc

hang don vi cua thoi gian hien thi DenXanh1 cot 1

_TachSo(Dem-Den_Vang_1,&H7,&H8); //tach hang chuc

hang don vi cua thoi gian hien thi DenXanh1 cot 3

}

_TachSo(Dem,&H1,&H2);//tach hang chuc hang don vi cua thoi gian

hien thi DenDo2 cot 2

_TachSo(Dem,&H5,&H6);//tach hang chuc hang don vi cua thoi gian

hien thi DenDo2 cot 4

_DelayScan(H1,H2,H3,H4,H1,H2,H3,H4,DELAY);

hien thi thoi gian cua cac den



//bat led



}



http://www.ebook.edu.vn



- 27 -



-27-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THÔNG Báo



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------}

}

//--------------------------------------------------------------------------------//Ham tach hang don vi va hang chuc cua thoi gian hien thi

void _TachSo(char Dem, char *H1, char *H2)

{

*H2 = Dem%10;

*H1 = Dem/10;

}

//ham truyen du lieu cho cac led 7 thanh

void _HienThiLed(char H1, char H2, char H3, char H4, char H5, char H6, char

H7, char H8)

{

const char

HienThiSo[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x98};

// hien thi so tu 0 --> 7

unsigned char

ThuTuLED[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00}; //khai báo

các thu tu led 7 thanh (8 led)

//day la cac buoc chay cua den, vi den chop tat nen tai moi buoc can them 1

trang thai tat la 0000 0000

//1000 0000 --> 0000 0001 => 0x01

//0100 0000 -> 0000 0010 => 0x02

//0010 0000 -> 0000 0100 => 0x04

//0001 0000 -> 0000 1000 => 0x08

//0000 1000 -> 0001 0000 => 0x10



http://www.ebook.edu.vn



- 28 -



-28-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THÔNG Báo



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------//0000 0100 -> 0010 0000 => 0x20

//0000 0010 -> 0100 0000 => 0x40

//0000 0001 -> 1000 0000 => 0x80

P2 = HienThiSo[H1];

_TruyenData(ThuTuLED[7]);

delay_ms(1);

_TruyenData(ThuTuLED[8]);

P2 = HienThiSo[H2];

_TruyenData(ThuTuLED[6]);

delay_ms(1);

_TruyenData(ThuTuLED[8]);

P2 = HienThiSo[H3];

_TruyenData(ThuTuLED[5]);

delay_ms(1);

_TruyenData(ThuTuLED[8]);

P2 = HienThiSo[H4];

_TruyenData(ThuTuLED[4]);

delay_ms(1);

_TruyenData(ThuTuLED[8]);

P2 = HienThiSo[H5];

_TruyenData(ThuTuLED[3]);

delay_ms(1);



http://www.ebook.edu.vn



- 29 -



-29-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THÔNG Báo



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------_TruyenData(ThuTuLED[8]);

P2 = HienThiSo[H6];

_TruyenData(ThuTuLED[2]);

delay_ms(1);

_TruyenData(ThuTuLED[8]);

P2 = HienThiSo[H7];

_TruyenData(ThuTuLED[1]);

delay_ms(1);

_TruyenData(ThuTuLED[8]);

P2 = HienThiSo[H8];

_TruyenData(ThuTuLED[0]);

delay_ms(1);

_TruyenData(ThuTuLED[8]);

}

//Ham hien thi led 7 thanh

void _DelayScan(char H1, char H2, char H3, char H4, char H5, char H6, char

H7, char H8, int t)

{

t=t/8;

while(t>0)

{

t--;// giup hien thi thoi gian nguoc

_HienThiLed(H1,H2,H3,H4,H5,H6,H7,H8);

}



http://www.ebook.edu.vn



- 30 -



-30-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THÔNG Báo



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------}

// Cac Ham bat den xanh, do, vang tai cac cot den

void _DenXanh_1(void)

{

DEN_XANH_1=1;

DEN_VANG_1=0;

DEN_DO_1=0;

}

void _DenVang_1(void)

{

DEN_XANH_1=0;

DEN_VANG_1=1;

DEN_DO_1=0;

}

void _DenDo_1(void)

{

DEN_XANH_1=0;

DEN_VANG_1=0;

DEN_DO_1=1;

}

void _DenXanh_2(void)

{

DEN_XANH_2=1;

DEN_VANG_2=0;



http://www.ebook.edu.vn



- 31 -



-31-



Báo cáo môn học:VI XỬ LÝ



HỆ THỐNG ĐIỀU KHIỂN ĐÈN GIAO THƠNG Báo



cáo



Vi Xử Lý

---------------------------------------------------------------------------------------------------DEN_DO_2=0;

}

void _DenVang_2(void)

{

DEN_XANH_2=0;

DEN_VANG_2=1;

DEN_DO_2=0;

}

void _DenDo_2(void)

{

DEN_XANH_2=0;

DEN_VANG_2=0;

DEN_DO_2=1;

}

 Chương trình khởi tạo IC 74HC595 và truyền dữ liệu tới Led 7 thanh

(File 74HC595.c)

#include

//Ham khoi tao IC 74HC595

void _KhoiTao74HC595(void)

{

SH_CP=0;

DS=0;

ST_CP=0;

}

//Ham truyen du lieu tu IC74HC595 den led 7 thanh



http://www.ebook.edu.vn



- 32 -



-32-



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Sơ đồ nguyên lý mạch đèn giao thông

Tải bản đầy đủ ngay(0 tr)

×