Diễn đàn Điện tử 16A - NĐ
Chào mừng bạn đã đến với diễn đàn Điện tử 16A - NĐ!
Nếu bạn chưa là thành viên của điên đàn xin mời bạn đăng ký thành viên để đc quyền sử dụng tất cả các chức năng của diễn đàn.
Nếu bạn đã là thành viên thì xin mời bạn đăng nhâp.
Chúc bạn có những giây phút vui vẻ trên diễn đàn!

Join the forum, it's quick and easy

Diễn đàn Điện tử 16A - NĐ
Chào mừng bạn đã đến với diễn đàn Điện tử 16A - NĐ!
Nếu bạn chưa là thành viên của điên đàn xin mời bạn đăng ký thành viên để đc quyền sử dụng tất cả các chức năng của diễn đàn.
Nếu bạn đã là thành viên thì xin mời bạn đăng nhâp.
Chúc bạn có những giây phút vui vẻ trên diễn đàn!
Diễn đàn Điện tử 16A - NĐ
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Chương trình điều khiển đèn giao thông

3 posters

Go down

Chương trình điều khiển đèn giao thông Empty Chương trình điều khiển đèn giao thông

Bài gửi by pdkdthn Sun Apr 25, 2010 7:47 pm

ĐÈN GIAO THÔNG ĐIỀU KHIỂN TẠI 1 NGÃ TƯ


Ø ĐẶT VẤN ĐỀ:

_Bạn có nghĩ tại 1 ngã tư không có đèn giao thông sẽ như thế nào? Khi đó việc lưu thông sẽ trở nên khó khăn trong lưu thông, dễ gây ùn tắt…Để cho việc lưu thông trở nên dễ dàng hơn ta cần có đèn giao thông. Đèn giao thông sẽ giúp cho việc điều tiết xe lưu thông qua ngã tư thuận tiện hơn, tránh gây ra việc ùn tắt tại giao lộ.

Ø Làm thế nào để hiển thị các đèn đỏ-xanh-vàng?

_Làm thế nào để hiển thị giá trị trên led 7 đoạn ? Và đếm ngược giá trị như thế nào?

_ Dạng dữ liệu xuất ra port điều khiển( hiển thị trên led 7 đoạn) dạng BCD hay 7 đoạn?

_Cho các đèn sáng như sau:

ĐÈN THỜI GIAN

DO2 39S

VANG2 4S

XANH2 25S

DO1 29S

VANG1 4S

XANH1 35S

_Thời gian DO2 sáng = thời gian XANH1sáng + thời gian VANG1 sáng=39s

_ Thời gian DO1 sáng = thời gian XANH2 sáng + thời gian VANG2 sáng=29s

Ø Cách thực hiện:

_Đầu tiên, ta gán các địa chỉ cho các nhãn sau:

_ XANH1 EQU P1.2

VANG1 EQU P1.1

DO1 EQU P1.0

XANH2 EQU P1.5

VANG2 EQU P1.4

DO2 EQU P1.3

_ Nạp giá trị cho R0(=35h),R1(=39h), cho đèn DO2 sáng(39s), đèn XANH1 sáng(35s), giảm các giá trị R0, R1(mỗi lần đi 1), xuất các giá trị R0, R1 ra hiển thi trên led 7 đoạn qua các port P2, P3. Sau khi R0 giảm tới 0h (lúc đó R1=4h) ta nạp R0=4h và cho đèn XANH1 tắt, cho đèn VÀNG1 sáng(4s) cùng đèn DO2.

_ Khi R0, R1 bằng 0h, đèn DO2 và đèn VANG1 tắt, nạp giá trị cho R0(=29h), R1(=25h) đồng thời cho đèn DO1 sáng(29s) và đèn XANH2 sáng(25s), giảm giá trị R0, R1 và hiển thị các trị R0, R1 trên led 7 đoạn qua port P2, P3. Khi R1 giảm đến 0h, cho đèn XANH2 tắt, nạp R1=4h và cho đèn VANG2 sáng(4s) cùng đèn DO1, khi R0,R1 bằng 0h, đèn DO1 và VANG2 tắt, sau đó quay trở lại thực hiện bước trên.Hai quá trình trên lặp đi lặp lại.

_ Do dạng dữ liệu xuất ra led 7 đoạn là dạng BCD nên khi giảm đến số 0 ta phải xét điều kiện ở các giá trị ( 02Fh, 01Fh,00Fh,0h) cho R0, R1(không để hiển thị số hexa); mỗi lần như vậy ta nạp lại giá trị cho R0, R1, rồi xuất các giá trị R0, R1 ra P2, P3 cho hiển thị lên led 7 đoạn.Xuất trực tiếp giá trị BCD ra led 7 đoạn không cần vi mạch giải mã.

_Mỗi số hiển thị trên led 7 đoạn trong 1s

*Tập lệnh chương trình:


;CHUONG TRINH DIEU KHIEN DEN GIAO THONG TAI 1 NGA TU

$MOD51

