电气工程
会计论文
金融论文
国际贸易
财务管理
人力资源
轻化工程
德语论文
工程管理
文化产业管理
信息计算科学
电气自动化
历史论文
机械设计
电子通信
英语论文
物流论文
电子商务
法律论文
工商管理
旅游管理
市场营销
电视制片管理
材料科学工程
汉语言文学
免费获取
制药工程
生物工程
包装工程
模具设计
测控专业
工业工程
教育管理
行政管理
应用物理
电子信息工程
服装设计工程
教育技术学
论文降重
通信工程
电子机电
印刷工程
土木工程
交通工程
食品科学
艺术设计
新闻专业
信息管理
给水排水工程
化学工程工艺
推广赚积分
付款方式
首页
|
毕业论文
|
论文格式
|
个人简历
|
工作总结
|
入党申请书
|
求职信
|
入团申请书
|
工作计划
|
免费论文
|
现成论文
|
论文同学网
|
全站搜索
搜索
高级搜索
当前位置:
论文格式网
->
免费论文
->
其他论文
基于MCS-51十字路口交通灯控制系统设计(三)
本论文在
其他论文
栏目,由
论文格式
网整理,转载请注明来源
www.lwgsw.com
,更多论文,请点
论文格式范文
查看
4、软件系统设计
4.1主程序设计
4.1.1 主程序设计流程图
全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。
整个软件程序方面主要分两大部分:按键处理程序和50ms扫描程序。流程图如图(图4-1)所示。
图4-1系统总的流程图
首先是按键处理程序,89C51通过对IO扫描,确定是否有键按下,再判断具体是那个键按下,根据键值跳转到按键处理程序。按键处理结果可设置两种工作模式:红绿灯时间设置模式和红绿灯时间自动模式,次程序相当于系统的模式设置,若想重新设置则要按下复位键。设置过后进入50ms扫描程序。
50ms扫描程序开始后,先刷新显示模块,若为自动模式则接下来要计数车流量,然后扫描紧停信号和违规信号,若捕获则调用中断,中断服务子程序主要启动蜂鸣器,直至恢复键按下。50ms已到则重新扫描。扫描20次之后计时到达1s则时间数据减1,在显示模块中修改显示缓冲区内容。在半个状态对换时,车流量计数程序在一个状态变换循环先后计数两个方向的车流量,然后调用红绿灯时间调整程序,更新红绿灯时间。当前状态时间已到,则判断其状态装入相应数据,然后进入下一状态。
4.1.2 部分程序列表
////////////////////////////主函数//////////////////////////
Void main ()
{
t=5;
TIME_Init (); //定时器初始化
sec=COUNT_DOWN; //定时初值
while(1)
{
key_scan(); //按键扫描
switch (key_flag)
{
case 0:t++;if(t>=30)t=5;break; //设置时间
case 1:TR2 = 1;break; //恢复
case 2:EW_ON;P1=LED[4];TR2 = 0;break;
//南北禁行,定时器停止
case 3:SN_ON;P1=LED[4];TR2 = 0;break;
//东西禁行,定时器停止
}
//==========状态S1========
if( (aspect_flag == 0)&(interim_flag == 0)&(key_flag == 0) )
{
EW_ON;
P1=LED[0];
P2=LED7Code[(sec-INTERIM)/10];//东西方向绿灯,少5秒
Delay1Ms(1);
P2 = 0XFF;
P1=LED[1];
P2=LED7Code[(sec-INTERIM)%10];
Delay1Ms(1);
P1=LED[2];
P2=LED7Code[sec/10]; //南北方向红灯
Delay1Ms(1);
P2=0XFF;
P1=LED[3];
P2=LED7Code[sec%10];
Delay1Ms(1);
}
//==========状态S2========
if( (aspect_flag == 0)&(interim_flag == 1)&(key_flag == 0) )
{
if(half_sec % 2 == 1) EW_Y_ON;
else EW_Y_OFF;
P1=LED[0];
P2=LED7Code[sec/10]; //东西方向黄灯
Delay1Ms(1);
P2 = 0XFF;
P1=LED[1];
P2=LED7Code[sec%10];
Delay1Ms(1);
P1=LED[2];
P2=LED7Code[sec/10]; //南北方向红灯
Delay1Ms(1);
P2 = 0XFF;
P1=LED[3];
P2=LED7Code[sec%10];
Delay1Ms(1);
}
//==========状态S3========
if( (aspect_flag == 1)&(interim_flag == 0)&(key_flag == 0) )
{
SN_ON;
P1=LED[0];
P2=LED7Code[sec/10]; //东西方向红灯
Delay1Ms(1);
P2 = 0XFF;
P1=LED[1];
P2=LED7Code[sec%10];
Delay1Ms(1);
P1=LED[2];
P2=LED7Code[(sec-INTERIM)/10];//南北方向绿灯,少5秒
Delay1Ms(1);
P2 = 0XFF;
P1=LED[3];
P2=LED7Code[(sec-INTERIM)%10];
Delay1Ms(1);
}
//==========状态S4========
if( (aspect_flag == 1)&(interim_flag == 1)&(key_flag == 0) )
{
if(half_sec % 2 == 1) SN_Y_ON;
else SN_Y_OFF;
P1=LED[0];
P2=LED7Code[sec/10];
Delay1Ms(1);
P2 = 0XFF;
P1=LED[1];
P2=LED7Code[sec%10];
Delay1Ms(1);
P1=LED[2];
P2=LED7Code[sec/10];
Delay1Ms(1);
P2 = 0XFF;
P1=LED[3];
P2=LED7Code[sec%10];
Delay1Ms(1);
}
}
}
4.2按键子程序设计
4.2.1按键子程序设计流程图
它包含倒计时调整和紧急状态两个状态。主程序中放了一个按键的判断指令,当有按键按下的时候,程序就自动的跳转到按键子程序处理。当检测到K2键按下的时候就自动返回到主程序。当出现紧急的情况的时候,按下K3或者K4就切换到紧急状态,当紧急事件处理完毕的时候,按下K2,就可以返回正常状态,流程图如图4-2。
首页
上一页
1
2
3
4
5
下一页
尾页
3
/5/5
相关论文
上一篇
:
猪蓝耳病的病因及防治方法2
下一篇
:
工厂供电系统的继电保护
Tags:
基于
MCS-51
十字路口
交通
控制系统
设计
【
收藏
】 【
返回顶部
】
人力资源论文
金融论文
会计论文
财务论文
法律论文
物流论文
工商管理论文
其他论文
保险学免费论文
财政学免费论文
工程管理免费论文
经济学免费论文
市场营销免费论文
投资学免费论文
信息管理免费论文
行政管理免费论文
财务会计论文格式
数学教育论文格式
数学与应用数学论文
物流论文格式范文
财务管理论文格式
营销论文格式范文
人力资源论文格式
电子商务毕业论文
法律专业毕业论文
工商管理毕业论文
汉语言文学论文
计算机毕业论文
教育管理毕业论文
现代教育技术论文
小学教育毕业论文
心理学毕业论文
学前教育毕业论文
中文系文学论文
最新文章
热门文章
推荐文章