单片机秒表课程设计报告

                      单片机课程设计报告 

 院系: 物理与电气工程学院

     班别: 电子信息科学与技术(一)班

课程名称 :    秒表设计

姓名: 李健青  杜明  葛钱君

学号: 080211026 080211028  080211060

指导老师:  郭玉

                

                                                    2013/6/13

目录

1课程设计的目的和任务 

1.1 单片机秒表课程设计的概述

 1.2课程设计思路及描述

1.3 课程设计任务和要求 

2硬件与软件的设计流程 

2.1系统硬件方案设计

 2.2软件方案设计 

程序编写流程及课程设计效果 

3.1源程序及注释 

3.2原理图分析

3.3课程设计效果 

心得体会

 1. 课程设计的目的和任务 

1.1单片机秒表课程设计的概述 

一、课程设计题目 

秒表系统设计——用STC89C52RC设计一个4位LED数码显示“秒表”,显示时间为0.00.0~9.00.0,分别代表分,秒,毫秒。 

二、增加功能 

增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 

三、课程设计的难点 

单片机电子秒表需要解决三个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程。 

四、课程设计内容提要 

本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8052、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有两个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“0.00.0”. 

五、设计的意 

1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步

的了解。 

2) 掌握定时器、外部中断的设置和编程原理。 

3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 

4) 该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的

计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 

六、课程设计仪器 

a) 集成电路芯片8052,8段数码管,89C52单片机开发板 

b) MCS-51系列单片机微机仿真课程系统中的软件(Keil uvision4)。 

1.2课程设计思路及描述 

该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.0,P3.1,P3.2作为按键的入口;定时器T1作为每0.01秒加一的定时器。其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。 

方框图如下图1:      

 

                         

1.3 课程设计任务和要求 

1.3.1 设计指标 。 

了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,毫秒,并能用按钮实现秒表起动、停止、清零等功能。 

要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。 

1.3.2 设计要求 

① 画出电路原理图(或仿真电路图);

 ② 软件编程与调试;

 ③ 电路仿真与调试; 

单片机模块P1口作为开关控制,P2口作为数码管段选连接数码管P0。P3口作为位选连接数码管P2。

2.软件与硬件设计 

2.1系统硬件方案设计 

单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 

在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。 

 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。 

              

       图2系统硬件结构框 

2.2软件方案设计 

此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义。其次还有显示程序、按键扫描及处理程序、时钟程序和倒计时程序

;程序功能:用汇编实现秒表,四位数码管显0.00.0~9.59.9
;第一位显示1/10秒,第二位显示秒的个位,第三位显示秒的十位
;          第四位显示分。
;          按键K1开始计时,K2暂停,K3复位

;数码管顺序:    0    0     0    0
;寄存器分配:    R4   R5 R6   R7

 ORG 0000H

  LJMP START

  ORG 000BH   ;定时器0入口地址

  LJMP INTRRUPT    

  ORG 0100H

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

;定时器0初始化程序,工作方式1,12MHz晶振,50ms定时,初始值3CB0H

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

START:MOV TMOD,#01H  

 MOV TH0,#3CH

 MOV TL0,#0B0H

 SETB ET0

 SETB EA

 MOV R0,#00H

 MOV R1,#00H

 MOV R2,#00H

 MOV R3,#00H

 MOV R4,#00H

 MOV R5,#00H

 MOV R6,#00H

 MOV R7,#00H

    MOV DPTR,#TAB

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

; 大循环

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

LOOP:   LCALL DISP

   LCALL DELAY_1MS

   LCALL KEY_SCAN

   LJMP LOOP

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

;中断处理子程序

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

INTRRUPT:

 MOV TH0,#3CH

 MOV TL0,#0B0H

 INC R3

 CJNE R3,#2,NEXT_5    ;100ms,即0.1S

 MOV R3,#00H

 INC R7

 CJNE R7,#10,NEXT_5

 INC R6

 MOV R7,#00H

 CJNE R6,#10,NEXT_5

 INC R5

 MOV R6,#00H

 CJNE R5,#6,NEXT_5

 INC R4

 MOV R5,#00H

 CJNE R4,#10,NEXT_5

 MOV R4,#00H

NEXT_5:

 RETI

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

;显示子程序

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

DISP:MOV P3,#0FFH

  CLR P3.7

  MOV A,R4

  MOVC A,@A+DPTR

  MOV P2,A

   CLR P2.7       ;显示小数点

  LCALL DELAY_1MS

  MOV P3,#0FFH

  CLR P3.6

  MOV A,R5

  MOVC A,@A+DPTR

  MOV P2,A

  LCALL DELAY_1MS

  MOV P3,#0FFH

  CLR P3.5

  MOV A,R6

  MOVC A,@A+DPTR

  MOV P2,A

  CLR P2.7         ;显示小数点

  LCALL DELAY_1MS

  MOV P3,#0FFH

  CLR P3.4

  MOV A,R7

  MOVC A,@A+DPTR

  MOV P2,A

 

  LCALL DELAY_1MS

  RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

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