ORG 00H

XANH1 EQU P1.2

VANG1 EQU P1.1

DO1 EQU P1.0

XANH2 EQU P1.5

VANG2 EQU P1.4

DO2 EQU P1.3

MAIN:

MOV R0,#35H ;BIEN DEM SO TRANG THAI HIEN THI

MOV R1,#39H



LAP: MOV P1,#00H ;XOA P1

SETB DO2 ;DEN DO2 SANG 39S

SETB XANH1 ;DEN XANH1 SANG 35S

MOV P2,R0 ;HIEN THI

MOV P3,R1 ;HIENTHI

DEC R0 ;GIAM GIA TRI

DEC R1

LCALL DELAY1S ;TAO TRE 1S

CJNE R0,#02FH,LAP ;KIEM TRA R0=02FH?

MOV R0,#29H ;NAP LAI BIEN DEM CHO R0

MOV R1,#33H



LL: MOV P2,R0 ;HIEN THI

MOV P3,R1 ;HIENTHI

DEC R0 ;GIAM GIA TRI

DEC R1

LCALL DELAY1S

CJNE R1,#02FH,LL ;KIEM TRA R1=02FH?

MOV R0,#25H ;NAP LAI BIEN DEM CHO R1

MOV R1,#29H



LL1: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R0,#01FH,LL1 ;KIEM TRA R0=01FH?

MOV R0,#19H ;NAP LAI BIEN DEM CHO R0

MOV R1,#23H



LL2: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R1,#01FH,LL2 ;KIEM TRA R1=01FH?

MOV R0,#15H ;NAP LAI BIEN DEM CHO R1

MOV R1,#19H



LL3: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R0,#0FH,LL3 ;KIEM TRA R0=0FH?

MOV R0,#09H ;NAP LAI BIEN DEM CHO R0

MOV R1,#13H



LL4: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R1,#00FH,LL4 ;KIEM TRA R1=0FH?

MOV R0,#05H ;NAP LAI BIEN DEM CHO R0

MOV R1,#09H



LL5: MOV P2,R0

MOV P3,R1

DEC R1

DEC R0

LCALL DELAY1S

CJNE R0,#00H,LL5 ;KIEM TRA R0=00H?

MOV R0,#04H ;NAP LAI BIEN DEM CHO R0



LAP1:

CLR XANH1 ; DEN XANH1 TAT

SETB VANG1 ; DEN VANG1 SANG 4S

MOV P3,R1

MOV P2,R0

DEC R1

DEC R0

LCALL DELAY1S

CJNE R1,#00,LAP1 ;KIEM TRA R1=00H?

MOV R0,#29H ;NAP LAI BIEN DEM CHO R0

MOV R1,#25H ;NAP LAI BIEN DEM CHO R1



LAP2: MOV P1,#00H

SETB DO1 ;DEN DO1 SANG 29S

SETB XANH2 ;DEN XANH2 SANG 25S

MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R1,#01FH,LAP2

MOV R1,#19H

MOV R0,#23H



LT0: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R0,#01FH,LT0

MOV R0,#19H

MOV R1,#15H



LT1: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R1,#00FH,LT1

MOV R0,#13H

MOV R1,#09H



LT2: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R0,#00FH,LT2

MOV R0,#09H

MOV R1,#05H



LT3: MOV P2,R0

MOV P3,R1

DEC R0

DEC R1

LCALL DELAY1S

CJNE R1,#00H,LT3

MOV R1,#04 ;NAP LAI BIEN DEM CHO R1



LAP3: CLR XANH2 ;DEN XANH2 TAT

SETB VANG2 ;DEN VANG2 SANG 4S

MOV P3,R1

MOV P2,R0

DEC R1

DEC R0

LCALL DELAY1S

CJNE R1,#00H,LAP3 ;KIEM TRA R1=00H?

LJMP MAIN ;LAP LAI

;**********CHUONG TRINH TAO TRE THOI GIAN 1S*******

DELAY1S:

PUSH 00H

MOV R0,#100

MOV TMOD,#10H

LOOP:

MOV TH1,#0D8H

MOV TL1,#0F0H

SETB TR1

JNB TF1,$

CLR TR1

CLR TF1

DJNZ R0,LOOP

POP 00H

RET

END
pdkdthn
pdkdthn
Super Moderator
Super Moderator

Tổng số bài gửi : 55
Ngày đăng ký : 23/10/2009
Tuổi : 34
Đến từ : Hà Nam

http://pdkdthn.tk/

Về Đầu Trang Go down

Chương trình điều khiển đèn giao thông Empty Re: Chương trình điều khiển đèn giao thông

Bài gửi by tuanfet1987 Thu May 13, 2010 12:11 am

cam on nhieu!

tuanfet1987
Thành viên
Thành viên

Tổng số bài gửi : 1
Ngày đăng ký : 13/05/2010

Về Đầu Trang Go down

Chương trình điều khiển đèn giao thông Empty Re: Chương trình điều khiển đèn giao thông

