基于单片机的篮球记分计时器的系统设计_毕业论文(编辑修改稿)内容摘要:

定时器 2 溢出或 EXEN2=1 时 T2EX 出现负跳变,都会出现自动重载操作。 CP/RL2=0 将引起 T2EX 的负脉冲。 当 RCKL=1 或 TCKL=1时,此标志位无效,定时器 2 溢出时,强制做自动重载操作。 存储器 MCS51器件有单独的 程序存储器 和数据存储器。 外部 程序 存储器和数据存储器都可以 64K 寻址。 程序存储器 :如果 EA引脚 接地,程序读取只从外部存储器开始。 对于 89S52,东北 大学毕业设计(论文) — 8— 如果 EA 接 VCC, 程序 读写先从内部 存储器 (地址为 0000H~ 1FFFH)开始,接着从外部寻址,寻址地址为: 2020H~FFFFH。 数据 存储器 : AT89S52有 256字节片内数据存储器。 高 128 字节与 特殊功能寄存器 重叠。 也就是说高 128字节与 特殊功能寄存器 有相同的地址,而物理上是分开的。 当一条指令访问高于 7FH 的地址时, 寻址方式 决定 CPU 访问高 128字节 RAM 还是 特殊功能寄存器 空间。 片上资源 看门狗定时器 WDT 是一种需要 软件 控制的复位方式。 WDT 由 13位 计数器 和 特殊功能寄存器 中的看门狗定时器复位 存储器 ( WDTRST)构成。 WDT 在默认情况下无法工作;为了激活 WDT,用户必须往 WDTRST 寄存器 (地址: 0A6H)中依次写入 01EH 和0E1H。 当 WDT 激活后,晶振工作, WDT 在每个 机器 周期 都会增加。 WDT 计时 周期 依赖于外部时钟频率。 除了复位(硬件复位或 WDT 溢出复位),没有办法停止 WDT 工作。 当 WDT 溢出,它将驱动 RSR 引脚 一个高电平输出。 WDT 的使用为了激活 WDT,用户必须向 WDTRST 寄存器 (地址为 0A6H 的 SFR)依次写入 01EH 和 0E1H。 当 WDT 激活后,用户必须向 WDTRST 写入 01EH 和 0E1H喂狗 来避免 WDT 溢出。 当计数达到 8191( 1FFFH)时, 13位 计数器 将会溢出,这将会复位器件。 晶振正常工作、 WDT 激活后,每一个 机器周期 WDT 都会增加。 为了复位 WDT,用户必须向 WDTRST 写入 01EH 和 0E1H( WDTRST 是只读 寄存器 )。 WDT 计数器 不能读或写。 当 WDT 计数器 溢出时,将给 RST 引脚 产生一个复位 脉冲输出 [17],这个复位脉冲持续 96个晶振 周期 ( TOSC),其中 TOSC=1/FOSC。 为了很好地使用 WDT,应该在一定时间内 周期 性写入那部分代码,以避免 WDT 复位。 掉电和空闲方式下的 WDT 在掉电模式下,晶振停止工作,这意味 这 WDT 也停止了工作。 在这种方式下,用户不必 喂狗。 有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。 通过硬件复位退出掉电模式后,用户就应该给 WDT 喂狗 ,就如同通常 AT89S52 复位一样。 通过中断退出掉电模式的情形有很大的不同。 中断应持续拉低很长一段时间,使得晶振稳定。 当中断拉高后, 执行 中断服务程序。 为了防止 WDT 在中断保持低电平的时候复位器件, WDT 直到中断拉低后才开始工作。 这就意味着WDT 应该在 中断服务程序 中复位。 为了确保在离开掉电模式最初的几个状态 WDT 不被溢出,最好在进入掉电模式前就复位 WDT。 在进入待机模式前,特殊 寄存器 AUXR 的 WDIDLE 位用来决定 WDT 是否继续计数。 默认状态下,在待机模式下, WDIDLE=0, WDT 继续计数。 为了防止 WDT 在待机模式下复位 AT89S52,用户应该建立一个 定时器 ,定时离开待机模式, 喂狗 ,再重新进入待机模式。 定时器 0和定 时器 1 东北 大学毕业设计(论文) — 9— 在 AT89S52中, 定时器 0和定时器 1的操作与 AT89C51和 AT89C52一样。 定时器 2 定时器 2是一个 16位定时 /计数器 ,它既可以做定时器,又可以做事件计数器。 其工作方式由特殊 寄存器 T2CON 中的 C/T2位选择,如表 2所示: 表 2 定时器 2 工作模式 RCLK+TCLK CP/RL2 TR2 MODE 0 0 1 16位自动重载 0 1 1 16位捕捉 1 x 1 波特率发生器 x x 0 (不用) 定时器 2有三种工作模式:捕捉方式、自动 重载 (向下或向上计数)和 波特率 发生器。 如表 3所示,工作模式由 T2CON 中的相关位选择。 定时器 2有 2个 8位 寄存器 : TH2和 TL2。 在定时工作方式中,每个 机器周期 , TL2寄存器 都会加1。 由于一个 机器周期 由 12个晶振周期构 成,因此,计数频率就是晶振频率的1/12。 捕捉方式在捕捉模式下,通过 T2CON 中的 EXEN2来选择两种方式。 如果EXEN2=0, 定时器 2时一个 16位定时 /计数器 ,溢出时,对 T2CON 的 TF2标志置位, TF2引起中断。 如果 EXEN2=1, 定时器 2做相同的操作。 除上述功能外,外部输入 T2EX 引脚 ( ) 1至 0的下跳变也会使得 TH2和 TL2中的值分别捕捉到RCAP2H 和 RCAP2L 中。 除此之外, T2EX 的跳变会引起 T2CON 中的 EXF2置位。 像 TF2一样, T2EX 也会引起中断。 在计数工作方式下, 寄存器 在相关外部输入角 T2发生 1至 0的下降沿时增加 1。 在这种方式下,每个 机器周期 的 S5P2期间采样外部输入。 一个 机器周期 采样到高电平,而下一个周期采样到低电平, 计数器 将加 1。 在检测到跳变的这个 周期 的 S3P1 期间,新的计数值出现在 寄存器中。 因为识别 1- 0的跳变需要 2个 机器周期 ( 24个晶振周期),所以,最大的计数频率不高于晶振频率的 1/24。 为了确保给定的电平在改变前采样到一次,电平应该至 少在一个完整的 机器周期 内保持不变。 自动重载当 定时器 2工作于 16位自动重载模式,可对其编程实现向上计数或向下计数。 这一功能可以通过特殊 寄存器 T2MOD 中的 DCEN(向下计数允许位)来实现。 通过复位, DCEN 被置为 0,因此, 定时器 2 默认为向上计数。 DCEN设置后, 定时器 2就可以取决于 T2EX 向上、向下计数。 DCEN=0时, 定时器 2自动计数。 通过 T2CON 中的 EXEN2位可以选择两种方式。 如果 EXEN2=0, 定时器 2计数,计到 0FFFFH 后置位 TF2溢出标志。 计数溢出也使得 定时器 寄存器 重新从 RCAP2H 和 RCAP2L 中加载 16位值。 定时器 工作于捕捉模式, RCAP2H 和 RCAP2L 的值可以由 软件 预设。 如果 EXEN2=1,计数溢出或在外部 T2EX( )引脚上的 1到 0的下跳变都会触发 16位重载。 这个跳变也置位 EXF2中断标志位。 T2EX 上的一个逻辑 0使得 定时器 2向下计数。 当 TH2和 TL2东北 大学毕业设计(论文) — 10— 分别等于 RCAP2H 和 RCAP2L 中的值的时候, 计数器 下溢。 计数器 下溢,置位TF2,并将 0FFFFH 加载到 定时器 存储器 中。 如图 6所示,置位 DCEN,允许 定时器 2向上或向下计数。 在这种模式下, T2EX 引脚 控制着计数的方向。 T2EX 上的一个逻辑 1使得 定时器 2向上计数。 定时器 计到 0FFFFH 溢出,并置位 TF2。 定时器 的溢出也使得 RCAP2H 和 RCAP2L 中的 16位值分别加载到 定时器 存储器 TH2和TL2中。 定时器 2上溢或下溢,外部中断标志位 EXF2被锁死。 在这种工作模式下,EXF2不能触发中断。 中断源 AT89S52 有 6个 中断源 :两个 外部中断 ( INT0 和 INT1),三个定时中断( 定时器 0、 2)和一个串行中断。 这些中断如图 10所示每个 中断源 都可以通过置位或清除特殊 寄存器 IE中的相关中断允许控制位 [18]分别使得中断源有效或无效。 IE 还包括一个中断允 许总控制位 EA,它能一次禁止所有中断。 定时器 2可以被 寄存器 T2CON 中的 TF2和 EXF2的或逻辑触发。 程序 进入中断服务后,这些标志位都可以由硬件清 0。 实际上, 中断服务程序 必须判定是否是 TF2 或 EXF2激活中断,标志位也必须由 软件 清 0。 定时器 0和定时器 1标志位 TF0和 TF1在计数溢出的那个 周期 的 S5P2被置位。 它们的值一直到下一个 周期 被电路捕捉下来。 然而, 定时器 2的标志位 TF2 在计数溢出的那个 周期 的 S2P2被置位,在同一个周期被电路捕捉下来。 中断允许控制位 =1,允许中断 中断允 许控制位 =0,禁止中断 表 3 中断允许 控制寄存器 符号 位地址 功能 EA 中断总允许控制位。 EA=0,中断总禁止; EA=1,各中断由各自的控制位设定 预留 ET2 定时器 2中断允许控制位 ES 串行口中断允许控制位 ET1 定时器 1中断允许控制位 EX1 外部中断 1允许控制位 ET0 定时器 0中断允许控制位 EX0 外部中断 0允许控制位 控制模块是由键盘输入,键盘是一组按键的集合,它是最常见的单片机输东北 大学毕业设计(论文) — 11— 入设备,是一种常开型按钮开关。 常态时,按键 [10]的两个触点处于断开状态,如图 3 所示,键盘分为编码键盘和非编码键盘,键盘上闭合键的识别由专门的硬件译码器实现,并产生键编号或键值的称为编码键盘,如 BCD 码键盘、 ASCII码键盘等;靠软件识别的称为非编码键盘。 图 3 常开型按钮开关 时钟电路模块 时钟电路在 单片机 系统 [9]中起着非常重要的作用,是保证系统正常工作的基础。 在一个单片机应用系统中,时钟 是 保障系统正常工作的基准振荡定时信号,主要由晶振 [19]和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。 为达到振荡周期是 12MHZ 的要求,这里要采用 12MHZ 的晶振,另外有两个 22P的电容,两晶振引脚分别连到 XTAL1 和 XTAL2 振荡脉冲输入引脚。 具体连接图如图 4 所示: 图 4 晶振电路 复位电路模块 复位是单片机 [11]的初始化操作,其主要功能是把 PC 初始化为 0000H,使单片微机从 0000H 单元开始执行程序。 除进入系统的正常初始化之外,当由于X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1C13 3 pC53 3 pX2CR Y S T A L东北 大学毕业设计(论文) — 12— 程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。 RST 引脚是复位信号的输入端。 复位电路在这里采用的是上电 +按钮复位电路 [13]形式,具体连接电路如图5 所示: X T A L 218X T A L 119A L E30EA31P S E N29R S T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I N T 012。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。