?? jtd.txt
字號:
現(xiàn)在的交通燈好象有兩種吧
一種是根據(jù)流量來控制紅綠燈的時(shí)間
另一種就是紅綠燈亮的時(shí)間是固定的
不知道你說的是哪種
前面的我不知道,后面的應(yīng)該比較簡單把
Dai_Weis 于 2005-5-4 12:01:00
/*
******************************************************************************************
* *
* Keil C 89S51 交通信號控制程序 *
* (C) 版權(quán)所有 Dai_Weis@hotmail.com *
* *
******************************************************************************************
*/
#include "reg51.h"
#define UINT unsigned int
#define ULONG unsigned long
#define UCHAR unsigned char
/*
信號燈變量
南北方向綠燈
sbit n_bike_g = P1^0; //自行車
sbit n_right_g = P1^1; //右轉(zhuǎn)
sbit n_up_g = P1^2; //直行
sbit n_left_g = P1^3; //左轉(zhuǎn) 調(diào)頭
南北方向紅燈
sbit n_bike_r = P1^4; //自行車
sbit n_right_r = P1^5; //右轉(zhuǎn)
sbit n_up_r = P1^6; //直行
sbit n_left_r = P1^7; //左轉(zhuǎn) 調(diào)頭
南北方向黃燈
sbit n_bike_y = P3^0; //自行車
sbit n_right_y = P3^1; //右轉(zhuǎn)
sbit n_up_y = P3^2; //直行
sbit n_left_y = P3^3; //左轉(zhuǎn) 調(diào)頭
東西方向綠燈
sbit e_bike_g = P2^0; //自行車
sbit e_right_g = P2^1; //右轉(zhuǎn)
sbit e_up_g = P2^2; //直行
東西方向紅燈
sbit e_bike_r = P2^4; //自行車
sbit e_right_r = P2^5; //右轉(zhuǎn)
sbit e_up_r = P2^6; //直行
東西方向黃燈
sbit e_bike_y = P3^4; //自行車
sbit e_right_y = P3^5; //右轉(zhuǎn)
sbit e_up_y = P3^6; //直行
*/
//延時(shí)
void delay(UINT t, UINT s)
{
while (t)
{
UINT i;
for (i = 0; i < s; i )
{
}
t --;
}
}
//信號燈狀態(tài)
void time_x(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3)
{
P1 = P_P1;
P2 = P_P2;
P3 = P_P3;
delay(150, 65535);
}
void time_s(UCHAR P_P1, UCHAR P_P2, UCHAR P_P3, UCHAR P_P11, UCHAR P_P22)
{
UINT i;
for (i = 0; i < 3; i )
{
P1 = P_P1;
P2 = P_P2;
delay(5, 65535);
P1 = P_P11;
P2 = P_P22;
delay(5, 65535);
}
P1 = P_P1;
P2 = P_P2;
P3 = P_P3;
delay(10, 65535);
}
//主程序
void main()
{
P1 = P2 = P3 = 0x0;
while (1)
{
time_x(0xA5, 0x38, 0x0);
time_s(0xA4, 0x38, 0x1, 0xA5, 0x38);
time_x(0x96, 0x52, 0x0);
time_s(0x92, 0x52, 0x4, 0x96, 0x52);
time_x(0x5A, 0x52, 0x0);
time_s(0x50, 0x50, 0x2A, 0x5A, 0x52);
time_x(0xF0, 0x25, 0x0);
time_s(0xF0, 0x24, 0x20, 0xF0, 0x25);
time_x(0xD2, 0x16, 0x0);
time_s(0xD0, 0x10, 0x62, 0xD2, 0x16);
}
}
給你一個定時(shí)控制的信號系統(tǒng),我只做的簡單的測試,至于延時(shí)我用的軟件,你自己想辦法。^_^
Dai_Weis 于 2005-5-4 13:43:23
重新給你說明
/*
***********************************************************************************
* *
* Keil C AT89S51 交通信號控制程序 *
* (C) 版權(quán)所有 Dai_Weis@hotmail.com *
* *
***********************************************************************************
開發(fā)說明:
固定時(shí)間信號變換,南北設(shè)置調(diào)頭、左傳、直行、右轉(zhuǎn)、自行車。
東西設(shè)置左傳、直行、右轉(zhuǎn)、自行車。
時(shí)序狀態(tài):
紅 綠 紅 綠
序號 左 前 右 自 左 前 右 自 前 右 自 前 右 自
1 1 0 1 0 0 1 0 1 1 1 1 0 0 0
2 1 0 0 1 0 1 1 0 1 0 1 0 1 0
3 0 1 0 1 1 0 1 0 1 0 1 0 1 0
4 1 1 1 1 0 0 0 0 0 1 0 1 0 1
5 1 1 0 1 0 0 1 0 0 0 1 1 1 0
*/
另外修正個錯誤
while (1)
{
time_x(0xA5, 0x70, 0x0);
time_s(0xA4, 0x70, 0x1, 0xA5, 0x70);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -