最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机课程设计(交通灯、秒表)

来源:动视网 责编:小OO 时间:2025-09-23 21:17:58
文档

单片机课程设计(交通灯、秒表)

课程设计报告(2010—2011学年第2学期)课程名称:单片机课程设计班级:学号:姓名:指导教师:2011年03月一、目的运用所学理论知识及实验方法解决实际问题,通过这些活动培养分析问题和解决问题的能力。具体表现在构造一个控制系统框架的能力;检索和阅读文献资料的能力;综合运用所学专业知识使之对所设计系统具有调试的能力和故障处理的能力;绘图能力;计算机运用能力;逻辑思维能力与形象思维能力;文字及口头表达的能力;撰写实习报告的能力。二、内容和要求1、用PROTEL99SE画单片机系统原理图;2
推荐度:
导读课程设计报告(2010—2011学年第2学期)课程名称:单片机课程设计班级:学号:姓名:指导教师:2011年03月一、目的运用所学理论知识及实验方法解决实际问题,通过这些活动培养分析问题和解决问题的能力。具体表现在构造一个控制系统框架的能力;检索和阅读文献资料的能力;综合运用所学专业知识使之对所设计系统具有调试的能力和故障处理的能力;绘图能力;计算机运用能力;逻辑思维能力与形象思维能力;文字及口头表达的能力;撰写实习报告的能力。二、内容和要求1、用PROTEL99SE画单片机系统原理图;2
课 程 设 计 报 告

(2010— 2011学年 第 2 学期)

课程名称:   单片机课程设计  

班    级:                  

学    号:                  

姓    名:                   

指导教师:                   

2011年 03月

一、目的

运用所学理论知识及实验方法解决实际问题,通过这些活动培养分析问题和解决问题的能力。具体表现在构造一个控制系统框架的能力;检索和阅读文献资料的能力;综合运用所学专业知识使之对所设计系统具有调试的能力和故障处理的能力;绘图能力;计算机运用能力;逻辑思维能力与形象思维能力;文字及口头表达的能力;撰写实习报告的能力。
二、内容和要求

1、用PROTEL99SE画单片机系统原理图;

2、焊接电路板;

3、根据编程任务要求编写并调试程序;

4、撰写报告;

5、参加实习成果验收及面试或考试;

   任务1:交通灯

(1)基本要求:以单片机为核心设计一个完整的交通灯模拟系统。所谓模拟就是以每组有绿,红,黄色3支共两组发光二极管表示交通信号灯,数码管2只共两组以递减的方式表示各色信号灯的时间。在双干线路口上,交通信号灯的变化是定时的。假定:

(1)、放行线:绿灯亮放行25秒,黄灯亮警告5秒然后红灯亮禁止。

(2)、禁止线:红灯亮禁止30 秒,然后绿灯亮放行。

使两条路线交替地成为放行线和禁止线,就可以实现定时交通控制。假定以P1口线接6支发光二极管(即交通信号灯),因为电路中有反相器的关系,所以口线输出高电平则“信号灯”熄灭,口线输出低电平则“信号灯“亮。

(2)进阶要求一:在基本要求的基础上,要求红绿灯时间可通过按键设置,例如红灯60秒,绿灯52秒,黄灯8秒。提示:时间设置一定是要遵循以下规律:红灯时间=绿灯时间+黄灯时间。

任务2:秒表

    要求:至少包括4个功能:时间清零;启动计时;暂定计时;继续计时;计时最小单位0.1 秒,最大计时时间999.9秒。

三、过程(如实际程序开发、电子制作,详细说明有关原理、开发过程、调试过程、结果)

交通灯:

 (一)、功能描述:

这是一个交通灯模拟系统,每组有绿,红,黄色3支共两组发光二极管表示交通信号灯,数码管2只共两组以递减的方式表示各色信号灯的时间。在双干线路口上,交通信号灯的变化是定时的。初始时间设定为红灯30秒,绿灯25秒,黄灯5秒,在此基础上可通过按键修改红绿灯的时间。

(二)、硬件部分:

电源模块:

1、模块功能简介:此模块为整个系统提供稳定的5V电压。

2、电路图:

3、所用芯片介绍:

LM2576系列开关稳压集成电路是线性三端稳压器件的替代品,它具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,从而为MCU的稳定、可靠工作提供了强有力的保证。

