视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
微机原理红绿灯课程设计报告
2025-10-05 08:29:29 责编:小OO
文档
微机原理红绿灯课程设计报告

实验报告 2009-09-02 18:16:02 阅读1337 评论2 字号:大中小 

 

摘  要:

介绍了基于8255A的交通灯系统设计方案,重点论述了软件系统的编写方法。实际结果表明该系统方案切实可行。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用8255A芯片实现了A、B口设置红、绿灯点亮时间的功能;红绿灯循环点亮,红绿灯变换之间,黄灯闪烁5秒 

关键字:

交通灯、软件系统

设计内容

本次课程设计是交通灯实时控制器,主要是用发光二极管模拟十字路口的红绿灯,如下图所示。交通灯控制器的设计与实现主要是通过编写汇编语言程序利用8255的A口和B口对灯的亮与灭进行控制。由于实验室的仪器上只有16个发光二极管,所以还得弄清楚是每个发光二极管所代表的灯的颜色及方向。16个发光二级管,且从高到低依次为:D15D14D13D12D11D10D9D8 D7D6D5D4D3D2D1D0。在设计的过程中做了如下的规定:R表示红灯,G表示绿灯,Y表示黄灯,E表示方向东,W表示方向西,S表示方向南,N表示方向北,D15D14表示ER,D13D12表示SR,D11D10表示EG,D9D8表示SG,D7D6表示WR,D5D4表示NR,D3D2表示WG,D1D0表示NG,D15D14D11D10表示EY,D7D6D3D2表示WY,D13D12D9D8表示SY,D5D4D1D0表示NY。

交通灯控制示意图

具体时间的分配和控制如下:

东西方向绿灯亮,南北方向红灯亮,时间20秒

东西方向黄灯闪烁,南北方向红灯亮,时间5秒

东西方向红灯亮,南北方向绿灯亮,时间20秒

东西方向红灯亮,南北方向黄灯闪烁,时间5秒 

设计器材设备

微机、TD-PIT++实验箱 

实验电路图

设计流程图 

总体设计过程

1.    根据选择题目的要求,结合所参考的资料,选择8255单元芯片以及LED显示单元电路。

1)    电路元器件的选择

可编程并行通信接口芯片8255

2)    完成8255单元电路的设计及参数计算

8255的A口地址是:IOY0+00H*4

B口地址是:IOY0+01H*4 

C口地址是:IOY0+02H*4

控制端口地址是:IOY0+03H*4

2.    软件流程图的设计

3.    电路接线图的设计

4.    软件的设计(程序见附录)

1)    芯片初始化,写8255的方式字

2)    延时,延时是通过设置指令的循环次数实现的

3)    东西方向绿灯亮,南北方向红灯亮,时间20秒

4)    东西方向黄灯闪烁,南北方向红灯亮,时间5秒

5)    东西方向红灯亮,南北方向绿灯亮,时间20秒

6)    东西方向红灯亮,南北方向黄灯闪烁,时间5秒

7)    判断是否有键按下

8)    返回到DOS

5.    进行软硬件调试

因采用了pc机和微机原理实验箱,硬件电路设计相对比较简单,利用微机实验箱上的8255并行口、发光二级管,便构成了交通灯控制系统。 

心得体会

 

通过这次课程设计,加强了我的动手、思考和分析解决问题的能力。在整个设计过程中,我们按照老师给出的总体方案设计了一套电路原理和电路连接图。通过查阅各方面资料我们编写了程序代码,并通过了调试,最终证实了该系统方案确实可行。

在设计过程中,了解了很多元器件的功能,并且对于其在电路中的使用有了更多的认识。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时也在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能够真正掌握理论知识,从而提高自己的实际动手能力和思考的能力。

附录(程序代码)

 

IOY0    EQU  0E000H

PORTA  EQU  IOY0+00H*4

PORTB  EQU  IOY0+01H*4

PORTK  EQU  IOY0+03H*4

STACK1   SEGMENT STACK 

           DW  256  DUP(?)

STACK1  ENDS 

CODE  SEGMENT  

       ASSUME  CS:CODE

START:  MOV  AL, 80H

        MOV  DX, PORTK          ;8255工作在方式0,A、B口均输出

        OUT  DX, AL

        MOV  AL, 3CH

        MOV  DX, PORTA            ;A口东方向绿灯亮,南方向红灯亮

        OUT  DX, AL

        MOV  AL, 3CH

        MOV  DX, PORTB            ;B口西方向绿灯亮,北方向红灯亮

        OUT  DX, AL

        CALL  DELAY                ;调用20s延时子程序

        MOV  CX, 5

START1:  MOV  AL, 0FCH

        MOV  DX, PORTA            ;A口东方向黄灯亮,南方向红灯亮

        OUT  DX, AL

        MOV  AL, 0FCH

        MOV  DX, PORTB            ;B口西方向黄灯亮,北方向红灯亮

        OUT  DX, AL

        CALL  DELAY1               ;调用0.5s延时子程序

        MOV  AL, 30H

        MOV  DX, PORTA            ;A口东方向黄灯灭,南方向红灯亮

        OUT  DX, AL

        MOV  AL, 30H

        MOV  DX, PORTB            ;B口西方向黄灯灭,北方向红灯亮

        OUT  DX, AL

        CALL  DELAY1               ;调用延时0.5s子程序

LOOP  START1                        ;CX≠0则循环

        MOV  AL, 0C3H

        MOV  DX, PORTA            ;A口东方向红灯亮,南方向绿灯亮

        OUT  DX, AL

        MOV  AL, 0C3H

        MOV  DX, PORTB            ;B口西方向红灯亮,北方向绿灯亮

        OUT  DX, AL

        CALL  DELAY                 ;调用20s延时子程序

        MOV  CX, 5

START2:  MOV  AL, 0F3H

        MOV  DX, PORTA            ;A口东方向红灯亮,南方向黄灯亮

        OUT  DX, AL

        MOV  AL, 0F3H

        MOV  DX, PORTB            ;B口西方向红灯亮,北方向黄灯亮

        OUT  DX, AL

        CALL  DELAY1               ;调用0.5s延时子程序

        MOV  AL, 0C0H

        MOV  DX, PORTA            ;A口东方向红灯亮,南方向黄灯灭

        OUT  DX, AL

        MOV  AL, 0C0H

        MOV  DX, PORTB            ;B口西方向红灯亮,北方向黄灯灭

        OUT  DX, AL

        CALL  DELAY1               ;调用0.5s延时子程序

LOOP  START2

        MOV  AH, 1

        INT  16H

        JZ  START                   ;判断是否有键按下,无按键则

QUIT:  MOV  AX, 4C00H                 调回继续循环,有则退出

       INT  21H

DELAY  PROC  NEAR                  ;20s延时子程序

       PUSH  CX

       PUSH  DX

       PUSH BX

       MOV BX, 3

       MOV DX, 27880

LAB:  MOV  CX, 0FFFFH

      LOOP  $

      DEC  DX

      JNZ  LAB

      DEC BX

      JNZ LAB

      POP BX 

      POP  DX

      POP  CX

      RET

DELAY  ENDP

DELAY1  PROC  NEAR                 ;0.5s延时子程序

        PUSH  CX

        PUSH  DX

        MOV  DX, 6970

LAB1:  MOV  CX, 0FFFFH

       LOOP  $

       DEC  DX 

       JNZ  LAB1

       POP  DX

       POP  CX

       RET

DELAY1  ENDP

CODE  ENDS

    END  START下载本文

显示全文
专题