Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (790.86 KB, 33 trang )
Trường CĐ CNTT Hữu Nghị Việt - Hàn
4.1.2
Hệ Thống Đèn Giao Thông
Chế độ thấp điểm
Hình 4.2 Sơ đồ giải thuật chế độ thấp điểm
Đồ Án Môn Học Vi Xử Lý
20
Trường CĐ CNTT Hữu Nghị Việt - Hàn
4.1.3
Hệ Thống Đèn Giao Thông
Chế độ cao điểm
Hình 4.3 Sơ đồ giải thuật chế độ cao điểm
4.1.4
Chế độ nghỉ
Hình 4.4 Sơ đồ giải thuật chế độ nghỉ
Đồ Án Môn Học Vi Xử Lý
21
Trường CĐ CNTT Hữu Nghị Việt - Hàn
Hệ Thống Đèn Giao Thông
4.2 Chương trình C viết cho mạch điều khiển hệ thống đèn giao thông
#include
#include
#define LED_D_1
P2_0
#define LED_V_1
P3_7
#define LED_X_1
P3_6
#define LED_D_2
P2_3
#define LED_V_2
P2_2
#define LED_X_2
P2_1
#define LED_DBX1
P1_4
#define LED_DBD1
P1_5
#define LED_DBX2
P1_6
#define LED_DBD2
P1_7
#define OFF_LED
((LED_D_1 = 1),(LED_V_1 = 1),(LED_X_1 = 1),
(LED_D_2 = 1),(LED_V_2 = 1),(LED_X_2 = 1),(LED_DBX1 = 1),(LED_DBD1 =
1),(LED_DBX2 = 1),(LED_DBD2 = 1))
void delay (unsigned int number);
// khai bao bien
unsigned char code bang_ma[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82,
0xf8, 0x80, 0x90};
//FLASH ROM
char dem, time, n1, n2, n3, n4;
// RAM
char bt, cd, td;
char tg_d1, tg_v1, tg_x1, tg_d2, tg_v2, tg_x2;
char d1, v1, x1, d2, v2, x2;
//ham Delay
void delay (unsigned int number)
{
unsigned char temp;
while(number)
{
temp = 200;
while (temp--);
number--;
}
Đồ Án Môn Học Vi Xử Lý
22
Trường CĐ CNTT Hữu Nghị Việt - Hàn
Hệ Thống Đèn Giao Thông
}
// ham khai bao dung ngat timer 0& 1
void Setup_Timer0(void)
{
TMOD = 0x11;
// timer0 & 1 : CHE DO 1
TH0 = 0xEC;
TL0 = 0x77;
TH1 = 0x3C;
TL1 = 0xAF;
ET0 = 1;
ET1 = 1;
EA = 1;
TF0 = 0;
TF1 = 0;
TR0 = 1;
TR1 = 1;
}
// ham ngat timer 0
void T0_ISR(void)
== quet led
interrupt1
{ TR0 = 0;
TH0 = 0xEC;
TL0 = 0x76;
if (td == 0)
{// qui doi gia tri
if (d1)
{
n1 = tg_d1 / 10;
n2 = tg_d1 % 10;
};
if (x1)
{
n1 = tg_x1 / 10;
n2 = tg_x1 % 10;
};
Đồ Án Môn Học Vi Xử Lý
23