主要特性:最大输出电流:3A;最高输入电压:LM2576为40V,LM2576HV为60V;输出电压:3.3V、5V、12V、15V和ADJ(可调)等可选;振动频率:52kHz;转换效率:75%~88%(不同电压输出时的效率不同)。

单片机最小系统模块:

1、模块功能介绍:本系统包括时钟电路和复位电路。本课程设计采用的单片机是SSTE58,晶振采用12MHz。

2、电路图:

    

以上电路包括时钟电路和复位电路。

时钟电路是由振荡电路和分频电路组成,其中振荡电路是由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲;分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。晶振采用12MHz。

复位电路是采用的按键电平复位,通过使复位端经电阻与VCC电源接通而实现的。

3、所用芯片介绍:

 SSTE58是通用的8位系列兼容微处理器,工作电压在4.5V和5.5V之间;内部RAM共有1KB;4个8位并行双向I/O口(32个I/O引脚);有4个中断源(2个定时器中断和2个外部中断);采用40引脚双列直插式的封装形式。

"

8段数码管显示模块:

1、模块功能介绍:此模块用来显示实验中药显示的时间等数字。这是由条形发光二极管组成“8”字形的LED显示器。发光响应快,亮度强,高频特性好。

2、电路图: 

为了给发光二极管加驱动电压,上图中公共引脚的接法为共阳极接法,把发光二极管的阳极连在一起作为阳极公共引脚,这样阴极引脚上加低电平时即可导通点亮。

3、显示原理介绍:

本次课程设计中为并排使用的4位数码管,采用动态显示方式。显示时通过位控信号采用扫描的方法逐位地循环点亮各位数码管。虽然在任一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果一样。

动态显示需要为各位提供段控和位控,把段码表预先存放在存储器中,使用时通过查表就可以得到段码。而通过并行口输出的相互的位码则是起选通作用的,用于选择显示位。因此,需要用到接口芯片的两个数据口。本设计中所用的是8155,下面介绍。

4、所用芯片介绍:

见下页
 

 :

芯片引脚介绍:

CE:芯片片选端。

/RD、/WR:读写信号。

ALE:地址锁存信号。

IO/E:为IO/RAM选择线,低电平选择RAM,高电平选择I/O。

PA0~PA7为端口A。PB0~PB7为端口B。PC0~PC7为端口C。

在设计中,使用PB口为位码输出口,以PB7~PB4输出位控线。PA口为段码输出口,加接74HC244进行段控输出驱动。因为8155只能输出显示段码而不具有控制功能,所以动态显示要靠程序实现。

LED灯模块:

1、模块功能介绍:此模块用来作为模拟交通灯的红黄绿灯的闪烁。

2、电路图:

   

3、显示原理介绍:

本设计中使用两组发光二极管,采用共阳极接法,阳极公共引脚接+5V,阴极引脚上加低电平时即可导通点亮。

  

  按键模块:

1、模块功能介绍:此模块用来作为开关选择。

2、电路图:

使用时,用跳线将所需引脚与相应开关相连接。

 (三)、软件部分:

1、设计思想:

此次设计是在基本功能上修改的,实现了可修改红黄绿灯时间的功能。

首先,基本功能是两组发光二极管表示交通灯信号,4个数码管分2组以递减的方式表示各色信号灯的时间。然后,在此基础之上,要求红绿灯时间可通过按键设置,则需要用到相应存储单元来控制时间。

2、流程图:

交通灯的基本功能大致可分为两部分,一部分为信号灯的控制,另一部分为数码管时间的显示,这两部分都是通过相应的关系控制的。可分为4种情况:(1)、A组红灯亮,B组绿灯亮;(2)、A组红灯继续亮,B组黄灯亮;(3)、B组红灯亮,A组绿灯亮;(4)、B组红灯继续亮,A组黄灯亮。

流程图如下:

     定时中断子程序:

中断服务程序的主要功能是进行计时操作,设计一个以1秒为周期的中断子程序。流程图如下:

  

  

  (四)、程序的调试与运行:

程序的调试运行采用KEILC51编译器,支持汇编语言和标准C语言。经过一系列的调试之后,终于可以成功运行。

 

秒表:

(一)、功能描述:

这是一个简易秒表,具有4个功能:启动计时、暂定计时、继续计时、时间清零。其中计时最小单位0.1 秒,最大计时时间999.9秒。

(二)、硬件部分:

详细请见交通灯硬件部分(除去LED灯部分)

(三)、软件部分:

1、设计思想:

