找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1328|回复: 0
打印 上一主题 下一主题
收起左侧

基于微机交通灯课程设计报告

[复制链接]
跳转到指定楼层
楼主
ID:364211 发表于 2018-7-3 17:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要: 交通灯是交通安全的关键,它的有无作为交通安全检查的重要依据,是交通秩序正常进行的有力保障。现代交通的发展,对技术也提出较高的要求,已成为一项社会课题。通过本次设计,掌握8086825982557424等芯片的使用方法和编程方法,利用8086微处理器完成了8086交通灯设计。同时了解综合问题的程序设计。
关键词:  交通灯;8086; 软硬件设计
目  录
1概述.............................................................. 3
1.1课题背景.................................................... 3
1.2 研究意义.................................................... 3
2  硬件电路设计.................................................... 3
2.1相关芯片简介................................................ 3
2.2 仿真电路总体设计............................................ 6
3  软件编程设计.................................................... 8
3.1系统概述.................................................... 8
3.2 程序流程图设计.............................................. 8
3.3   按键控制................................................. 10
3.4  字符动态显示.............................................. 12
4 系统实现........................................................ 12
4.1  proteus仿真实验.......................................... 12
5 结论............................................................ 13
5.1 收获与体会................................................. 13
5.2 缺点与不足................................................. 13
参考文献....................................................... 14
1概述1.1课题背景
随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已经成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统。如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市道路,缓解城市道路压力,越来越成为交通运输管理和城市规划部门有待解决的主要问题。人们希望通过增加技术含量的方法提高现有道路的利用率,提高道路交通的安全程度和道路使用的舒适性,所以对交通灯的设计和采纳做了相关的研究和建模。
1.2 研究意义
在安全行车方面,交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口的醒目位置用红、绿。黄三种颜色的指示灯。加一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,主要有一下缺点:1、车道轮流放行时间相对固定,不能根据实际情况中两个车道的车辆多少来设置改变通行时间;2、没有考虑紧急车辆通过时,两车道应采取的措施。如,有消防车通过执行紧急任务时,两车道都应停止,让紧急车辆通过。因此如何合理高效利用交通灯指示交通情况,是一个需要解决的问题。                              
2  硬件电路设计2.1相关芯片简介
1.  8086
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个寄存器。
2. 8255A


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif


8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线地址线控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
3. 74273


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif


由于8086运行速度过快,数码管动态显示出现显示不全的现象,因此PC0,PC1输出经过2-4译码器之后,再激活数码管,起到缓冲作用。
4. 16位数码管
16位数码管的数码管,由16个引脚控制,低电平有效,其中A-H控制外圈0,K-M控制内部, S1-s4是通道控制,高电平有效。


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif

2.2 仿真电路总体设计


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image009.gif


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif


  
        
控制按钮
   
   
  


                                                                                                            
本实验设计中,硬件部分涉及到了8086CPU、可编程并行接口8255A,并配合74LS373锁存器、74LS245缓冲器、74LS138译码器等基本元器件,实现了设想的电子密码锁。
8255A:如图2-6,8255A的D0~D7端口与CPU数据线ADO~AD7相接,CPU通过控制线的片选、读、写信号接口对8255A进行读、写与片选操作。外设接口端的A0-A7八个开关连接245的A0-A7端口,将外设信息传送到245中,键入密码输入、密码确定、修改密码等多种功能。
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif
2-6 开关功能
如图2-7,A口的PA0-PA7端口通过锁存器与数码管相连用于外圈显示,B口的PB0-PB7端口通过74LS373锁存器与数码管进行连接用于内部“米”字格的显示。
3  软件编程设计3.1系统概述
密码锁是一种通过密码输入来控制电路或芯片工作,从而控制机械的开关和闭合,完成开锁闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在运用较广的电子密码锁是以芯片为核心,通过编程来实现的,其性能和安全性已大大超过机械锁。其特点是保密性好,随机开锁成功率几乎为零。密码可变,用户可随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。无活动零件,不会磨损,寿命长。使用灵活性好,不像机械锁必须佩带钥匙才能开锁。
3.2 程序流程图设计
密码的输入与判定


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image013.gif


   
  
        
换位
   
   
  

file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif                                 
位数+1                           


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image015.gif


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif
  
        
重新输入
   
   
  
                                       
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gifN


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif


                                 Y


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image019.gif


  
        
E R R O
   
   
  
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image020.gif                                       N








file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image021.gif



file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image023.gif


                             
Y






  
        
* Y E S
   
   
  


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image024.gif


