毕业设计基于AT89C51单片机的篮球记分牌系统设计

上传人:痛*** 文档编号:42785298 上传时间:2021-11-27 格式:DOC 页数:46 大小:665.01KB
收藏 版权申诉 举报 下载
毕业设计基于AT89C51单片机的篮球记分牌系统设计_第1页
第1页 / 共46页
毕业设计基于AT89C51单片机的篮球记分牌系统设计_第2页
第2页 / 共46页
毕业设计基于AT89C51单片机的篮球记分牌系统设计_第3页
第3页 / 共46页
资源描述:

《毕业设计基于AT89C51单片机的篮球记分牌系统设计》由会员分享,可在线阅读,更多相关《毕业设计基于AT89C51单片机的篮球记分牌系统设计(46页珍藏版)》请在装配图网上搜索。

1、哈尔滨工业大学华德应用技术学院 毕业设计(论文) 题 目 专 业 班 号 学 生 姓 名 指 导 教 师 答 辩 日 期 哈尔滨工业大学华德应用技术学院毕业设计(论文)摘 要单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种 本次毕业设计的主要任务是设计一个篮球比赛记分牌,包括硬件设计和软件设计。硬件设计的主要任务是:LED数码管显示、按键控制系统设计以及辅助功能的设计。软件设计包括:功能选择、倒计时的实现。本文主要介绍了单片机实现篮球记分牌的整个设计流程,采

2、用汇编语言编写程序。本课题选择AT89C51为核心控制元件,设计了日常比赛中用到的篮球记分牌。设计同时引用MAX7219专用LED驱动芯片,解决了多位LED数码管同时显示的问题,硬件结构紧凑,成本低。该单片机篮球记分牌可适应不同篮球规则,通过按键修改每个设置。运行可靠,具有一定的使用价值和竞争价值。关键词 : AT89C51单片机、LED数码管、MAX7219、汇编、篮球记分目录摘 要I第1章 绪论1第2章 单片机21.1单片机的特点及发展概况21.2 单片机的基本组成21.3 单片机的特点21.4单片机的应用21.5单片机在篮球记分牌中的应用3第3章 硬件设计43.1 设计题目分析43.1.

3、1面板设计:43.1.2按键及开关功能设定53.1.3系统硬件设计63.2 硬件电路设计12第4章 系统软件设计144.1软件设计思路和程序流程图144.2程序源代码16结论17致谢18参考文献19附录一 电路原理图20附录二 程序源代码2143第1章 绪论单片机出现的历史并不长,它的产生与发展和微处理器的产生与发展大体上同步.1970年微型计算机研制成功后,随即在1971年,美国Intel公司生产出了4位单片机4004,它的特点是结构简单,功能单一,控制能力较弱,但价格低廉.1976年Intel公司推出了MCS-48系列单片机,它以体积小,功能全,价格低等特点获得了广泛的应用,成为单片机发展

4、进程中的一个重要阶段,此可谓是第一代单片机.在MCS-48系列单片机的基础上,Intel公司在20世纪80年代初推出了第二代单片机的代表MCS-51系列单片机.这一代单片机的主要技术特征是为单片机配置了完美的外部并行总线和串行通信接口,规范了特殊功能寄存器的控制模式,以及为增强控制功能而强化布尔处理系统和相关的指令系统,为发展具有良好兼容性的新一代单片机奠定了良好的基础.近几年出现了具有许多新特点的单片机,可称之为第三代单片机.它以新一代的80C51系列单片机为代表.同时16位单片机也有很大发展.尽管目前单片机品种繁多,但其中最为典型的仍当属Intel公司的MCS-51系列单片机.它的功能强大

5、,兼容性强,软硬件资料丰富.国内也以此系列的单片机应用最为广泛.直到现在MCS-51仍不失为单片机中的主流机型.在今后相当长的时间内,单片机应用领域中的8位机主流地位还不会改变.第2章 单片机1.1单片机的特点及发展概况单片机是一个单芯片形态,面向控制对象的嵌入式应用计算机系统.它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域.从此,计算机技术在两个重要领域通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。1.2 单片机的基本组成单片机的结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一台功能独特的,完整的单片微型计算机.1.3

