77范文网 - 专业文章范例文档资料分享平台

基于单片机AT89C51的交通灯控制器的设计(5)

来源:网络收集 时间:2018-12-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计

{

uchar i;

while(ms--) {

{}

for(i=0;i<200;i++)

}

}

/*中断0处理程序*/

void int0(void) interrupt 0 {

EA=0;/*CPU禁止响应一切中断*/

P1=0xF6,P0=duanma[0];/*东西南北方向均红灯亮,P0口输出0*/

{

P2=weima[0],P0=duanma[(SN_G+Y)];/*南北方向数码管显示可通行 while(1)/*无条件循环*/

时间的个位*/

delayms(10); /*延时*/

P2=weima[1],P0=duanma[(SN_G+Y)/10];/*南北方向数码管显示可通行 delayms(10); /*延时*/

时间的十位*/

P2=weima[2],P0=duanma[(WE_G+Y)];/*东西方向数码管显示可通行时间的个位*/

delayms(10); /*延时*/

P2=weima[3],P0=duanma[(WE_G+Y)/10];/*东西方向数码管显示可通行时间的十位*/

/*设置南北方向通行时间*/ if(K0==0) /*P3^7=0*/ {

delayms(10); /*延时*/

17

宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计

delayms(20);/*延时,把抖动的时间抛掉*/ if(K0==0) */

{ }

SN_G++;/*南北方向绿灯时间+1*/

if(SN_G==100)

SN_G=0;/*由于使用的是两位数码管,当南北方向绿灯时间加到100后清零*/ }

}

/*设置东西方向通行时间*/ if(K1==0) /*P3^6=0*/ {

{

while(K0==0)/*当松开K0开关时,跳出空循环,执行后面的程序

delayms(20);/*延时,把抖动的时间抛掉*/ if(K1==0)

{

while(K1==0)/*当松开K1开关时,跳出空循环,执行后面的程序*/

{ }

WE_G++;/*东西方向绿灯时间+1*/

if(WE_G==100)

WE_G=0;/*由于使用的是两位数码管,当东西方向绿灯时间加到100后清零*/ }

} /*返回*/

if(K3==0) /*P3^5=0*/

delayms(20);/*延时,把抖动的时间抛掉*/

if(K3==0) {

{

18

宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计

while(K3==0)/*当松开K3开关时,跳出空循环,执行后面的程

{ }

count=0;/*清零*/

k=0;/*南北方向通车,东西方向不通车*/

SN=SN_G,WE=SN_G+Y;/*南北方向显示时间为南北方向绿灯通行

序*/

时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/ light();/*调用交通灯函数*/

led(); /*调用数码管函数*/ EA=1; /*CPU开放总中断*/

break;/*跳出*/

}

} } }

/*中断1处理程序*/ {

P1=0xF6,P0=duanma[0];/*东西南北方向均红灯亮,P0口输出0*/ TR0=!TR0;/*计数器停止工作*/ {/*数码管扫描程序,*/

P2=weima[0];/*显示南北方向个位*/ delayms(10);/*延时*/ delayms(10);/*延时*/

P2=weima[2];/*显示东西方向个位*/ delayms(10);/*延时*/

P2=weima[3];/*显示东西方向十位*/ delayms(10);/*延时*/ /*返回*/

EA=0;/*CPU禁止响应一切中断*/ while(1)/*无条件循环*/

void int1(void) interrupt 2

P2=weima[1];/*显示南北方向十位*/

if(K3==0) /*P3^5=0*/ {

19

宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计

delayms(20);/*延时,把抖动的时间抛掉*/

if(K3==0) {

while(K3==0)/*当松开K3开关时,跳出空循环,执行后面的程序*/

{ }

TR0=!TR0;/*启动计数器*/

EA=1;/*CPU开放总中断*/

break;/*跳出*/

}

} } }

/*键盘程序*/ void key() {

/*南北有车而东西无车*/ if(K0==0) /*K0=0*/ {

delayms(20);/*延时,把抖动的时间抛掉*/ if(K0==0) {

while(K0==0)/*当松开K0开关时,跳出循环,执行后面的程序*/ {

light();/*调用交通灯函数*/

led(); /*调用数码管函数*/

}

count=0;/*清零*/

k=0;/*南北方向通车,东西方向不通车*/

SN=SN_G,WE=SN_G+Y;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/ light();/*调用交通灯函数*/

led(); /*调用数码管函数*/

} }

20

宿州学院本科生毕业设计 基于单片机AT89C51的交通灯控制器的设计

/*南北无车而东西有车*/ if(K1==0) /*K1=0*/ {

delayms(20);/*延时,把抖动的时间抛掉*/ if(K1==0) {

while(K1==0)/*当松开K1开关时,跳出循环,执行后面的程序*/ {

light();/*调用交通灯函数*/

led(); /*调用数码管函数*/

}

count=0;/*清零*/

k=1;/*南北方向不通车,东西方向通车*/

SN=WE_G+Y,WE=WE_G;/*南北方向显示时间为东西方向绿灯通行时间加黄灯闪亮时间,东西方向显示时间为东西方向绿灯通行时间*/ light();/*调用交通灯函数*/ }

/*定时函数*/

void time1(void) interrupt 1 {

TH0=0x3c;

TL0=0xb0;/*计50000个数,用时50ms*/ count++; /*自增运算*/

if(count>=20)/*当count大于或等于20时,历时1s,执行程序*/ {

SN--;/*自减运算*/ WE--;/*自减运算*/ count=0;/*清零*/

if(SN==0||WE==0)/*当SN=0或者WE=0时,执行程序*/ { }

led(); /*调用数码管函数*/ }

k++;/*自增运算*/

if(k>3)/*当k>3时,执行程序*/

21

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机AT89C51的交通灯控制器的设计(5)在线全文阅读。

基于单片机AT89C51的交通灯控制器的设计(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/332415.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: