基于单片机的篮球计分器设计单片机课程设计(编辑修改稿)内容摘要:

F1 0 KK6+5R S T 图 复位电路 、 显示电路 显示电路是用于显示 分数。 采用 LED 数码管进行显示是因为 LED 数码管具有以下几个优点: (1)能在低电压、小电流条件下驱动发光,能与 CMOS、 ITL 电路 单片机 系统 课程设计 9 兼容。 (2)发光响应时间极短 () ,高频特性好,单色性好,亮度高。 (3)体积小,重量轻,抗冲击性能好。 数码管有共阴极和共阳极两种类型,其公共端主要进行位 控制,笔画端则是进行字符控制,数码管有静态显示和动态显示两种方法。 本设计采用的是 4 位共阴极 LED 数码管的串行驱动电路来达到显示的目的。 驱动器采用 74HC164,由单片机 89C51 的 和 来控制 LED 数码管的显示。 显示电路图如 所示。 因为共阴极数码管可以不用外接电阻,所以原理图中的电阻可去掉。 abfcgdeD P Y1234567abcdefg8dpdpD S 1abfcgdeD P Y1234567abcdefg8dpdpD S 3abfcgdeD P Y1234567abcdefg8dpdpD S 2abfcgdeD P Y1234567abcdefg8dpdpD S 4G N D7V C C14C L K8C L R9B2A1Q03Q14Q25Q36Q410Q511Q612Q71374HC164U1G N D7V C C14C L K8C L R9B2A1Q03Q14Q25Q36Q410Q511Q612Q71374HC164U2G N D7V C C14C L K8C L R9B2A1Q03Q14Q25Q36Q410Q511Q612Q71374HC164U3G N D7V C C14C L K8C L R9B2A1Q03Q14Q25Q36Q410Q511Q612Q71374HC164U4R X DT X D+5 图 显示电路 系统软件设计 系统软件设计主要由加分中断服务程序,交换中断服务程序, LED 显示程 单片机 系统 课程设计 10 序等几部分构成。 本章节系统的介绍了篮球计分器的主程序和各主要功能子程序的设计流程,具体的程 序代码见附录 2。 、 主程序设计 主程序构成无限循环,主要完成单片机初始化, 等待加分和交换中断的功能。 主程序的流程图如图。 开 始单 片 机 初 始 化等 待 中 断 请 求是 否 有 中 断NP 3 . 2 口 中 断 P 3 . 3 口 中 断判 断 键 值 两 队 分 数 位 置 调 换对 应 两 队 加 分Y 图 主程序流程图 主程序流程说明: 电路主要分为以下几个部分,分别是电源部分、按键部分、显示部分,各部分具有不同的子程序。 主程序的作用主要是先让单片机初始化,包括栈底指针的重新赋值、开中断、设置外部中断为脉冲触发等;然后使显示缓冲区清零,使让 LED 显示为零;再利用无条件转移指令 SJMP $,等待加分中断和交换 中断。 待中断服务程序执行完后,再次返回主程序等待下一次中断。 、 加分程序设计 硬件电路中设计了 6 个加分按键,采用中断和查询结合的方法扩充外部中 断源,实现相应加分的功能。 加分程序的流程图如图 所示。 单片机 系统 课程设计 11 现 场 保 护开 始判 断 键 值( D I S * ) 加 相 应 分 数( D I S * ) 是 否 大 于 等 于 1 0( D I S * ) 减 1 0( D I S ) 加 1进 入 相 应 子 程 序恢 复 现 场把 相 减 的 结 果 给 D I S *( D I S ) 是 否 等 于 1 0YNY返 回 主 程 序结 束软 件 去 抖 动判 断 键 值相 应 键 是 否 按 下YN显 示 缓 冲 区 清 零N查 表字 形 码 串 行 输 出 图 加分程序流程图 加分程序流程说明: 按下加分按键后,产生外部中断 0, CPU 从主程序跳转到加分中断服务程序继续执行。 当在执行相应加分中断服务程序时,不允许其它按键按下有相应操作,所以必须在进入中断后通过 CLR EA 指令关中断,又因为为了避 免保护现场时,一些寄存器的内容出现紊乱,此指令必须放在 PUSH 指令之前。 CPU 通过查询方式判断键值后进入相应的加分子程序。 因为 在操作按键时,无论是按下还是松开,触点在闭合和断开时均会产生抖动,此时逻辑电平是不稳的,如果得不到正确处理,可能会引起单片机对按键命令的错误执行,所以 必须执行一段延时子程 单片机 系统 课程设计 12 序,用来软件去抖动。 比如延时 10ms: MOV R0,0AH DL2: MOV R1,7DH DL1: NOP NOP DJNZ R1,DL1 DJNZ R0,DL2 延时子程序执行完后,再次判断键值,倘若仍然能 够检测到相应键值信号,则继续向下执行,否则返回主程序。 继续向下执行时,首先让相应显示缓冲区加相应的分数,然后通过 CJNE 指令与 10 进行比较。 若小于 10,则串行输出显示,否则向相应高位进 1,并减 10。 进 1 后的高位仍需与 10 进行比较,若小于 10,则将上述减数重新赋予相应低位,然后串行输出,否则各位清零。 输出刷新后, CPU 返回主程序。 、 交换程序设计 由于篮球比赛中场结束之后,要交换场地,则分数的显示位置也要随之调换。 硬件电路中设置 K7 键完成此项功能。 交换程序流程图如图 所示。 单片机 系统 课程设计 13 开始保护现场(DIS0)给A(DIS2)与A中的值进行交换A中的值给(DIS0)(DIS1)给A(DIS3)与A中的值进行交换A中的值给(DIS1)跳转到字形码输出子程序结束 图 交换程序流程图 交换程序流程说明: 按下交换按键后,产生外部中断 1, CPU 从主程序跳转到交换中断服务程序中继续执行。 通过中间寄存器 A 和交换指令 XCH 实现分数位置的交换。 交换完成后, CPU 返回主程序。 、 LED 显示程序设计 硬件设计中利用 4 位 LED 静态显示电路显示分数。 通过显示缓冲区利用MOVC A,@A+DPTR 查表指令找到指定字形码,并由串行口串行输出显示。 LED显示程序流程图如图。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。