6、 单片机的特点单片机独特的结构决定了它具有如下特点.(1)高集成度,高可靠性单片机将各功能部件集成在一块晶体芯片上,集成度很高,体积自然也是最小的.芯片本身是按工业测控环境要求设计的,内部布线很短,其抗工业噪音性能优于一般通用的CPU.单片机程序指令,常数及表格等固化在ROM中不易破坏,许多信号通道均在一个芯片内,故可靠性高.(2)控制功能强为了满足对对象的控制要求,单片机的指令系统均有极丰富的条件:分支转移能力,I/O口的逻辑操作及位处理能力,非常适用于专门的控制功能.(3)低电压,低功耗为了满足广泛使用于便携式系统,许多单片机内的工作电压仅为1.8V3.6V,而工作电流仅为数百微安.(4)

7、优异的性能价格比单片机的性能极高.为了提高速度和运行效率,单片机已开始使用RISC流水线和DSP等技术.单片机的寻址能力也已突破64KB的限制,有的已可达到1MB和16MB,片内的ROM容量可达62MB,RAM容量则可达2MB.由于单片机的广泛使用,因而销量极大,各大公司的商业竞争更使其价格十分低廉,其性能价格比极高.1.4单片机的应用由于单片机功能的飞速发展,它的应用范围日益广泛,已远远超出了计算机科学的领域.小到玩具,信用卡,大到航天器,机器人,从实现数据采集,过程控制,模糊控制等智能系统到人类的日常生活,到处都离不开单片机.其主要的应用领域如下。(1)在测控系统中的应用单片机可以用于构成

8、各种工业控制系统,自适应控制系统,数据采集系统等.例如,工业上的锅炉控制,电机控制,车辆检测系统,水闸自动控制,数控机床及军事上的雷达,导弹系统等。(2)在智能化仪器仪表中的应用单片机应用于仪器仪表设备中促使仪器仪表向数字化,智能化,多功能化和综合化等方向发展.单片机的软件编程技术使长期以来测量仪表中的误差修正,线性化的处理等难题迎刃而解。(3)在机电一体化中的应用单片机与传统的机械产品结合使传统的机械产品结构简化,控制走向智能化,构成新一代的机电一体化产品.这是机械工业发展的方向。(4)在智能接口中的应用计算机系统,特别是较大型的工业测控系统中采用单片机进行接口的控制管理,单片机与主机并行工

9、作,可大大提高系统的运行速度.例如,在大型数据采集系统中,用单片机对模/数转换接口进行控制不仅可提高采集速度,还可以对数据进行预处理.如数字滤波,误差修正,线性化处理等.(5)在人类生活中的应用单片机由于其价格低廉,体积小巧,被广泛应用在人类生活的诸多场合,如洗衣机,电冰箱,空调器,电饭煲,视听音响设备,大屏幕显示系统,电子玩具,信用卡,楼宇防盗系统等.单片机将使人类的生活更加方便舒适,丰富多彩。1.5单片机在篮球记分牌中的应用由于本次设计的简单篮球记分牌体积小,故要求其控制器体积更小以便能嵌入其结构之中。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足需求。可以适应不同规则下

10、操作。其具体功能及实现在以下两章做详细介绍。 第3章 硬件设计3.1 设计题目分析题目:篮球比赛电子记分牌 题目要求:1.显示球队的英文名称(缩写)或用LED点阵显示中文名 2.显示比分用三位数表示 3.显示比赛剩余时间,进攻剩余时间,这些剩余时间变为0时发出相应警报 4.可用按键显示修改球队名称,及比赛剩余时间,并设置暂停键。 球队名 _ _ _ vs _ _ _ 比分 _ _ _ : _ _ _ 比赛剩余时间 _ _ : _ _ 第_场 进攻剩余时间 _ _系统硬件设计 3.1.1面板设计: 篮球记分牌的实现方法有很多,可以分为两大类:第一类是全部采用硬件实现;第二类是采用硬件和软件想结合

11、的方法实现。这里采用单片机实现电子钟属于第二种方法。 该设计的篮球记分牌基本功能如设计题目要求所述用三位英文字母缩写代表球队名,采用MAX7219专用LED驱动芯片实现静态显示,共6位LED采用单片机的动态扫描方式动态显示比分、比赛倒计时、进攻倒计时、场次,共需要13位LED数码管通过按键修改球队名称,及比赛剩余时间等,并设置暂停键,实现倒计时全部暂停。按键有6个分别为 START键 ATTACK键 UP键 DOWN键 SETN 键 SETFT键和一个状态开关active 通过蜂鸣器发出倒计时到报警信号,节时到报警2秒钟,竟工倒计时到报警1秒3.1.2按键及开关功能设定START键 比赛开始/