;按键扫描子程序

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

KEY_SCAN:JB P1.0,NEXT1

   LCALL DELAY_1MS

   JB P1.0,NEXT1

   LOOP1:JNB P1.0,LOOP1

         LCALL KEY_1

   NEXT1:JB P1.1,NEXT2

         LCALL DELAY_1MS

   JB P1.1,NEXT2

   LOOP2:JNB P1.1,LOOP2

         LCALL KEY_2 

   NEXT2:JB P1.2,NEXT3

   LCALL DELAY_1MS

   JB P1.2,NEXT3

   LOOP3:JNB P1.2,LOOP3

         LCALL KEY_3

   NEXT3:RET

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

;按键处理子程序

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

KEY_1:SETB TR0

   RET

KEY_2:CLR TR0

   RET

KEY_3:

    MOV R3,#00H

 MOV R4,#00H

 MOV R5,#00H

 MOV R6,#00H

 MOV R7,#00H

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

;延时子程序

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

DELAY_1MS:MOV R0,#100

    L1:MOV R1,#10

    L2:NOP

       DJNZ R1,L2

    DJNZ R0,L1

    RET

   END

4.心得体会

经过两个星期的课程设计,使我加深了单片机课程的了解,我们花费了很多的时间和精力,比如说以前所学单片机不太懂的知识,我觉得这几天让我过的十分的充实,我相信其余的队友也有相同的看法,下面是我的一些心得体会: 

1. 将学习的理论知识通过实验融会贯通,让我对它的理解更加的深刻,对程序的编译过程也有一定了解。 

2. 本次课程设计是以团队为主,没有团队的力量,在较短的时间内完成时难以实现的,因此培养了我们积极合作、认真的态度,每个人都有不同分工和任务,做好一个电子秒表也成为了一件很开心的事情,增进了同学们之间的沟通与交流。 

3. 本次课程设计不仅涉及了编程、C语言和单片机的知识,也涉及其他两门学科上的知识,让我了解 kvil等基本知识,真的是学海无涯啊。 4. 本次试验也让我了解到自己的不足之处,很多的东西还是没有学好。因此实验可能有瑕疵之处,望各位指导。 

总之,通过本次试验,不仅加深了我对单片机理论知识的理解,将理论更好的应用到实践中,而且锻炼了我们各个方面的能力,培养了坚强的意志和做事的耐心和细心,认识到合作的重要性,虽然过程中还有不足之处单这需要在实践中不断的锻炼才能提高,希望各位老师和同学多多指导,促进我们进步。 在此感谢那些帮助我们的老师和同学们!

最后感谢郭玉老师对我们的指导!

 

第二篇:单片机课程设计报告(秒表系统设计)

单片机课程设计报告

实验项目:秒表系统设计           

实验班级:物理与机电工程学院03电本          

实验人:吴呤————2号                   

          实验指导老师:涂二生、王清辉、黄朝良、沈汉鑫

一、实验题目

秒表系统设计——用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。另设计一个“开始”按键和一个“复位”按键。

二、增加功能

增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)

三、实验内容提要

    本实验利用单片机的定时器/计数器定时和记数的原理,结合dvcc实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本实验设计了四个开关按键:其中一个按键按下去时以1秒加一开始计时,即秒表开始键(本实验中当开关从1变为0时开始计时),另一个按键按下去时暂停计时,使秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),第三个按键按下去时清0(本实验中当相应开关从1变为0时即停止计时),第四按键按下去则是以每10ms秒快速加一计时(本实验中当开关从1变为0时开始计时)。本实验中开始时都要使各按键回到各初始位置,即都处于1状态。

三、实验目的

   1、 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

   2、 掌握定时器、外部中断的设置和编程原理。

   3、 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

四、意义

   该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。

五、本人所做工作

根据相关的单片机材料,利用所学的单片机知识,结合DVCC系列单片机微机仿真实验系统中的软件和硬件(集成电路芯片8032,七段数码管,开关电路及时钟信号电路,按键等),编写能够实现该项目的软件程序,最后将软、硬件有机的结合起来,进行有效的调试,达到完成该实验课程设计的目的要求。

六、实验内容

用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。另设计一个“开始”按键和一个“复位”按键。再增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)。

按键说明:按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“快加”按键,系统每10ms快速加一,即数码显示管在原先的计数上快速加一。

七、设计思路及描述

该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

八、原理图

九、实验流程图                         

 1、 主程序流程图                                  2、 加一子程序流程图

  3、 INT0中断子程序                     4、 INT1中断子程序

5、数码显示流程图                              6、  定时器T0子程序

7、定时器T1子程序

十、实验程序

;******************************************************************