图3-1 密码的输入与判定
密码的更改


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image025.gif


   
  
        
换位
   
   
  

file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif                                 
位数+1                           


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image026.gif


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image016.gif
  
        
重新输入
   
   
  
                                       
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image017.gifN


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image018.gif


                                 Y


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image027.gif


  
        
E R R O
   
   
  
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image028.gif                                       N








file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image021.gif



file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image022.gif


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image023.gif


                             
Y






  
        
* Y E S
   
   
  


file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image029.gif


图3-2 密码的更改
3.3   按键控制
(1)、控制字
    给8255A输入端口控制字:
void fun82531()
{
   
    __asm
   
   {
     mov dx, 0x8006
      mov al, 0x37
      out dx, al
   }
    outp(GATE0,0x02);
   outp(GATE0,0x00);
   
}
void fun82532()
{
    __asm
   
   {
     mov dx, 0x8006
      mov al, 0x77
      out dx, al
   }
  outp(GATE0,0x99);
   outp(GATE0,0x99);
}
(2)、密码键入控制
整个过程中主要是对是否有按键信息输入进行扫描判断,并将所得信息与灯管编号进行比对,确定所选择要键入数字的灯管。当目前的灯管数字被选出后,自动跳到下一个灯管,直到四位数字全部选择完毕。  
3.4  字符动态显示
四位密码选出后,显示四位选定数字,然后检测密码正确性,8255A通过端口A、B、C读取指令,根据检测结果,密码正确则输出代码显示*YES,错误则显示ERRO。
见附录:检测密码正确性
更改密码,键入“更改密码”控制字后,与输入密码的流程相同,先选择灯管,待选定数字后跳至下一个,直到四位数字全部选定,然后键入“确认更改”指令,则密码更改成功。
见附录:密码更改。
4 系统实现4.1  proteus仿真实验
file:///C:/Users/38221/AppData/Local/Temp/msohtmlclip1/01/clip_image031.gif
图4-1 Proteus仿真图
如图4-1,为本实验的Proteus仿真模拟图,整个实验共用到8086CPU一个、74LS245一个、可编程并行接口8255A一个,74LS273锁存器三个、74LS138译码器一个、数码管一个、与非门两个、开关八个、电阻八个。
5 结论
通过对电子密码锁的设计,从设计硬件电路到编写代码,再到对程序的调试,在整个的设计过程中学到了很多。例如,我们用到了8255A的并行接口,将二进制的控制信息传入8086CPU中处理,选择对密码是否正确进行调整。与此同时,我们又通过这次产品的设计加深了对硬件知识的理解以及常用芯片功能的掌握。在使用8255A和8253的时候,要对其进行初始化,这初始化程序的编写,有助于对这些接口芯片的工作原理的理解。总之,在实验中自己动手,把理论知识用于实践,从中能够学到很多。
5.1 收获与体会
通过这一个多月以来对电子密码锁的硬件电路的设计,以及对软件程序的编写,我们又对计算机硬件技术基础这门课程有了更深一层的理解。与此同时,我们还有如下收获:
首先,我们能熟练掌握计算机硬件技术知识,其中包括硬件电路设计和软件编程设计等内容。计算机硬件技术基础是比较难学的科目,尤其是对那些没有过编程基础的学员来说,刚开始接触时感觉力不从心。但是,通过设计这个电子密码锁,我组成员都能对硬件设计以及软件编程熟练掌握,并且能实现原计划的功能,效果比较显著。
其次,增强了我们组员之间的团结协作的能力。通过实验,我们明白了团队力量的强大,只有一个团队能够齐心协力、合理分工,工作才能有条不紊的高效开展。
5.2 缺点与不足
虽然在这次电子密码锁的制作中我们收获了很多,但是也不乏问题存在。
首先,刚开始的时候分工不明确,导致制作进程比较缓慢。由于刚接触一门全新的课程,再加上对程序的编写不是很熟悉,所以大家都不知道从何入手,没有明确的分工。随着教员对硬件知识的讲解,再结合平时的小组讨论与自我学习,有主攻硬件设计的,有软件编程的,也有PPT制作和论文编写的,以此提高了我们的效率。
其次,由于我们知识积累不足,导致大家在制作中遇到很多困难,期出现厌烦心理,抱怨声音较多,甚至出现了分歧与争吵。当然,对于一个团队来说,出现矛盾是在所难免的,这时候作为组长更应该起到稳定军心的作用。大家在一起,从头来过,寻找解决问题的办法,一起攻克难关。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表