12、暂停ATTACK键 进攻开始UP键 加1DOWN键 减1SETN 键 设置球队名、节时、节数、进攻限时SETFT键 修改比分、修正比赛时间、修正进攻时间开关active 比赛前/比赛中状态开关 硬件设计框图: 蜂鸣报警单片机键盘LED显示图3-1硬件设计框图3.1.3系统硬件设计1.器件选型根据以上列出的主要功能,单片机可选用Atmel公司生产的,与8031完全兼容的AT89C51单片机,该单片机除了具有8031所有的功能外,该单片机还带有4KBde FLASH的程序存储器,外部不需要扩展程序存储器,此时P0、P1、P2、P3可以用做通用I/O口使用。另外,选用该单片机可以减低系统成本,由于不

13、需要扩展外部 ROM存储器,系统的数量减少,使硬件结构更加紧凑,系统性能更好。MAX7219专用LED驱动芯片,是一种高集成化的串行输入/输出的共阴极LED显示驱动器。每片可驱动8位7段加小数点的共阴极数码管,可以数片级联,而与微处理器的连接只需3根线。MAX7219内部设有扫描电路,除了更新显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。由于一个按键要实现多种状态转换所以,按键采用独立式键盘结构。报警电路采用单音频报警综合其优缺点,LED显示采用动静结合方式。2.MAX7219芯片简介MAX7219芯片上包括BCD译码器、多位扫描电路、段驱动

14、器、位驱动器和用于存放每个数据位的8×8静态RAM以及数个工作寄存器。通过指令设置这些工作寄存器,可以使MAX7219进入不同的工作状态。A.管脚说明 图3-2是MAX7219的管脚分布图。其中:(1)DIN为串行数据输入端。当CLK为上升沿时,数据被载入16 b内部移位寄存器。(2)CLK为串行时钟输入端。其最大工作频率可达10 MHz。(3)LOAD为片选端,当LOAD为低电平时,芯片接收来自DIN的数据,LOAD回到高电平时,接收的数据将被锁定。图3-2 MAX7219管脚分布图    图3-3反映了DIN,CLK和LOAD的工作时序。(4)DIG

15、0DIG7为吸收显示器共阴极电流的位驱动线。其最大值可达500 mA,关闭状态时,输出VCC。(5)SEGASEGG,DP为驱动显示器7段及小数点的输出电流,一般为40 mA左右,可软件调整,关闭状态时,接入GND。(6)DOUT为串行数据输出端,通常直接接入下一片MAX7219的DIN端。 图3-3DIN,CLK和LOAD的工作时序B.操作指令MAX7219有5个工作状态寄存器,分别是译码方式选择、亮度调节、扫描位数设定、待机开关、显示器检测。除空指令外,7219的所有操作指令都是2个字节,前一个是操作代码,后一个是操作数。下面用十六进制数对控制命令加以说明。C.译码方式选择操作代码为“09

16、H”,操作数为“0”或“0FFH”。选中“0”则不使用BCD译码器,在显示数字或符号时,按每段点亮与否编排传送码。而选中“0FFH”时,则按8421标准二进制编码来代表相应的显示数字,如表1所示。需要说明的是,无论译码与否,表1中操作数的最高位D7均为小数点,“1”为亮,“0”为灭,所以表1中所列是小数点不亮时的操作数。图3-4译码与不译码的比较D.亮度调节操作代码为“0AH”,操作数如图3-5所示。图3-5亮度调节操作数这个指令可以用来调节显示器的亮度,改变其操作数可以改变MAX7219内部扫描脉冲的宽度,从而使电流的平均值有所变化,这个电流平均值可以从最小的1/32至最大的31/32之间进

17、行16级调节。MAX7219还提供了一种硬件调整显示器亮度的方式,即通过第18管脚的ISET和VCC之间跨接的一个电阻来调节其亮度,段驱动平均电流大约为流过此电阻电流的100倍,实际应用中常用十几k的电阻直接接入即可。E. 扫描位数设定操作代码为“0BH”,操作数如图3-6所示。图3-6扫描位数设定操作数如果所用的显示器少于8位,则应通过这条指令设置相应的位数。因为设置的位数如果比实际使用的位数大,就会形成“虚位”,而一旦对“虚位”进行操作,将会引起整个显示器的混乱,这是需要加以注意的。另外,扫描位数的设置,会影响到扫描频率的变化,相应地,显示器亮度也会随着变化,所以应先确定扫描位数,再设置显

