单片机原理及应用实训报告:实篮球记分牌
单片机篮球计分器的实训报告
单片机篮球计分器的实训报告随着现代科技的不断发展,计算机技术已经深入到了我们生活的方方面面,而单片机作为计算机技术的一种,其应用也越来越广泛。
在此背景下,本次实训的目的就是通过使用单片机的相关知识,设计一个篮球计分器。
一、实验目的本次实验的主要目的是通过设计一个篮球计分器,加深对单片机的理解与应用,掌握单片机常用的I/O口的操作和计时器模块的使用。
二、实验原理本次实验主要使用到了单片机的I/O口和计时器模块。
其中,I/O 口可以用来连接按键、LED灯等外部设备,计时器模块则可以用来精确计时。
三、实验步骤1. 确定计分器的功能和布局本次实验的计分器需要有两个计分器,分别用来记录两个队伍的得分情况,并且需要有一个计时器,用来记录比赛时间。
因此,我们需要在设计计分器时考虑到这些因素,确定合理的布局。
2. 连接硬件电路我们需要连接按键和LED灯,以及数码管和蜂鸣器。
其中,按键用来记录得分情况,LED灯用来显示得分情况,数码管用来显示比赛时间,蜂鸣器用来提示比赛结束。
3. 编写程序代码在连接好硬件之后,我们需要编写程序代码,完成计分器的功能。
其中,需要使用到单片机的I/O口和计时器模块,通过对这些模块的操作,实现计分器的功能。
4. 调试程序代码在编写完程序代码之后,我们需要进行调试,检查程序代码是否存在错误,并根据需要进行修改。
5. 完成实验报告在完成实验之后,我们需要撰写实验报告,详细记录实验过程中的每一个步骤,以及实验结果和遇到的问题。
四、实验结果经过实验,我们成功地设计出了一个篮球计分器,可以准确地记录两个队伍的得分情况,并且可以精确计时,提示比赛结束。
五、实验总结通过本次实验,我们深入了解了单片机的相关知识和应用,掌握了单片机常用的I/O口的操作和计时器模块的使用。
同时,我们还提高了自己的实际操作能力和解决问题的能力,这对我们今后的学习和工作都有很大的帮助。
单片机课程设计篮球比赛计分牌的设计
尺寸:适合篮球比赛场地,易于安装和拆卸
显示:清晰可见,易于读取分数和计时信息
设计:简洁大方,易于操作
颜色:鲜艳醒目,易于识别
显示清晰:能够清晰地显示比赛分数、时间等信息
操作简便:操作简单,易于使用
稳定性高:能够长时间稳定运行,避免故障
易于维护:易于维护和维修,降低维护成本
单片机最小系统包括:单片机、电源、晶振、复位电路
晶振:为单片机提供稳定的时钟信号
复位电路:在系统启动时,将单片机复位到初始状态
电源:为单片机提供稳定的电源电压
单片机最小系统设计需要考虑的因素:稳定性、可靠性、成本、可扩展性等
显示模块类型:LCD或LED
显示内容:比分、时间、犯规次数等
接口设计:I2C、SPI或其他
显示模块控制:通过单片机控制显示内容
显示模块接口:与单片机连接
显示模块尺寸:根据实际需求选择
功能:接收用户输入,控制计分牌的显示
应用实例:篮球比赛计分牌、电子秤、遥控器等
设计要点:按键的布局、微控制器的选择、显示模块的接口
模块组成:按键、微控制器、显示模块
电源模块的作用:为计分牌提供稳定的电源
电源模块的组成:电源适配器、电源线、电源开关等
电源模块的选择:根据计分牌的功率需求选择合适的电源模块
电源模块的安装:按照说明书进行安装,确保电源模块与计分牌的连接正确、牢固
电源滤波:使用电源滤波器,减少电源噪声干扰
屏蔽设计:使用金属外壳,屏蔽电磁干扰
接地设计:良好的接地设计,减少静电干扰
软件抗干扰:使用软件滤波算法,减少信号噪声干扰
C语言:广泛应用,易于理解和学习
功能测试:测试计分牌的各项功能,如计分、计时等
单片机实训(篮球记分牌)实训报告-1316020131罗丙松资料
桂林电子科技大学《基于单片机综合应用设计实训》报告篮球比赛计分器设计学院(系):海洋信息工程学院专业:通信工程专业学号:学生姓名:指导教师:1目录目录 (1)摘要 (2)关键词 (2)1 绪论 (3)2 课题背景 (4)2.1 设计任务与要求 (4)2.2 设计目的 (4)2.3 设计题目的概述 (4)3 总体设计方案 (5)3.1 设计思想 (5)3.2方案论证 (5)4 硬件设计 (5)4.1 硬件结构及原理 (5)4.1.1总体设计思路: (5)4.1.2总体组成框图如图所示: (6)4.2单片机的选型 (6)4.3各模块的设计 (7)4.3.1键盘输入模块的设计 (7)4.3.2 分数显示模块的设计 (8)4.3.3 系统硬件原理总图 (9)4.3.4 元器件清单 (9)5 软件设计 (10)5.1 软件流程图 (10)5.1.1 单片机程序总体流程图 (10)5.1.2 ISIS Professional仿真 (11)5.2 核心程序设计 (11)5.3 PCB设计 (11)6 调试 (12)7 课程设计心得体会 (12)参考文献 (13)附录 (13)1原理图 (13)2 PCB图 (14)3 源程序代码 (14)4 实物图 (20)摘要单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
本设计是采用STC89C52单片机为核心设计的一个用于赛场的篮球计分器。
显示部分为计分显示部分,采用共阴极LED显示。
计分模块分显示为“a”队和“b”队,均有三位LED实现分数显示。
显示模块采用动态扫描方式显示。
在本设计中P0口(P0.0~P0.7)作为段选口,P2(P2.0~P2.7)作为数码管位选口。
篮球计分牌实训报告
实验报告篮球计分牌姓名:班级:学号:目录基本性能……………………………………………………………P 2实训要求……………………………………………………………P 2 基本原理与参考框图……………………………………………P 3 初步设计方法和步骤……………………………………………P 4 方案设计……………………………………………………………P 5 实训心得体会……………………………………………………P 7一:基本性能:设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能。
二:要求1、基本要求(1) 按照篮球比赛中的规则以及要求设计系统所需电路,并完成硬件电路的制作及调试(2)结合硬件能够正常计分(2)能够实现时间暂停与开始且有复位功能(3)能够正常显示分值(4)能够正常修改工作模式(计分与犯规切换)。
(5)能够实现24秒计时,且误差不小于1秒。
2、扩展能够两队球员犯规次数计数三:基本原理与参考框图参考原理图如下:图1单片机部分图1.1数码管部分 基本框图:图 2 整体框图C51单 片 机 数码管 按键四:初步设计方法和步骤1、根据设计任务和性能指标要求选择总体方案,画出设计框图;2、参阅相关资料,根据设计框图进行单元电路的设计;3、列出元件清单;4、画原理图,布PCB图,制板;5、根据器件由小到大的顺序安装波形处理电路,连接到51核心板,并进行自检测试;五:1、方案设计:通过单片机的原理,利用最小系统,编写程序实现各项功能。
本次实训主要用AT89S51单片机。
在用老师给的参考原理图下,自己做好原理图,然后根据实物与实际情况部好PCB 图。
检查无误后进行打印、腐蚀、打孔和最后焊接。
做好板子后,检查没有虚焊或短接等其他情况下,再把自己弄好的编程利用软件将程序烧尽单片机中,检查是否实现理想要求。
①方案论证(A T89S51单片机:通过9个按键实现各个功能)当按K1按键时,能进行计时以及24秒倒计时;按K2能实现暂停,再一次按K2按键恢复计时;按下K3复位;按下K4切换到犯规次数统计界面;当换到比分界面时,按K5键能给甲队加分,按K6减分;按K7键时给乙队进行加分,按K8能减分。
【篮球记分牌】篮球记分牌课程设计实验报告
【篮球记分牌】篮球记分牌课程设计实验报告《【篮球记分牌】篮球记分牌课程设计实验报告》篮球记分牌课程设计实验报告XX学校电子技术课程设计报告题目学院自动化与电气工程学院专业班级学号学生姓名指导教师完成日期201X年 XX月XX日篮球记分牌摘要围绕设计要求对篮球记分牌进行设计。
首先根据功能要求提出单片机STC89S52RC为控制核心的设计方案;其次进行硬件系统和软件系统的设计,并且根据本次设计所用的V3.72开发板原理图进行设计,然后根据所设计的电路图级程序用Proteus和Keil 进行了仿真,验证了设计方案的正确性,最后,把程序烧进开发板中来完成篮球记分牌的硬件电路。
调试和测试结果表明基本上都能满足此次课程设计的要求。
本次课程设计,有效加深和巩固了单片机的基础知识,提高了我们的实际动手能力,具有及其深远的意义。
关键词:单片机独立按键蜂鸣器 at24c02 数码管一、设计要求1.比赛开始,比分能够全部清零,数码管前2位,末二位做记分用,当中2位做24秒倒计时用。
2.24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时(按下开始键),蜂鸣器停止鸣叫、指示灯灭。
3.比分进行增加后,倒计时从24秒重新开始倒计时。
任意时刻24秒可以重新开始倒计时。
必要时候能够关闭倒计时。
4.利用AT24C02或者单片机内部资源保存比分,支持复位保存,掉电保存功能。
二、系统设计及仿真2.1、系统总体设计图2-1系统结构图思想汇报专题本系统采用单片机STC89S52RC为控制核心,系统主要包括显示模块、按键控制模块、蜂鸣器报警模块等。
下面对各模块的设计进行论证。
1) 显示模块单片机系统中,往往需要多位显示。
动态显示是一种最常见的多位显示方法,应用非常广泛。
所有数码管段选都连接在一起的时候,怎么让数码管显示不一样的数字呢?动态显示是多个数码管,交替显示,利用人的视觉暂停作用使人看到多个数码管同时显示的效果。
首先我们来看一下显示模块电路原理图:图2-2 74ls138结构图图2-3 数码管段选图本实验使用的是,通过P22、P23、P24控制3-8译码器来对数码管进行位选,通过P0口经过573的驱动控制数码管的段选2) 按键控制模块方案一:采用矩阵键盘。
实训项目篮球记分牌单片机设计
单片机课程设计报告书课题名称 篮球赛计时计分电路 姓 名学 号 院 系 通信与电子工程学院 专 业电子信息工程※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※ 2009级学生单片机 课程设计指导教师2012年 6 月14日篮球计时计分电路课程设计(湖南城市学院通电与电子工程学院电子信息工程专业,益阳,413000)1 设计任务设计目的1. 了解计时计分器组成及工作原理。
2. 进一步掌握计时计分器的设计方法3. 进一步掌握芯片的逻辑功能及使用方法。
4. 熟悉集成电路的引脚安排.。
设计指标设计一个单片机系统用于篮球比赛计时计分,满足以下功能要求:(1)能记录整个赛程的比赛时间,并能修改比赛时间、暂停比赛时间。
(2)能随时刷新甲、乙两队在整个比赛过程中的比分。
(3)中场交换比赛场地时,能交换甲、乙两队比分的位置。
(4)比赛结束时,能发出报警声。
设计要求1. 画出总体设计框图,以说明计时计分器独立的功能模块组成,标出各个模块之间互相联系。
2. 设计各个功能模块的电路图,加上原理说明。
3. 选择合适的元器件,在面板上接线验证、调试各个功能模块的电路,在接线验证时设计、选择合适的输入信号和输出方式,在确定电路充分正确性同时,输入信号和输出方式要便于电路的测试和故障排除。
4. 在验证各个功能模块基础上,对整个电路的元器件和布线进行合理布局,进行整个计时计分电路的接线调试。
2、设计思路与总体框图.本设计是采用AT89C52单片机为核心设计的一个用于赛场的篮球计时计分器。
本设计采用定时器T0中断计时,显示部分分为计时和计分显示两部分,均采用共阴极LED显示。
单片机P3口(——)是计时计分显示共用的扫描口,P0口是计时数据输出口,P2口是计分数据输出口。
计时部分计时范围宽,而且可定时设定与小时、分钟调整;计分部分调整灵活,显示范围宽,足以满足各种规模赛程需要。
两个显示模块均采用动态扫描方式显示。
图1所示为计时计分器的总体框图。
单片机篮球计分器报告书参考模板
一、目录一目录 1摘要 1 概述: 2二、篮球计分器方案及硬件设计: 32.1 AT89C51与A T89S51简介 32.2 数码管显示原理: 42.3定时/计数器 5三、流程图: 6四、仿真图和实际焊接图: 74.1 Proteus仿真图:74.2 实际焊接图:8五、程序代码: 8六、心得体会: 14七、参考文献: 151、Proteus仿真软件简介152. 《51系列单片机》实验指导书15摘要单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。
若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统。
而随着技术的进步,单片机与串口通信的结合更多地应用到各个电子系统中已成一种趋势。
单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。
同时,一个学习与应用单片机的新高潮正在大规模地兴起。
但是,单片机并不像传统数字电路或模拟电路那样直观,原因是除了“硬件”之外,还存在一个“软件”的因素。
正是这个“软件”因素的存在,使得许多初学者怎么也弄不懂单片机的工作过程,怎么也不明白为什么将几个数送来送去,就能控制一盏灯亮/灭,就能控制一个电机变速。
本设计是由一种由AT89C51编程控制LED七段数码管做显示的篮球计分系统。
本系统具有加1,加2,加3,以防止加错分数的减一控制,红、蓝两队双方的比分以及比赛中换场交换分数。
本设计就是基于单片机计分系统,通过串口通信动态传输数据,使计时计分系统有了更多更完善的功能。
概述:本系统是采用单片机AT89C51作为本设计的仿真元件。
焊接时使用单片机AT89S51实践,利用7段共阳LED作为显示器件。
所设计的篮球计分器分为三个部分:开关控制、数码管的显示以及红蓝两队两位数码管的控制。
P0口接数码管,显示红蓝两队的比分。
单片机原理及应用实训报告:实篮球记分牌
桂林电子科技大学信息科技学院单片机原理及应用实训报告题目篮球计分牌学号0951100228姓名谢锎指导老师韩桂明张锟赵志鹏2011 年9 月23 日1.系统设计1.1设计要求1.1.1.基本要求1 设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能2 结合硬件能够正常计分3 能够正常显示分值。
4 能够正常修改工作模式(计分与24秒)5 能够24秒的误差不小于1秒1.1.2.发挥部分1 12分钟倒计时2 能够两队球员犯规次数计数3 重置24秒表4 倒计时结束报警5 12分钟倒计时结束红灯全部亮1.2设计原理1.2.1 框图设计1.2.2 程序流程1.2.2.1加分程序流程1.2.2.2犯规程序流程1.2.2.3 选择显示程序流程1.3方案比较1.3.1 方案1:是通过按不同的键来切换不同的输入,使用不同的LED灯的亮灭来显示不同的队加分。
电路图:1.3.2 方案2:通过一个键来切换分数,24s倒计时,12分钟倒计时和犯规次数,通过LED灯的亮来判断是那个队加分,那个队犯规,12分钟倒计时结束。
另外,给a队b队加分和加犯规次数。
通过按键,选择哪种显示方式,暂停/开始24s倒计时,重置24s;电路图:1.4方案论证1.4.1总体思路7个按键实现对应功能:P1^6对应a队加分,第一个红灯亮;P1^0对应b队加分,第二个红灯亮;P1^1对应显示切换,切换有四类显示方式,第一类是a队跟b队的比分显示,且各两个数码管显示。
第二类是24s倒计时的显示。
第三类是12分钟倒计时的显示。
第四类是a队跟b队的犯规次数显示;P1^2对应24秒倒计时暂停/开始;P1^3对应重置24s倒计时,同时24s倒计时暂停;P1^4对应a队加犯规次数,同时第三个红灯亮;P1^5对应b队加犯规次数,同时第四个红灯亮;外加复位键,按下则清零;24秒倒数为0时蜂鸣器响起警报,重新倒数时蜂鸣器关闭。
12分钟倒计时结束时,蜂鸣器响起警报,红灯全亮。
12864篮球比赛记分牌课程设计报告
长沙学院《单片机原理及应用》课程设计说明书题目篮球比分计分牌系(部) 电子与通信工程系专业(班级) 光电信息工程二班姓名龙敏学号2010041213指导教师刘辉、王新辉起止日期2012/12/10-2012/12/21《单片机原理及应用》课程设计任务书9系(部):电信系专业:2010级光电信息工程指导教师:王新辉、刘辉长沙学院课程设计鉴定表目录1. 课程设计任务书 (6)2. 系统总体方案选择与说明 (6)3. 系统结构框图与工作原理 (7)4. 各单元硬件设计说明及计算方法 (7)(1) 12864显示器 (7)(2)八位独立按键模块 (8)(3)51单片机定时器及初值计算方法 (8)5. 软件设计与说明(包括流程图) (8)6. 调试结果与必要的调试说明 (9)(1)实物图 (9)7. 使用说明 (10)8. 程序清单 (10)(1)比分倒计时子程序 (10)(2)加减分子程序 (11)9. 课程设计体会 (12)10. 参考文献。
(13)1. 课程设计任务书设计一个基于AT89S52单片机的篮球比赛记分牌,用12864液晶屏显示信息。
课题要求: (1)、启动时12864液晶屏第一行显示的内容是:比赛双方的队名。
第二行显示的内容是:比分为000:000。
第三行显示的内容是:本节剩余时间、进攻24秒倒计时。
第四行显示的内容是:设计者的姓名、班级和学号。
(2)设置如下按功能键,实现相应控制功能2. 系统总体方案选择与说明采用单片机和12864液晶显示电路实现该方案以单片机为核心,作为控制模块,并以12864液晶为显示模块,由单片机自带的时钟电路和定时器来实现计时,由于篮球比赛的规则较多,故以独立按键来输入需要控制的对象,由单片机的P1口来接键盘,液晶的数据线接在P0口相应的口线上。
如图2—1。
单片机实现系统框图2—13.系统模块层次结构图3—1 4. 各单元硬件设计说明及计算方法 (1) 12864显示器12864液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM (GDRAM )。
单片机篮球计时计分器报告
单片机课程设计结题报告《篮球比赛计时计分器》团队成员分工情况:XX:完成实验报告的总体撰写,焊接方案设计和电路图的绘制,程序编写改进XX:完成元器件采集,辅助电路焊接,电路图修整以及实验报告的完善XX:完成程序编写烧录,电路焊接,以及PCB 版图的绘制其中设计方案的确立由团队成员一起讨论而成目录1选题背景 (3)2方案设计 (4)2.1硬件电路设计 (5)2.1.1硬件系统各功能模块的电路 (5)2.1.2硬件系统的实现 (9)2.1.3硬件系统的调试 (10)2.2软件设计、编程及调试 (10)2.2.1系统软件的模块程序设 (10)2.2.2编程实现 (11)2.2.3软件系统的调试 (11)3系统联调及最终实现结果展示 (11)4总结 (12)5 收获与致谢 (13)6 参考文献 (14)7附件 (15)1 选题背景单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。
世界各大电气厂家、测控技术企业、机电行业,竞相把单片机应用于产品更新,作为实现数字化、智能化的核心部件。
本设计由STC89C52编程控制LED七段数码管作球赛计时计分系统具有赛程定时设置、赛程时间暂停、性能稳定、操作方便且易携带等特点。
单片机实训报告显示篮球比分的记分牌
目录一、方案设计说明 (2)二、硬件设计说明 (3)三、软件设计说明 (6)四、制作调试说明 (13)五、作品操作说明书 (14)六、小结 (14)七、主要参考书目 (15)前言近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用在不断的走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,再根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
而51系列单片机是各单片机中最为典型和最具有代表性的一种,通过本次课程设计进一步对单片机学习和应用,从而更熟悉单片机的原理和相关设计并提高了开发软件、硬件的能力。
本次设计主要设计一个基于80C51单片机的篮球记分牌,并在数码管上显示相应球队的分数,通过三个按键来实现球队分数的增加和比赛开始暂停功能。
应用Keil软件实现程序的编写和调试,Proteus软件实现单片机篮球记分牌系统的设计与仿真。
一、方案设计说明1、设计主要内容(1)、设计一款能显示篮球比分的记分牌;(2)、通过加分按钮可以给A对或B对加分;(3)、设计对调功能,即交换场地之后,AB两队分数互换;(4)、增加局数比分或比赛时间倒计时功能。
2、简单介绍本次设计主要设计一个基于80C51单片机的篮球记分牌,并在数码管上显示相应球队的分数,通过三个按键来实现球队分数的增加和比赛开始暂停功能。
应用Keil软件实现程序的编写和调试,Proteus软件实现单片机篮球记分牌系统的设计与仿真。
(1)、显示牌:由8个七段数码显示管组成,分为计分模块和计时模块,分别由4个数码管构成。
由于单片机的I/O口有限,则用单片机的P1口控制段,P2口控制位,通过软件对P2口进行扫描,实现数码管的动态显示。
(2)、开始暂停:用一个按键控制单片机的一个I/O口的一位(P3.6),当按键按下比赛开始,当再次按下按键时比赛暂停,若再次按下按键则比赛开始。
篮球记分牌
桂林电子科技大学信息科技学院单片机原理及应用实训报告题目篮球记分牌学号姓名指导老师2010 年12 月14 日1.系统设计1.1设计要求设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能。
1.2设计原理2、模块电路的设计2.1 基本加分模块源程序代码为:#include<reg52.h>sbit a1=P3^0;sbit a2=P3^1;sbit a3=P3^2;sbit b1=P3^3;sbit b2=P3^4;sbit b3=P3^5;//sbit a2=P1^6;sbit d1=P3^7;unsigned char num,ge,shi,temp;unsigned int zz,z=0;unsigned char code tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};void yanshi(unsigned int zz);void xianshifenshu();void jiafen();void main(){while(1){ //if()xianshifenshu();jiafen();}}void xianshifenshu(){ P2 = 0Xfe; P0 = tab[z/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[z%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[z%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[z%10]; yanshi(10);}void yanshi(unsigned int zz){ unsigned int x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}void jiafen(){if(a1==0){ yanshi(5);if(a1==0)z++;while(!a1);yanshi(5);while(!a1);}if(a2==0){yanshi(5);if(a2==0)z=z+2;while(!a2);yanshi(5);while(!a2);}if(a3==0){yanshi(5);if(a3==0)z=z+3;while(!a3);yanshi(5);while(!a3);}}2.2 24秒倒计时源程序代码为:#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar temp,aa,num=24,vv,cc;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; sbit fmq=P1^6;sbit d1=P3^0;sbit d2=P3^1;void delay(uint z);void main(){aa=0;TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;temp=0xfe;P1=temp;while(1){ if(d2==0) num=24;if(num==0) {fmq=1;delay(10);fmq=0; TR0=0;if(d1==0) break;}//delay(1000);//temp=_crol_(temp,1);// P1=temp;cc=num/10;vv=num%10;P2=0x0e;P0=table[cc];delay(10);P2=0x0d;P0=table[vv];delay(10);if(aa==20){aa=0; num--;if(num==-1) num=24;}} }void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;}2.3加分选择模块源程序代码为:#include<reg52.h> sbit m1=P3^0;sbit m2=P3^1;sbit m3=P3^2;sbit j1=P3^3;sbit j2=P3^4;sbit j3=P3^5;sbit d1=P1^0;sbit d2=P1^1;sbit d3=P1^2;sbit d4=P1^3;sbit d5=P1^4;sbit d6=P1^5;//sbit a2=P1^6;//sbit d1=P3^7;unsigned char num,ge,shi,temp;unsigned int zz,z=0,d=0;unsigned char code tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};void yanshi(unsigned int zz);void xianshifenshujia();void xianshifenshuyi();void jiafenjia();void jiafenyi();void main(){while(1){ if(m1==0){ while(1){d1=0;d2=1;d3=1;xianshifenshujia();jiafenjia();if(m2==0||m3==0) break;}}if(m2==0){while(1){ d1=1;d2=0;d3=1;xianshifenshuyi();jiafenyi();if(m1==0||m3==0) break;}}if(m3==0) { while(1){ P2=0X0F;d1=1;d2=1;d3=0;if(m1==0||m2==0) break;}}}}void xianshifenshujia(){ P2 = 0Xfe; P0 = tab[z/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[z%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[z%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[z%10]; yanshi(10);}void xianshifenshuyi(){ P2 = 0Xfe; P0 = tab[d/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[d%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[d%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[d%10]; yanshi(10);}void yanshi(unsigned int zz){ unsigned int x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}void jiafenjia(){if(j1==0){ yanshi(5);if(j1==0)z++;while(!j1);yanshi(5);while(!j1);}if(j2==0){yanshi(5);if(j2==0)z=z+2;while(!j2);yanshi(5);while(!j2);}if(j3==0){yanshi(5);if(j3==0)z=z+3;while(!j3);yanshi(5);while(!j3);}}void jiafenyi(){if(j1==0){ yanshi(5);if(j1==0)d++;while(!j1);yanshi(5);while(!j1);}if(j2==0){yanshi(5);if(j2==0)d=d+2;while(!j2);yanshi(5);while(!j2);}if(j3==0){yanshi(5);if(j3==0)d=d+3;while(!j3);yanshi(5);while(!j3);}}2.4模块选择指示灯选择模块sbit m3=P3^2;sbit j1=P3^3;sbit j2=P3^4;sbit j3=P3^5;sbit d1=P1^0;sbit d2=P1^1;sbit d3=P1^2;sbit d4=P1^3;sbit d5=P1^4;sbit d6=P1^5;//sbit a2=P1^6;//sbit d1=P3^7;unsigned char num,ge,shi,temp;unsigned int zz,z=0,d=0;unsigned char code tab[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,};void yanshi(unsigned int zz);void xianshifenshujia();void xianshifenshuyi();void anjianxuanze();void main(){ // d1=0;d2=0;d3=0;//while(1){anjianxuanze();}}void xianshifenshujia(){ P2 = 0Xfe; P0 = tab[z/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[z%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[z%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[z%10]; yanshi(10);}void xianshifenshuyi(){ P2 = 0Xfe; P0 = tab[d/1000]; yanshi(10);P2 = 0Xfd; P0 = tab[d%1000/100]; yanshi(10);P2 = 0XFb; P0 = tab[d%1000%100/10]; yanshi(10);P2 = 0X07; P0 = tab[d%10]; yanshi(10);}void yanshi(unsigned int zz){ unsigned int x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}void anjianxuanze(){if(m1==0){ d1=0;d2=1;d3=1;yanshi(5);if(m1==0)while(!m1);yanshi(5);while(!m1);}if(m2==0){ d1=1;d2=0;d3=1;yanshi(5);if(m2==0)while(!m2);yanshi(5);while(!m2);}if(m3==0){ d1=1;d2=1;d3=0;yanshi(5);if(m3==0)while(!m3);yanshi(5);while(!m3);}}2.5扩展模块2.5.1犯规模块原程序为void fangui(){if(j1==0) {d1=0;d2=1;d3=1;d4=1;d5=1;yanshi(5);if(j1==0){}if(jian==1) zj++;else zj--;}while(!j1);yanshi(5);while(!j1);if(j2==0) { d1=1;d2=0;d3=1;d4=1;d5=1;yanshi(5);if(j2==0){if(jian==1) dy++;else dy--;}while(!j2);yanshi(5);while(!j2);}}2.5.2加减分模块使用到的部分代码为:{if(jian==1) z++;else z--;3、开发软件及编程语言简介3.1 Keil C编程软件3.2 使用C语言编程,通过高级语言编程实现单片机控制,取代汇编低级语言繁琐编程。
单片机实训报告--篮球计分器
单片机实训——基于单片机的篮球计分器设计班级:电子09-2班指导老师:王先彪组员:陈燕黄利平李剑锋学号:0505090213 0505090219 0505090247摘要传统的篮球计分器计分过程都是由人工完成,计时精度不能达到要求,而计分完全由人工通过翻计分簿的方法来完成,不但浪费人力,还导致计分的实时性差,不能把比赛的最新动态呈现给观众。
为了避免以上的现象发生,我们小组设计了基于A T89C51单片机的篮球计分器,其计时精度高,并且能够及时带给观众实时的比赛动态。
该计分器拥有多个开关按键,能够迅速地进行比分加减,时间的调整,并且通过L C D显示出结果来。
1.A T89单片机介绍A T89C51A T M E L公司生产的低电压,高性能的C M O S8位单片机,片内含4K的可反复擦写的只读程序存储器和256B随机存取数据存储器,器件采用A T M E L公司的高密度、非易失性存储技术生产,与标准的M C S-51指令系统及8052产品管脚兼容,适用于许多较为复杂的控制应用场合。
其时钟电路由A T89C51的18、19管脚的时钟端(X T A L1及X T A L2)以及12M H z 晶振、30p F的电容组成,采用片内振荡方式。
复位电路采用简易的上电复位电路,主要由电阻,电容、开关组成,分别接至A T89C51的R S T复位输入端。
时钟电路复位电路2.设计目的以及设计意义2.1设计并制作一个可以用于赛场的篮球计时计分器,能实现如下基本功能:I.能记录整个赛程的比赛时间,并能修改比赛时间,暂停比赛时间。
I I.能随时刷新甲、乙两队在整个赛程中的比分。
I I I.中场交换场地时,能交换甲、乙两队比分的位置。
2.2设计意义通过篮球计分器的制作,了解单片机开发设计实例的过程,并加深对单片机的理解和运用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下的一些方面:I.篮球计分器包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展一些实用性强的外围接口。
单片机篮球计分器报告心得
单片机篮球计分器报告心得前言单片机篮球计分器是一项基于单片机技术的创新设计项目。
在这个项目中,我从零开始学习单片机的使用方法,并成功完成了一个功能完善的篮球计分器。
通过这个项目的进行,我学到了很多知识,也获得了很多宝贵的经验。
在本篇报告中,我将分享我在这个项目中的心得体会。
背景篮球计分器是一种用于记录和显示篮球比赛比分的设备。
传统的篮球计分器使用电子显示屏和手动按钮来操作。
随着科技的发展,单片机技术的应用越来越广泛,单片机篮球计分器成为了一种新的解决方案。
通过使用单片机和数码管,我们可以实现更加准确和方便的计分功能。
设计过程在这个项目中,我首先学习了单片机的基本原理和使用方法。
通过阅读相关的资料和参考案例,我成功掌握了单片机的编程语言和开发工具。
接着,我开始着手设计篮球计分器的具体功能和界面。
在设计过程中,我考虑到了比赛计时、比分记录、暂停计时等功能,并结合使用了数码管和按键来完成相应的操作。
经过多次调试和改进,我最终成功地将这个设计项目完成并取得了良好的效果。
设计亮点在这个项目中,我特别注重了用户体验和设计细节。
首先,我为数码管显示部分设计了一套简洁而美观的界面,使用户能够清晰地看到比赛时间和比分。
其次,我考虑到了不同用户的需求,为计分器设定了多个功能按钮,并通过按键的灵活控制来实现多种操作。
最后,我还加入了一些额外的功能,例如计时结束的声音提示和暂停功能,以提高用户的使用体验。
学习收获通过完成这个项目,我不仅学习到了单片机的基本原理和使用方法,还锻炼了我解决问题的能力和团队协作的能力。
在学习和设计的过程中,我遇到了一些困难和挑战。
但是,通过不断地学习和实践,我逐渐克服了这些困难,并成功地完成了这个项目。
这个过程让我更加深入地了解了单片机技术,同时也增强了我的动手实践和问题解决能力。
总结通过参与设计单片机篮球计分器的项目,我学到了很多知识和技能,也积累了宝贵的经验。
这个项目不仅让我更深入地了解了单片机技术的应用,还提高了我的综合能力和扩展了我的专业视野。
单片机课程设计-篮球记分器的设计报告
《单片机原理及接口技术》课程设计报告课题名称篮球记分器的设计学院自动控制与机械工程学院专业电气工程及其自动化班级姓名(学号)时间2011年12月27日星期二目录一. 内容提要. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21. 设计任务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22. 设计要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2二. 设计的基本步骤及方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.AT89C51简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.数码管显示原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 3.总体方案. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5三. 硬件电路设计及描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61. 硬件原理电路图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62. 硬件电路设计及描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7四. 软件设计思想及流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 .主流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82.记分流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93.时间中断流程图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104.源程序代码见附录一. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 五.硬软件的调试过程及调试方法. . . . . . . . . . . . . . . . . . . . . . . . . . . ..13 六.课程设计心得体会. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15七.参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15附录一源程序代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16一.内容提要本设计是采用单片机AT89C52作为本设计的核心元件。
单片机实训_篮球记分牌
桂林电子科技大学信息科技学院《单片机原理及应用》实训报告学号9527姓名唐伯虎指导教师:小行星2015 年9 月27 日(请核对时间)实训题目:篮球记分牌1 系统设计1.1 设计要求1.1.1 设计任务设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能。
1.1.2 性能指标要求基本要求(1) 按照题目要求独立设计系统所需电路,并完成硬件电路的制作及调试。
(40分)(2)结合硬件能够正常计分(1,2,3)。
(10分)(3)能够正常显示分值。
(10分)(4)能够正常修改工作模式(计分与24秒)。
(10分)(5)能够24秒的误差不小于1秒。
(15分)2、发挥部分能够两队球员犯规次数计数。
(15分)1.2 设计思路及设计框图1.2.1设计思路在制作之前首先明确器件所要实现的功能,篮球记分牌顾名思义就是要记录篮球比赛中双方的比分(1分,2分,3分),进攻时间24s,双方的犯规次数等,明确功能之后便是分析与设计电路图,而此次的实训设计将分为两个部分,一个是硬件部分,另一个是软件部分;首先是在硬件部分,通过按下各种按键实现比分分数的录入,犯规暂停及显示切换,然后输出至数码管显示相应的内容;在软件程序方面,通过去定义不同的按键,编写判断语句,当其被按下时要实现怎样的功能效果,是计分,切换,还是暂停,尤其是显示进攻24s的时间可以通过调用中断函数来实现;程序部分需要注意的几个地方就是中断内初值的设置,八段共阴数码管的位选和段选代码,这些地方设置如果不对会出现显示错误或者达不到预期;1.2.2总体设计框图在本题目中用到的参考原理图如下:基本框图:2 各个模块程序的设计对于此次单片机实训来说,软件就像是人的大脑,而硬件就像是人的身体,硬件是个实体,软件则是灵魂;这次实训的软件,我将其划分为五个部分的内容,分别是中断部分,延时部分,显示部分,按键部分以及主函数;其中的中断函数void timer0 (void) interrupt 1 using 0承担了进攻24s倒计时,双方比分,犯规次数的显示,用到的是定时器T0中断,12MHz的晶振,为了能使计时时间的误差小于1s,在设置初始值时用到了此前实验课中使用的0x3CB0,这在12MHz的晶振中刚好是50ms 的计时时间,定义一个变量,让其循环累加20次,则刚好是1秒钟的时间,每经过一秒就让24s减1,并输出至数码管显示;此外,还对双方比分,犯规次数进行了扫描显示,通过在主函数中改变变量的值,在中断中判断相应值的变化用来切换不同的显示内容;延时函数void delay (uint t)在程序中的作用主要是作为按键的消抖,如果少了这个延时,则在按下按键时可能会出现错误,这个在硬件中的表现就是按键的灵敏性,如果延时不够(灵敏性高),按一次可能会加很多分;反之就是按键迟钝,所以适当的延时很重要。
【篮球记分牌】篮球记分牌课程设计实验报告
【篮球记分牌】篮球记分牌课程设计实验报告xx学校电子技术课程设计报告题目学院自动化与电气工程学院专业班级学号学生姓名指导教师完成日期201X年xx月xx日篮球记分牌摘要围绕设计要求对篮球记分牌进行设计。
首先根据功能要求提出单片机STC89S52RC为控制核心的设计方案;其次进行硬件系统和软件系统的设计,并且根据本次设计所用的V3.72开发板原理图进行设计,然后根据所设计的电路图级程序用Proteus和Keil进行了仿真,验证了设计方案的正确性,最后,把程序烧进开发板中来完成篮球记分牌的硬件电路。
调试和测试结果表明基本上都能满足此次课程设计的要求。
本次课程设计,有效加深和巩固了单片机的基础知识,提高了我们的实际动手能力,具有及其深远的意义。
关键词:单片机独立按键蜂鸣器at24c02数码管一、设计要求1.比赛开始,比分能够全部清零,数码管前2位,末二位做记分用,当中2位做24秒倒计时用。
2.24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时(按下开始键),蜂鸣器停止鸣叫、指示灯灭。
3.比分进行增加后,倒计时从24秒重新开始倒计时。
任意时刻24秒可以重新开始倒计时。
必要时候能够关闭倒计时。
4.利用AT24C02或者单片机内部资源保存比分,支持复位保存,掉电保存功能。
二、系统设计及仿真2.1、系统总体设计图2-1系统结构图思想汇报专题本系统采用单片机STC89S52RC为控制核心,系统主要包括显示模块、按键控制模块、蜂鸣器报警模块等。
下面对各模块的设计进行论证。
1)显示模块单片机系统中,往往需要多位显示。
动态显示是一种最常见的多位显示方法,应用非常广泛。
所有数码管段选都连接在一起的时候,怎么让数码管显示不一样的数字呢?动态显示是多个数码管,交替显示,利用人的视觉暂停作用使人看到多个数码管同时显示的效果。
首先我们来看一下显示模块电路原理图:图2-274ls138结构图图2-3数码管段选图本实验使用的是,通过P22、P23、P24控制3-8译码器来对数码管进行位选,通过P0口经过573的驱动控制数码管的段选2)按键控制模块方案一:采用矩阵键盘。
《单片机原理及应用》篮球记分牌
《单片机原理及应用》篮球记分牌1 系统设计1.1 设计要求1.1.1 设计任务设计一个用单片机实现两队的计分功能和24秒倒计时的篮球记分牌,实现两队的加分,包括加一分,加两分,加三分和犯规模式下只能加一分的功能。
1.1.2 性能指标要求(1)按照题目要求独立设计系统所需电路,并完成硬件电路的制作及调试。
(2)结合硬件能够正常计分(1、2、3)。
(3)能够正常显示分值。
(4)能够正常修改工作模式(计分与24秒)。
(5)能够24秒的误差不小于1秒。
发挥部分:能够对两队球员的犯规次数进行计数。
1.2 设计思路及设计框图1.2.1设计思路以AT89C51 单片机芯片功能为主,采用C语言进行编程,在程序中具体为延时函数,按键控制函数,中断方式,和主函数。
在主函数中通过按键的按下与否来实现加分,犯规计数和切换工作模式和倒计时等功能。
设计在篮球比赛中的计分,计时,模式修改以及可实现两队的加分个数和犯规计数的功能。
利用按键来控制实现显示切换等。
然后采用延时程序来对比赛双方进行计分和加 1、2、3分以及对 24 秒倒计时的重置,以及对队员犯规次数的计数。
1.2.2总体设计框图2 各个模块程序的设计晶振、复位电路模块:晶振电路:晶振模块给电路提供一定频率的稳定的震荡、脉冲、信号。
复位电路:使单片机的状态处于初始化状态,让单片机的程序从头开始执行。
按键模块:按键控制加分、切换、计时控制和犯规等。
蜂鸣器模块:经过三极管的开关电路接通蜂鸣器,使蜂鸣器开始工作,表示倒计时的时间到了。
3 调试过程先在用proteus 进行电路的仿真测试。
在仿真测试阶段可适当调整各个元件位置,以便硬件的焊接,按照仿真图进行焊接。
在焊接时注意要把线焊实,不能有虚焊也不能断,在焊接一条线后应该用万用表进行测量,检查是否焊接好,尤其是跳线,因为此次跳线居多,若跳线没有焊接好,后面出现问题很难发现问题所在,跳线也应该先用万用表测量是否有质量问题,在焊接完所有的硬件之后仔细检查是否玉仿真图一致,检查是否有错焊,漏焊。
篮球记分牌单片机实训报告
桂林电子科技大学毕业设计(论文)报告用纸编号:设计说明书题目:篮球计分牌学院:桂林电子科技大学职业技术学院专业:电子信息工程技术学生姓名:学号:指导教师:职称:讲师实验研究√工程设计工程技术研究软件开发 2014 年 12 月日伴随着信息传播技术的发展,NBA在年轻人中越来越流行。
在我们校园的每一个角落都能发现篮球比赛的身影。
篮球赛计分器是为了解决篮球比赛时计分与计时准确的问题。
此装置利用单片机AT89C51完成了计时和计分的功能。
本文详细地介绍了系统硬件与软件的设计过程,设计由AT89C51编程控制四位数码管作显示的球赛计时计分系统。
该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩等功能。
它具有价格低廉,性能稳定,操作方便并且易于携带等特点。
广泛适合各类学校或者小型团体作为赛程计时计分。
关键词:AT89C51;篮球赛计分牌;四位数码管;动态显示;引言 (1)1 系统概述 (2)1.1 选题背景 (2)1.2 设计要求 (2)2 设计原理 (2)2.1 硬件部分 (2)2.2 软件部分 (2)3 硬件电路设计与分析 (3)3.1 硬件框架图 (3)3.2 单片机最小系统 (3)3.2.1 STC89C52芯片介绍 (3)3.2.2 时钟电路 (4)3.2.3 复位电路 (5)3.3 四位数码管 (5)3.3.1 数码管的介绍 (5)3.3.2 四位数码管共阳和共阴的区分 (6)3.3.3数码管的驱动方式 (7)3.4 74HC573芯片介绍 (7)4 软件设计与分析 (8)4.1 程序主流程图: (8)4.2 初始化定时器程序 (9)4.3 四位共阴数码管的动态显示程序 (9)5 系统调试 (10)5.1 硬件调试 (10)5.1.1 最小系统调试 (10)5.1.2 四位数码管调试 (10)5.2 软件调试 (10)5.3 脱机运行调试 (11)6 总结 (12)谢辞 (13)参考文献 (14)附录1:篮球计分牌原理图.................. 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学信息科技学院单片机原理及应用实训报告题目篮球计分牌学号 0951100228姓名锎指导老师桂明锟志鹏2011 年 9 月 23 日1.系统设计1.1设计要求1.1.1.基本要求1 设计一个基于单片机的篮球计分牌,实现两队的计分功能与24秒计时功能2 结合硬件能够正常计分3 能够正常显示分值。
4 能够正常修改工作模式(计分与24秒)5 能够24秒的误差不小于1秒1.1.2.发挥部分1 12分钟倒计时2 能够两队球员犯规次数计数3 重置24秒表4 倒计时结束报警5 12分钟倒计时结束红灯全部亮1.2设计原理1.2.1 框图设计1.2.2 程序流程1.2.2.1加分程序流程1.2.2.3 选择显示程序流程1.3方案比较1.3.1 方案1:是通过按不同的键来切换不同的输入,使用不同的LED灯的亮灭来显示不同的队加分。
电路图:1.3.2 方案2:通过一个键来切换分数,24s倒计时,12分钟倒计时和犯规次数,通过LED灯的亮来判断是那个队加分,那个队犯规,12分钟倒计时结束。
另外,给a队b队加分和加犯规次数。
通过按键,选择哪种显示方式,暂停/开始24s倒计时,重置24s;电路图:1.4方案论证1.4.1总体思路7个按键实现对应功能:P1^6对应a队加分,第一个红灯亮;P1^0对应b队加分,第二个红灯亮;P1^1对应显示切换,切换有四类显示方式,第一类是a队跟b队的比分显示,且各两个数码管显示。
第二类是24s倒计时的显示。
第三类是12分钟倒计时的显示。
第四类是a队跟b队的犯规次数显示;P1^2对应24秒倒计时暂停/开始;P1^3对应重置24s倒计时,同时24s倒计时暂停;P1^4对应a队加犯规次数,同时第三个红灯亮;P1^5对应b队加犯规次数,同时第四个红灯亮;外加复位键,按下则清零;24秒倒数为0时蜂鸣器响起警报,重新倒数时蜂鸣器关闭。
12分钟倒计时结束时,蜂鸣器响起警报,红灯全亮。
1.4.2设计方案使用了延时子程序(delay)用来按键消抖,还有定时中断程序来显示数码管,启止24s倒计时,12分钟倒计时,使用了P0口作为数码管的段选和P2口的位选,使用P1口作为按键作为输入,P3口的发光二极管作为判断a队和b队的选择和作为模式的选择部分和蜂鸣器作为倒计时24秒的计时的时间到;在主程序里面有各按键的功能,a队加分,b队加分,切换功能,重置24s功能,a队加犯规,b队加犯规;2、模块电路的设计2.1 AT89S51单片机芯片在本设计中P3.7~P3.4口接LED灯,P2.7口(28脚)接蜂鸣器电路,P1.0~P1.6(1~7脚)口接7个按键,RST(9脚)接复位电路,,P2.0~P2.4(21~24脚)接四位数码管的位选脚,P0.0~P0.7(32~39脚)接四位数码管段位脚,18、19脚接晶振电路,20脚接GND,31脚、40脚接VCC。
2.2 四位共阴数码管电路2.3 复位电路2.4 振荡电路(时钟电路)2.5 蜂鸣器电路2.6 下载口电路2.7 二极管显示电路3、开发软件及编程语言简介3.1 Keil C编程软件3.1.1 系统概述Keil C51是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
3.1.2. Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex 文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
3.2 Keil开发工具--uVision3uVision3集成开发环境是一个基于Window的开发平台,包括一个全功能的源代码编辑器,一个项目管理器和一个MAKE工具。
利用源代码编辑器可以高效地编辑源程序。
利用项目管理器可以很方便地创建和维护项目,利用MAKE工具可以汇编,编译和连接。
4、制作与调试过程4.1制作过程:4.1.1编程时用C语言编写并需要结合电路原理图编写;4.1.2在使用proteus软件仿真时,要找到元器件相应的符号及其使用方法;4.1.3在制作电路板时,由于使用万用板,在焊接元器件的管脚时需要注意焊锡的使用量,用量过多会导致该焊锡与其它的铜孔相连,有可能导致电路的某条支路短路;4.1.4在焊接按键时,需要分清楚其的管脚,可以用万用表测试管脚的导通,则可以区分管脚;4.1.5在焊接数码管的管脚时,应该注意其管脚的分布;4.1.6在焊接AT89S52的管脚时,需要注意分清各个管脚;4.1.7在焊接晶振的管脚时需要注意将其尽量靠近该芯片的XTAL1,XLAL2的两端;4.1.8在焊接下载端口的管脚时需要注意各管脚与芯片的管脚对应。
4.2调试过程:4.2.1初步调试程序时并下载到芯片上时,通过操作验证“暂停部分的程序”在比赛结束后再按暂停按键时,可以实现倒计时,但是当t=0时,开始出现乱码,针对该问题,需要在其暂停部分的程序加以“break”到相应的程序中,经调试,下载可以实现将程序跳出“死循环”。
4.2.2在调试电路板时不能将程序下载到芯片的情况,经分析得出晶振接触不良。
4.2.3 硬件搭建好后,发现程序下载不了,经检查发现,下载端口接反,下载口连接正确后,程序依然下载失败。
经常长时间电路检查依然为发现问题。
后面通过仔细查看单片机最小系统,最终发现单片机的EA端没接vcc导致单片机无法读取片ROM。
4.2.4 下载成功后,然后再补充了LED灯跟功能对应的显示。
5、心得体会通过本次实训,发现自身在电子制作,程序编写方便有着非常大的不足。
对以往学习过的编程知识没有好好掌握,特别是编程这方便的知识较薄弱。
学习过的知识在实际应用中仿佛是冰山一角,完全不够用,需要通过查阅很多资料才能解决到碰到的相关问题。
而且实训中出现的问题都是实际应用出比较典型的问题。
发现问题解决问题,通过不断的了解,对《单片机原理及应用》这门课有了更深刻的了解掌握。
单片机技术在当今各方面领域有着极高的应用率,是一门动手能力非常强的技术。
其中的程序和模块化元件看起来很简单,但是真正要自己设计有代表性出来是很难的,需要有扎实的知识基础,和较强的逻辑分析能力。
这些条件我们都可以通过平时的努力来积累。
碰到问题,先自己思考解决,再请教老师。
这次实训还让我深刻的体会了结构化程序设计的优势,让我懂得当我们要进行一个复杂的程序设计时应该先将其分解为多个不同的功能模块再分别编程实现,这样做不仅降低了编程的难度,也容易让编程者思路更加清晰,避免出现不必要的错误。
在做仿真时,仿真图正确也不一定就是说明一定正确。
做实物时,不仅要做到电路正确,也要尽可能做到布局合理、焊接到位,否则很有可能电路原理图正确、仿真图正确但是任然调试不出结果。
另外,焊接的时候不能分心,否则极易出错。
6、参考文献【1】喻宗泉.单片机原理与应用技术.:电子科技大学。
2006【2】光飞.单片机课程设计实例指导.:航空航天大学。
2004【3】欣.单片机原理与C51程序设计基础教程.:清华大学。
20107、附录7.2.1 电路原理图7.2.2 PCB7.2.3 硬件正面图7.2.4 硬件反面图7.2.5元件清单:7.2.6 程序#include<reg52.h>//*************************数码管段代码表**************************// unsigned charTab[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7,0x20}; unsigned char a=0,//a队分数b=0,//b队分数afg=0,//a队犯规次数bfg=0;// b队犯规次数unsigned char t=24, //倒计时24秒k=0,//倒计时暂停/开始状态h=0,//显示转换状态miao=0,//秒钟fen=12;//12分钟倒计时分钟int bittime=0; //循环次数int bitdisplay=0;//显示sbit P16=P1^6;//a队加分sbit P10=P1^0;//b队加分sbit P11=P1^1;//显示状态切换sbit P12=P1^2;//倒计时暂停/开始sbit P13=P1^3;//24s倒计时重置sbit P14=P1^4;//a队犯规加次数sbit P15=P1^5;//b队犯规加次数sbit fmq=P2^7;//蜂鸣器///***************定时中断服务程序***********************//void timer0 (void) interrupt 1 using 0{TH0=0Xf8;TL0=0x30;//定时器赋初值switch (bitdisplay){case 0:P2=0xfe;if(h==0){P0=Tab[a/10];}//a队分数十位显示if(h==1){P0=Tab[t/10];}//倒计时十位显示if(h==2){P0=Tab[fen/10];}//每节比赛12分钟,分钟十位显示if(h==3){P0=Tab[afg/10];}//犯规的十位显示break;case 1:P2=0xfd;if(h==0){P0=Tab[a%10];}//a队分数个位显示if(h==1){P0=Tab[t%10];} //倒计时个位显示if(h==2){P0=Tab[fen%10];}//分钟的个位显示if(h==3){P0=Tab[afg%10];}//a犯规的个位显示break;case 2:P2=0xfb;if(h==0){P0=Tab[b/10];}if(h==1){P0=0x00;}if(h==2){P0=Tab[miao/10];}if(h==3){P0=Tab[bfg/10];}break;case 3:P2=0xf7;if(h==0){P0=Tab[b%10];}if(h==1){P0=0x00;}if(h==2){P0=Tab[miao%10];}if(h==3){P0=Tab[bfg%10];}break;}bitdisplay++;bittime++;if(bitdisplay==4) {bitdisplay=0;}//数码管扫描返回if(bittime==500){bittime=0;if(k){ if(t--==0) {k=0;t=24;fmq=1;}else {fmq=0;}if(miao--==0){if(fen==0){P3=0x0f;fen=12;miao=0;k=0;}fen--;miao=59;} //12分钟结束,4个灯全亮}}}//**延时程序***//void delay (unsigned int t){unsigned int aaa,bbb;for(aaa=0;aaa<100;aaa++)for(bbb=0;bbb<t;bbb++);}//**************主程序*********************//void main(void){TMOD=0x01;TH0=0xf8;TL0=0x30;//定时2msEA=1;ET0=1;TR0=1; //开启定时器while(1){if(!P16)//按键1{delay(100);if(!P16){a++;P3=0xef;if(a==100) a=0;}//a队加分}if(!P10)//按键2{delay(100);if(!P10){b++;P3=0xdf;if(b==100) b=0;}//b队加分}if(!P11)//按键3{delay(100);if(!P11){if(++h>=4)h=0;} //显示切换}if(!P12)//按键4{delay(100);if(!P12){if(k++==2)k=0;} //倒计时}if(!P13)//按键5{delay(100);if(!P13){t=24;k=0;fmq=1;}//重置24s倒计时}if(!P14)//按键6{delay(100);if(!P14){afg++;k=0;P3=0xbf;if(afg==60) afg=0;}//a队犯规}if(!P15)//按键7{delay(100);if(!P15){bfg++;k=0;P3=0x7f;if(bfg==60) bfg=0;}//b队犯规}}}。