📄 main.c
字号:
//====================================================================================
// The information contained herein is the exclusive property of
// Sunnnorth Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
// (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies.
//====================================================================================
//====================================================================================
//工程名: Traffic.spj
//功能描述: 交通灯控制,控制四个路口交通灯数码管的倒计时和红、黄、绿灯的两灭。
// 四个路口中车辆或者人通行的顺序是:
// (其中,L表示左拐,S表示直行,R表示右拐,P表示人行,
// 1表示路口1(东),2表示路口2(南),3表示路口3(西),4表示路口4(北))
// 1L,1S,1P,3R,4R(通行25s) ---- 2L,2S,2P,4R,1R(通行25s)
// | |
// 4L,4S,4P,1R,2R(通行25s) ---- 3L,3S,3P,1R,2R(通行25s)
//
//包含文件: main.c\DIGuser.c
// DIG.asm\isr.asm
// SPCE061A.h\DIGuser.h\DIG.h
// SPCE061A.inc\DIG.inc
//硬件连接: 用10pin排线连接交通灯模组的J5与61板的J6;
// 用10pin排线连接交通灯模组的J6与61板的J8;
// 用10pin排线连接交通灯模组的J7与61板的J9.
//维护记录: 2006年10月10 v1.0 by hongyan.Feng
//====================================================================================
//====================================================================================
//文件名:main.c
//功能描述:交通灯控制,控制四个路口交通灯数码管的倒计时和红、黄、绿灯的亮灭
//维护记录:2006年10月10 by hongyan.Feng
//====================================================================================
#include "SPCE061A.h" //包含SPCE061A.h头文件
#include "DIGuser.h" //包含DIGuser.h头文件,通过该文件,可以改变该系统的一些参数
#include "DIG.h" //
//====================================================================================
//语法格式:int main(void)
//功能描述:交通灯控制,控制四个路口交通灯数码管的倒计时和红、黄、绿灯的亮灭
//入口参数:无
//出口参数:无
//维护记录:2006年6月16 by hongyan.Feng
//====================================================================================
int main(void)
{
DIG_Initial(); //端口初始化,该函数在DIG.asm中定义,在DIG.h申明
*P_INT_Ctrl_New |= C_IRQ5_2Hz; //开2Hz中断,以便系统进行倒计时
__asm("int irq");
Nnum = ENUM+SNUM+WNUM-1;
Wnum = ENUM+SNUM-1;
Snum = ENUM-1;
Enum = ENUM-1; //设置各方向路口初始时的倒计时时间,倒计时时间可以在DIGuser.h文件中修改
max = Nnum; //保存各向初始倒计时时间中最大的数据,以便计时过程中使用
min = Enum; //保存各向初始倒计时时间中最小的数据,以便计时过程中使用
while(1) //交通灯控制
{
DirFlag = EAST_G; //设置方向状态标志为东边路口车辆直行通行状态,EAST_G为EAST Green
Enum = min; //东边路口数码管从min开始倒计时
EastSTrough(); //进入1L,1S,1P,3R,4R(通行25s)状态,该函数在DIGuser.c文件中定义
DirFlag = SOUTH_G; //设置方向状态标志为南边路口车辆直行通行状态,SOUTH_G为SOUTH Green
Snum = min; //南边路口数码管从min开始倒计时
SouthSTrough(); //进入2L,2S,2P,4R,1R(通行25s)状态,该函数在DIGuser.c文件中定义
DirFlag = WEST_G; //设置方向状态标志为西边路口车辆直行通行状态,WEST_G为WEST Green
Wnum = min; //西边路口数码管从min开始倒计时
WestSTrough(); //进入3L,3S,3P,1R,2R(通行25s)状态,该函数在DIGuser.c文件中定义
DirFlag = NORTH_G; //设置方向状态标志为北边路口车辆直行通行状态,NORTH_G为NORTH Green
Nnum = min; //北边路口数码管从min开始倒计时
NorthSTrough(); //进入4L,4S,4P,1R,2R(通行25s)状态,该函数在DIGuser.c文件中定义
*P_Watchdog_Clear = 0x0001;
}
}
//=====================================================================================================
//end
//=====================================================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -