单片机课程设计-十字路口交通灯系统设计附代码_第1页
单片机课程设计-十字路口交通灯系统设计附代码_第2页
单片机课程设计-十字路口交通灯系统设计附代码_第3页
单片机课程设计-十字路口交通灯系统设计附代码_第4页
单片机课程设计-十字路口交通灯系统设计附代码_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电气工程学院单片机课程设计实验报告班级级别:姓氏:学生编号:.设计主题:十字路口交通灯系统设计设计时间:.评估结果:评估教师:目录一、调试流程21.1调试的详细步骤和过程:21.2软件调试中遇到的问题及解决过程说明21.3软件模拟运行与硬件实际验证的区别2二、操作效果42.1 Proteus仿真结果:42.2硬件调试效果7三。系统优化83.1软件设计83.2硬件设计8四.设计总结9附件11一、调试过程1.1调试的详细步骤和过程:(1)用Keil5软件编写一个好的源程序,编译后生成十六进制文件,没有错误。(2)在Proteus中绘制设计的硬件电路原理图,并将十六进制文件导入到Proteus中的A

2、T89C51单片机中。(3)单击运行按钮进行模拟。依次在矩阵键盘中输入不同的值,观察数码管显示的数字是否为倒计时显示模式,观察发光二极管是否实现:当东西为绿色和黄色时,南北为红色;当北方和南方是绿色和黄色时,东方和西方是红色。绿灯在最后3秒内闪烁,黄灯持续3秒后绿灯变红。(4)记录模拟结果。在模拟调试中,有时会出现矩阵键盘输入无法识别的问题。通过调整矩阵键盘的延迟时间和扫描时间,降低了矩阵键盘输入值不能被识别的概率。同时,出现了发光二极管显示速度慢的问题,改造后解决了延时问题。1.2软件调试问题及解决方案当代码被编译和调试时,数码管总是显示乱码。经检查,发现数码管阵列编码书写不正确,经校正后能

3、正确显示,无乱码。当数码管显示正确时,发现时间减少了1,并且总是会有抖动不稳定性。稍后,在网络查询之后,发现可能不执行消隐。沉默之后,这种现象就消失了,代码可以顺利运行。1.3软件模拟运行与硬件实际验证的区别Proteus作为一种单片机仿真软件,具有很多优点。它不仅能模拟单片机中央处理器的工作状态,还能模拟单片机外围电路等其他状态,在极端理想化的情况下实现理论上可行的实验,为我们节省了大量的开发材料和时间及精力。然而,Proteus模拟的成功并不意味着它实际上是可行的。事实上,硬件实验测试一个人的开发和设计能力,这要求我们学会如何调试、发现和解决问题。毕竟,模拟是在一个理想的情况下,但现实中有

4、许多未知因素,所以它不能被推广。但是,在使用Proteus仿真软件的过程中,我们发现Proteus仍然存在一些缺陷,实际差异主要是环境方面的,如环境温度、信号干扰、设备不一致等。由于模型的原因,也有一些器件与实际情况不同,即一些器件可能是正确的,但在仿真中实际上是错误的,或者相反,实际情况是正确的,仿真结果可能与实际电路不一致,仿真不是优化技术。它只针对不同的具体决策,通过反复实验得出更好的结论,但不能保证是最优的。在现实生活和生产中,经常需要根据实际生产要求改变元件参数。这些参数通常不是最佳的,但它们是最实用的。4二、操作效果2.1 Proteus模拟结果:1、设置东西和南北交通时间:图2.

5、1.1设置东西和南北交通时间2.单击运行,绿色指示灯位于东部和西部,红色指示灯位于北部和南部:图2.1.2运行时东西方向绿灯,南北方向红灯。3.当绿灯还剩三秒钟时,它开始闪烁:图2.1.3闪烁的绿灯4.绿灯结束时,黄灯亮(两盏灯同时亮)图2.1.4绿灯结束,黄灯亮起(两盏灯同时亮起)5.东边和西边是红灯,北边和南边是绿灯F6.在南北绿灯的最后三秒钟,它开始闪烁图2.1.6南北绿灯的最后三秒开始闪烁7.南北绿灯结束后,黄灯亮(两盏灯同时亮)图2.1.7南北绿灯结束后,黄灯亮(两盏灯同时亮)8.南北两端的黄灯亮着,红灯亮着,东西是绿灯。周期:图2.1.8南北两端黄灯亮,红灯亮,东西两端绿灯亮2.2

6、硬件调试效果开机后,您可以按键设置东西向和南北向传输时间,但开机时数码管会显示数值并倒计时,这与模拟效果不同。模拟效果应该是数值在开始时不会移动,并且只有当相应的数字被调整并且开始按钮被按下时才能进行倒计时。设定时间后,按下启动操作效果很好,所有功能都实现了。第三,系统优化3.1软件设计在设计之初,由于设计结构不合理,代码总是陷入无限循环。经过一步一步的调试和改进,代码跳出了无限循环并成功运行。由于矩阵键盘扫描采用中断方式定期扫描,即是否有定期的按键扫描,很容易造成按键故障或按键显示两个值,这也是软件可以改进的地方。否则,很容易输入错误的时间,影响操作。3.2硬件设计在硬件电路中,使用了很多额

7、外的芯片,这在实际设计和制造中会带来很多不必要的麻烦,同时也更容易出错。因此,在实践中,建议使用高集成度的芯片。同时,AT89C51在实际应用中已经落后,可以更新高端芯片。在这个硬件设计中,为了连接,用一个四位数字的数码管来代替东、西、北、南的交通灯。在现实生活中,应该设置四个两位数的数码管来显示实际通过时间。在模拟调试过程中,矩阵键盘的按键识别不稳定。增加按键去抖程序和调整延时的问题已经在一定程度上得到解决,但还有一个小问题,需要通过不断调整延时来优化。此外,还存在输入绿灯时间后发光二极管显示太慢的问题。在调整了定时器T1的计时时间和扫描键盘的时间,修改了按键识别程序的位置后,这个问题在一定

8、程度上得到了优化。然而,为了更好地优化它,有必要不断地调整延迟时间和定时器定时时间。由于实际运行中存在许多不确定因素,软件仿真不能完全满足实际要求,具体优化需要通过实际电路验证来完成。四.设计总结本设计成功实现了十字路口交通灯的控制,对AT89C51单片机的应用有了更好的理解,对定时器T0和T1也有了更深入的理解和应用。其次,我们还知道74LS244和74LS240芯片的功能和用途。虽然在编程过程中存在许多问题,但我们已经成功地编译了源程序,并通过搜索数据和反复修改实现了设计要求的功能。对一些典型算法和应用的深入理解也有助于以后的编程,大大促进了单片机和C51编程的学习。本设计分为三个模块进行

9、分析。第一个模块是矩阵键盘硬件电路的连接和编程;第二个模块是数码管的动态显示部分;第三个模块是实现交通灯功能的发光二极管。每个模块独立实现自己的功能非常简单。但最终,需要将三个模块完全连接起来形成一个系统,并且需要许多程序结构来实现它。我花了很多时间来思考这个项目的结构。最后,我成功地将三个模块连接在一起,成功地实现了十字路口交通灯的功能。虽然在这个过程中出现了很多问题,但经过不断的调试和分析,这些问题最终得到了解决。系统的调试是一个非常由于本课程设计是使用Proteus软件独立设计的,没有老师给出的参考图片,完全依靠自己查找数据,所以在设计之初就遇到了很多弯路和困难。开始时,思路很不清晰,没

10、有办法开始。经过和搭档一天的思考,我制定了一套理论上可行的方案,它只能实现矩阵键盘读取数值,而不能减少计数和显示等。在电路设计中,我们也遇到了许多原则性问题,如如何用单片机编写定时器工作代码,如何用矩阵键盘读取键值以便调用。为了解决这些问题,我复习了课堂上学到的单片机知识,查阅了许多芯片文件,并在图书馆借了一些书,这逐渐丰富了我在这方面的知识,明显提高了我的水平。在代码设计阶段,我们最大的问题是前期没有整体把握,前后代码冗余混乱。在参考了大量的代码后,我们改进了我们的代码编写方法,例如使模块便于调用和添加注释,这些都是干净整洁的。代码中仍存在一些问题,如寄存器中数据的比较和输出,特别是编程语句

11、的理解和应用,这些问题不能完全理解每条语句的具体含义,需要在这里进一步研究。经过这次课程设计,我总结出绘制电路并不难。在课本上模仿了几次之后,我基本上非常熟练,不太复杂的绘图可以在二十分钟内完成,重点是电路设计。如何根据期望的功能选择合适的芯片模块,实现正确的功能是最重要的。这个设计在设计之初也走了很多弯路。幸运的是,想法很清楚:键号获取、中央处理器处理和输出控制,这并不难设计。然而,仍然存在许多设计问题,理论上能够实现的功能很难在仿真中实现。有许多问题:持续的源代码错误、布线错误、无法实现功能等。这一切都导致了实验的失败。而且,经过这次实验,我明白了以下两点:第一,前期的布局尽可能的合理,这

12、样可以为以后的调试节省大量的精力;其次,我们必须小心操作,注意避免在实验中犯小错误;最后,并非所有的实验在理论上都是可行的,在实践中也是可行的。学习调试和发现问题远比接线操作重要。附加程序代码:#包括#包括#定义uchar无符号字符#定义uint无符号整数uchar show4=10,10,10,10 ;uchar seg11=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff。uchar keyval,count=0,tscan=4,time=20,dxg,nbg,a;uint showdx,shownb。bit keyflag=0,

13、n闪烁=0,dxt winkle=0;sbit h0=p20;sbit h1=p21;sbit h2=p22;sbit h3=p23;sbit l0=p24;sbit l1=p25;sbit l2=p26;sbit l3=p27;sbit dg=p05;sbit xg=p07;sbit ng=p06;sbit bg=p04;void key true();无效延迟(单位t) /延迟函数uchar I;而对于(I=0;i100;void main()uchar j=0x77,I;TMOD=0x 11;TH1=16500/256;/定时器T0和定时器T1TL1=16500% 6;TH0=15536/256;TL0=15536% 6;ET0=1;ET1=1;EA=1;TR1=1;而(1)if(key flag)key true();对于(I=0;i4;(I)j=_crol_(j,1);P3=0x ff;P1=segshowI;P3=j;延迟(2);无效键扫描()中断3 /键盘扫描TH1=16500/256;TL1=16500% 6;tscan-;if(tscan=0)tscan=4;P2=0xf 0;if(L0=0)key flag=1;if(L1=0)key flag=1;if(L2=0)key fla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论