使用3个按键实现4个功能,其中暂停和继续是一个键,这里通过判断存储单元的奇偶来选择暂停和继续。主要采用按键查询加中断定时的方法。

2、流程图:

 其中定时中断子程序与交通灯思想类似,此处不再叙述。

(四)、程序的调试与运行:

秒表程序设计过程中,初步完成时遇到2个bug:

1、未开始时,按两下暂停键,秒表也会开始计数;后来加了开始键计数单元,来判断有没有开始,若没有开始,暂停键不作用。

2、暂停后,按开始键也会继续;后来加了暂停键计数单元来判断暂停键是否按过,若已按过,开始键则不作用。

总电路图:

这是总的PCB图,其中电源模块没有画出来。

附:设计程序(主要部分)

任务一:交通灯

/******交通灯的基本功能********/

 LOOP: SETB TR0

      MOV A,60H

      ADD A,61H     

      MOV 62H,A    ;62H存放红灯时间 

      MOV A,61H

      ADD A,62H

      MOV 63H,A    ;63H存放红灯时间加绿灯时间

       ADD A,60H

       MOV H,A         ;H存放红黄绿时间之和

       CLR C

       MOV A,51H

       SUBB A,61H

       JC LOOP1          ;计数值与61H比较

       CLR C

       MOV A,51H 

       SUBB A,62H

       JC LOOP2          ;计数值与62H比较

       CLR C

       MOV A,51H

       SUBB A,63H

       JC LOOP3          ;计数值与63H比较

       CLR C

       MOV A,51H

       SUBB A,H

       JC LOOP4          ;计数值与H比较

       CLR C

LOOP1: MOV P1,#0DEH      ;A组红灯亮,B组绿灯亮  11011110  

       MOV A,62H        

       SETB C

       SUBB A,51H

       MOV 53H,A         ;62H-当前计数值 送到53H A组灯

       CLR C

       SUBB A,60H

       MOV 52H,A          ;61H-当前计数值 送到52H B组灯

       CLR C 

       SJMP SHUMA1

    

LOOP2: MOV P1,#0EEH       ;A组红灯继续亮,B组黄灯亮   11101110

       MOV A,62H

       SETB C

       SUBB A,51H

       MOV 53H,A          ;62H-当前计数值 送到两组 

       MOV 52H,A

       CLR C

       SJMP SHUMA1

LOOP3: MOV P1,#0F3H       ;B组红灯亮,A组绿灯亮    11110011

       MOV A,63H

       SETB C         

       SUBB A,51H

       MOV 53H,A

       ADD A,60H

       MOV 52H,A

       CLR C

       LJMP SHUMA1

LOOP4: MOV P1,#0F5H       ;B组红灯继续亮,A组黄灯亮   11110101

       MOV A,H

       SETB C

       SUBB A,51H

       MOV 53H,A

       MOV 52H,A

       LJMP SHUMA1

/*********设置黄灯 绿灯的时间********/

NEXT1:CLR TR0

      LCALL DELAY2

      LCALL DELAY2

      MOV 60H,#00H

      MOV 61H,#00H

      MOV 20H,#00H    

      MOV 21H,#00H 

      MOV P1,#0FFH

NEXT: 

     JNB P3.2,COUNTER0   ;查询INT0口,有外部脉冲时60H自加1

     JNB P3.3,COUNTER1   ;查询INT1口,有外部脉冲时61H自加1

     JNB P3.5,L            ;查询,有外部脉冲时执行交通灯红黄绿基本功能

     LJMP SHUMA

L:   LCALL DELAY2

     LCALL DELAY2

     LJMP LOOP

 COUNTER0:

    LCALL DELAY2

    INC 60H    

    MOV 52H,60H  

    LJMP SHUMA 

 COUNTER1:

    LCALL DELAY2

    INC 61H

    MOV 53H,61H

    LJMP SHUMA

DELAY2:  MOV R6,#0FFH

DELAY3:  MOV R5,#0FFH

          DJNZ R5,$

          DJNZ R6,DELAY3

      RET

 以上设置时间部分主要采用查询按键的方法来进行设置时间,同时送到数码管显示。

任务二:秒表

NEXT:  MOV R5,25H

       CJNE R5,#01H,L

       JNB P3.2,BEGIN

  L:   JNB P3.3,COUNT0     ;以上可以使在暂停的情况下,按开始键不会继续

       JNB P3.4,CLEAR

       LCALL DISP          ;调用显示子程序

       SJMP NEXT           ;重新循环 

       NOP 

       NOP 

       NOP 

