资源目录
压缩包内文档预览:(预览前20页/共42页)
编号:552414
类型:共享资源
大小:310.95KB
格式:ZIP
上传时间:2015-12-05
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
毕业设计论文
- 资源描述:
-
毕业设计 篮球记分牌硬件设计 ,毕业设计论文
- 内容简介:
-
1 目录 摘要 2 第 1 章 引 言 1.1 单片机的特点及发展概况 3 1.2 单片机的基本组成 3 1.3 单片机的特点 3 1.4 单片机的应用 3 1.5 单片机的发展概况 4 1.6 单片机在篮球 记分牌中的应用 4 第 2 章 篮球记分牌硬件设计 2.1 设计题目分析 5 2.2 系统硬件设计 5 2.3 硬件设计电路图 13 第 3 章 篮球记分牌系统软件设计 3.1 软件设计思路及程序流程图 15 3.2 程序清单 26 第 4 章 毕业设计小结 计心得及改进 41 致 谢 42 参考文献 43 nts 2 摘 要: 单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而 51 单片机是个单片机中最为典型和最有代表性的一种 本次毕业设计的主要任务是设计一个篮球比赛记分牌,包括硬件设计和软件设计。硬件设计的主要任务是: LED 数码管 显示 、 按键 控制系统设计以及辅助功能的设计。软件设计包括:功能选择、倒计时的实现。本文主要介绍了单片机实现篮球记分牌的整个设计流程,采用汇编语言编写程序。本课题选择 AT89C51为核心控制元件,设计了日常比赛中用到的篮球记分牌。设计同时引用 MAX7219专用 LED 驱动芯片,解决了多位 LED 数码管同时显示的问题 ,硬件结构紧凑,成本低。该单片机篮球记分牌可适应不同篮球规则,通过按键修改每个设置。 运行可靠,具有一定的使用 价值 和竞争价值。 关键词 : AT89C51 单片机、 LED 数码管、 MAX7219、汇编、篮球记分牌 nts 3 第一章 引 言 1.1 单片机的特点及发展概况 单片机是一个单芯片形态 ,面向控制对象的嵌入式应用计算机系统 .它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域 .从此 ,计算机技术在两个重要领域 通用计算机领域和嵌入式计算机领域都得到了极其重要的发展 ,并正在深深地改变着我们的社会。 1.2 单片机的基本组成 单片机的结构特征是将组成计算机的基本部件集成在一块晶体芯片上 ,构成一台功能独特的 ,完整的单片微型计算机 . 1.3 单片机的 特点 单片机独特的结构决定了它具有如下特点 . (1)高集成度 ,高可靠性 单片机将各功能部件集成在一块晶体芯片上 ,集成度很高 ,体积自然也是最小的 .芯片本身是按工业测控环境要求设计的 ,内部布线很短 ,其抗工业噪音性能优于一般通用的 CPU.单片机程序指令 ,常数及表格等固化在 ROM 中不易破坏 ,许多信号通道均在一个芯片内 ,故可靠性高 . (2)控制功能强 为了满足对对象的控制要求 ,单片机的指令系统均有极丰富的条件 :分支转移能力 ,I/O 口的逻辑操作及位处理能力 ,非常适用于专门的控制功能 . (3)低电压 ,低功 耗 为了满足广泛使用于便携式系统 ,许多单片机内的工作电压仅为 1.8V3.6V,而工作电流仅为数百微安 . (4)优异的性能价格比 单片机的性能极高 .为了提高速度和运行效率 ,单片机已开始使用 RISC 流水线和 DSP 等技术 .单片机的寻址能力也已突破 64KB 的限制 ,有的已可达到 1MB 和16MB,片内的 ROM容量可达 62MB,RAM容量则可达 2MB.由于单片机的广泛使用 ,因而销量极大 ,各大公司的商业竞争更使其价格十分低廉 ,其性能价格比极高 . 1.4 单片机的应用 由于单片机功能的飞速发展 ,它的应用 范围日益广泛 ,已远远超出了计算机科学的领域 .小到玩具 ,信用卡 ,大到航天器 ,机器人 ,从实现数据采集 ,过程控制 ,模糊控制等智能系统到人类的日常生活 ,到处都离不开单片机 .其主要的应用领域如下。 (1)在测控系统中的应用 单片机可以用于构成各种工业控制系统 ,自适应控制系统 ,数据采集系统等 .例如 ,工业上的锅炉控制 ,电机控制 ,车辆检测系统 ,水闸自动控制 ,数控机床及军事上的雷达 ,导弹系统等。 (2)在智能化仪器仪表中的应用 单片机应用于仪器仪表设备中促使仪器仪表向数字化 ,智能化 ,多功能化和综合化等方向发展 .单 片机的软件编程技术使长期以来测量仪表中的误差修正 ,线性化的处理等难题迎刃而解。 (3)在机电一体化中的应用 单片机与传统的机械产品结合使传统的机械产品结构简化 ,控制走向智能化 ,构成新一代的机电一体化产品 .这是机械工业发展的方向。 nts 4 (4)在智能接口中的应用 计算机系统 ,特别是较大型的工业测控系统中采用单片机进行接口的控制管理 ,单片机与主机并行工作 ,可大大提高系统的运行速度 .例如 ,在大型数据采集系统中 ,用单片机对模 /数转换接口进行控制不仅可提高采集速度 ,还可以对数据进行预处理 .如数字滤波 ,误差修正 ,线性化处理等 . (5)在人类生活中的应用 单片机由于其价格低廉 ,体积小巧 ,被广泛应用在人类生活的诸多场合 ,如洗衣机 ,电冰箱 ,空调器 ,电饭煲 ,视听音响设备 ,大屏幕显示系统 ,电子玩具 ,信用卡 ,楼宇防盗系统等 .单片机将使人类的生活更加方便舒适 ,丰富多彩。 1.5 单片机的发展概况 单片机出现的历史并不长 ,它的产生与发展和微处理器的产生与发展大体上同步 . 1970年微型计算机研制成功后 ,随即在 1971年 ,美国 Intel公司生产出了 4位单片机 4004,它的特点是结构简单 ,功能单一 ,控制能力较弱 ,但价格低廉 .1976 年Intel公司推出了 MCS-48系列单片机 ,它以体积小 ,功能全 ,价格低等特点获得了广泛的应用 ,成为单片机发展进程中的一个重要阶段 ,此可谓是第一代单片机 . 在 MCS-48系列单片机的基础上 ,Intel公司在 20世纪 80年代初推出了第二代单片机的代表 MCS-51 系列单片机 .这一代单片机的主要技术特征是为单片机配置了完美的外部并行总线和串行通信接口 ,规范了特殊功能寄存器的控制模式 ,以及为增强控制功能而强化布尔处理系统和相关的指令系统 ,为发展具有良好兼容性的新一代单片机奠定了良好的基础 . 近几年出现了具 有许多新特点的单片机 ,可称之为第三代单片机 .它以新一代的80C51 系列单片机为代表 .同时 16 位单片机也有很大发展 . 尽管目前单片机品种繁多 ,但其中最为典型的仍当属 Intel公司的 MCS-51系列单片机 .它的功能强大 ,兼容性强 ,软硬件资料丰富 .国内也以此系列的单片机应用最为广泛 .直到现在 MCS-51仍不失为单片机中的主流机型 .在今后相当长的时间内 ,单片机应用领域中的 8位机主流地位还不会改变 . 1.6 单片机在篮球记分牌中的应用 由于 本次设计的简单篮球记分牌 体积小,故要求其控制器体积更小以便能嵌入其结构之 中。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足需求。 可以适应不同规则下操作。其具体功能及实现在以下两章做详细介绍。 nts 5 第二章 硬件设计 2.1 设计题目 分析 题目: 篮球比赛电子记分牌 题目要求: 1.显示球队的英文名称 (缩写 )或用 LED 点阵显示中文名 2.显示比分用三位数表示 3.显示比赛剩余时间,进攻剩余时间,这些剩余时间 变为 0 时发出相应警报 4.可用按键显示修改球队名称,及比赛剩余时间,并设置暂停键。 球队名 _ _ _ vs _ _ _ 比分 _ _ _ : _ _ _ 比赛剩余时间 _ _ : _ _ 第 _场 进攻剩余时间 _ _ 2.2 系统硬件设计 2.2.1 面板设计: 篮球记分牌的实现方法有很多,可 以分为两大类:第一类是全部采用硬件实现;第二类是采用硬件和软件想结合的方法实现。这里采用单片机实现电子钟属球球球 队队队 名名名 _ _ _VS_ _ _ acttiive 比比比 分分分 _ _ _ : _ _ _ sttartt attttack settn 比比比 赛赛赛 倒倒倒 计计计 时时时 _ _ : _ _ settfftt up down 第第第 _ 场场场 进进进 攻攻攻 倒倒倒 计计计 时时时 _ _ 按按按 键键键 操操操 作作作 nts 6 于第二种方法。 该设计的篮球记分牌基本功能如设计题目要求所述 ( 1) 用三位英文字母缩写代表球队名,采用 MAX7219 专用 LED 驱动芯片实现静态显示,共 6位 LED ( 2) 采用单片机的动态扫描方式动态显示比分、比赛倒计时、进攻倒计时、场次,共需要 13位 LED 数码管 ( 3) 通过按键修改球队名称,及比赛剩余时间等,并设置暂停键,实现倒计时全部暂停。按键有 6个分别为 START 键 ATTACK 键 UP键 DOWN键 SETN 键 SETFT 键和一个状态开关 active ( 4) 通过蜂鸣器发出倒计时到报警信号,节时到报警 2 秒钟,竟工倒计时到报警 1 秒 2.2.2 按键及开关功能设定 START 键 比比比 赛赛赛 开开开 始始始 /暂暂暂 停停停 ATTACK 键 进进进 攻攻攻 开开开 始始始 UP 键 加加加 1 DOWN 键 减减减 1 SETN 键 设设设 置置置 球球球 队队队 名名名 、 节节节 时时时 、 节节节 数数数 、 进进进 攻攻攻 限限限 时时时 SETFT 键 修修修 改改改 比比比 分分分 、 修修修 正正正 比比比 赛赛赛 时时时 间间间 、 修修修 正正正 进进进 攻攻攻时时时 间间间 开关 active 比比比 赛赛赛 前前前 /比比比 赛赛赛 中中中 状状状 态态态 开开开 关关关 硬件设计框图: 2.2.3 系统硬件设计 1. 器件选型 ( 1) 根据以上列出的主要功能,单片机可选用 Atmel 公司生产的,与 8031完全兼容的 AT89C51 单片机, 该单片机除了具有 8031 所有的功能外,该单片机还带有 4KBde FLASH 的程序存储器,外部不需要扩展程序存储器,此时 P0、 P1、 P2、 P3 可以用做通用 I/O 口使用。另外,选用该单片机可蜂鸣报警 单片机 键盘 LED 显示 nts 7 以减低系统成本,由于不需要扩展外部 ROM 存储器,系统的数量减少,使硬件结构更加紧凑,系统性能更好。 ( 2) MAX7219 专用 LED 驱动芯片 , 是一种高集成化的串行输入 /输出的共阴极 LED 显示驱动器。每片可驱动 8位 7 段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需 3 根线。 MAX7219 内部设有扫描电路,除了更 新显示数据时从单片机接收数据外,平时独立工作,极大地节省了 MCU 有限的运行时间和程序资源。 ( 3) 由于一个按键要实现多种状态转换所以,按键采用独立式键盘结构。 ( 4) 报警电路采用单音频报警 ( 5) 综合其优缺点, LED 显示采用动静结合方式 。 2.MAX7219 芯片简介 MAX7219 芯片上包括 BCD 译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的 88 静态 RAM 以及数个工作寄存器。通过指令设置这些工作寄存器,可以使 MAX7219 进入不同的工作状态。 A.管脚说明 图 1是 MAX7219 的管脚分布图。其中: (1)DIN 为串行数据输入端。当 CLK 为上升沿时,数据被载入 16 b 内部移位寄存器。 (2)CLK 为串行时钟输入端。其最大工作频率可达 10 MHz。 (3)LOAD 为片选端,当 LOAD 为低电平时,芯片接收来自 DIN 的数据, LOAD回到高电平时,接收的数据将被锁定。 nts 8 图 2反映了 DIN, CLK 和 LOAD 的工作时序。 (4)DIG0 DIG7 为吸收显示器共阴极电流的位驱动线。其最大值可达500 mA,关闭状态时,输出 VCC。 (5)SEGA SEGG, DP 为驱动显示器 7段及小数点的输出电流,一般为40 mA 左右,可软件调整,关闭状态时,接入 GND。 (6)DOUT 为串行数据输出端,通常直接接入下一片 MAX7219 的 DIN 端。 B.操作指令 MAX7219 有 5 个工作状态寄存器,分别是译码方式选择、亮度调节、扫描位数设定、待机开关、显示器检测。除空指令外, 7219 的所有操作指令都是 2 个字节,前一个是操作代码,后一个是操作数。下面用十六进制数对控制命令加以说明。 C.译码方式选择 操作代码为 “09H” ,操作数为 “0” 或 “0FFH” 。选中 “0” 则不使用 BCD译码器,在显示数字或符号时,按每段点亮与否编排传送码。而选中 “0FFH” 时,则按 8421 标准二进制编码来代表相应的显示数字,如表 1所示。需要说明的是,无论译码与否,表 1中操作数的最高位 D7 均为小数点, “1” 为亮, “0” 为灭,所以表 1中所列是小数点不亮时的操作数。 D.亮度调节 操作代码为 “0AH” ,操作数如表 2 所示。 这个指令可以用来调节显示器的亮度,改变其操作数可以改变 MAX7219内部扫描脉冲的宽度,从而使电流的平均值有所变化,这个电流平均值可以从最小的 1/32 至最大的 31/32 之间进行 16级调节。 nts 9 MAX7219还提供了一种硬件调整显示器亮度的方式,即通过第 18管脚的 ISET和 VCC之间跨接的一个电阻来调节其亮度,段驱动平均电流大约为流过此电阻电流的 100 倍,实际应用中常用十几 k 的电阻直接接入即可。 E. 扫描位数设定 操作代码为 “0BH” ,操作数如表 3 所示。 如果所用的显示器少于 8 位,则应通过这条指令设置相应的位数。因为设置的位数如果比实际使用的位数大,就会形成 “ 虚位 ” ,而一旦对 “ 虚位 ” 进行操作,将会引起整个显示器的混乱,这是需要加以注意的。 另外,扫描位数的设置,会影响到扫描频率的变化,相应地,显示器亮度也会随着变化,所以应先确定扫描位数,再设置显示器亮度。 F.待机开 关 操作代码为 “0CH” ,操作数为 “0” 或 “1” 。 操作数为 “0” ,则显示器不工作 (灭灯 ),反之,显示器正常工作。待机状态下, 7219 的工作电流仅为 150A 。 G.显示器检测 操作代码为 “0FH” ,操作数为 “0” 或 “1” 。 选择操作数为 “1” 时,可点亮整个显示器,通常用来检查数码管及连接电路是否存在故障。检测时,不会改变各位原有的显示数据,即检测完毕后,再送入不检测指令 “0” ,又可恢复显示原数据。 H. 位操作指令 位操作指令就是对 8 个数码管显示内容的操作,也是 2 个 字节,第 1个字节是位的代码,如表 4所示,第 2个字节则根据译码方式的选择,来使用表 1 中的编码。 需要说明的是,上述所有指令的输入,不分先后 (但每个指令 2个字节的秩序不能颠倒 )。通常,前 5条指令一般在上电初始化程序中加以设置,而在工作程序中,仅使用位操作指令即可。另外, MAX7219 上电时,译码方式、亮度调节、扫描位数、待 机开关、显示检测等 5 个控制寄存器全部归零。 I.与单片机的连接 MAX7219 与 51 单片机的连接形式有 2种,一种是将 MAX7219 的 3个输入端DIN, CLK 和 LOAD 与 1951 单片机的任意 3个端口连接;一种则是直接与 51单片机的串行接口相连。以下分别介绍这 2 种方式。 J. 与单片机任意 3 个端口连接的方式 假定按图 3所示方法连接。 nts 10 MAX7219 每次接收 2个字节,高位在先,其指令可编写为: *以下是 MAX7219 与单片机 串行接口 及 MAX7219 之间多片联级知识,在此只作粗略介绍 * * * * * K. 用单片机的串行接口 如果将 MAX7219 的 DIN 接入单片机的 RXD, CLK 接入 TXD, LOAD 选任一口线,则可通过单片机串行口对 MAX7219 像对其他设备一样按模式 0进行发送操作。但由于串行口数据缓冲寄存器 SBUF 为右移发送,所以 MAX7219 的所有命令和操作数与第一种方式相比均应反转,见表 5 9。注意表 6中操作数的最低位 D0 为小数点。 nts 11 L.MAX7219 的多片级联 MAX7219 可以多片级联,只需将上一片的 DOUT 连接下一片的 DIN 即可, CLK和 LOAD 线全部公用,连在一起。 在多片级联时,对 MAX7219 的操作指令要注意 LOAD 信号的起止点,操作开始时, LOAD 下降为低电平,按照每片 MAX7219 两个字节,如果有 N 片,则 发送 2N 个字节后, LOAD 上升为高电平。还需注意的是,先发送的指令将到达级联的最后一片。 还有一条专为 MAX7219 多片级联设置的一条空操作指令,操作代码为“00H” 。当不希望对级联中的某片或某几片 MAX7219进行操作时,就可以用空操作指令跳过这片或这几片。例如,如果 4个 7219 串联,为了写入第 4 个芯片,要在 3 个空操作指令码后发送 2 个字节的指令,当 LOAD 升为高电平时,数据被锁存到所有设备,前 3个芯片收到的是空操作命令,而第 4 个收到预期的数据。 在本次设计中采用 MAX7219 专用 LED 驱动芯片,有以下几个优势:首先, MAX7219 每片可以驱动 8 位 LED 数码管,可以多片级联,在本次设计中用到 6位LED 显示,不需要级联。第二, MAX7219 与单片机相连只需要 3 个口线,而采用MC14495 则需要 8 个口线 ,这样就大大节省了口线资源;第三, MAX7219 内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了 MCU 有限的运行时间和程序 资源。 综上所述,结合了单片机的动态显示和静态显示的优缺,达到优势互补,最终选择 MAX7219 做静态显示球队名称,单片机动态扫描 13 位 LED 显示比分、时间等 nts 12 2.3 硬硬硬 件件件 电电电 路路路 设设设 计计计 在该电路中,无需进行存储器和 I/O 口的扩展, P0-P3 口都可以作通用 I/O口来实现其他功能。 P1.2P1.7 口作独立式键盘的输入口线,由于 P1 口 内部没有上拉电阻,所以在 P1口外部需要外接上拉电阻 。 独立式键盘采用一键多功能nts 13 方式,与矩阵键盘相比,按键设置要少。矩阵键盘适用于按键较多、功能单一的情况。一键多功能,可以减少键的使用,相比在该设计情况下,用独立式键盘更好。 蜂鸣 器由 TTL 系列集成电路 7406 驱动,通过单片机控制实现报警功能 单片机 1.0 引脚输出高电平时, 7406 输出低电平驱动蜂鸣器发声, P1.0 输出低电平时蜂鸣器停止发声。 P0.0P0.2 口与 MAX7219 的数据端口连接, P0.0 和 P0.1、 P0.2 分别 MAX7219模块 DIN、 LOAD、 CLK 端口相连,实现单片机与 MAX7219 模块的数据传输与控制。 P3 口作为 LED(共阴极) 七段码输出端口, 外加 TTL7407 驱动, 数码管一般点亮电流为 10mA 左右 , 电流过大会损坏,电流太小数码管太暗,看不清晰。综合电流及驱动等因素考虑,选择 7407 后电阻选择 1K。 显示子程序 分为动态显示子程序和静态显示子程序,动态显示与静态显示比较各有优缺。 静态显示的亮度高,占用 CPU 的时间短,但它的成本高。为了简化硬件电路,降低成本,在单片机应用系统中采 用动态扫描的方法,解决多位 LED 显示问题。动态扫描显示的硬件接口简单,只需一个公共的七段码输出口(字形口) 一个选择显示位的数位选择口(字位口),显示时,从左到右轮流点亮每位显示器,只要保证扫描周期不超过一定的限度(一般在 20ms 以下)由于视觉的暂留,则可达到“同时”显示各位不同的数字或字符的目的。 动态显示的优点是成本低,接口电路简单,但它要求 CPU 繁地为显示服务。 考虑到成本和 CPU 负担,初期采用 8155 扩展芯片,完全用动态显示的方案不可取,采用 Motorola 公司生产的 MC14495 芯片结合动态显示 接口资源不够用需要扩展,暂时取消 。最后引进 MAX7219 专用 LED 驱动芯片解决了单片机接口问题,结合动静态显示的优点,最终得到 如上设计的电路图。 nts 14 第三章 系统软件设计 3.1 软件设计思路和程序流程图 根据系统的功能要求和硬件的连接情况,软件可分为: T0、 T1 定时中断模块和主程序模块。两个中断模块都设定 10ms 基本定时,中断 100 次为 1s, 进而实现分、秒的计时功能,以及蜂鸣器的开关控制。 主程序模块通过循环执行的方式实现 以下功能:判断比赛前 /中,比赛前调用静态显示子程序显示球队名称,比赛中则 调用 动态显示子程序 显示 比分、比赛时间、进攻时间、场次(节时),若有按键按下,则调用键盘处理子程序。主程序模块的流程图如 3 1所示: 在中断程序 中,先重装定时器初值,基本计时单元加 1,然后进行分、秒的计时,若倒计时为 0 则打开蜂鸣器,持续蜂鸣设定的时间后自动停止。 T0、 T1中断服务的流程图如图 3-2、 3-3 所示。 每节比赛结束后,计数器 R7 加 1,到达比赛前设定的节数时, R7 清 0,相应 的显示 0节,以表示比赛结束。 T0、 T1 定时中断采用工作方式 1( 16 位定时器),由于系统时钟频率为 12MHZ,机器周期为 1us。要实现 10ms 的定时方式,在 T0、 T1 的初值为 X=65536-12*100000*0.01/12=55536=D80FH 倒 计时以二进制计数,在送入显示之前先拆分为 单个 BCD 码,分别送入相对应的显示缓冲区。 系统初始化 调动态显示子程 调键处理子程 调静态显示子程 N Y 图 3-1 主程序流程图 开始 比赛中 ? 读 active 键 nts 15 T0 中断子程序 置 T0 初值,计时单元加 1 FM=1? 到 1s 基本单元清0,秒单元减1,修改显缓 到 60 次 分单元减 1, 秒单元清 0 倒计时为 0 开 蜂鸣 FM=1 R7 超过设定节数 R7=0 返 回 到 2 秒 停( T0)蜂鸣 N N N N N Y Y Y Y 图 3-2 T0 中断子程序流程图 计数寄存单元 R7加 1 停 T1,进攻停止,进攻显示 00 nts 16 当有键按下是先判断 active 开关闭合与否,开关闭合 P1.1 低电平,比赛开始,相应的 SETN 键无效,就是说比赛中先前设定的比赛规则和球队名称不可改变;相反开关打开 P1.1 高电平,比赛之前, SETFT 键无效,无法修改比分和时间,可以保持比分不变。这样的设计可以防止误动作。 有键按下时,先延时 10ms 去除抖动影响,确定有键按下时调用键处理子程序 。键共有 6 个按键流程图如图 3-4,根据按键的不同,跳转到相应的键处理小程序 。 ( 1) SETN 键,根据按 SET 键的次数,可以有不同的状态,根据这些状态通过 UP 键和 DOWN 键作出相应的修 改, SETN 键的状态转换图及流程图如图 3-5和图 3-6。 SETN 键设置球队名称。 T1 中断子程 置 T1 初值,计时单元加 1 FM=1 到 1s 基本单元清 0,秒单元减 1 倒计时为 0 进攻限时清 0, 开蜂鸣 FM=1 返 回 到 1s ? 停( T1)进攻倒计时 N N N Y Y Y 图 3-3 T1 中断子程序 nts 17 KEY-END 图 3-4 键处理子程 ( 2) SETFT 键,根据按 SETFT 键的次数,可以有不同的状态,根据这些状态通过 UP键和 DOWN键作出相应的修改, SETNFT键的状态转换图及流程图如图 3-7和图 3-8。 SETFT 键设置比分、修改时间等。 ( 3) START 键, START 键有两种状态,开始和暂停。 STARTVAL 值 =1 比赛开始,比赛倒计时 开始,进攻倒计时开始;再次按下 START 键时 STARTVAL 值 =0,比赛暂停,比赛倒计时和进攻倒计时都停止,并保持原数据不变。 ( 4) ATTACK 键, ATTACK 键也有两种状态,开始和停止。按下 ATTACK 键,ATTACKVAL 值 =1,启动进攻倒计时;再次按下 ATTACK 键, ATTACKVAL 值 =0,停止进攻倒计时,并重赋 进攻初值。 ( 5) UP 和 DOWN 键,实现加 1 和减 1 或者指向上 一位字母和指向下一位字母的功能 。 UP键和 DOWN键分比赛与否实现不同的加减。具体情况如图 3-9和图 3-10 延时 10 毫秒 判断按键 SETN DOWN SETFT START ATTACKK UP N Y 键处理子程 返回 nts 18 系统上电 SETNCNT =0 正常工作状态 SETNCNT =1 设置 A-1 名称 SETNCNT =2 设置 A-2 名称 按 SETN 键 SETNCNT =3 设置 A-3 名称 按 SETN 键 SETNCNT =4 设置 B-1 名称 SETNCNT =7 设置节数 SETNCNT =8 设置节时 SETNCNT =5 设置 B-2 名称 SETNCNT =6 设置 B-3 名称 SETNCNT =9 设置进攻限时 按 SETN 键 按 SETN 键 按 SETN 键 按 SETN 键 按 SETN 键 按 SETN 键 按 SETN 键 按 SETN 键 SETN 状态转换图 图 3-6 SETN键状态转换图 SETN 比赛开始 ? 读 active 键 SETNCNT 值加 1 到 10 次? SETNCNT 值清 0 N N Y Y 转 KEY-END 图 3-5 SETN 键 nts 19 系统上电 SETFTCNT= 0 正常工作状态 按 SETFT 键 SETFTCNT= 1 设置 A 比分 SETFTCNT= 2 设置 B 比分 按 SETFT 键 SETFTCNT=3 修改计时时间 SETFTCNT= 4 修改进攻限时 按 SETFT 键 按 SETFT 键 按 SETFT 键 SETFT 状态转换图 图 3-8 SETFT 键状态转换图 SETFT 比赛开始? 读 active 键 SETFTCNT 值加 1 到 5 次? SETFTCNT 值清 0 N N Y Y 转 KEY-END 图 3-7 SETFT 键 nts 20 UP 键 比赛开始? 读 active 值 判断 SETNCNT值 判断 SETFTCNT 值 查字母 表 AN-1 超过 Z? AN-1 指向 A 修改显缓 0 1 2 3 4 5 6 7 8 9 节数加 1 限制 0 - 9 修 改 显缓修改 显缓 节 时 分加 1 限时加 1 限 制 0 - 60 修 改 显 缓 限 制 0 - 60 修 改 显 缓 0 1 2 3 4 A 分加 1 调拆字 子程 2 修改显 缓 B 分加 1 比 赛 计 时分 加 1 进 攻 限 时加 1 调拆字子程 2 修改显 缓调 拆字 子程 调 拆字 子程 调 拆字 子程 调 拆字 子程 比赛中 比赛中 调 拆 字 子程 1 调 拆 字 子程 1 修 改 显 缓调 拆字 子程 调 拆字 子程 调 拆字 子程 修改显 缓调 拆字 子程 调 拆字 子程 调 拆字 子程 N N Y Y N 转 KEY-END 限制 0-19 限制 0-19 限制 0-60 限制 0-60 Y AN-1 指向下一个字母 球队名第一位显缓 节数显缓 节时 显缓 进攻 限时显缓 球队 A比 分显缓 比赛计时显缓 进攻限时显缓 球队 A比 分显缓 调 拆字子程 1 调 拆字子程 1 图 3-9 UP 键 nts 21 DOWN 键 比赛开始? 读 active 值 判断 SETNCNT值 判断 SETFTCNT 值 查字母 表 AN-1 到A? AN-1 指向 A 修改显缓 0 1 2 3 4 5 6 7 8 9 节数减 1 限制 0 - 9 修 改 显缓修改 显缓 节 时 分减 1 限时减 1 限 制 0 - 60 修 改 显 缓 限 制 0 - 60 修 改 显 缓 0 1 2 3 4 A 分减 1 调拆字 子程 2 修改显 缓 B 分减 1 比 赛 计 时分减 1 进 攻 限 时减 1 调拆字子程 2 修改显 缓调 拆字 子程 调 拆字 子程 调 拆字 子程 调 拆字 子程 比赛中 比赛中 调 拆 字 子程 1 调 拆 字 子程 1 修 改 显 缓调 拆字 子程 调 拆字 子程 调 拆字 子程 修改显 缓调 拆字 子程 调 拆字 子程 调 拆字 子程 N N Y Y N 转 KEY-END 限制 0-19 限制 0-19 限制 0-60 限制 0-60 Y AN-1 指向 上一个字母 球队名第一位显缓 节数显缓 节时 显缓 进攻 限时显缓 球队 A比 分显缓 比赛计时显缓 进攻限时显缓 球队 A比 分显缓 调 拆字子程 1 调 拆字子程 1 图 3-10 DOWN 键 nts 22 显示子程序 分为动态显示子程序和静态显示子程序,动态显示与静态显示比较各有优缺。 静态显示的亮度高,占用 CPU 的时间短,但它的成本高。为了简化硬件电路,降低成本,在单片机应用系统中采用动态扫描的方法,解决多位 LED 显示问题。动态扫描显示的硬件接口简单,只需一个公共的七段码输出口(字形口) 一个选择显示位的数位选择口(字位口),显示时,从左到右轮流点亮每位显示器,只要保证扫描周期不超过一定的限度(一般在 20ms 以下 )由于视觉的暂留,则可达到“同时”显示 各位不同的数字或字符的目的。 动态显示的优点是成本低,接口电路简单,但它要求 CPU 频繁地为显示服务。图 3-11 为动态显示流程图 ,图 3-12 是静态显示流程图。 考虑到成本和 CPU 负担,初期采用 8155 扩展芯片,完全用动态显示的方案不可取, 采用 Motorola 公司生产的 MC14495 芯片结合动态显示成本高,也不可取。最后引进 MAX7219 专用 LED 驱动芯片解决了单片机接口问题,结合动静态显示的优点,最终得到 动静结合的设计方案。 表 3-1 动态显示七段码(字形码)表 显示字符 D7 D6 D5 D4 D3 D3 D1 D0 七段码 dp g f e d c b a 0 0 0 1 1 1 1 1 1 3FH 1 0 0 0 0 0 0 1 1 06H 2 0 1 0 1 1 0 1 1 5BH 3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 1 6DH 6 0 1 1 1 1 1 0 1 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 9 0 1 1 0 1 1 1 1 6FH . 1 0 0 0 0 0 0 0 80H 空白 0 0 0 0 0 0 0 0 00H nts 23 动态显示子程 (R0)显缓首址 (R1)左起第 1 位 (R2)左起第 9 位 关显示 从显缓中取数 查七段码 输出七段码 延时 1ms 修改显缓指针 修改数位代码 13 位扫描完完 N 返回 Y 图 3-11 动态显示流程图 nts 24 定义端口 MAX7219 初始化 ( R3)显缓首址 ( R4)左起第 1 位 ( R5)显示位数 从显缓中取数 查表求字母七段码 写入七段码值 写入数位 值 修改显缓指针 修改数位代码 所有数据写入完毕? 返回 MAX7219 显示子程序 N Y 图 3-12 静态显示流程图 nts 25 表 3-2 MAX7219 静态显示字 母七段码表 显示字符 D7 D6 D5 D4 D3 D2 D1 D0 数码 显示 七段码值 dp g f e d c b a A 1 1 1 1 0 1 1 1 77H B 1 1 1 1 1 1 1 1 7FH C 1 0 1 1 0 0 0 1 4EH D 1 0 1 1 1 1 1 1 7EH E 1 1 1 1 1 0 0 1 4FH F 1 1 1 1 0 0 0 1 47H G 1 1 1 1 1 1 0 1 5FH H 1 1 1 1 0 1 1 0 37H I 1 0 0 0 0 1 1 0 30H J 1 0 0 0 1 1 1 0 38H K 1 0 1 1 0 1 1 0 36H L 1 0 1 1 1 0 0 0 0EH M 1 1 0 0 1 1 1 1 79H N 1 1 0 1 0 1 0 0 76H O 1 1 1 0 0 0 1 1 63H P 1 1 1 1 0 0 1 1 67H Q 1 1 1 0 0 1 1 1 73H R 1 1 1 1 0 0 0 1 27H S 1 1 1 0 1 1 0 1 5BH T 1 1 0 0 0 1 1 0 31H U 1 0 1 1 1 1 1 0 3EH V 1 1 1 0 0 0 0 0 03H W 1 1 1 1 1 0 0 0 0FH X 1 0 1 0 0 1 0 0 12H Y 1 1 1 1 1 1 0 3BH Z 1 1 0 1 1 0 1 1 6DH 黑屏 0 0 0 0 0 0 0 0 00H nts 26 程序清单 : ;定义引脚 SPK BIT P1.0 ;蜂鸣器开关 DIN BIT P0.0 ; P0.0 P0.2 为 MAX7219 模块控制端口 LOAD BIT P0.1 CLK BIT P0.2 ACTIVE BIT P1.0; ;比赛前 /比赛中状态开关 ; RAM 区分配 T0CNT EQU 30H ; T0 基本计时单元 T1CNT EQU 31H ; T1 基本计时单元 ASCORE EQU 32H ;球队“ A” 比分单元 BSCORE EQU 33H ;球队“ B”比分单元 MINUTE EQU 34H ;计时分单元 SECOND EQU 35H ;计时秒单元 LSECOND EQU 36H ;进攻限时秒单元 SCENE EQU 37H ;节数(场次)单元 LED_BUF EQU 40H ;动态显缓 SETNCNT EQU 50H ; SETN 键按键次数存放单元 SETFECNT EQU 51H ; SETFT 键按键次数存放单元 DISP_EQU EQU 52H ;静态显缓 ;程序入口 ORG 0000H LJMP MAIN ;T0 中断入口 ORG 000BH LJMP IT0P ;T1 中断入口 ORG 0010H LJMP IT1P *主程序 * ORG 0040H MAIN: MOV SP , #60H ;设置堆栈指针 MOV TMOD #11H ;设置 T0, T1 为 16 位 定时器 方式 MOV TH0 , #0D8H ;置 T0 初值 MOV TL0 , #0F0H MOV T0CNT , #00H ; T0 中断次数清零 MOV TH1 , #0D8H ;置 T1 初值 MOV TL1 , #0F0H nts 27 MOV T1CNT , #00H MOV IE , #82H ;中断允许 CLR A MOV T0CNT , A ;计数单元清 0 MOV T1CNT , A MOV ASCORE, A ;动态显示单元清零 MOV BSCOR, A MOV MINETE, A MOV SECOND, A MOV LSECODN, A MOV SETNCNT, A ; SETN、 SETFT 按键次数清零 MOV SETFTCNT, A MOV SCENE, #01H ;节数
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。