微机原理与接口技术课程设计实验报告2-交通灯控制系统1

《微机原理与接口技术》

课程设计报告

交通灯控制系统

班级:    

学号:   

姓名:       

指导教师:

成绩:          

20##年7月 1日

目       录

1、课程设计的目的和要求……………………………………………………………… 3

2、系统的主要功能、作用及主要性能指标……………………………………………… 1

3、总体设计……………………………………………………………………………… 1

   3.1基本工作原理…………………………………………………………………… 1

   3.2硬件总体设计……………………………………………………………………… 2

      3.2.1硬件电路设计………………………………………………………………… 2

      3.2.2 原理及连线图……………………………………………………………… 2

  3.3软件总体设计……………………………………………………………………… 3

      3.3.1主程序流程图……………………………………………………………… 3

      3.3.2中断服务子程序流程图………………………………………………… 4

  3.4调试过程…………………………………………………………………………… 4

4、硬件设计………………………………………………………………………………… 5

5、软件设计………………………………………………………………………………… 5

6、系统操作说明………………………………………………………………………… 8

7、结束语………………………………………………………………………………………… 8

8、参考文献…………………………………………………………………………………… 8

一、    课程设计的目的和要求

课程设计的目的和意义:

《微机原理与接口技术》是计算机、电子类专业的专业基础课。在课程体系种占有重要的位置。课程设计的目的是配合平时的教学和实验,以达到巩固和消化课堂教学内容,进一步加强综合应用能力,启发创新思维的目的。是培养学生综合素质,提高动手能力,提高发现问题和解决问题能力的重要阶段。

课程设计的基本要求:

接口设计:根据所选题目和所用的接口电路芯片设计出完整的接口电路。

程序设计:要求画出程序流程图,设计出全部程序并给出程序设计说明和程序注释。

课程设计说明书:

a、本次课程设计的目的和意义。

b、设计报告:字数约2000~3000字(不包括程序清单),内容包括:

1设计题目;

2系统的主要功能、作用以及主要技术性能指标;

3总体设计方案、工作和组成原理(框图)或设计说明、采用的技术路线等;

4系统设计:接口电路设计,程序设计(程序流程图和程序清单及注释)以及其他有关的理论分析和计算;

5设计总结:对整个设计工作过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识、收获和提高。

c、作品的使用或操作说明。

d、设计图纸或图表(如接口电路原理图等)。装订时将课程设计说明书附在封面的3页之后。

二、    系统的主要功能、作用及主要性能指标

       按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。可利用8255、8253、8259等接口电路。

三、    总体设计

1、基本工作原理

设有一个十字路口,1、3为南,北方向, 2、4为东,西方向。 初始化之后, 1、3路口的绿灯亮, 2、4路口的红灯亮, 1、3路口方向通车。 延迟一段时间(30秒)后, 1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁。闪烁3次(延时3秒)后, 1、3路口的红灯亮, 同时2、4路口的绿灯亮, 2、4路口方向开始通车。 延迟一段时间(30秒)后, 2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁3次(延时3秒)后,再切换到1、3路口方向。 之后,重复上述过程

    2 、硬件总体设计

         (1)硬件电路设计

              各芯片主要管脚的功能如下:

8255A

PC0:和8253的OUT0端相与后得到黄灯信号,其中1表示亮,0表示暗

PC1:表示绿灯信号,其中1表示亮,0表示暗

PC2:表示红灯信号,其中1表示亮,0表示暗

PC3:和8253GATE1端相连,为时器1的门控型号

PC4: 和8253GATE2端相连,为时器2的门控型号

PA0~PA7,PB0~PB7:可接两个8段LED显示器,用于显示当前等亮时间

8253:

定时器0:输入信号设为10KHZ,工作在方式3,输出为1HZ方波,OUT0和PC0相与得到黄灯信号。

定时器1:输入信号为OUT0,工作站方式2,计数初值为30,实现延迟30S后产生中断。控制字为:01010100

定时器2:输入信号为OUT0,工作站方式2,计数初值为3,实现延迟3S后产生中断。控制字为:10010100

8259:

采用边沿触发,没有级联,需要设ICW1,ICW2,ICW4,不用ICW3。

         (2)原理及连接图

    3 、软件总体设计

      系统流程图如下图所示:

     