18、示器亮度。F.待机开关    操作代码为“0CH”,操作数为“0”或“1”。    操作数为“0”,则显示器不工作(灭灯),反之,显示器正常工作。待机状态下,7219的工作电流仅为150A。G.显示器检测    操作代码为“0FH”,操作数为“0”或“1”。    选择操作数为“1”时,可点亮整个显示器,通常用来检查数码管及连接电路是否存在故障。检测时,不会改变各位原有的显示数据,即检测完毕后,再送入不检测指令“0”,又可恢复显示原数据。H. 位操作指令位操作指令就是对8个数

19、码管显示内容的操作,也是2个字节,第1个字节是位的代码,如图3-7所示,第2个字节则根据译码方式的选择,来使用表1中的编码。图3-7 位的代码需要说明的是,上述所有指令的输入,不分先后(但每个指令2个字节的秩序不能颠倒)。通常,前5条指令一般在上电初始化程序中加以设置,而在工作程序中,仅使用位操作指令即可。另外,MAX7219上电时,译码方式、亮度调节、扫描位数、待机开关、显示检测等5个控制寄存器全部归零。I.与单片机的连接MAX7219与51单片机的连接形式有2种,一种是将MAX7219的3个输入端DIN,CLK和LOAD与1951单片机的任意3个端口连接;一种则是直接与51单片机的串行接口

20、相连。以下分别介绍这2种方式。 J. 与单片机任意3个端口连接的方式    假定按图3所示方法连接。 MAX7219每次接收2个字节,高位在先,其指令可编写为:      *以下是MAX7219与单片机串行接口及MAX7219之间多片联级知识,在此只作粗略介绍* * * * *   K.用单片机的串行接口如果将MAX7219的DIN接入单片机的RXD,CLK接入TXD,LOAD选任一口线,则可通过单片机串行口对MAX7219像对其他设备一样按模式0进行发送操作。但由于串行口数据缓冲寄存

21、器SBUF为右移发送,所以MAX7219的所有命令和操作数与第一种方式相比均应反转,见表59。注意表6中操作数的最低位D0为小数点。L.MAX7219的多片级联MAX7219可以多片级联,只需将上一片的DOUT连接下一片的DIN即可,CLK和LOAD线全部公用,连在一起。在多片级联时,对MAX7219的操作指令要注意LOAD信号的起止点,操作开始时,LOAD下降为低电平,按照每片MAX7219两个字节,如果有N片,则发送2N个字节后,LOAD上升为高电平。还需注意的是,先发送的指令将到达级联的最后一片。还有一条专为MAX7219多片级联设置的一条空操作指令,操作代码为“00H”。当不希望对级联

22、中的某片或某几片MAX7219进行操作时,就可以用空操作指令跳过这片或这几片。例如,如果4个7219串联,为了写入第4个芯片,要在3个空操作指令码后发送2个字节的指令,当LOAD升为高电平时,数据被锁存到所有设备,前3个芯片收到的是空操作命令,而第4个收到预期的数据。在本次设计中采用MAX7219专用LED驱动芯片,有以下几个优势:首先,MAX7219每片可以驱动8位LED数码管,可以多片级联,在本次设计中用到6位LED显示,不需要级联。第二,MAX7219 与单片机相连只需要3个口线,而采用MC14495则需要8个口线,这样就大大节省了口线资源;第三,MAX7219内部设有扫描电路,除了更新

23、显示数据时从单片机接收数据外,平时独立工作,极大地节省了MCU有限的运行时间和程序资源。综上所述,结合了单片机的动态显示和静态显示的优缺,达到优势互补,最终选择MAX7219做静态显示球队名称,单片机动态扫描13位LED显示比分、时间等3.2 硬件电路设计电路图见附录一在该电路中,无需进行存储器和I/O口的扩展,P0-P3口都可以作通用I/O口来实现其他功能。P1.2P1.7口作独立式键盘的输入口线,由于P1 口内部没有上拉电阻,所以在P1口外部需要外接上拉电阻。独立式键盘采用一键多功能方式,与矩阵键盘相比,按键设置要少。矩阵键盘适用于按键较多、功能单一的情况。一键多功能,可以减少键

