计算机控制技术课程设计报告

                         

陕西理工学院

课程设计实验报告

       课 程:单片机原理及应用

       题 目:交通灯

          院 系:电气工程系

          班 级:自控

          学 号:

          姓 名:

          指 导老师:

          时 间:2010.11.22 — 2010.12.10

摘   ... 3

1.    引言... 4

2.    总体设计方案... 4

2.1.   设计思路... 4

2.1.1.  设计目的. 4

2.1.2.  设计任务和内容. 5

2.1.3.  方案比较、设计与论证. 5

2.1.4.  芯片简介. 7

2.2.   设计方框图... 10

3.    设计原理分析... 10

3.1.   交通灯显示时序的理论分析与计算... 10

3.2.   交通灯显示时间的理论分析与计算... 12

3.3.   电路模块... 13

3.3.1.  LED数码管显示模块. 13

3.3.2.  LED红绿灯显示模块. 15

3.3.3.  复位电路. 17

3.3.4.  晶振电路. 17

4.    结束语... 18

5.    参考文献... 18

6.    附录... 18

6.1.  附录1:程序清单... 18

6.2.  附录2:仿真电路设计总图... 25

6.3.  附录3:实物电路设计总图... 25


任务书

1.设计目的和要求

a加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

b用单片机模拟实现具体应用,使个人设计能够真正使用。

c把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。

d提高利用已学知识分析和解决问题的能力,提高实践动手能力。

e单片机采用AT89C51芯片,使用发光二极管(红,黄,绿)代表各个路口的交通灯,用8段数码管对转换时间进行倒时(东西路口15秒,南北路口25秒,黄灯时间5秒)。

2.设计内容

  a.方案确定

1.  电源提供方案

    为使模块稳定工作,须有可靠电源,采用单片机控制模块提供电源。此方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。
综上所述,我们选择第二种方案。

2.  复位方案

复位方式有两种:按键复位与软件复位。由考虑到程序的简洁,避免冗长,本设计采用按键复位,在芯片的复位端口外接复位电路,通过按键对单片机输入一个高电平脉冲,达到复位的目的。

3.  输入方案

方案一:

采用89C51扩展I/O 口及键盘,显示等。该方案的优点是:
使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。

方案二:

直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用2个按键,分别是K1、K2。
由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二

4.  显示界面方案

    该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案:

方案一:

完全采用数码管显示。这种方案只显示有限的符号和数码字符,无法胜任题目要求。

方案二:

完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。

方案三:

采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。

设计方框图

整个设计以AT89C51单片机为核心,由数码管显示,LED数码管显示,复位电路组成。

硬件模块入图2-1。

组织结构图

5.  交通管理的方案论证

东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。指示灯燃亮的方案如2。

表2说明:       

