已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
宁夏理工学院课程设计报告 1 基于单片机的数字秒表设计基于单片机的数字秒表设计 摘要摘要 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐 述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度达到 0.01s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞 赛的必备设备之一。 本设计的数字电子秒表系统采用 80C51 单片机为中心器件,利用其定时器 /计数器定时和记数的原理,结合显示电路、LED 数码管以及外部中断电路来设 计计时器。将软、硬件有机地结合起来,使得系统能够实现六位 LED 显示,显 示时间为 059:59:99 秒,计时精度为 0.01 秒,能正确地进行计时,同时能记 录一次时间,并在下一次计时后对上一次计时时间进行查询。其中软件系统采 用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延 时程序等,并在 WAVE 中调试运行,硬件系统利用 PROTEUS 强大的功能来实现, 简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键字关键字:单片机;数字电子秒表;仿真 宁夏理工学院课程设计报告 2 目 录 摘 要.1 绪 论.3 1 硬件设计.4 1.1 总体方案的设计.4 1.2 单片机的选择.5 1.3 显示电路的选择与设计.8 1.4 按键电路的选择与设计.11 1.5 时钟电路的选择与设计.12 1.6 复位电路的选择与设计.14 1.7 系统总电路的设计.16 2 软件设计.17 2.1 程序设计思想.18 2.2 系统资源的分配.18 2.3 主程序设计.18 2.4 中断程序设计.20 3 数字电子秒表的安装与调试.24 3.1 软件的仿真与调试.24 3.2 硬件的安装与调试.24 3.3 系统程序的烧录.25 3.4 数字电子秒表的精度调试.26 结 论.27 参考文献.29 附录 A 程序30 附录 B 电路原理图35 宁夏理工学院课程设计报告 3 绪 论 秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想 的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器 等的时间测试。 2004 年 8 月 28 日 15 点 15 分,中国选手孟关良/杨文军在雅典奥运会男子 500 米划艇决赛中,以 1 分 40 秒 278 的成绩获得中国在雅典奥运会的第 28 金。 这是中国皮划艇项目的第一枚奥运金牌,也是中国水上项目在历届奥运会上所 获得的第一枚金牌。孟关良/杨文军的成绩比获得银牌的古巴选手只快了 0.072 秒,以至于两人在夺冠之后还不敢相信。 在现在的体育竞技比赛中,随着运动员的水平不断提高,差距也在不断缩 小。有些运动对时间精度的要求也越来越高,有时比赛冠亚军之间的差距只有 几毫秒,因此就需要高精度的秒表来记录成绩。 本设计利用 80C51 单片机的定时器/计数器定时和记数的原理,使其能精确 计时。利用中断系统使其能实现开始暂停的功能。P0 口输出段码数据,P2.0-P2.5 口作列扫描输出,P1.0、P3.2、P3.3、/PSEN 分别接四个按钮开关,分别实现开 始、暂停、清零和查看上次时间的功能。显示电路由五位共阴极数码管组成。 初始状态下计时器显示 00:00:00,当按下开始键时,外部中断 INT1 向 CPU 发出中断请求,CPU 转去执行外部中断 1 服务程序,即开启定时器 T0。 计时采用定时器 T0 中断完成,定时溢出中断周期为 10ms,当一处中断后向 CPU 发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达 到 10 次就对百毫秒位进行加一,依次类推,直到 59:59:99 秒重新复位。在 计时过程中,只要按下暂停键,外部中断 INT0 向 CPU 发出中断请求,CPU 转 去执行外部中断 0 服务程序,即关闭定时器 T0,调用显示程序,实现暂停功能, 同时将此次计时时间存入寄存区。然后对 P3.2 进行扫描。当 P3.2 按下时就跳 转回主程序。等待下一次计时开始。 在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键 时,则讲中间缓存区的数据转入最终缓存区。秒表停止后对查看键/PSEN 进行 扫描,/PSEN 按下为低电平时,调用最终缓存区的数据进行显示,即显示上一 次计时成 宁夏理工学院课程设计报告 4 绩。当/PSEN 位高电平时,调用显示缓存区的数据进行显示,即显示当此 计时的成绩。根据以上设计思路从而实现数字电子秒表的计时和查看上一次计 时时间的功能。 本文主要内容包括三部分:第一部分介绍硬件部分设计思路及方案;第二 部分介绍了软件部分的设计思路和设计;最后一部分则是整个系统的安装与调 试过程。 1 硬件设计 1.11.1 总体方案的设计总体方案的设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使 用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制 器,计时与显示电路和回零、启动和停表电路等。主控制器采用单片机 80C51,显示电路采用共阴极 LED 数码管显示计时时间。 本设计利用 80C51 单片机的定时器/计数器定时和记数的原理,使其能精 确计时。利用中断系统使其能实现开始暂停的功能。P0 口输出段码数据,P2.0- P2.5 口作列扫描输出,P1.0、P3.2、P3.3、/PSEN 口接四个按钮开关,分别实现 开始、暂停、清零和查看上次计时时间功能。电路原理图设计最基本的要求是 正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件 电路图按照图 1.1 进行设计。 控制开关 位驱动 六位数码管 8051单片机控 制器 图 1.1 数字秒表硬件电路基本原理图 宁夏理工学院课程设计报告 5 根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管 显示的数据存放在内存单元 79H7EH 中。其中 79H 存放十毫秒位数据,7AH 存放百毫秒位数据,7BH 存放秒位数据,7CH 存放十秒位数据,7DH 存放分位 数据,7EH 存放十分位数据。由于采用软件动态扫描实现数据显示功能,显示 数据的对应段码存放在 ROM 表中。显示时,先取出 79H-7EH 某一地址中的数 据,然后查得对应的显示用段码,并从 P0 口输出,P2 口将对应的数码管选中 供电,就能显示该地址单元的数据值。 最终缓存区则设置为 59H-5EH,数据存放规则和 79H-7EH 一样。分别对应 存放十毫秒位至百秒位数据。与 79H-7EH 存储区不一样的是:59H-5EH 存储的 内容为数字秒表上一次计时显示的时间。而 79H-7EH 为当前计时时间存储区。 计时采用定时器 T0 中断完成,定时溢出中断周期为 10ms,当一处中断后 向 CPU 发出溢出中断请求,每发出一次中断请求就对十毫秒计数单元进行加一, 达到 10 次就对百毫秒位进行加一,依次类推,直到 59:59:99 秒重新复位。 再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法 来识别。复位键和查看主要功能在于数值复位和查询上次计时时间,对于时间 的要求不是很严格。而开始和停止键则是用于对时间的锁定,需要比较准确的 控制。因此可以对复位和查看按键采取扫描的方式。而对开始和停止键采用外 部中断的方式。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制 器,显示电路和回零、启动、查看、停表电路等。主控制器采用单片机 80C51,显示电路采用共阴极 LED 数码管显示计时时间,四个按键均采用触点式 按键。 1.21.2 单片机的选择单片机的选择 本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并 根据自己的实际情况,选择了 Intel 公司的 80C51。 单片机的外部结构 80C51 单片机采用 40 引脚的双列直插封装方式。图 1.2 为引脚排列图, 宁夏理工学院课程设计报告 6 40 条引脚说明如下: 主电源引脚 Vss 和 Vcc Vss 接地 Vcc 正常操作时为+5 伏电源 外接晶振引脚 XTAL1 和 XTAL2 XTAL1 内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。 当采用外部振荡器时,此引脚接地。 XTAL2 内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采 用外部振荡器时,此引脚接外部振荡源控制或与其它电源复用引脚 RST/VPD,ALE/,和/Vpp。PROGPSENEA 图 1.2 8051 单片机引脚图 RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平 (由低到高跳变) ,将使单片机复位在 Vcc 掉电期间,此引脚可接上备用电源, 由 VPD 向内部提供备用电源,以保持内部 RAM 中的数据。 宁夏理工学院课程设计报告 7 ALE/正常操作时为 ALE 功能(允许地址锁存)提供把地址的PROG 低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 1/6)周期 性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。对 于 EPROM 型单片机,在 EPROM 编程期间,此引脚接收编程脉冲(功PROG 能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令PSEN (或数据)期间,在每个机器周期内两次有效。同样可以驱动八PSENPSEN LSTTL 输入。 /Vpp、/Vpp 为内部程序存储器和外部程序存储器选择端。当EAEA /Vpp 为高电平时,访问内部程序存储器,当/Vpp 为低电平时,则访问EAEA 外部程序存储器。对于 EPROM 型单片机,在 EPROM 编程期间,此引脚上加 21 伏 EPROM 编程电源(Vpp) 。 输入/输出引脚 P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0 口(P0.0 - P0.7)是一个 8 位漏极开路型双向 I/O 口,在访问外部存 储器时,它是分时传送的低字节地址和数据总线,P0 口能以吸收电流的方式驱 动八个 LSTTL 负载。 P1 口(P1.0 - P1.7)是一个带有内部提升电阻的 8 位准双向 I/O 口。能 驱动(吸收或输出电流)四个 LSTTL 负载。 P2 口(P2.0 - P2.7)是一个带有内部提升电阻的 8 位准双向 I/O 口,在 访问外部存储器时,它输出高 8 位地址。P2 口可以驱动(吸收或输出电流)四个 LSTTL 负载。 P3 口(P3.0 - P3.7)是一个带有内部提升电阻的 8 位准双向 I/O 口。能 驱动(吸收或输出电流)四个 LSTTL 负载。 80C51 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32 位 I/O 口线, 2 个数据指针,两个 16 位定时器/计数器,一个全双工串行口,片内晶振及时 钟电路。另外,80C51 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模 宁夏理工学院课程设计报告 8 式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继 续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作 停止,直到下一个中断或硬件复位为止。CPU 是单片机的核心部件。它由运算 器和控制器等部件组成。 (1) 运算器 运算器的功能是进行算术运算和逻辑运算。可以对半字节(4 位) 、单字节 等数据进行操作。例如能完成加、减、乘、除、加 1、减 1、BCD 码十进制调 整、比较等算术运算和与、或、异或、求补、循环等逻辑操作,操作结果的状 态信息送至状态寄存器。80C51 运算器还包含有一个布尔处理器,用来处理位 操作。 (2) 程序计数器 PC 程序计数器 PC 用来存放即将要执行的指令地址,共 16 位,可对 64K 程序 存储器直接寻址。执行指令时,PC 内容的低 8 位经 P0 口输出,高 8 位经 P2 口 输出。 (3) 令寄存器 指令寄存器中存放指令代码。CPU 执行指令时,由程序存储器中读取的指 令代码送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完 成指令功能。 1.31.3 显示电路的选择与设计显示电路的选择与设计 对于数字显示电路,通常采用液晶显示或数码管显示。本设计的显示电路 采用 6 位 LED 作为显示介质。 数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用五位 数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂。所以采用动 态显示。 宁夏理工学院课程设计报告 9 8051 位 驱 动段 驱 动 六位数码管 图 1.3 显示电路基本原理图 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式 称为位扫描。通常各位数码管的段选线相应并联在一起,由一个 8 位的 I/O 口 控制;各位的公共阴极位选线由另外的 I/O 口线控制。动态方式显示时,各数 码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通 一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应 的段码,依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字 符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间 隔足够短就可以给人同时显示的感觉。 数码显示管分为共阳数码管和共阴数码管两种。 共阳极数码管的 8 个发光二极管的阳极(二极管正端)连接在一起,如图 1.4(b),通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路 输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点 亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电 路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应 的限流电阻。 共阴极数码管的 8 个发光二极管的阴极(二极管负端)连接在一起,如图(c), 通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端, 宁夏理工学院课程设计报告 10 当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据 发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供 额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电 阻。 图 1.4 (a)数码管引脚图 (b)共阳极内部结构图 (c)共阴极内部结构图 本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示 管,所以只要数码管的 a、b、c、d、e、f、g、h 引脚为高电平,那么其对应的 二极管就会发光,使数码显示管显示 09 的编码见表 1.1。 表 1.1 共阴极数码显示管字型代码 字型共阴极代码字型共阴极代码 03FH56DH 106H67DH 25BH707H 34FH87FH 466H96FH 动态显示电路由显示块、字形码驱动模块、字位驱动模块三部分组成。如 图 1.3 所示为本系统的 6 位 LED 动态显示器接口电路。图中,5 个数码管的 8 段段选线分别与外接上拉电阻的单片机 P0 口对应相连,而 6 个数码管的位控制 端则和 NPN 型三极管的集电极相连接。单片机的 P2.0P2.5 口则分别对应数码 显示管的最低位到最高位,P2.0P2.5 口分别和六个 NPN 型三极管的基极相连, 宁夏理工学院课程设计报告 11 做三极管导通的控制端,而 NPN 型三极管选用 9013 型三极管。根据 9013 的资 料显示:其耐压值为 40V,最大功率为 0.65W,最大电流为 0.5A,电气性能完 全满足本设计的要求。另外数码管显示是采用动态显示,所以对三极管的开关 频率有一定的要求。根据电子秒表的设计计算可知动态显示的频率最高为 3KHz,而 9013 的导通频率为 150MHz,完全能满足本设计的要求,所以最终 选取 9013 三极管最为位控制开关。 由于数码管是有 P0 口来驱动,它内部没有上拉电阻,作为输出口时驱动能 力比较弱,不能点亮数码显示管,因此 P0 口必须接上拉电阻来提高驱动能力。 另外一位共阴数码管的驱动电流一般为 20mA 左右,如果电流太大容易造成数 码管损坏,所以也需要根据电源的电压值来确定上拉电阻的大小。如果电阻过 小,势必会形成灌电流过大,造成单片机 IO 的损坏,如果电阻过大,那么对拉 电流没有太大的影响。电源供电电压为 5V,当上拉电阻选用 220 电阻时灌电 流为 22mA。不会损坏单片机的 I/O 口,同时也可以为数码显示管起到限制电流 的保护作用。 1.41.4 按键电路的选择与设计按键电路的选择与设计 本设计中有四个按键,分别实现开始、暂停、复位和查看功能。这四个键 可以采用中断的方法,也可以采用查询的方法来识别。对于复位键和查看键, 主要功能在于数值复位和对上次计时时间的查看,对于时间的要求不是很严格, 而开始和暂停键主要用于时间的锁定,需要比较准确的控制。因此可以考虑, 对复位键和查看键采用查询的方式,而对于开始和暂停键采用外部中断。四个 按键均采用低电平有效,具体电路连接图如图 1.5 所示。 当按键没有按下时,单片机的 I/O 口直接连接电源,因此需要接上拉电阻 来进行限流,本设计中选取阻值为 2k 的电阻作为上拉电阻,根据计算可知此 时的灌电流为 2.5mA,查看 8051 的资料得知次电流在安全范围内,符合安全设 计要求。 宁夏理工学院课程设计报告 12 开始 暂停 复位 查看 P3.3(INT1) P3.2(INT0) P1.1 P2.5 VCC 图 1.5 按键电路 按键电路中由于采用了外部中断,所以需要用到 P3 口的第二功能。P3 口 引脚的第二功能如表 1.2 表 1.2 P3 口引脚第二功能表 P3 口引脚特殊功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断 0 请求输入端) P3.3 INT1(外部中断 1 请求输入端) P3.4 T0(定时器/计数器 0 计数脉冲输入端) P3.5 T1(定时器/计数器 1 计数脉冲输入端) P3.6 WR(片外数据存储器写选通信号输出端) P3.7 RD(片内数据存储器读选通信号输出端) 1.51.5 时钟电路的选择与设计时钟电路的选择与设计 单片机的时钟信号用来提供单片机内各种微操作的时间基准,8051 片内设 有一个由反向放大器所构成的振荡电路,XTAL1 和 XTAL2 分别为振荡电路的 输入和输出端,8051 单片机的时钟信号通常用两种电路形式得到:内部振荡方 式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将 XTAL1 接地, 宁夏理工学院课程设计报告 13 XTAL2 接外部振荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度, 一般采用频率低于 12MHz 的方波信号。 时钟发生器把振荡频率两分频,产生一个两相时钟信号 P1和 P2供单片机 使用。P1在每一个状态 S 的前半部分有效,P2在每个状态的后半部分有效。本 设计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路 中使用较多。本设计系统的时钟电路如图 1.4 所示。只要按照图 1.6 所示电路进 行设计连接就能使系统可靠起振并能稳定运行。图中,电容器 C1 、C2起稳定 振荡频率、快速起振的作用,电容值一般为 533pF。但在时钟电路的实际应 用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正 牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。本设计中采用大小 为 30pF 的电容和 12MHz 的晶振。 图 1.6 内部振荡电路 (4) 时序 80C51 典型的指令周期(执行一条指令的时间称为指令周期)为一个机器 周期,一个机器周期由六个状态(十二振荡周期)组成。每个状态又被分成两 个时相 P1和 P2。所以,一个机器周期可以依次表示为 S1P1,S1P2,S6P1,S6P2。通常算术逻辑操作在 P1时相进行,而内部寄存器 传送在 P2时相进行。 图 1.7 8051 时序 图 1.7 给出了 80C51 单片机的取指和执行指令的定时关系。这些内部时钟 信号不能从外部观察到,所用 XTAL2 振荡信号作参考。在图中可看到,低 8 ALE 时钟 S1S4S6S5S3S2 读操作码读操作码(无效) (a) 1字节 1周期指令 读下一指令 S1S4S6S5S3S2 读操作码读第二字节 (b) 2字节 1周期指令 读下一指令 S1S4S6S5S3S2 读操作码读操作码(无效) (c) 1字节 2周期指令 读下一指令 S1S4S6S5S3S2 宁夏理工学院课程设计报告 14 位地址的锁存信号 ALE 在每个机器周期中两次有效:一次在 S1P2与 S2P1期间, 另一次在 S4P2与 S5P1期间。 对于单周期指令,当操作码被送入指令寄存器时,便从 S1P2开始执行指令。 如果是双字节单机器周期指令,则在同一机器周期的 S4期间读入第二个字节, 若是单字节单机器周期指令,则在 S4期间仍进行读,但所读的这个字节操作码 被忽略,程序计数器也不加 1,在 S6P2结束时完成指令操作。图 1.7 的(a)和(b) 给出了单字节单机器周期和双字节单机器周期指令的时序。 1.61.6 复位电路的选择与设计复位电路的选择与设计 当 80C51 单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以上的 高电平时,单片机就完成了复位操作。如果 RST 持续为高电平,单片机就处于 循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。而 本系统选用的是 12MHz 的晶振,因此一个机器周期为 1s,那么复位脉冲宽度 最小应为 2s。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振 稳定时间以及复位的可靠性等因素,必须有足够的余量。 根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。 上电复位要求接通电源后,自动实现复位操作。80C51 单片机的上电复位 POR(Power On Reset)实质上就是上电延时复位,也就是在上电延时期间把单 片机锁定在复位状态上。在单片机每次初始加电时,首先投入工作的功能部件 是复位电路。复位电路把单片机锁定在复位状态上并且维持一个延时(记作 TRST) ,以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之 后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片 机开始进入运行状态之前,还要至少推迟 2 个机器周期的延时。 上述一系列的延时,都是利用在单片机 RST 引脚上外接一个 RC 支路的充 电时间而形成的。典型复位电路如图 1.8(a)所示,其中的阻容值是原始手册 中提供的。 宁夏理工学院课程设计报告 15 图 1.8 上电复位延时电路 标准 80C51 不仅复位源比较单一,而且还没有设计内部上电复位的延时功 能,因此必须借助于外接阻容支路来增加延时环节,如图 1.8(a)所示。其实, 外接电阻 R 还是可以省略的,理由是一些 CMOS 单片机芯片内部存在一个现成 的下拉电阻 Rrst。例如,80C51 系列的 Rrst 阻值约为 50200 k;P89V51Rx2 系列的 Rrst 阻值约为 40225 k,如图 1.9 所示。因此,在图 1.8(a)基础上, 上电复位延时电路还可以精简为图 1.8(b)所示的简化电路(其中电容 C 的容量 也相应减小了) 。 图 1.9 复位引脚 RST 内部电路 在每次单片机断电之后,须使延时电容 C 上的电荷立刻放掉,以便为随后 可能在很短的时间内再次加电作好准备。否则,在断电后 C 还没有充分放电的 情况下,如果很快又加电,那么 RC 支路就失去了它应有的延迟功能。因此, 在图 1.8(a)的基础上添加一个放电二极管 D,上电复位延时电路就变成了如图 1.8(c)所示的改进电路。也就是说,只有 RC 支路的充电过程对电路是有用的, 放电过程不仅无用,而且会带来潜在的危害。于是附加一个放电二极管 D 来大 力缩短放电持续时间,以便消除隐患。二极管 D 只有在单片机断电的瞬间(即 VCC 趋近于 0 V,可以看作 VCC 对地短路)正向导通,平时一直处于反偏截止 状态。 手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机, 宁夏理工学院课程设计报告 16 用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两 个机器周期以上的高电平,从而实现复位操作。 本设计采用上电且开关复位电路,如图 1.10 所示上电后,由于电容充电, 使 RST 持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使 RST 持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择 C=1030F,R=1K,本设计采用的电容值为 22F 的电容和电阻为 1K 的电阻。 VCC C3 R4S4 R5200 1K 22uF 接RSET 图 1.10 单片机复位电路 1.71.7 系统总电路的设计系统总电路的设计 系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成, 只要将单片机与以上各部分电路合理的连接就组成了系统总电路。系统总电路 图附录 B 所示。 80C51 单片机为主电路的核心部分,各个电路均和单片机相连接,由单片 机统筹和协调各个电路的运行工作。 80C51 单片机提供了 XTAL1 和 XTAL2 两个专用引脚接晶振电路,因此只 要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电 路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高 电平有效。 按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键 和查看键分别接单片机的 P1.0 和/PSEN,均设为低电平有效。而另外的开始键 宁夏理工学院课程设计报告 17 和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口 P3.3 和 P3.2,这两个 I/O 口的第二功能分别为单片机的外部中断 1 端口和外部中断 0 端口。同样设置为位低电平有效。 显示电路由五位数码管组成,采用动态显示方式,因此有 8 位段控制端和 6 位位控制端,八位段控制接 P0 口,P0.0P0.7 分别控制数码显示管的 a、b、c、d、e、f、g、dp 显示,8051 的 P0 口没有集成上拉电阻,高电平的驱 动能力很弱,所以需要接上拉电阻来提高 P0 的高电平驱动能力。六位位控制则 由低位到高位分别接到 P2.0P2.6 口,NPN 三极管 9013 做为位控制端的开关, 当 P2.0P2.5 端口任意一个端口为高电平时,与其相对应的三极管就导通,对 应的数码管导通显示。 通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的 设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实 现数字电子秒表的全部功能。 2 软件设计 2.12.1 程序设计思想程序设计思想 本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序, 比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇 编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应, 基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的 特性,得到质量较高的程序。 汇编语言的特点: (1).面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。 (2).保持了机器语言的优点,具有直接和简捷的特点。 (3).可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、 CPU、I/O 端口等。 (4).目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 (5).经常与高级语言配合使用,应用十分广泛。 宁夏理工学院课程设计报告 18 在程序设计过程中,为了有效地完成任务,把所要完成的任务精心的分割 成若干个相互独立但相互又仍可有联系的任务模块,这些任务模块使得任务变 得相对单纯,对外的数据交换相对简单,容易编写,容易检测,容易阅读和维 护。这种程序设计思想称为模块化程序设计思想。模块化结构程序的设计,可 以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。 程序的主要模块有:主程序、显示程序、定时溢出中断服务程序、外部中断服 务程序。 2.22.2 系统资源的分配系统资源的分配 本设计系统所用到的单片机端口数比较多,所以在这里将对数字电子秒表 的硬件资源的大概分配加以说明。片内 RAM 的分配、各功能键的定义以及各 端口的分配安排如表 2.1 所示。 表 2.1 端口的分配安排表 名称功能描述初始化值 79H-7DH 1ms-10s 位显示寄存区 00H 69H-6DH 1ms-10s 位中间寄存区 00H 59H-5DH 1ms-10s 位最终寄存区 00H R1- R5 1ms-10s 位溢出计数区 定时器 T0控制秒表的最小精度 E018H 外部中断 INT0停止中断信号入口 外部中断 INT1开始中断信号入口 2.32.3 主程序设计主程序设计 本系统程序主要模块由主程序、定时中断服务程序、外部中断 0 服务程序 和外部中断 1 服务程序组成。其中主程序是整个程序的主体。可以对各个中断 程序进行调用。协调各个子程序之间的联系。 系统(上电)复位后,进入主程序,主程序流程图如图 2.1。首先对系统进 宁夏理工学院课程设计报告 19 行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0” 、赋 定时器初值,初始化完毕后,就进入数码管显示程序。数码管显示程序对显示 缓存区内的数值进行调用并在数码管上进行动态显示。显示一次就对 P1.0 和 /PSEN 进行一次扫描,查询复位键 P1.0 是否按下,当复位键按下后,程序返回 开始,重新对系统进行初始化。当没有按下复位键时,程序则扫描/PSEN 是否 按下,当/PSEN 没有按下则返回显示程,不断地调用显示缓存区的数据进行显 示。使用户能清楚的看到当前电子秒表所记录的时间。当查询到/PSEN 按下后 则跳转到另外一段显示程序并调用最红缓存区的数据进行显示,此时显示的时 间即为上一次计时的时间。与此同时,在/PSEN 按下后单片机执行显示程序的 同时也在对/PSEN 进行扫描,当/PSEN 断开后立即跳转回之前的显示程序显示 当前的计时时间。 在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中 断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去 执行外部中断服务程序。并在执行完后返回主程序。 宁夏理工学院课程设计报告 20 图 2.1 主程序流程图 比它高的中断请求,这是,CPU 就暂停终止对当前优先级较低的中断源的 服务,转去响应优先级比它高的中断请求,并为其服务。待服务结束,再继续 执行原来较低级的中断服务程序。而当 CPU 为级别高的终端服务程序服务时, 如果级别低的中断发出中断请求,此时 CPU 是不会响应的,所以为了避免开始 和暂停两个按键中的一个出现没有响应的情况,在进行程序编辑时要注意对中 断的使用,避免出现中断的嵌套。 ,合理分配中断对本设计的实现是至关重要的。 另外由于数字式电子秒表的最小精度位 10ms,属于高精度电子秒表。定时 宁夏理工学院课程设计报告 21 器 T0 的定时周期也为 10ms,为了使电子秒表暂停键按下后 CPU 能马上去响应 中断程序,必须将暂停的外部中断级别高于定时计数器的中断级别。避免出现 CPU 执行完定时溢出中断程序后再响应外部中断程序,影响计时精度。 80C51 的自然优先级顺序排列如下: 中断源 最高 外部中断 0 定时/计数器 0 溢出中断 外部中断 1 定时/计数器 1 溢出中断 串行口中断 最低 数字式秒表中的两个按键采用了中断实现功能。开始采用外部中断 INT0, 暂停采用外部中断 INT1。另外程序中还用到了定时/计数器 0 溢出中断进行计 时。依据设计要求,暂停的外部中断 INT1 中断级别最高,计时的定时/计数器 0 溢出中断次之,开始的外部中断 INT0 级别最低。 (1)外部中断 0 服务程序: 外部中断 0 服务程序结合外部 P3.2 停止键实现数字电子秒表的停止功能, 具体流程图如图 2.2。 当按下 P3.2 停止键按下向 CPU 发出外部中断请求,CPU 转向外部中断 0 服务 程序执行,停止定时器。另外将当前显示的时间进行一次存储,存进中间寄存 区。 2.42.4 中断程序设计中断程序设计 现在方案中采用了三个中断,外部中断 INT0,INT1 和定时中断 T0。CPU 在 响应中断时,先处理高级中断,在处理低级中断,若有多个同级中断时,则按 自然优先顺序处理。例如当 CPU 正在处理一个中断申请时,有出现了另一个优 先级区。 宁夏理工学院课程设计报告 22 外部中断0入口 停止定时器T0 一次存储 中断返回 图 2.2 外部中断 0 服务程序流程图 (2)外部中断 1 服务程序 外部中断 1 服务程序结合外部 P3.3 停止键实现数字电子秒表的启动功能, 具体流程图如图 2.2。 当按下 P3.3 启动键按下向 CPU 发出外部中断请求,CPU 转向外部中断 1 服务程序执行,启动定时器。另外进行二次存储,将之前进行一次存储的数码 管显示数据存入最终缓存区,避免下次计时暂停时一次存储将数据掩盖,从而 起到保 护数据的作用。二次存储后就中断返回。 外部中断1入口 启动定时器T0 二次存储 中断返回 图 2.3 外部中断 1 服务程序流程图 宁夏理工学院课程设计报告 23 (3)定时中断服务程序 当定时/计数器 T0 器溢出后,向 CPU 发出中断请求信号。CPU 跳转到定时 中断程序执行,具体流程如图 2.4。定时中断程序是一个进位程序,主要负责对 10ms 的加一。10ms 位没有满十就跳出中断程序,返回显示程序。当 10ms 位满 十后就对 10ms 位清零,向 100ms 位加一,同时检测 100ms 位是否满十,没有 满十就跳出中断程序,返回显示程序。如果满十就向 1s 位加一,依次类推,最 终达到 59:59:99 秒后归零,从零开始再次计时。 定时/计数器 T0 工作在方式 1 下,TH0 和 TL0 组成一个 16 位的二进制数 计数器。单片机开机或复位时,它的值为 00H,当 T0 启动后,从第一个输入脉 冲开始计时,每来一个脉冲计数加一,即从 0000000000000000 开始计数到 1111111111111111,再计数一个脉冲时 TH0 和 TL0 组成的 16 位计数器将会从 16 个 1 变成 16 个 0,并产生溢出,溢出位将被送到 TF0 标志位,通过溢出标 志产生溢出中断请求。显然,T0 定时器在方式 1 下引起一次中断所允许计数的 最多脉冲个数为 216 个。 但如果定时计数器如果每次都固定从 0 开始计数,到计满后,再向 CPU 发 出溢出中断请求信号那是毫无意义的。为了使定时计数器在规定的计数脉冲个 数字之后(此时应小于 216 个脉冲),向 CPU 发出溢出中断请求,可采取预先 向 TH0 和 TL0 中放入一个初值 X 的方法,使计数器以 X 值为起始值开始计数, 即 X+1,X+2,直至计数器计满,从 1 全变为 0。设需要计数的脉冲个数为 Y,则有: X+Y=216 在定时方式下:定时时间间隔位 t=(216X)*振荡周期*12 现在本设计要求 10ms 实现一次中断,选择定时器 T0 工作在方式 1。所以 需要根据以上条件计算出 T0 的初值。 设 T0 的初值为 X,则 (216X)*12/12*106 =1*10-3 转换位十六进制数 X=55536=1101100011110000B 即 TH0=0D8H(取 X 的高 8 位) 宁夏理工学院课程设计报告 24 TL0=0F0H(取 X 的低 8 位) 由于定时 10ms 只是一个理想化的时间,其中并没有考虑到中断后单片机 执行语句所花的时间。虽然执行语句所花的时间很短只有即微秒,但积少成多, 数字秒表一秒中要溢出中断 100 次,积累起来误差就能达到十毫秒级,这对于 精度到达十毫秒级的数字电子秒表来说是很大的误差。所以要在后期编程时还 要将单片机读程序的时间考虑进去,在对定时器赋初值时将单片机需要执行的 语句所花的时间加上,这样就能使数字电子秒表的误差达到最小。 图 2.4 定时中断服务程序 宁夏理工学院课程设计报告 25 3 数字电子秒表的安装与调试 3.13.1 软件的仿真与调试软件的仿真与调试 Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件,它可 以仿真、分析(SPICE)各种模拟器件和集成电路。该软件的主要特点总结后有以 下四点:实现了单片机仿真和 SPICE 电路仿真相结合的功能。支持目前主 流单片机系统的仿真。提供了软件调试功能,并可以与 WAVE 联合仿真调试。 具有强大的原理图绘制功能。总之,该软件是一款集单片机和 SPICE 分析于 一身的仿真软件,功能极其强大。在电子领域中也起到了很大的作用,它的出 现仿真不需要先焊接电路,可以先仿真调试通过后在焊电路,节省了不少在硬 件调试上所花的时间。 Proteus ISIS 的工作界面是一种标准的 Windows 界面。它包括标题栏、主 菜单、状态栏、标准工具栏、绘图工具栏、对象选择按钮、预览对象方位控制 按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口等十几 个工具,方便了使用者的使用。 首先打开已经画好的 proteus DSN 文件,双击图中的 AT89S52 芯片,就弹 出一个窗口,在 Program File 项中通过路径选择在 WAVE 中生成的 HEX 文件, 双击选中后确定,这样仿真图中的 AT89S52 芯片就已经读取了本设计中的 HEX 文件。单击“三角形按钮”进行仿真。通过对仿真结果的观察来对程序进行 修改,最终使程序到达设计要求。 3.23.2 硬件的安装与调试硬件的安装与调试 按照之前设计好的数字电子秒表原理图,详细计算系统中各个元件的参数, 选择相应器件,制作实际电路板。由于考虑到万能板大小的问题及元件之间连 线的方便,在焊接元器件前必须考虑元件的布局然后进行实际操作。 制作好的电路板可以用万用表(200 欧姆档)的红、黑表笔测试电路板的 每条走线,当其电阻非常小时,证明走线没有断开,当其电阻很大时,证明该 条走线断了,应该重新走线,使电路板在电气上得到正确地连接。选用万用表 宁夏理工学院课程设计报告 26 的 20K 欧姆档,检测电路中是否存在短路。因为系统采用的是共阴极数码管作 为显示电路,必须确保数码管的公共端接的是低电平。 (1)晶振电路的测试 在单片机正常运行的必要条件是单片机系统的时钟稳定正常。实际中,因 为各种原因导致系统时钟不正常而出现系统无法正常运行的情况时有,因此系 统时钟是否振是通电检查的首要环节。在系统通电的状况下,用万用表的直流 电压档(20V) ,分别测量 XTAL1 和 XTAL2 引脚的电压,看是否正常,在调试过 程中,测得电压 XTAL1 引脚应为 2.05V,XTAT2 应为 2.15V。 (2)复位电路的测试 复位不正常也会导致系统不能工作。如果复位引脚始终为高电平,系统将 始终处于复位状态;如果始终为低电平,不能产生复位所需的高电平信号脉冲, 则系统也可能无法正常工作。单片机正常工作时,RST 复位引脚应为 0V,按下 复位按键时,复位引脚为高电平 5V 左右。 (3)显示电路的测试 显示电路是数字电子秒表正常运行最直观的观察窗口,我们可以通过观察 显示电路的显示结果观察系统能否正常运行。当显示电路按照电路图焊接好后, 用万用表的测二极管档位,将黑表笔接共阴数码管的公共段,然后将红表笔接 数码管的各段,当数码管的段能正常显示,说明各点焊接正常。 3.33.3 系统程序的烧录系统程序的烧录 在软件调试中,使用当今流行的功能强大且普遍的 WAVE 6000 软件进行 软件编译与调试,使用 Microcontroller ISP Software 及其配套的单片机对程序进 行烧录。 3.1Debiceselection 宁夏理工学院课程设计报告 27 图 3.2 Atmel microcontroller 软件的烧录:第一步:安装并运行 Microcontroller ISP Software 软件;第二 步:点击 Options 栏的 select device 选项;这时出现一个对话窗口,如图 3.1 所 示,按图选择后,点击 OK 按键,如出现图 3.2 所示窗口,则说明电脑与开发 板没连接好或单片机没插好等,需重装检查硬件连接,如果没有出现则说明初 始化成功。 第三步:点击 File 栏的 Load Buffer 选项打开已经编译好的 HEX 文件。点 击载入,出现如图 3.4.a 对话框点确定后,再点击图 3.3 中的“A”字图标,出 现如图 3.4.b 对话框,完成后,按软件默认选项,点击“OK” “OK”“OK”烧录完成;否则重新检查硬件连接后再重新烧录。 图 3.4.a Atmel 图 3.4.b auto programming 3.43.4 数字电子秒表的精度调试数字电子秒表的精度调试 将数字电子秒表的程序编译后烧录进单片机,并将单片机插入系统并保证 其能正常运行。在进行精度测试之前的编程过程中,我们知道了单片机在进行 定时中断时需要执行语句,而执行这些语句是需要占用 CPU 时间的,从而影响 单片机定时的精确性,最终会导致数字电子秒表的计时误差,为了减小这种计 时误差,我们之前在编程时已经将单片机一秒钟内执行程序的时间计算在内, 并将定时器的初值做出了适当调整。争取最大限度的减小数字电子秒表的计时 误差。 宁夏理工学院课程设计报告 28 在进行秒表精度调试时,我们让本设计的单片机秒表和电子表同时计时, 为了能尽可能的观察出是否有误差,我们将计时时间定为 10 分钟,当计时时间 到后观察两个计时秒表是否同时到达。如果不是同时到达就说明有一定的误差, 需要在程序中对定时器进行微调。如果两表是同时到达则说明秒表的设计满足 要求。 结 论 本设计的数字电子秒表是由 80C51 单片机、共阴数码显示管、控制按键、 三极管等器件构成的,设有六位计时显示,开始、暂停、复位按键以及一个系 统整机复位按钮。计时精度能到达 10ms,设计精简,使用简单易懂。系统设计 合理,线路简单、功能先进,性能稳定,程序精简。并给出了详细的电路设计 方法。本系统是以单片机为核心,仅单片机方面知识是不够的,还应根据具体 硬件结构,以及针对具体应用对象特点的软件结合,以作完善。所以采用汇编 语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学数学二年级下册口算练习100题-二年级数学口算练题
- 急诊医疗服务规范制度
- 13.1.2线段的垂直平分线性质(第二课时)
- 2024年西安客运驾驶员考试选择题及答案解析
- 算法设计与分析 课件 1.2.1-算法分析准则 - 正确性
- 2024年杭州客运考试应用能力试题及答案详解
- 2024年广西客车驾驶员从业资格证考试题库
- 2024年山西c1客运资格证模拟考试题下载什么软件
- 2024年四川客运从业资格证考试技巧口诀
- 2024年长沙客运从业资格证试题答案
- 汽车文化知识考试参考题库400题(含答案)
- WDZANYJY23低压电力电缆技术规格书
- 《水循环》-完整版课件
- 抗高血压药物基因检测课件
- 西游记 品味经典名著导读PPT
- 金坛区苏科版四年级心理健康教育第1课《我的兴趣爱好》课件(定稿)
- 心肌缺血和心肌梗死的心电图表现讲义课件
- 小学生性教育调查问卷
- 学历案的编写课件
- 旅游行政管理第二章旅游行政管理体制课件
- 卫生院关于召开基本公共卫生服务项目培训会的通知
评论
0/150
提交评论