单片机实训报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机

实训报告电子秒表

设计

实训报告题目:电子秒表

学院:信息工程学院

专业:计算机应用

班级:应用二班

学号:140306224

姓名:韩迎珠

指导老师:邢文生

目录

一、设计题目………※……※……※….…※……※………

二、方案设计………※……※……※….…※……※………

三、硬件设计………※……※……※….…※……※………

1 电路图…………………………………………………

2 I/O口的分配……………………………………………

3 电路的工作原理………………………………………

4原件明细…………………………………………………

四、软件设计………※……※……※….…※……※………

1 软件设计的思路………………………………………

2 程序流程图……………………………………………

3总体结构框架介绍………………………………………

4程序清单…………………………………………………

五、制作和调试………※……※……※….…※……※……

六、心得体会………※……※……※….…※……※………

一、设计题目

利用at89c51单片机设计并制作秒表电路。要求如下:

通过led显示器(数码管)显示秒的十位和个位;设计一个按键,使按键按下去时秒表开始计时,即秒表开始键;设计一个按键,按键按下去时秒表暂停计时,使秒表停留在原先的计时,即计时停止键;设计一个按键,作为秒表的清零按钮,使秒表计数结束后可以清零。

二、方案设计

1、该秒表主要由51系列单片机及开关控制数码显示管的显示情况,此秒表可现实显示两位数从00到99的计数,即开始计数、停止计数和清零三种,由手动控制三个开关k1、k

2、k3来实现。

2、当接通电源时数码管显示00,然后按动k1使秒表开始计时,在0秒到99秒之间的任何时间均可;若要定时,如只需计时到32秒则在显示器显示到32时按下定时键k2即可;在计时过程中若需要清零,则需按下k3键。

3、设计过程中除了向老师请教外,还通过上网查阅资料及翻阅书籍。上单片机课程时我曾做过关于数码显示器的实验,所以在焊接电路板时可参照实验报告书上的连接方式。要特别注意两数码管引脚的连接及com端和三极管的连接,其决定了共阴极和共阳极,此处涉及到编程中初值的写入,为在焊接电路时简洁,因此我采用下面的com 端,即数码管采用共阴极方式。主要设计思路是编写相应程序后由单片机的p0口输出到数码管上,实现数据的显示。p2.6口控制个位的显示和p2.7口控制十位的显示,p3.5、p3.6、p3.7口分

别控制秒表的开始、停止和清零。

三、硬件设计

1电路图

使用proteus工程软件制图,如下图所示:

2.I/o口的分配

p0口是一个漏极开路8位准双向复用I/o端口,它的p0.0~p0.7口分别接电阻r1~r8,但因为该设计中不需要小数点的显示,即dp端不用接,所以只用接7个阻值为100欧的电阻。p2口是一个内部带上拉电阻的8位准双向复用I/o端口,只用其p2.6口和p2.7口输出字位码。p3口是一个内部带上拉电阻的8位多功能双向I/o端口,它的每一条引脚均可独立定义为第一功能的输入输出(其主要功能是它的第二功能,在此不做详细解释)。

3、电路的工作原理

本系统采用模块化设计,以at89c51单片机为核心,与秒表显示接口电路组成控制系统。该系统硬件主要包括以下几个模块:at89c51主控模块、秒表显示模块等。其中at89c5主要完成外围硬件的控制以及一些运算功能,秒表显示模块完成时间的显示功能。

4原件明细

各元件的作用:

开关:三个分别用于显示器的开始、停止和清零。

电容:用于单片机的最小系统中。晶振:提供内部时钟。

电阻:用来限制电流。

单片机芯片:实现软件的编程与烧写。数码管:显示秒表计时数据。

电源插头:用于接外接电源。

四、软件设计

1、软件设计的思路

在硬件电路中,由于硬件电路中显示灯是接在p2口的两个端口,用于输出,且二极管为共阴极的接法,则单片机的程序设计中要是灯亮必须为高电平有效,由于程序中用到中断源,所以要打开中断源;模块设计时可用查询方式检测开始按键是否被按下,若按下开始键数码管开始显示00,开始计数后,再用查询方式检测这个按键是否被按下,如果按下则检测跳转到下一个按键检测程序继续检测,一次检测各个按键的情况,数码管的初值显示设置为0。

2、总体结构框架介绍

初始化模块:对系统进行初始化,由于程序中有中断源,因此打开相应的中断也放在程序的初始化模块中;

检测开始按键:检测开始按键是否被按下,按下则开始执行循环为消除按键抖动,此处应调用延时程序;

循环检测停止、清零按键:循环检测停止、清零按键是否被按下,同时等待中断到来;

延时程序:用于小穿件的机器抖动,调用的延时程序为0.5s;

中断处理:当中断源到来,首先停止计数,从开始计数的数在数码管中显示出来。

3、程序流程图

4、程序清单strt equ p3.5 stp equ p3.6 clrr equ p3.7

ajmp maIn

org 0bh

ajmp t0Int

org 30h

maIn:

mov sp,#60h

mov dptr,#tab

mov tmod,#01h ;t0定时方式1 setb ea

setb et0

mov th0,#3ch ;50ms定时常数mov tl0,#0b0h

mov r0,#20 ;20x50ms=1s

k1:

lcall dIsp

jb strt,k2

acall dIsp

jnb strt,$-2

ajmp start

k2:

jb stp,k3

相关文档
最新文档