(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为25秒。

(2)黄灯5秒,警示车辆和行人红、绿灯的状态即将切换。      

(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为25秒。

(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。

  b.硬件电路设计

1.1.2.     LED数码管显示模块

(1)静态显示方式:静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。
静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。
(2)动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。

(2)复位电路

复位方式有多种,本设计采用按键复位。接线图如图程序3.1复位电路,

框图

 

在设定的定时时间内,89C51必须在RST引脚产生一个由高到低的电平变化,以清内部定时器.

1.1.3.     晶振电路

  晶振电路原理图如3-2:

3-2 晶振模块原理图

 选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取30pF,晶振为2MHz。

  c.软件设计

1.2.    电路模块

数码管显示子程序:

DISP: MOV    A,R2                  

      MOV    B,#10

      DIV    AB

      MOV    60H,A

      MOV    61H,B

      MOV    A,R3

      MOV    B,#10

      DIV    AB

      MOV    62H,A

      MOV    63H,B

      MOV    40H,#04H

      MOV    R5,#0FEH

      MOV    R0,#60H

LLP:  MOV    A,@R0

      MOV    DPTR,#TABLE

      MOVC   A,@A+DPTR

      MOV    P0,A

      MOV    A,R5

      MOV    P2,A

      LCALL  DELAY1

      MOV    P2, #0FFH              ;令显示器熄灭,以免产生残影

      RL     A

      MOV    R5,A

      INC    R0

      DJNZ   40H,LLP

      RET

DELAY1:                              ;延时子程序

      MOV    R4,#12

DL2:  MOV    R7,#12

      DJNZ   R7,$

      DJNZ   R4,DL2

      RET

TABLE:DB     3FH,24H,5dH,75H,66H

      DB     73H,7bH,25H,7fH,77H

      END

1.2.1.     LED红绿灯显示模块

本实验有四种状态:

状态1, 东西绿灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BBH。

子程序:

ST1:  MOV    P1,#0EBH                 ;第一个状态,主干道亮绿灯、支干道亮红灯;

      CJNE   R1,#0FFH,TZ1

      MOV    R1,#00H

      DEC    20H

      DEC    23H

TZ1:  MOV    R2,20H

      MOV    R3,23H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,20H

      CJNE   A,#00H,ST1

      MOV    20H,#25

状态2, 东西黄灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BDH。

子程序:

ST2:  MOV    P1,#0EDH                ;第二个状态,主干道亮黄灯、支干道亮红灯;

      CJNE   R1,#0FFH,TZ2

      MOV    R1,#00H

      DEC    21H

      DEC    23H

TZ2:  MOV    R2,21H

      MOV    R3,23H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,21H

      CJNE   A,#00H,ST2

      MOV    21H,#05

状态3, 东西红灯亮,南北绿灯亮,此时P1.0口—P1.7口的高低电平为#0DEH。

子程序:

ST3:  MOV    P1,#0BEH                ;第三个状态,主干道亮红灯、支干道亮绿灯;

      CJNE   R1,#0FFH,TZ3

      MOV    R1,#00H

      DEC    24H

      DEC    22H

TZ3:  MOV    R2,24H

      MOV    R3,22H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,22H

      CJNE   A,#00H,ST3

      MOV    22H,#15

状态4, 东西红灯亮,南北黄灯亮,此时P1.0口—P1.7口的高低电平为#0EEH。再采用显示子程序与延时子程序可使LED显示灯按照要求点亮。

子程序:

ST4:  MOV    P1,#0DEH                ;第四个状态,主干道 亮红灯、支干道亮黄灯;

      CJNE   R1,#0FFH,TZ4

      MOV    R1,#00H

      DEC    24H

      DEC    21H

TZ4:  MOV    R2,24H

      MOV    R3,21H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,21H

      CJNE   A,#00H,ST4

      MOV    21H,#05

      MOV    24H,#20

      LJMP   ST1

1.程序清单

      ORG    0000H

      LJMP   MAIN

      ORG    0003H

      LJMP   INTT0

      ORG    0013H

      LJMP   INTT1

      ORG    001BH

      LJMP   TT1

      ORG    0100H

TT1:  MOV    TH1,#0D8H                ;定时器1,定时10us

      MOV    TL1,#0F0H

      DJNZ   R6,EXIT

      MOV    R6,#100                  ;定时器定时100次

      MOV    R1,#0FFH

EXIT: RETI

INTT0:MOV    P1,#0BEH                  ;外部中断0,

      JB     P3.4,$

      RETI

INTT1:MOV    P1,#0BBH                  ;外部中断1,

      JB     P3.4,$

      RETI

      ORG    1000H

MAIN: MOV    R6,#100                  ;主程序;

      MOV    R1,#00H

      MOV    TMOD,#10H                ;初始化

      MOV    TH1,#0D8H

      MOV    TL1,#0F0H

      MOV    IE,#8DH

      MOV    20H,#25

      MOV    21H,#5

      MOV    22H,#15

      MOV    23H,#30

      MOV    24H,#20

      SETB   TR1

ST1:  MOV    P1,#0EBH                 ;第一个状态,主干道亮绿灯、支干道亮红灯;

      CJNE   R1,#0FFH,TZ1

      MOV    R1,#00H

      DEC    20H

      DEC    23H

TZ1:  MOV    R2,20H

      MOV    R3,23H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,20H

      CJNE   A,#00H,ST1

      MOV    20H,#25

ST2:  MOV    P1,#0EDH                ;第二个状态,主干道亮黄灯、支干道亮红灯;

      CJNE   R1,#0FFH,TZ2

      MOV    R1,#00H

      DEC    21H

      DEC    23H

TZ2:  MOV    R2,21H

      MOV    R3,23H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,21H

      CJNE   A,#00H,ST2

      MOV    21H,#05

      MOV    23H,#30

ST3:  MOV    P1,#0BEH                ;第三个状态,主干道亮红灯、支干道亮绿灯;

      CJNE   R1,#0FFH,TZ3

      MOV    R1,#00H

      DEC    24H

      DEC    22H

TZ3:  MOV    R2,24H

      MOV    R3,22H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,22H

      CJNE   A,#00H,ST3

      MOV    22H,#15

ST4:  MOV    P1,#0DEH                ;第四个状态,主干道亮红灯、支干道亮黄灯;

      CJNE   R1,#0FFH,TZ4

      MOV    R1,#00H

      DEC    24H

      DEC    21H

TZ4:  MOV    R2,24H

      MOV    R3,21H

      LCALL  DISP                    ;调用显示子程序。

      MOV    A,21H

      CJNE   A,#00H,ST4

      MOV    21H,#05

      MOV    24H,#20

      LJMP   ST1                     ;跳转到第一个状态。

DISP: MOV    A,R2                    ;显示子程序。

      MOV    B,#10

      DIV    AB

      MOV    60H,A

      MOV    61H,B

      MOV    A,R3

      MOV    B,#10

      DIV    AB

      MOV    62H,A

      MOV    63H,B

      MOV    40H,#04H

      MOV    R5,#0FEH

      MOV    R0,#60H

LLP:  MOV    A,@R0

      MOV    DPTR,#TABLE

      MOVC   A,@A+DPTR

      MOV    P0,A

      MOV    A,R5

      MOV    P2,A

      LCALL  DELAY1

      MOV    P2, #0FFH; 注意,这里是程序修改的地方,令显示器熄灭,以免产生残影

      RL     A

      MOV    R5,A

      INC    R0

      DJNZ   40H,LLP

      RET

DELAY1:                              ;延时子程序

      MOV    R4,#12

DL2:  MOV    R7,#12

      DJNZ   R7,$

      DJNZ   R4,DL2

      RET

TABLE:DB     3FH,24H,5dH,75H,66H

      DB     73H,7bH,25H,7fH,77H

      END

  d.综合调试

  e.总结

自20##年11月22日起至20##年12月10日,这三周我们进行了关于计算机控制技术课程的实践学习训练。单片机的学习与应用。下面讲述关于计算机控制技术课程设计的总结与体会。

在这个学习过程中,我们六人一组系统的学习了交通灯

的相关知识。一开始,我们对它很陌生,可以说是知之甚少,可是我们不断翻阅图书馆的相关资料及网上查阅,经过自己的思考后,形成想法,之后我们经常在一起讨论,交换意见和看法,遇到大家都不懂的地方,我们会上网查资料或者去找周围的同学,如果仍旧一知半解,我们会去询问我们的指导老师,就这样,经过一段时间的系统学习,我们对这个交通灯有了一定程度的认识,学到了很多东西,这也对我们的后续学习过程和实践环节提供了有力的帮助和支持。

在这个课程设计中,我们要感谢的人有很多。首先,要感谢我们的指导老师—胡波老师,他给我们提供了很大的帮助,解决了我们组课设过程中实际存在的一些问题。其次,我要感谢我们组的其他组员,是他们的团结互助,和谐相处,不断协作,才使我们的课设进程快速高效完成。当然,也要感谢那些帮助过我们的其他同学,没有他们,我们的课设也不可能进行的如此顺利。

本次课程设计是在学完单片机原理及课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现。该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。

最后,我还要感谢我们的学校以及我们电气工程系的各位领导,是他们给我们提供了如此好的实习环境和硬件资源;及指导老师胡波不辞辛苦,耐心讲解,使我们非常感动。在这里,我向他们致以崇高的敬意。

附录

A元件清单

At89c51

74ls373

晶振2MHz

排阻respack-8

LED-RED

LED-GREEN

LED-YELLOW

10uF电容

30pF电容

共阴七段LED显示

电阻

B硬件图

C参考文献

[1].李朝青.单片机原理及接口技术(第3版).20##年10月

[2].蔡朝洋.单片机控制实习与专题制作

[3].楼然苗.单片机课程设计指导

[4].赵广林.电路设计与制版

相关推荐