欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    硬件连基于AT89C51单片机的交通信号灯控制系统.docx

    • 资源ID:13998012       资源大小:37.13KB        全文页数:18页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    硬件连基于AT89C51单片机的交通信号灯控制系统.docx

    1、硬件连基于AT89C51单片机的交通信号灯控制系统硬件连基于AT89C51单片机的交通信号灯控制系统哦,第一次提问,问的太笼统了,我是电路硬件部分不会设计,请大家帮帮忙 主要要求是(1) 以AT89C51为核心的交通信号灯控制系统的设计方案;(2) 根据设计方案绘制硬件原理图;(3) 根据硬件原理图绘制印刷电路板图(PCB);,谢谢接图给了,是proteus仿真的,不过毕设没这么简单吧.难道主要是要你设计pcb,原理图没有,程序我有复制给你看看吧仿真图的复位和晶振电路没截图,反正仿真的时候画布画都行#include #define uchar unsigned char#define uint

    2、 unsigned intsbit RED_A=P00;sbit YELLOW_A=P01;sbit GREEN_A=P02;sbit RED_B=P03;sbit YELLOW_B=P04;sbit GREEN_B=P05;uchar Flash_Count = 0;Operation_Type = 1;void DelayMS(uint x) uchar t; while(x-) for(t=120;t0;t-); void Traffic_lignt() switch(Operation_Type) case 1: RED_A=1;YELLOW_A=1;GREEN_A=0; RED_B=

    3、0;YELLOW_B=1;GREEN_B=1; DelayMS(2000); Operation_Type = 2; break; case 2: DelayMS(200); YELLOW_A=YELLOW_A; if(+Flash_Count !=10) return; Flash_Count=0; Operation_Type = 3; break; case 3: RED_A=0;YELLOW_A=1;GREEN_A=1; RED_B=1;YELLOW_B=1;GREEN_B=0; DelayMS(2000); Operation_Type = 4; break; case 4: Del

    4、ayMS(200); YELLOW_B=YELLOW_B; if(+Flash_Count !=10) return; Flash_Count=0; Operation_Type = 1; break; void main() while(1) Traffic_lignt(); 一、设计目的: 在完成“单片机原理及应用”课程的学习后,通过设计小型的单片机应用系统,加深对所学知识的理解和提高单片机系统的设计能力。 二、设计任务和要求: 1、设计任务:设计基于AT89C51单片机的十字路口交通灯控制电路。 2、具体要求: (1)设计硬件电路,包括:单片机最小系统、2位LED数码管显示器、3个按钮的

    5、键盘(SET、UP、DOWN)、12个led指示灯(红黄绿三种颜色,东西并联、南北并联),等。 (2)基本功能: 要求东西方向(A方向)车道和南北方向(B方向)车道两条交叉道路上的车辆交替通行,每次通行时间为N秒(红灯、绿灯亮的时间为N秒,N60S) ,可以设置。 在绿灯转为红灯时,要求黄灯先亮3秒(固定),才能交换运行车道 。 剩余秒数显示:2位LED数码管,倒计时方式:(N+3)1 可选的扩展功能: 黄灯亮时,要求0.5s闪烁一次。 A方向、B方向的通行时间可以不同,如:A方向通行50s,B方向通行30s。 #include unsigned char temp;unsigned char

    6、 key;unsigned char i,j;unsigned char STH0;unsigned char STL0;unsigned int code tab=64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178;void main(void)TMOD=0x01;ET0=1;EA=1;while(1)P3=0xff; /将P3口取出P3_4=0; /使P3_4为低电平,这样可以判断第一竖排有没有键按下temp=P3;temp=temp & 0x0f;

    7、if (temp!=0x0f) /有键按下for(i=50;i0;i-)for(j=200;j0;j-); /延时temp=P3; temp=temp & 0x0f;if (temp!=0x0f) /再判断是否有键按下temp=P3;temp=temp & 0x0f;switch(temp) /判断是哪个键按下case 0x0e:key=0;break;case 0x0d:key=1;break;case 0x0b:key=2;break;case 0x07:key=3;break;temp=P3;P1_0=P1_0;P0=tablekey;STH0=tabkey/256; /找出键对应的频率

    8、的时间,作为定时器中断初始值STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;P3=0xff;P3_5=0; /跟上面差不多,现在是判断第二排的按键temp=P3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=4

    9、;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;temp=P3;P1_0=P1_0;P0=tablekey;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;P3=0xff;P3_6=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3

    10、;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=8;break;case 0x0d:key=9;break;case 0x0b:key=10;break;case 0x07:key=11;break;temp=P3;P1_0=P1_0;P0=tablekey;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;P3=0xff

    11、;P3_7=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=12;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;temp=P3;P1_0=P1_0;P0=tablekey;STH0=tabkey/256;STL0=

    12、tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;void t0(void) interrupt 1 using 0TH0=STH0;TL0=STL0;P1_0=P1_0;思路: 红灯停,绿灯行,黄灯闪烁提示行人红绿灯即将切换。四个方向各有一个红、黄、绿显示和两个数码管。东西道为人行道(20秒),南北道为车行道(60秒),黄灯延时最后三秒时,闪烁并切换。三、硬件电路设计此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显

    13、示其延时值,四个红、黄、绿指示灯。硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。四、软件程序(C语言) 以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。/*/程序名:十字路口交通灯控制/编写人:黄庭剑/初写时间:2009年1月2日/程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后3秒黄灯显示2秒钟再实现切换./CPU说明:AT89C51型单片机; 24MHZ晶体振荡器/完成时间:2

    14、009年1月6日/*/#include#include#includesfr p0 = 0x80;sfr p1 = 0x90;sfr p2 = 0xA0;sfr p3 = 0xb0; /这部分内容其实在“#include”里已经有,但里面定义的必须区分大小写,在这里,因为我程序采用的是小写,reg51.h里对各个端口与寄存器的定义都是大写,所以在编译连接时,会报错,所以,在本设计程序里,我只用到了端口,在这里也就只定义了四个,而没有去改reg51.h里面的内容。其实两者是一样的。sbit sw = p00;sbit OE =P06;sbit LE =P07; /74LS373锁存器控制端定义c

    15、har display= 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99 ; /p1口的数码管时间显示调用,利用74L74BCD码,8位驱动输出;/函数声明 beginvoid delay1(int count);void delay_long(int number1,int number2);void people_car_drive();/函数声明end/*/延时子程序void delay1(int count) int i; for(i=count;i0;i-) ; void delay_long(int number1,int num

    16、ber2) int a,b; for(a=number1;a0;a-) for(b=number2;b0;b-) _nop_(); /*/延时子程序 void people_car_drive() int p_1=2,i,j=9,p_2=6; /*/行人通行时,延时20秒 p2=0x09; /南北红灯亮 p3=0x24; /东西绿灯亮 while(p_1-0) LE=1; OE=0; if(p_1=0)OE=1; /当十位数减到0时,只显示个位数 p1=displayp_1; delay1(1000); LE=0; j=9; for(i=10;i0;i-) if(p_1=0&j=3)break

    17、; /减到3时退出循环,让其黄灯闪烁显示 p1=displayj-; delay_long(16000,2); if(sw=1)return; /*/ p2=0x12; /南北黄灯闪烁三秒,以提醒行人注意 p3=0x12; p1=display3; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=display2; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=displ

    18、ay1; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1);/*以下是车辆通行时延时60秒/ p2=0x24; /南北绿灯亮 p3=0x09; /东西红灯亮 while(p_2-0) LE=1; OE=0; if(p_2=0)OE=1; /当十位数减到0时,只显示个位数 p1=displayp_2; delay1(1000); LE=0; j=9; for(i=10;i0;i-) if(p_2=0&j=3)break; /减到2时退出循环 p1=displayj-; delay_long(16000,2); if(sw=1)re

    19、turn; p2=0x12; /南北黄灯闪烁三秒,以提醒行人注意 p3=0x12; p1=display3; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=display2; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); p2=0x12; p3=0x12; p1=display1; delay_long(8000,1); p2=0x00; p3=0x00; delay_long(14000,1); /南北黄灯闪烁三秒完毕 void main() /主函数入口处 p0=0x01; p1=0x00; p2=0x00; p3=0x00; /初始化各端口 while(1) if(sw=0) people_car_drive();else p2=0x00; p3=0x00; /关闭所有交通灯参考:1|评论 .


    注意事项

    本文(硬件连基于AT89C51单片机的交通信号灯控制系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开