24、的使用,相比在该设计情况下,用独立式键盘更好。蜂鸣器由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。

25、显示子程序分为动态显示子程序和静态显示子程序,动态显示与静态显示比较各有优缺。 静态显示的亮度高,占用CPU的时间短,但它的成本高。为了简化硬件电路,降低成本,在单片机应用系统中采用动态扫描的方法,解决多位LED显示问题。动态扫描显示的硬件接口简单,只需一个公共的七段码输出口(字形口)一个选择显示位的数位选择口(字位口),显示时,从左到右轮流点亮每位显示器,只要保证扫描周期不超过一定的限度(一般在20ms以下)由于视觉的暂留,则可达到“同时”显示各位不同的数字或字符的目的。动态显示的优点是成本低,接口电路简单,但它要求CPU繁地为显示服务。考虑到成本和CPU负担,初期采用8155扩展芯片,完全

26、用动态显示的方案不可取,采用Motorola公司生产的MC14495芯片结合动态显示接口资源不够用需要扩展,暂时取消。最后引进MAX7219专用LED驱动芯片解决了单片机接口问题,结合动静态显示的优点,最终得到如上设计的电路图。 第4章 系统软件设计4.1软件设计思路和程序流程图根据系统的功能要求和硬件的连接情况,软件可分为:T0、T1定时中断模块和主程序模块。两个中断模块都设定10ms基本定时,中断100次为1s,进而实现分、秒的计时功能,以及蜂鸣器的开关控制。主程序模块通过循环执行的方式实现以下功能:判断比赛前/中,比赛前调用静态显示子程序显示球队名称,比赛中则调用动态显示子程序显示比分、

27、比赛时间、进攻时间、场次(节时),若有按键按下,则调用键盘处理子程序。主程序模块的流程图如31所示:系统初始化调动态显示子程调键处理子程调静态显示子程开始开始比赛中?读active键在中断程序中,先重装定时器初值,基本计时单元加1,然后进行分、秒的计时,若倒计时为0则打开蜂鸣器,持续蜂鸣设定的时间后自动停止。T0、T1中断服务的流程图如图3-2、3-3所示。每节比赛结束后,计数器R7加1,到达比赛前设定的节数时,R7清0,相应的显示0节,以表示比赛结束。T0、T1定时中断采用工作方式1(16位定时器),由于系统时钟频率为12MHZ,机器周期为1us。要实现10ms的定时方式,在T0、T1的初值

28、为X=65536-12*100000*0.01/12=55536=D80FH倒计时以二进制计数,在送入显示之前先拆分为单个BCD码,分别送入相对应的显示缓冲区。显示子程序分为动态显示子程序和静态显示子程序,动态显示与静态显示比较各有优缺。静态显示的亮度高,占用CPU的时间短,但它的成本高。为了简化硬件电路,降低成本,在单片机应用系统中采用动态扫描的方法,解决多位LED显示问题。动态扫描显示的硬件接口简单,只需一个公共的七段码输出口(字形口)一个选择显示位的数位选择口(字位口),显示时,从左到右轮流点亮每位显示器,只要保证扫描周期不超过一定的限度(一般在20ms以下)由于视觉的暂留,则可达到“同

29、时”显示各位不同的数字或字符的目的。动态显示的优点是成本低,接口电路简单,但它要求CPU频繁地为显示服务。考虑到成本和CPU负担,初期采用8155扩展芯片,完全用动态显示的方案不可取,采用Motorola公司生产的MC14495芯片结合动态显示成本高,也不可取。最后引进MAX7219专用LED驱动芯片解决了单片机接口问题,结合动静态显示的优点,最终得到动静结合的设计方案。表3-1 动态显示七段码(字形码)表显示字符D7D6D5D4D3D3D1D0七段码dpgfedcba0001111113FH10000001106H2010110115BH3010011114FH40110011066H501