; 设计选题:实验五-----秒表系统设计

; 描述:    2位LED数码显示"秒表",显示时间为00~99秒,每秒自动加1,

;         一个"开始"键,一个"复位"键,一个"暂停"键,一个“快加”键。

; 调用子程序:暂停键子程序,计时键子程序,清0键子程序,加一子程序

;            显示子程序,定时子程序

;所用特殊寄存器:寄存器A,寄存器C

;所用中断:外部中断INT0、INT1,定时器T0、T1

; 实验作者:  吴呤--2号,方晓瑛--10号

;***************************************************************************

    org 0000h

    ajmp main          ;主程序入口地址

    org 0003h

    ajmp zhongduan0    ;中断0入口地址

    org 000bh

    ajmp yanshi        ;定时器T0入口地址

    org 0013h

    ajmp zhongduan1    ;中断1入口地址

    org 001bh

   ajmp dingshi1       ;定时器T1入口地址

    org 0030h

;***********************************************************

;   主程序

;***********************************************************

main: mov tcon,#05h     ;主程序开始 外部中断跳变模式

       mov tmod,#11h     ;定时器0,1模式1

       mov ie,#8fh       ;开总中断,中断0,1,定时器0,1

       mov dptr,#tab

       mov r1,#00h

       mov r2,#00h

       mov r3,#40          ;循环次数40

       mov tl0,#2Ch         ;置初值,定时25MS

       mov th0,#0CFh

       mov tl1,#78h         ;置初值,定时10MS

       mov th1,#0ech

       clr tr0              ;关定时器

       clr tr1

;***********************************************************

;    暂停键K3,快加键K4程序

;***********************************************************

here:jb p1.0,here

show:clr tr1

     clr tr0

     acall xianshi

kuaijia:jb p1.2,kuaijia  ;等待P1.2为0 快加

        clr tr0

        setb tr1

here3:jnb p1.2,here3

     ajmp  here

;***********************************************************

;   外部中断INT0子程序-----计时按键K1子程序

;***********************************************************

zhongduan0: setb tr0        ;计时按键

      reti

;***********************************************************

;   外部中断INT1子程序----复位按键K2子程序

;***********************************************************

zhongduan1:clr tr0          ;复位按键

      clr tr1

      mov 12h,#00h

      mov 11h,#00h

      acall xianshi          ;调用显示子程序

      mov r1,#00h

      mov r2,#00h

      reti

;***********************************************************

;   加一子程序

;***********************************************************

jia1: inc  r1                ;加1子程序

      cjne r1,#0ah ,loop     ;判断是否到表尾

      mov  r1,#00h

      inc  r2

      cjne r2,#0ah,loop

      mov  r2,#00h

loop: mov 12h,r1             ;重新赋值

      mov 11h,r2

      ret

;***********************************************************

;   显示子程序

;***********************************************************

xianshi:mov r7,#02h          ;2个数码管显示子程序

     mov r0,#12h

loop5: mov r6,#08h            ;8位2进制数

       mov a,@r0

       movc a,@a+dptr

loop6:rlc a                   ;循环左移

       clr p3.1

      mov p3.0,c

      setb p3.1

      djnz r6,loop6

      dec r0

      djnz r7,loop5

      ret

;***********************************************************

;   定时器T0子程序

;***********************************************************

yanshi: mov tl0,#2Ch           ;定时子程序

       mov th0,#0CFh

       djnz r3,loop7

       acall jia1              ;调用加1子程序

       acall xianshi           ;调用显示子程序

       mov r3,#40

loop7: reti

;***********************************************************

;定时器T1子程序

;***********************************************************

 dingshi1:mov tl1,#78h         ;置初值,定时10MS

     mov th1,#0ech

     clr tr0

     setb tr1

     mov 12h,r1

     mov 11h,r2

     jnb p1.0,show

     acall jia1

     acall xianshi

lop7:reti

;***********************************************************

tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

   end

十一、课程设计心得体会

1、认真审题,看懂题目的要求!选择适当的课题,不益太简单或者太难。做到既能把课题完成又能锻炼自己的能力!

2、根据课题要求,复习相关的知识,查询相关的资料。

3、根据实验条件,找到适合的方案,找到需要的元器件及工具,准备实验。

4、根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。

5、还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。

6、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。

7、该实验的程序可以参考DVCC系列单片机微机仿真实验系统实验指导书中的串并转换实验,也可自己根据自己熟悉的方法来编程。

8、在设计控制开关时,注意2个中断的打开和关闭的先后顺序,否则就会出错。

9、这次的单片机课程设计重点是理论与实际的相结合。不再只读书了。

10、      该设计从头到尾都要自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。

十二、参考文献

1、DVCC系列单片机微机仿真实验系统实验指导书

2、苏家健等编的《单片机原理及应用技术》 高等教育出版社  20##年11月

相关推荐