中断服务流程图如下图:

4.调试过程

(1)、根据硬件线路设计将硬件的线路连好。

(2)、根据软件设计的程序流程图编好原程序。

(3)、将程序在PC机上编译通过,并将PC机与硬件连好,进行连接和运行调试。

四、    硬件设计

       介绍本系统所选用的各种芯片的引脚、功能、相应的命令字控制格式。

8255芯片引角图         8259芯片引角图        8253芯片引角图

              

(1)8255A的控制字:

8255A方式选择控制字

端口C按位置1/复0控制

 (2)8259A的操作命令字

微机原理与接口技术课程设计实验报告2-交通灯控制系统1

五、    软件设计

源程序清单:

源程序(带注释):

AD1_8253 EQU 00D0H

AD2_8253 EQU 00D1H

AD3_8253 EQU 00D2H

AD4_8253 EQU 00D3H

AD1_8255 EQU 00C0H

AD2_8255 EQU 00C2H

AD3_8255 EQU 00C4H

AD4_8255 EQU 00C6H

AD0_8259 EQU 00A0H

AD1_8259 EQU 00A1H

DATA SEGMENT

                    OLDOC1 DD ?

                    OLDOC2 DD ?

                    R_G  DB  0H          ;下一次应该亮红灯,还是绿灯,0(绿),-1(红)。

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

MAIN:        MOV AX,DATA

                    MOV DS,AX

;---------------------------------------------------------------------------

                    ;中断服务程序

                    ;函数名:RED_GREEN

                    ;功  能:当红绿亮完后设置系统状态

                    RED_GREEN PROC FAR

                           PUSH AX

                           STI

                           MOV AL,[R_G]

                           NOT AL                     ;将R_G取反

                           MOV R_G,AL

                           MOV AL,00000010B       ;PC1置0,即绿灯变暗

                           OUT AD4_8255,AL

                           MOV AL,00000100B       ;PC2置0,即红灯变暗

                           OUT AD4_8255,AL

                           MOV AL,00000001B       ;PC0置1,即黄灯变亮

                           OUT AD4_8255,AL

                           MOV AL,00000110B       ;PC3清0,GATE1低电平,计数器1暂停计数

                           OUT AD4_8255,AL

                           MOV AL,00001001B       ;PC4置1,GATE2高电平,计数器2开始计数

                           CLI

                           POP AX

                           IRET

                    RED_GREEN ENDP

        ;函数名:YELLOW

                    ;功  能:当黄灯亮完后设置系统状态

                    YELLOW PROC FAR

                           PUSH AX

                           STI

                           MOV AL,[R_G]

                           CMP AL,0H

                           JNE  CHANGE_RED

                           MOV AL,00000011B       ;PC1置1,即绿灯亮

                           OUT AD4_8255,AL

                           JMP ENDCHANGE

                    CHANGE_RED: MOV AL,00000101B      ;PC2设置1,即红灯亮

                           OUT AD4_8255,AL

                    ENDCHANGE: MOV AL,00000000B ;PC0清零,即黄灯暗

                           MOV AL,[R_G]

                           NOT AL                     ;将R_G取反

                           MOV R_G,AL

                           OUT AD4_8255,AL

                           MOV AL,00000111B       ;PC3置1,gate1高电平,计数器1开始计数

                           OUT AD4_8255,AL

                           MOV AL,00001000B       ;PC4置0,gate2低电平,计数器2暂停计数

                           CLI

                           POP AX

                           IRET

                    YELLOW ENDP

;---------------------------------------------------------------------------

                    ;初始化8253

                    MOV AL,00010111B   ;(定时器0,方式3,BCD计数,初值10000)

                    OUT AD4_8253,AL

                    MOV AL,01010100B   ;(定时器1,工作方式2,2进制计数,初值30)

                    OUT AD4_8253,AL

                    MOV AL,10010100B   ;(定时器2,工作方式2,2进制计数,初值3)

                    MOV AL,00H                          ;给定时器0付初值0,表示最大值10000

                    OUT AD1_8253,AL

                    MOV AL,1EH                          ;给定时器1付初值30

                    OUT AD2_8253,AL

                    MOV AL,03H                          ; 给定时器2付初值30

                    OUT AD3_8253,AL