Bài gửi by hanhan Wed May 19, 2010 11:20 pm

chuong trinh nay dai wa! co chuong trinh den giao thong giao tiep may tinh bang VC++ k?

hanhan
Thành viên
Thành viên

Tổng số bài gửi : 2
Ngày đăng ký : 19/05/2010

Về Đầu Trang Go down

Chương trình điều khiển đèn giao thông Empty Re: Chương trình điều khiển đèn giao thông

Bài gửi by pdkdthn Thu May 20, 2010 5:25 pm

Có chứ nhưng mình sử dụng 4 IC giải mã
Sơ đồ:Chương trình điều khiển đèn giao thông GT
Chương trình:
//***DK DEN GIAO THONG***//
#include
#define COT1 P1
#define COT2 P3
#define D1 P2_0
#define V1 P2_1
#define X1 P2_2
#define D2 P2_3
#define V2 P2_4
#define X2 P2_5
void delay (unsigned int ms)
{
unsigned int i ;
unsigned char j ; //khai bien 1 byte
for (i=0;i
for (j=0;j<125;j++)
{}
}
void main(){
while(1) // Vong lap vo han
{
COT1=0x32;COT2=0x52;X1=0;V2=1;D1=1;D2=0;delay(2000);
COT1=0x22;COT2=0x42;delay(2000);
COT1=0x12;COT2=0x32;delay(2000);
COT1=0x02;COT2=0x22;delay(2000);
COT1=0x91;COT2=0x12;delay(2000);
COT1=0x81;COT2=0x02;delay(2000);
COT1=0x71;COT2=0x91;delay(2000);
COT1=0x61;COT2=0x81;delay(2000);
COT1=0x51;COT2=0x71;delay(2000);
COT1=0x41;COT2=0x61;delay(2000);
COT1=0x31;COT2=0x51;delay(2000);
COT1=0x21;COT2=0x41;delay(2000);
COT1=0x11;COT2=0x31;delay(2000);
COT1=0x01;COT2=0x21;delay(2000);
COT1=0x90;COT2=0x11;delay(2000);
COT1=0x80;COT2=0x01;delay(2000);
COT1=0x70;COT2=0x90;delay(2000);
COT1=0x60;COT2=0x80;delay(2000);
COT1=0x50;COT2=0x70;delay(2000);
COT1=0x40;COT2=0x60;delay(2000);
COT1=0x30;COT2=0x50;delay(2000);
COT1=0x20;COT2=0x40;delay(2000);
COT1=0x10;COT2=0x30;delay(2000);
COT1=0x00;COT2=0x20;delay(2000);
COT1=0x00;COT2=0x10;V1=0;X1=1;delay(2000);
COT1=0x00;COT2=0x00;delay(2000);
COT1=0x91;COT2=0x71;D1=0;X2=0;V1=1;D2=1;X1=1;delay(2000);
COT1=0x81;COT2=0x61;delay(2000);
COT1=0x71;COT2=0x51;delay(2000);
COT1=0x61;COT2=0x41;delay(2000);
COT1=0x51;COT2=0x31;delay(2000);
COT1=0x41;COT2=0x21;delay(2000);
COT1=0x31;COT2=0x11;delay(2000);
COT1=0x21;COT2=0x01;delay(2000);
COT1=0x11;COT2=0x90;delay(2000);
COT1=0x01;COT2=0x80;delay(2000);
COT1=0x90;COT2=0x70;delay(2000);
COT1=0x80;COT2=0x60;delay(2000);
COT1=0x70;COT2=0x50;delay(2000);
COT1=0x60;COT2=0x40;delay(2000);
COT1=0x50;COT2=0x30;delay(2000);
COT1=0x40;COT2=0x20;delay(2000);
COT1=0x30;COT2=0x10;delay(2000);
COT1=0x20;COT2=0x00;delay(2000);
COT1=0x10;COT2=0x00;V2=0;X2=1;delay(2000);
COT1=0x00;COT2=0x00;delay(2000);
}}
pdkdthn
pdkdthn
Super Moderator
Super Moderator

Tổng số bài gửi : 55
Ngày đăng ký : 23/10/2009
Tuổi : 34
Đến từ : Hà Nam

http://pdkdthn.tk/

Về Đầu Trang Go down

Chương trình điều khiển đèn giao thông Empty Re: Chương trình điều khiển đèn giao thông

Bài gửi by hanhan Fri May 21, 2010 10:35 am

cám ơn nhé, nhưng mình muốn hỏi là có chương trình đèn giao thông giao tiếp với máy tính qua cổng COM bằng VC++ k? còn về code thì mình đã viết bằng assembly rồi, có điều chưa chạy được phần hẹn giờ cho đèn vàng nhấp nháy.

hanhan
Thành viên
Thành viên

Tổng số bài gửi : 2
Ngày đăng ký : 19/05/2010

Về Đầu Trang Go down

Chương trình điều khiển đèn giao thông Empty Re: Chương trình điều khiển đèn giao thông

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết