欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机-十字路口交通灯(16页).doc

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

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

    单片机-十字路口交通灯(16页).doc

    -华南理工大学广州学院单片机原理及应用课程设计报告题目:交通灯 专业: 班级: 姓名: 学号: 序号: 日期: 20XX年XX月XX日1. 设计目的为了巩固课本所学知识,培养动手能力、独立分析问题能力和实际解决问题的能力,掌握单片机分析和设计方法,对Protus的综合应用有进一步的认识和理解。同时加深对课堂知识的理解和运用,进一步学习和熟悉各种常用芯片的规格和使用,能掌握元件的连接和基本问题的排除。2. 设计要求和设计指标设计要求:在该交通灯控制系统中,东西南北四个方向各有红黄绿三种颜色的指示灯各一盏,共计12盏指示灯,用以来指挥车辆和行人安全通行。当红色指示灯亮的时候表示禁止该方向的车辆和行人通行,当绿色指示灯亮的时候表示允许该方向的车辆和行人通行,当黄色指示灯亮的时候提示人们红、绿灯的状态即将切换。并且黄灯燃亮时为东西南北两干道的公共停车时间。设计指标:a画出电路原理图b进行电路的仿真与调试3. 系统总体设计方案a、开始时先是南北红灯30s,东西绿灯25秒倒数,当东西绿灯倒数完后,有5s黄灯,之后东西与南北一起变灯,南北绿灯15s,东西红灯20s倒计时,待南北绿灯完后有5s黄灯,之后南北与东西一起变灯,重复上述步骤。b、元器件的选用4. 功能设计和原理说明电路仿真图:单片机控制交通灯的软件设计是采用顺序执行并反复循环的方法,其中数码显示电路运用动态显示的方法,并采用延时的方法来定时通行时间。由于整个设计是在AT89C51单片开发机上进行的, 所以用LED来代替交通灯,需要低电平“0”来驱动点亮,在实际应用电路中,应使P1口输出高电平“1”来驱动继电器导通,从而使220V的交通灯点亮,可以通过修改发光二极管LED的程序实现。状态地址分配如表4-1所示:下表P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0灯地址东西绿东西黄东西红南北绿南北黄南北红11110011F3H11110101F5H11011110DEH11101110EEHLED显示器中发光二极管采用共阴极接法时,其十六进制数的字形代码见下表 (十六进制数字型代码表)字型共阴极代码字型共阴极代码03FH67DH106H707H25BH87FH34FH96FH466H灭00H56DH设计程序:#include<reg51.H> / 对单片机的口进行了定义#define uint unsigned int#define uchar unsigned charuchar code a10=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/段码组合,共阳极uchar code b4=0x01,0x02,0x04,0x08; /位码组合 uchar code c4=0xcc,0xd4,0x78,0xb8;/*P1 绿红、黄红、红绿、红黄*/ /12MHz /*uchar NB=25,DX=30,NBG=25,DXG=15,H=5; /*数码管显示值设置*/uchar i,k=0,cnt=0,j=0; sbit K0=P34; /*支干道通行*/sbit K1=P35; /*主干道通行*/sbit K4=P36; /*返回*/sbit K3=P32;/*设置时间*/sbit K2=P33;/*紧急刹车*/void delay(uchar t);/*定义延时程序*/void key();/*定义键盘程序*/void display();/*定义显示程序*/void settime();/*定义时间设置显示程序*/*程序初始*void init(void)TMOD=0x01; /*使用定时器0模式一*/TH0=0x3c; /*(65536-5000)/256*/TL0=0xb0; /*(65536-5000)%256*/IT0=1; /开中断ET0=1;TR0=1;EA=1;EX0=1;EX1=1;P1=ck; /开启交通灯/*中断0处理程序*void int0(void) interrupt 0 /通行时间设置 EA=0; P1=0xd8;/*红灯全亮*/ for(;) settime();if(K1=0) /*P36=0设置主干道通行时间*/ delay(40); if(K1=0) while(!K1) settime(); DXG+;/*主干道通行时间加1*/ if(DXG=100) DXG=0; if(K0=0) /*P35=0设置支干道通行时间*/ delay(40); if(K0=0) while(!K0) settime(); NBG+;/*支干道通行时间加1*/ if(NBG=100) NBG=0; if(K4=0) /*P37=0返回*/ delay(40); if(K4=0) while(!K4) k=0;P1=ck; NB=NBG,DX=NBG+H; display(); EA=1; break; /*中断1处理程序*void int1(void) interrupt 2 /紧急情况 /*东西南北红灯亮*/EA=0;TR0=!TR0; /*停止计数*/for(;) /*主支干道显示全为0*/ P1=0xd8,P0=a0; P2=b0; delay(20); P2=b1; delay(20); P2=b2; delay(20); P2=b3; delay(20); if(K4=0) /*返回*/ delay(20);EA=1; P1=ck; /*返回紧急前状态开始计数*/TR0=!TR0;/*重启计数*/break; void time1(void) interrupt 1/*交通灯控制程序*/TH0=0x3c;/*定时50ms*/TL0=0xb0; cnt+;if(cnt>=20) /*每20*50ms=1s自减一*/NB-;DX-;cnt=0;if(NB=0|DX=0)k+;if(k>3)/*k取0,1,2,3*/k=0;switch(k)case 0:NB=NBG,DX=NBG+H;j=0;P1=ck;break; /*主干道通行显示绿红*/ case 1:NB=H;j=1;P1=ck;break; /*主干道黄灯闪烁*/case 2:NB=DXG+H,DX=DXG;j=0;P1=ck;break; /*支干道通行显示红绿*/case 3:DX=H;j=2;P1=ck;break; /*支干道黄灯闪烁*/ void delay(uchar t) /延时程序延时0.1*nms uchar i; do for(i=0;i<20;i+) ; while(t-); void settime() P2=b0,P0=a(NBG+H)%10;/*显示主干道通行时间 */ delay(20); P2=b1,P0=a(NBG+H)/10; delay(20); P2=b2,P0=a(DXG+H)%10;/*显示支干道通行时间*/ delay(20); P2=b3,P0=a(DXG+H)/10; delay(20); void key()/键盘程序用KO K1模拟一道有车一道无车 if(K1=0) /*主干道有车支干道无车*/ delay(40); if(K1=0) while(!K1) display(); k=0,P1=ck;cnt=0; NB=NBG, DX=NBG+H; display(); if(K0=0) /*支干道有车主干道无车*/ delay(40); if(K0=0) while(!K0) display(); k=2,P1=ck;cnt=0; NB=DXG+H,DX=DXG; display(); void display()/显示程序P2=b0,P0=aNB%10; /*由k的不同值进入确定显示数值*/delay(20); P2=b1,P0=aNB/10;delay(20); P2=b2,P0=aDX%10;delay(20); P2=b3,P0=aDX/10;delay(20); void main(void)/主程序init();for(;) display(); key(); /黄灯闪烁程序 while(j=1)/*主干道黄灯闪烁*/ P1=0xdc;/*给黄灯一高电平黄灯灭*/ for(i=83;i>0;i-)display();/*执行for循环延时*/ P1=ck;/*再给黄灯一低电平黄灯亮*/ for(i=83;i>0;i-)display();while(j=2) /*支干道黄灯闪烁*/ P1=0xf8; for(i=83;i>0;i-)display(); P1=ck; for(i=83;i>0;i-)display(); 5. 改进意见及收获体会经过一周的单片机课程设计,经历了很多也学会了很多。本次做的是关于交通灯系统的设计,虽说交通灯在我们日常生活中很普遍的存在,我们对它似乎也很熟悉,但是等到做这个课设的时候,我才发现其实不是这样的。刚开始实在不知道从何下手,通过认真查阅资料,整个设计就开始有了头绪。首先,对要设计的系统有个整体的思路,接下来画流程图这样可以对系统有个总体的认识,画完流程图就到了编写程序,在编写程序的时候才发现自己对汇编语言还需要进一步的学习和巩固,经过反复的修改终于踏入了第三步,画硬件的外部接线图,在画图的时候必须了解AT89C51芯片中各如个引脚的功能,学会怎么样去使用AT89C51这个可编程并行接口芯片,怎样去锁存地址等等。在上学期理论学习的基础上,又下了一次苦功夫,对如何设计一个系统有了进一步的了解,巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。认识了从未接触过的Proteus单片机仿真软件,并能用它仿真处正确的结果。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处。 单片机作为我们的主要专业课之一,虽然在大二开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。这次单片机课程设计我们虽然只有短短一星期,但是经过这个星期的实践和坚持不懈,我还是克服了种种困难,最终完成了交通灯的单片机控制系统。现在想来,觉得学校安排的课程设计有着它更深层的意义通过课程设计让我们综合了学过的理论知识来运用到设计和创新之中,增强了自己的动手和实践能力,提高了自己独立思考的能力,为将来继续学习和工作打下了基础。6. 参考文献基于单片机原理及应用=下面是各个部分的截图,按着上面的相同的备注连在一起就可以用仿真了(自己看图判断每个元器件的位置,只是担心各位菜鸟看不清楚,才放大后截屏给你们看,下面第一张是全局图,第二张开始是各个部分的放大后截图,相同的备注连在一起,如第二张的P20就连第四张P20。还不懂?) -第 16 页-

    注意事项

    本文(单片机-十字路口交通灯(16页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开