30、1011016DH6011111017DH70000011107H8011111117FH9011011116FH.1000000080H空白0000000000H4.2程序源代码见附录二结论 单片机篮球记分牌设计的主要任务包括硬件设计和软件设计。硬件设计的主要任务是:电源设计、LED数码管驱动、控制系统设计以及辅助功能的设计,。软件设计包括:功能选择、倒计时的实现。本文主要介绍了单片机实现篮球记分牌的整个设计流程,采用汇编语言编写程序。本课题选择AT89C51为核心控制元件,设计了日常比赛中用到的篮球记分牌。设计同时引用MAX7219专用LED驱动芯片,解决了多位LED数码管同时显示的问题硬

31、件结构紧凑,成本底。该单片机篮球记分牌可适应不同篮球规则,通过按键修改每个设置,运行可靠,具有一定的使用和竞争价值。 主要使用的是WAVE这一工具软件,该软件可用于单片机的设计与开发,建模仿真,实时实现的理想的仿真环境。由于其完整的专业体系和先进的设计开发思路。硬件设计采用Protel 99SE绘图,可以自行绘出数据库中没有的器件,使用很方便,其自动布线和电路模块设计很方便。致谢本文主要阐述了单片机电子记分牌的实现背景及其实现的功能,我对单片微机技术产生了浓厚的兴趣,同时,受我主修专业的影响,我已经习惯于关注单片机设计带来的一系列机遇与挑战。 本篇论文虽然凝聚着自己的汗水,但却不是个人智慧的产

32、品,没有导师的指引和赠予,没有父母和朋友的帮助和支持,我在大学的学术成长肯定会大打折扣。当我打完毕业论文的最后一个字符时,涌上心头的不是长途跋涉后抵达终点的欣喜,而是源自心底的诚挚谢意。我首先要感谢我的导师曾一江老师,她对我的构思以及论文的内容不厌其烦的进行多次指导和悉心指点,使我在完成论文的同时也深受启发和教育。 再次由衷感谢答辩组的各位老师对学生的指导和教诲,我也在努力的积蓄着力量,尽自己的微薄之力回报母校的培育之情,争取使自己的人生对社会产生些许积极的价值!参考文献1 高洪志.MCS-51单片机原理及应用技术教程.人民邮电出版社,2009:72-1692 田淑清.C语言程序设计.高等教育

33、出版社,2008:31-833 张毅刚.MCS-51系列单片机系统及其应用.高等教育出版社,2003:29-894 谢自美.电子线路设计、实验、测试.华中理工大学出版社,2000: 107-1115 郭培源.电子电路及电子器件.高等教育出版社,2004: 65-66 潘新民.微型计算机控制技术.人民邮电出版社,1999.9: 55-707 余锡存.单片机原理及接口技术.西安电子科技大学出版社,2000.7: 65-698 周立功.增强型80C51单片机速成与实战.北京航空航天大学出版社,2004.5:91-95附录一 电路原理图附录二 程序源代码;定义引脚 SPK BIT P1.0 ;蜂鸣器开

34、关 DIN BIT P0.0 ;P0.0P0.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_

35、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 MO

36、V T0CNT , #00H ;T0中断次数清零 MOV TH1 , #0D8H ;置T1初值 MOV TL1 , #0F0H MOV T1CNT , #00H MOV IE , #82H ;中断允许CLR AMOV T0CNT , A ;计数单元清0MOV 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 ;节数置初值1MAIN_LP: S

37、ETB P1.1 ;判断比赛否 JNB P1.1 , JX ;比赛中调动态显示 T11: LCALL DISP MOV P1 , #0FFH MOV A , P1 ANL A , #0FC CJNE A , #0FC, K_PRESS;有键按下调建处理子程序 SJMP MAIN_LP JX: LCALL MAX_DISP ;比赛前则调用静态显示子程序 LJMP T11 K_PRESS: LCALL KEY_PRG SJMP MAIN_LP ;无建按下,继续循环 *动态显示子程序*: DISP : MOV R0 , #40H ;R0指向动态显缓首址 MOV R1 , #7FH ;左边第一位数位代

38、码 MOV R2 , #0FFH ;左边第9位数位代码 MOV R3 , #0FFH ;延时常数 MOV A, #0FFH ;全灭数位代码 DISP1:MOV DPTR, #0A0H ;字位口地址MOVX DPTR , AMOV A, R0 MOV DPTR, #SGTR ;查表求七段码MOV A, A+DPTRMOVC DPTR, #0B0H ;字形口MOVX DPTR, A ;输出七段码MOV DPTR, #0A0HDJNZ R3, DELY DELY: INC R0 ;指向下一显缓单元 LP: SETB C ;置一进位标志 MOV A , R2, RRC A ;R2、R3数据带进位右移

