找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8874|回复: 1
收起左侧

微机原理课程设计报告-8086+8255交通灯

[复制链接]
ID:211923 发表于 2017-6-16 18:02 | 显示全部楼层 |阅读模式
微机原理课程设计报告-交通灯
交通灯是采用计算机通过编写汇编语言程序控制的。 红灯停,绿灯行的交通规则。
广泛用于十字路口 ,车站,  码头等公共场所 , 成为人们出行生活中不可少的必需
品,由于计算机技术的成熟与广泛应用 , 使得交通灯的功能多样化 , 远远超过老式
交通灯,  交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展
了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,
所有这些,都是以计算机为基础的。 还可以根据主、 次干道的交通状况的不同任
意设置各自的不同的通行时间。 或者给红绿色盲声音警示的人性化设计。 现在的
交通灯系统很多都增加了智能控制环节, 比如对闯红灯的车辆进行拍照。 当某方
向红灯亮时, 此时相应的传感器开始工作, 当有车辆通过时, 照相机就把车辆拍
下。
要将交通灯系统产品化, 应该根据客户不同的需求进行不同的设计, 应该在程序
中增加一些可以人为改变的参数, 以便客户根据不同的需要随时调节交通灯。 因
此,研究交通灯及扩大其应用,有着非常现实的意义
0.png
0.png

单片机源程序如下:
  1. ;SAMPLE.ASM
  2. .MODEL SMALL
  3. .8086
  4. .stack
  5. .code
  6. .startup
  7. mov dx,0206h      ;    将控制端口的地址送给 dx
  8. mov ax,80h       ;     将控制字送给 ax
  9.     out dx,ax     ;           将控制字送给控制端口
  10. mov dx,0200h      ;    将a 端口的地址送给 dx
  11. mov ax,0ffh     ;      将初始化数据送给 ax
  12.     out dx,ax     ;           将端口初始化
  13. s0: mov ax,0bbh      ;       将数据 10111011B送给ax
  14.     out dx,ax     ;           将ax 数据送给 dx,让4 个红灯亮
  15.     call delay5    ;          调用延时程序子程序,维持 4-5s
  16. s1: mov ax,0beh      ;       将数据 10111110B送给ax
  17.     out dx,ax     ;           将ax 数据送给 dx,使南北绿灯亮,东西红灯亮
  18.     call delay5    ;          调用延时程序子程序,维持 4-5s
  19. mov cx,6       ;       将
  20. lp: mov ax,0bfh     ;       将数据 10111111B送给ax
  21.     out dx,ax     ;           将ax 数据送给 dx,使南北绿灯灭,东西红灯亮
  22.     call delay05   ;          调用延时程序子程序,维持 4-5s
  23. mov ax,0beh      ;     将数据 10111110B送给ax
  24.     out dx,ax     ;           将ax 数据给dx,实现南北绿灯亮,东西红灯亮
  25. ----------------------- Page 10-----------------------
  26.     call delay05   ;         调用延时程序子程序,维持 4-5s
  27.     loop lp      ;           循环实现绿灯的亮灭循环闪烁约 6 次
  28. mov ax,0bdh      ;    将数据 10111101B送给ax
  29.     out dx,ax     ;          将ax 送给dx,实现南北黄灯亮,东西红灯亮
  30.     call delay3   ;          调用延时程序子程序,维持 3-4s
  31. mov ax,0ebh      ;    将数据 11101011B送给ax
  32.     out dx,ax     ;          将ax 数据送给 dx,实现南北红灯亮,东西绿灯亮

  33.     call delay5   ;          调用延时程序子程序,维持 4-5s

  34. mov cx,6       ;      将

  35. lp1:mov ax,0fbh     ;       将数据 11111011B送给ax

  36.     out dx,ax     ;          将ax 数据送给 dx,实现南北红灯亮,东西绿灯灭

  37.     call delay05   ;         调用延时程序子程序,维持 4-5s

  38. mov ax,0ebh      ;    将数据 11101011B送给ax

  39.     out dx,ax     ;          将ax 送给dx,实现南北红灯亮,东西绿灯亮

  40.     call delay05   ;         调用延时程序子程序,维持 4-5s

  41.     loop lp1     ;           循环实现绿灯的亮灭循环闪烁约 6 次

  42. mov ax,0dbh      ;    将数据 11011011B送给ax

  43.     out dx,ax     ;          将ax 送给dx,实现南北红灯亮,东西黄灯亮

  44.     call delay3   ;          调用延时程序子程序,维持 3-4s

  45. jmp s0        ;       无条件跳转至程序 S0,实现控制循环

  46. delay5proc near

  47. push cx

  48. mov bx,250

  49.    dy1:mov cx,5882

  50.    dy2:loop dy2

  51. ----------------------- Page 11-----------------------
  52. decbx

  53. jnz dy1

  54. pop cx

  55. ret

  56. delay5endp

  57. delay05proc near

  58. push cx

  59. mov bx,25

  60.           dy3:mov cx,5882

  61.           dy4:loop dy4

  62. decbx

  63. jnz dy3

  64. pop cx

  65. ret

  66. delay05endp

  67. delay3proc near

  68. push cx

  69. mov bx,150

  70.           dy5:mov cx,5882

  71. ……………………

  72. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

1. 结果分析:
电路运行正常,交通灯按正确时间转换,实现了预期课程设计要求的目的。
六. 收获体会:
一周的微机原理课程设计结束了。 从中我学到了许多的知识和技术, 也懂得
了合作的重要性。
我在同学的帮助下学会了用软件模拟图形, 去研究程序的每一步。 每一次遇
到错误,都会自己先看, 然后在去找同学询问。 也复习了关于 8086和 8255一些
相关的知识。这次课程设计让我体会到了仅仅学好课本知识还是不够的, 还需要
实践,才能掌握知识,融会贯通。在这次实践中,最大的收获是对课程的兴趣。
兴趣是最好的老师, 这将会让我更加爱上学习与实践。 最终感谢老师和同学们的
帮助!

所有资料51hei提供下载:
微机原理-交通灯课程设计报告.pdf (631.63 KB, 下载次数: 115)
回复

使用道具 举报

ID:1083032 发表于 2023-6-11 15:30 | 显示全部楼层
请问这个不采用总线扩展器也可以么?为什么有些方案采用?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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