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

    模拟交通控制灯设计.docx

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

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

    模拟交通控制灯设计.docx

    1、模拟交通控制灯设计交通灯远程控制灯的设计一、总体设计、任务交通灯的任务要求为:模拟十字路口的交通灯的亮、灭及闪烁控制及时间显示。.基本工作原理:根据交通灯的亮灭情况,可以分为四种状态,利用定时计数器每5毫秒产生一次中断,完成对 LED显示模块的刷新,红绿灯的切换。通过串口对交通灯进行远程控制,实现pc机和单片机之间的通信程序编写,学习单片机和pc机之间的串口连接方法和编程技巧。、要求设计并实现单片机交通灯控制系统,实现以下三种情况下的交通灯控制。(1) 正常情况下双方向轮流点亮。(2) 特殊情况时A道运行。(3) 有紧急车辆通行时,A B道均为红灯。紧急情况优先级高于特殊情况。3、说明本任务实

    2、现用pc机作为控制机、单片机控制信号灯为从机的远程控制系统。主从机双方除了要有一定的通信格式,波特率外,还要约定一些握手应答信号,即通信协议。通信协议如下:二、硬件设计1、 根据总体设计要求,确定系统功能接口,设计出系统的电路原理图。2、 若不考虑左行转弯,则南北方向只用红、绿、黄3只灯控制,东西方向也只用红、绿、黄3只灯控制,即共用6只灯。不必对单片机的I/O口进行扩展。3、 4个共阳极数码管自右至左以两位数的形式显示秒数。为了保证数码管的亮度,必须保证输入电流的大小,因此,选用PNP型三极管作为位驱动放大器。如下图:分析可知,三极管相当于反向器,数码管位选低电平有效。4、按键模拟紧急情况和

    3、特殊情况的发生,当s1 、s2为高电平时(不按按键时)表示正常情况,当s1为低电平时表示紧急情况,s1信号接至INT0*引脚,s2为低电平时表示特殊情况, s2信号接至INT1*引脚(若为矩阵式键盘,可采用扫描方式识别按键)。三、软件设计1、根据图表可以画出各个函数流程图 P1.5P1.4P1.3P1.2P1.1P1.0P1端口数据状态说明A红灯A黄灯A绿灯B红灯B黄灯B绿灯F3110010状态1:A通行,B禁止110,1交替变换011EB状态2:A绿灯闪,B禁止101011状态3:A警告,B禁止011110DE状态4:A禁,B通01110,1交替变换状态5:A禁,B闪011101DD状态6:

    4、A禁,B警告2、函数流程图四、硬件电路图五、源程序#include #define uchar unsigned char #define uint unsigned int uchar led=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; uchar DispX=0xfb,0xf3,0xfb,0xeb,0xde,0xdf,0xde,0xdd; void AFangXing(void); /函数声明 void ShanShuo(uchar *PTR); void JingGao(uchar *PTR); void BFangXing(vo

    5、id); void delay_5ms(void) /5ms定时 uchar i; for(i=0;i0;x-) for(y=100;y0;y-) P2=0xf5; P0=ledx%10; delay_5ms(); P2=0xfa; P0=ledx/10;/紧急情况倒计时 delay_5ms(); EA=0;P1=i;TH1=l;TL1=m;EA=1; void int_1() interrupt 2 /特殊情况中断uint i,l,m,x,y;EA=0;/关中断i=P1;l=TH1;m=TL1;EA=1;P1=0xF3;for(x=10;x0;x-) for(y=100;y0;y-) P2=

    6、0xf5;P0=ledx%10;delay_5ms();P2=0xfa;P0=ledx/10;/特殊情况倒计时delay_5ms(); EA=0;P1=i;TH1=l;TL1=m;EA=1;void main ()/主函数uchar *PTR=&DispX;TMOD=0x21; /工作方式寄存器TMOD用于选择定时器/计数器的工作模式和工作方式,由TMOD可知,定时器T1工作在方式2,定时器T0工作在方式1TH1=0xf4; /由波特率为2400kb/s,晶体频率为11.0592MHz,可知定时器T1的初值,又因为定时器T1采用方式2,8位初值自动重装入的8位定时器/计数器,故TH1,TL1初

    7、值相同TL1=0xf4;TR0=1;TR1=1;SCON=0x50; /SCON为串行口控制寄存器,采用方式1,允许串行接收PCON=0x00; /设置波特率SMODIE=0x95; /IE为中断允许寄存器,允许串行口中断,允许外部中断1中断,允许外部中断0中断IP=0x11; /串行口中断、外部中断0设定为高优先级中断IT0=1; /外部中断0的中断请求信号为边沿触发(下降沿有效) IT1=1; /外部中断1的中断请求信号为边沿触发(下降沿有效)while(1) AFangXing();/A 道绿灯 B道红灯 ShanShuo(PTR); /A绿灯闪烁 2次 , B道红灯 ShanShuo(

    8、+PTR); ShanShuo(+PTR); JingGao(+PTR); /A 道黄灯 B道红灯 BFangXing(); /B 道绿灯 A道红灯 ShanShuo(+PTR); /B绿灯闪烁 2次 , A道红灯 ShanShuo(+PTR); ShanShuo(+PTR); JingGao(+PTR); /B 道黄灯 A道红灯 PTR=&DispX; void AFangXing(void)uchar i,j;P1=0xf3; /A 道绿灯 B道红灯for(i=55;i0;i-)for(j=50;j0;j-)P2=0xfd;P0=ledi%10;/显示A方向秒个位delay_5ms();P

    9、2=0xfe;P0=ledi/10;/显示A方向秒十位delay_5ms();P2=0xf7;P0=led(i+5)%10;/显示B秒个位delay_5ms();P2=0xfb;P0=led(i+5)/10;/显示B秒十位delay_5ms();void ShanShuo(uchar *PTR)uchar i,j; for(i=1;i0;i-) P1=*PTR;for(j=25;j0;j-) P2=0xfd;P0=ledi%10;/显示A方向秒个位delay_5ms();P2=0xfe;P0=ledi/10;/显示A方向秒十位delay_5ms();P2=0xf7;P0=ledi%10;/显示

    10、B方向个位delay_5ms();P2=0xfb;P0=ledi/10;/显示B方向十位delay_5ms();void JingGao(uchar *PTR)uchar i,j;P1=*PTR; for(i=2;i0;i-)for(j=50;j0;j-)P2=0xfd;P0=ledi%10;/显示A方向秒个位delay_5ms();P2=0xfe;P0=ledi/10;/显示A方向秒十位delay_5ms();P2=0xf7;P0=ledi%10;/显示B方向个位delay_5ms();P2=0xfb;P0=ledi/10;/显示B方向十位delay_5ms(); void BFangXin

    11、g(void)uchar i,j;P1=0xde; /A 道红灯 B道绿灯for(i=55;i0;i-)for(j=50;j0;j-)P2=0xfd;P0=led(i+5)%10;/显示A方向秒个位delay_5ms();P2=0xfe;P0=led(i+5)/10;/显示A方向秒十位delay_5ms();P2=0xf7;P0=ledi%10;/显示B方向个位delay_5ms();P2=0xfb;P0=ledi/10;/显示B方向秒十位delay_5ms();void serial() interrupt 4uchar i ;EA=0;if(RI=1)RI=0;if(SBUF=0x01)S

    12、BUF=0x01;while(!TI);TI=0;i=P1 ; P1=0xdb;while(SBUF!=0x02)while(!RI);RI=0;SBUF=0x02;while(!TI);TI=0;P1=i;EA=1;elseEA=1; 六、设计总结 本次实训运用Keil作为编译环境,用Proteus作为仿真软件。然后将程序下载到自己焊接的硬件电路中。由于Proteus软件功能的局限性,当仿真电路的数码管位选加上三极管作为驱动放大器时,数码管不能成功显示要显示的数,只显示8888或者9999这两个数,但为了与硬件电路一致,用Proteus仿真时改用非门代替三极管。当老师给我们布置这个课程设计时,我感到无从下手,不知道该怎样写程序。后来通过读老师的程序,慢慢明白了,知道了如何去做。对于这样的课程设计,应该先用Proteus画出仿真电路,然后根据电路图编写程序。通过编写程序,对单片机语言有了更进一步的掌握。经过本次设计对Keil和Proteus更加熟悉了。在焊接电路的过程中,一定要注意:不能虚焊,更不能连焊,对某个元件焊接时间不能太长,焊锡不要用太多,容易造成连焊。电路上电前一定要仔细检查单片机等芯片是否装反,确认无误后再下载程序。总的来说,通过本次课程设计,学到了很多知识,为以后再用单片机做电路时积累了经验。


    注意事项

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

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




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

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

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


    收起
    展开