;---------------------------------------------------------------------------

                    ;初始化8255

                    MOV AL,10000000B        ;8255各口都工作在方式0,都作为输出口

                    OUT AD4_8255,AL

                    MOV AL,00000000B        ;将PC0清零,即黄灯暗

                    OUT AD4_8255,AL

                    MOV AL,00000010B        ;将PC1清零,即绿灯暗

                    OUT AD4_8255,AL

                    MOV AL,00000101B        ;将PC2置1,即红灯亮

                    OUT AD4_8255,AL

                    MOV AL,00000111B        ;将PC3置1,即定时器1开始计时

                    OUT AD4_8255,AL

                    MOV AL,00001000B        ;将PC4清零0,即定时器2暂停计时

                    OUT AD4_8255,AL

;---------------------------------------------------------------------------

                    ;初始化8259

                    MOV AL,00010011B        ;边沿触发,要用ICW4,没有级联,不用ICW3

                    OUT AD0_8259,AL

                    JMP SHORT $+2               ;I/0端口延时

                    MOV AL,00001000B        ;ICW2,设置中断向量,起始中断向量为08H

                    out AD1_8259,AL                  ;即IR6,IR7的中断类型号分别是0EH,0FH

                    MOV AL,00010001B        ;ICW4,特殊全嵌套,非缓冲方式,正常结束

;---------------------------------------------------------------------------

                    ;写入IR6中断处理程序——YELLOW

                    MOV AX,350EH

                    INT 21H

                    MOV WORD PTR OLDOC1,BX

                    MOV WORD PTR OLDOC1+2,ES

                    MOV AX,CODE

                    MOV DS,AX

                    MOV DX,OFFSET YELLOW

                    MOV AX,250EH

                    INT 21H

;---------------------------------------------------------------------------

                    ;写入IR7中断处理程序——RED_GREEN

                    MOV AX,350FH

                    INT 21H

                    MOV WORD PTR OLDOC2,BX

                    MOV WORD PTR OLDOC2+2,ES

                    MOV AX,CODE

                    MOV DS,AX

                    MOV DX,OFFSET RED_GREEN

                    MOV AX,250FH

                    INT 21H

;---------------------------------------------------------------------------

EXIT:          MOV AH,4CH

                    INT 21H

CODE ENDS

                    END MAIN

程序运行结果:
    1.即东西方向的绿灯和南北方向的红灯同时点亮1分钟;
    2.1分钟后,东西方向的黄灯闪烁5秒钟,。此时南北方向仍维持红灯点亮。
    3.东西方向的黄灯闪烁5秒钟后,转为东西方向的红灯和南北方向的绿灯同时点亮20秒钟;
    4. 20秒钟后,转为南北方向的黄灯闪烁5秒钟,此时东西方向仍维持红灯点亮。
    5.南北方向的黄灯闪烁5秒钟后,东西方向的绿灯和南北方向的红灯同时点亮1分钟。如此循环重复。
    6. 由于数码显示模块没有完成,数码管没有倒计时显示。

六、系统操作说明

    

七、结束语

本次课程设计的总结与体会:

     微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

     学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过多个人的合作和努力,我们最后对实验的原理有了清晰的认识。虽然很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。

这次课设却让我们对实验芯片有了足够的了解,让我们知道了实验芯片的用法;而且它还让我们对自己动手写程序来控制芯片的运作有了一定的基础。虽然只是一个小型的课程设计,但是通过学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。

实验中个人的力量是不及群体的力量的,我们几个人分工合作,做事的效率高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。

总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。感谢老师的悉心指导。

这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。当然最终,这个设计很成功,主要体现在,这一整个系统,几乎没有参考任何书,程序由自己独立完成,与用8255来制作的交通灯控制系统相比,程序简单易读,结构清楚,最重要的是成本低。在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。成本的高低也决定了产品的适用性。

八、参考文献

1.《微机原理与接口技术》,洪永强,北京:科学出版社,2004

2.《微机原理与接口技术》,雷丽文、朱晓华、蔡征宇、缪均达,北京:电子工业出版社1997;

3.《微型计算机系统原理及应用》,周明德,北京:清华大学出版社,1998;

4.《微机原理与接口技术(第二版)》,倪继烈,刘新民主编,电子科技大学出版社,2004;

相关推荐