COUNT0:

LCALL DELAY2    ;此段用来判断有没有开始,若没有开始,摁两下暂停键也不会开始

       MOV R6,26H

       CJNE R6,#00H,COUNT1    

       LJMP L

COUNT1:                     ;当按键存储单元为奇数时继续,为偶数则暂停

    LCALL DELAY2

    INC 25H

    MOV A,25H

    MOV B,#02H

    DIV AB

    MOV R7,B

    CJNE R7,#00H,CONTINUE

    JMP STOP

    JMP NEXT

    

BEGIN:LCALL DELAY2          ;开始,并用26H记录

      INC 26H

      SETB TR0

      JMP NEXT

STOP:LCALL DELAY2           ;暂停

     CLR TR0

     JMP NEXT

CONTINUE:LCALL DELAY2       ;继续

          SETB TR0

          JMP NEXT

CLEAR:LCALL DELAY2          ;清零

      LJMP MAIN

   

DELAY2:  MOV R6,#0FFH

DELAY3:  MOV R5,#0FFH

         DJNZ R5,$

         DJNZ R6,DELAY3

     RET

/************定时中断处理程序*************/

TIME:   PUSH ACC         ;保护现场 

        PUSH PSW 

        MOV TL0,#0B4H    ;赋定时初值 

        MOV TH0,#3CH 

        INC 20H 

        MOV A,20H 

        CJNE A,#2,RETI1 

        MOV 20H,#00H     ;0.1秒钟时间到 

        MOV A,21H        ;21H存放0.1秒

        ADD A,#01H 

        MOV 21H,A 

        CJNE A,#10,RETI1

        MOV 21H,#00H     ;一秒时间到 

        MOV A,22H        ;22H存放1秒

        ADD A,#01H 

        MOV 22H,A 

        CJNE A,#10,RETI1 

        MOV 22H,#00H     ;10秒时间到

        MOV A,23H        ;23H存放10秒

        ADD A,#01H 

        MOV 23H,A 

        CJNE A,#10,RETI1 ;100秒时间到

        MOV 23H,#00H 

        MOV A,24H        ;24H存放100秒

        ADD A,#01H

        MOV 24H,A

        CJNE A,#10,RETI1 

        MOV 24H,#00H

RETI1:  POP PSW ;恢复现场 

        POP ACC 

        RETI 

        NOP 

            NOP

四、小结

本次课程设计,我运用单片机相关知识及实验方法设计了交通灯模拟系统和秒表。通过运用所学方法和检索阅读相关资料,将各个模块调试运行,最终得以成功。此次设计中,我重新熟悉了用PROTEL99SE画系统原理图的步骤与方法,重点复习了汇编语言的相关细节与法则。

在设计交通灯系统的过程中,遇到了一些问题。由于在之前已经有过基本功能的设计,所以主要是考虑在正常运行的时候如何通过按键修改时间。在开始的程序中,没有把握好按键延时,导致不能进入修改状态。由于实验板上只有三个按键,在加上汇编语言的弊端,所以最后改变时间时只能加计数。

在设计秒表时,主要时如何处理好三个按键查询之间的关系。最初调试的时候,出现了2个bug:一个是在没开始时暂停键按两下也会开始;另一个是暂停后按开始键也会继续。后来经过加上相关按键的计数判断单元,这些问题才得到解决。而同学用C语言编写则比汇编要方便。

通过这次课程设计,加强了动手、思考和解决问题的能力。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。在制作PCB时,发现细心耐心,恒心一定要有才能做好事情,首先是线的布局上既要美观又要实用和走线简单,兼顾到方方面面去考虑是很需要的。

参考文献

[1]李广弟等.单片机基础 [M].北京:北京航空航天大学出版社,2007 .

 成绩日期批阅人

文档

单片机课程设计(交通灯、秒表)

课程设计报告(2010—2011学年第2学期)课程名称:单片机课程设计班级:学号:姓名:指导教师:2011年03月一、目的运用所学理论知识及实验方法解决实际问题,通过这些活动培养分析问题和解决问题的能力。具体表现在构造一个控制系统框架的能力;检索和阅读文献资料的能力;综合运用所学专业知识使之对所设计系统具有调试的能力和故障处理的能力;绘图能力;计算机运用能力;逻辑思维能力与形象思维能力;文字及口头表达的能力;撰写实习报告的能力。二、内容和要求1、用PROTEL99SE画单片机系统原理图;2
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top