39、MOV R2, A MOV A , R3 RRC A MOV R3, A ;右移13次停止 JB ACC.2, LP RET ORG 0200H ;数字七段码表 SGTR: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, DB 7DH, 07H, 7FH, 6FH, 80H, 00H*静态显示子程序* JX: LCALL PROCESS ;调初始化子程 LCALL DISPLY ;调显示子程 LJMP T11 ;初始化MAX7219 PROCESS: MOV A, #0BH ;显示位数设定(6位) MOV B, #05H LCALL W_7219 MOV A, #09H ;不

40、使用BCD译码 MOV B, #00H LCALL W_7219 MOV A, #0AH ;亮度设定 MOV B, #09H LCALL W_7219 MOV A, #0CH ;待机开关打开,LED正常显示 MOV B, #01H LCALL W_7219 RET DISPLAY: MOV R0, #DISP_BUF ;静态显缓首址 MOV R4, #01H ;数位第一位 MOV R3, #06H ;设定六位显示 C_DISP: MOV A , R0 MOV DPTR, #CHARTAB ;查字母表 MOVC A, A+DPTR ;得字母七段码 MOV B, A ;向MAX7219写入数据 M

41、OV A, R4 LCALL W_7219 INC R0 ;指向下一位显缓 INC R4 ;指向下一位数位DJNZ R3, C_DISP ;判断六个数据写入完?RET W_7219: CLR LOAD ;MAX7219入数据子程序 LCALL SD_7219 ;LOAD低电平写入有效 MOV A, B LCALL SD_7219 SETB LOAD RET SD_7219: MOV R6, #06H ;六个数据 C_SD: NOP CLR CLK ;数据左移显示 RLC A MOV DIN, C NOP SETB CLK DJNZ R6, C_SD RET ORG 1000H ;字母七段码表

42、CHARTAB: DB 77H, 7FH, 4EH, 7EH, 4FH, 47H, 5FH, 37H DB 30H,38H, 36H, 0EH, 79H, 76H, 63H, 67H DB 73H, 27H, 5BH, 31H, 3EH, 03H, 0F, 12H DB 3BH, 6DH, 80H, 00H *键处理子程* KEY_PRG: MOV R5 , #0AH LCALL DELAY_MS ;延时10ms MOV P1, #0FFH ;读键盘端口 MOV A, P1 ANL A, #FCH ;屏蔽低两位 JNB ACC.2 ;K_START键 JNB ACC.3 ;K_ATTACK键J

43、NB ACC.4 ;K_UP键JNB ACC.5 ;K_DOWN键JNB ACC.6 ;K_SETN键JNB ACC.7 ;K_SETFT键SJMP KEY_END ;无建按下,退出 K_START: PLC STARTVAL ;STARTVAL值求反 JNB STARTVAL, PS1 ;STARTVAL值=1,启动T0、T1比赛开始,进攻倒计时开始 SETB ET0 SETB TR0SETB ET1 SETB TR1 SJMP KEY-END PS1: CLR ET0 ;STARTVAL值=0,停止CLR TR0 T0、T1,比赛暂停,进攻计时暂停CLR ET1CLR TR1 K_ATTA

44、CK: PLC ATTACKVAL ;进攻标志值为1,启动 进攻倒计时 JNB ATTACKVAL, PS2 SETB ET1 SETB TR1 PS2: CLR ET1 CLR TR1 CLR #4AH ;清进攻倒计时显缓 CLR #4BH SJPM KEY-END KEY_UP: SETB P1.1 JNB P1.1, SF ; 开关闭合,P1.1=0比赛中设置分数等 MOV SETNCNT CJNE A, #01H, UP_A.2 ;SETN键按下第1次,设置球队“A”第一位 LCALL DISP_CHAR ;调静态显示 CLR R3 MOV DPTR, CHARTAB ;查表 INC R3 CJNE R3, #26, NEXT ;字母超过“Z”则转NEXT MOV A, R3 MOVC A, A+DPTR MOV 52H, A NEXT : CLR R3 ;指针清零 SJMP KEY-END UP_A.2: SETB P1.1 JNB P1.1, SF ; 开关闭合,P1.1=0比赛中设置分数等

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!