东北大学电子信息专业毕业论文 - 图文
更新时间:2024-05-20 06:21:01 阅读量: 综合文库 文档下载
- 东北大学优秀毕业论文推荐度:
- 相关推荐
学士学位毕业设计(论文)
基于单片机的篮球记分计
学生姓名: 学生学号: 指导教师: 所在学院: 专 业:
2013年5月
时器的系统设计
东北大学
本科毕业设计(论文)任务书
学生姓名 论文题目 题目 分类 所在班级 导师姓名 导师职称 基于单片机的篮球计分记时器的系统设计 1.应用与非应用类:〇工程 〇科研 〇教学建设 〇理论分析〇模拟 ? 2.软件与软硬结合类:〇软件〇硬件〇软硬结合〇非软硬件 ? (1、2类中必须各选一项适合自己题目的类型在〇内打√) 主要研究内容及指标: 内容:此设计中共接入了2个四位一体7段共阴LED显示器,一个显示器显示记时,另一个显示器显示分数,显示范围可达到0~99分。赛程计时采用倒计时方式,比赛开始时启动计时,当记时为0时,指示灯亮,蜂鸣器响。 指标:芯片:全静态操作:0Hz-33MHz; 工作电压:+5V,晶振:12MHz 二极管工作电压:0.7V左右 主要参考文献: [1]余发山,单片机原理及应用技术:中国矿业大学出社.2003 [2] 河南理工大学电气学院:单片机实验报告指导册.2008 [3] Vizimuller. RF design guide-systems, circuits, and equations [M]. Boston:Artech House.1995 [4]Atmel Microcontroller Handbook.2001 阶段规划: 201320132013201320132013年年年年年年2月3月3月4月4月5月251326122918日-3月12日:收集和本设计有关的资料,熟悉课题任务何要求 日-25日:硬件电路设计 日-4月11日:软件设计 日-28日:系统仿真及调试 日-5月17日:整理论文 日:准备答辩 完成论文时间 2013年5月17日 开题时间 2013年2月25日 专家审定意见: 系主任签字: 年 月 日 注:1.任务书由指导教师填写后交给学生,要求学生妥善保存。
2.此任务书夹于论文扉页与论文一并装订,作为论文评分依据之。
摘要 摘要
本设计是基于单片机AT89S52的篮球计分计时器,利用七段共阴LED作为显示器件。在此设计中共接入了2个四位一体7段共阴LED显示器,1个四位一体七段共阴LED显示器,用来记录赛程时间,另一个显示器的前两位和后两位分别记录两队的分数,显示范围可达到0~99分。赛程计时采用倒计时方式,比赛开始时启动计时,当记时为0时,指示灯亮,蜂鸣器响。 关键词:AT89S52 控制电路 报警电路 数码显示器
—I—
ABSTRACT ABSTRACT
The design is based on micro controller AT89S52 time basketball scoring, using seven-segment common cathode LED display device.In this design, access to two four in one seven-segment common cathode LED display, a four in one common cathode seven-segment LED display is used to record race time, another display two before and after the two were recorded scores of the two teams, the display range of zero to Ninety-Nine. Race timing countdown start time, the start of the game, when the chronograph is 0, the indicator light and buzzer. Keywords: AT89S52 control circuit alarm circuit digital display
—II—
目录 目录
摘要 .................................................... I ABSTRACT ............................................... II 目录 .................................................. III 1 绪论 .................................................. 1
1.1背景知识 ......................................... 1 1.2设计内容 ......................................... 1 1.3设计任务和要求 ................................... 1 1.4设计意义 ......................................... 2 2 系统总体方案及硬件设计 ................................ 3
2.1系统总体方案设计 ................................. 3 2.2硬件电路系统设计 ................................. 4
2.2.1单片机AT89S52简介 .......................... 4 2.2.2键盘 ....................................... 10 2.2.3时钟电路模块 ............................... 11 2.2.4复位电路模块 ............................... 11 2.2.5显示模块 ................................... 12 2.2.6报警模块 ................................... 13 2.3总硬件电路设计 .................................. 14 2.4本章小结 ........................................ 14 3 软件设计 ............................................. 15
3.1软件总体设计方案 ................................ 15 3.2程序设计 ........................................ 16 2.3本章小结 ........................................ 17 4 PROTEUS仿真 ......................................... 18
4.1 PROTEUS简介 .................................... 18 4.2仿真过程 ........................................ 18 4.3本章小结 ........................................ 22 结论 ................................................... 23 参考文献 ............................................... 24 致谢 ................................................... 26 附录一 ................................................. 27 附录二 ................................................. 36
—III—
前言 前言
随着信息时代的到来,电子技术在社会生活中发挥着越来越重要的作用,运用单片机知识设计的电子产品成为了社会生活不可缺少的一部分,特别是在各种竞技运动中,计时器成为检验运动员成绩的一个重要工具。在许多领域中,计时器均得到普遍应用,诸如在体育比赛,定时报警器、游戏中的倒时器,交通信号灯、红绿灯、行人灯,由此可见计时器在现代社会是何其重要的。
单片机[1],亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。 本设计是单片机的简单应用[2],设计了基于单片机的篮球记时计分器的系统设计。此设计功能齐全,包括记时、计分系统以及报警系统,是应用了七段共阴极数码管来显示。控制系统有启动、暂停、加分、减分以及时间的快进与回表功能,可以方便地实现蓝去比赛的记时计分功能,当计时递减到零时,记时数码管会显示00,同时上下半场的二极管发光、蜂鸣器响。
本设计完成的中途计时功能,为了实现在许多的特定场合进行记时计分的应用做了坚实的基础,在社会生活中具有广泛的应用价值。 此计时器的设计采用模块化结构,主要由以下4个组成,即最小系统模块、控制模块、报警模块以及记时、计分数码管显示模块。因而采用模块化的设计思想,使设计起来更加简单、方便、快捷。
—IV—
东北大学毕业设计(论文) 1 绪论
1.1背景知识
体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类[21],评分类,命中类,制胜类得分类等多种类型。
篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。
1.2 设计内容
本设计是基于AT89S52单片机的篮球计分计时器的设计,利用7段共阴极LED作为显示器件。在此设计中共接入了2个四位一体7段共阴极LED显示器,其中一个四位一体7段共阴极LED显示器的前2位用于显示分钟,后2位用于显示秒钟,另一个四位一体7段共阴极LED显示器的前两位和后两位分别用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。
其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。
1.3设计任务和要求
任务: 设计一个用于赛场的篮球计时计分器系统。
— —1
东北大学毕业设计(论文) 要求: 1、能记录整个赛程的比赛时间,并能随时实现暂停。
2、能随时刷新甲、乙两队在整个过程中的比分。 3、中场交换比赛场地时,能自动交换甲、乙两队比分的位置。 4、比赛中场和结束时,能发出报警声。 5、通过指示灯指示上下半场。
6、当比赛时间需要回倒时,能通过按键实现回表。 7、加分有误时可通过按键实现减分调整。
1.4 设计意义
本设计使我进一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤,掌握了单片机仿真软件Proteus[4]的使用方法,键盘和显示器在的单片机控制系统中的应用以及撰写课程设计报告的方法。此次设计很好的将书本上的理论知识和实践有机的联系了起来,是我们对理论知识有了更进一步的掌握,锻炼了我们的动手能力,同时也让我们懂得了理论与实际相结合的意义。为以后的工作和学习提供了宝贵的经验。
— —2
东北大学毕业设计(论文) 2.系统总体方案及硬件设计
2.1 系统总体方案设计
篮球计时计分器系统主要包括单片机控制系统[5]、计时显示模块、计分显示模块、定时报警,按键控制键盘模块。通过这几个模块的协调工作就可以完成相应的计时计分控制和显示功能。这四个模块的相互连接如图1所示:
图1 系统总体方案设计
本设计是基于AT89S52单片机[6]的篮球计时计分器,利用7段共阴极LED数码管作为显示器。在此设计中共接入了2个四位一体7段共阴极LED显示器,其中一个四位一体7段共阴极LED显示器的前2位用于显示分钟,后2位用于显示秒钟,另一个四位一体7段共阴极LED显示器的前两位和后两位分别用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。
— —3
东北大学毕业设计(论文) 2.2 硬件电路系统设计
2.2.1单片机AT89S52简介
AT89S52[8]是一个低功耗,高性能CMOS8位单片机,片内含8kBytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL[15]公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S52如图2所示,具有如下特点:40个引脚,8k Bytes Flash片内
3130291819XTAL1876543219EAALEPSENP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0RSTXTAL2U1AT89C5P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT0P3.1/TXDP3.0/RXD17161514131211102827262524232221 — —4
图 2 AT89S52单片机引脚图
程序存储器256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输
出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器.此模块电路包括时钟电路模块,复位电路模块及报警显示模块。 主要性能
1、与MCS-51单片机产品兼容;
2、8K字节在系统可编程Flash存储器; 3、1000次擦写周期;
4、全静态操作:0Hz-33MHz; 5、三级加密程序存储器; 6、32个可编程I/O口线; 7、三个16位定时器/计数器; 8、六个中断源;
3233343536373839P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0P2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8
东北大学毕业设计(论文) 9、低功耗空闲和掉电模式;
10、掉电后中断可唤醒; 11、看门狗定时器; 引脚说明
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程AT89S52引脚图DIP封装Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1 口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个 TTL逻辑电平。
此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能:
P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)
P2 口:P2口是一个具有内部上拉电阻的8 位双向I/O口,P2输出缓冲器能驱动,4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数
— —5
东北大学毕业设计(论文) 据存储器时,P2口输出P2锁存器的内容。在flash编程[22]和校验时,P2口也接收高8位地址字节和一些控制信号。
P3 口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1)
P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号[16],当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 寄存器
并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未
— —6
东北大学毕业设计(论文) 定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。 定时器2寄存器:寄存器T2CON和T2MOD包含定时器2的控制位和状态位,寄存器对RCAP2H和RCAP2L是定时器2的捕捉/自动重载寄存器。 中断寄存器:各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。 T2CON 地址为0C8H 复位值:0000 0000B位可寻址 表1 T2CON:定时器/计数器2控制寄存器 TF2 7
各符号的功能:
TF2:定时器2 溢出标志位。必须软件清“0”。RCLK=1 或TCLK=1 时,TF2不用置位。
EXF2:定时器2 外部标志位。EXEN2=1 时,T2EX 上的负跳变而出现捕捉或重载时,EXF2 会被硬件置位。定时器2 打开,EXF2=1 时,将引导CPU执行定时器2 中断程序。EXF2 必须如见清“0”。在向下/向上技术模式(DCEN=1)下EXF2不能引起中断。 RLCLK:串行口接收数据时钟标志位。若RCLK=1,串行口将使用定时器2 溢出脉冲作为串行口工作模式1和3的串口接收时钟;RCLK=0,将使用定时器1计数溢出作为串口接收时钟。 TCLK:串行口发送数据时钟标志位。若TCLK=1,串行口将使用定时器2 溢出脉冲作为串行口工作模式1和3 的串口发送时钟;TCLK=0,将使用定时器1计数溢出作为串口发送时钟。
EXEN2:定时器2外部允许标志位。当EXEN2=1时,如果定时器2没有用作串行时钟,T2EX(P1.1)的负跳变将引起定时器2捕捉和重载。若EXEN2=0,定时器2将视T2EX端的信号无效。
TR2:开始/停止控制定时器2。TR2=1,定时器2开始工作。 C/T2:定时器 2 定时/计数选择标志位。C/T2 =0,定时;C/T2 =1,外部事件计数(下降沿触发)。 CP/RL2:捕捉/重载选择标志位。当EXEN2=1时,CP/RL2=1,T2EX出现负脉冲,会引起捕捉操作;当定时器2溢出或EXEN2=1时T2EX出现负跳变,都会出现自动重载操作。CP/RL2=0将引起T2EX的负脉冲。当RCKL=1或TCKL=1时,此标志位无效,定时器2溢出时,强制做自动重载操作。
存储器
MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。
程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,
— —7
EXF2 6 RLCK 5 TCLK 4 EXEN2 3 TR2 2 C/T2 1 CP/RL2 0 东北大学毕业设计(论文) 如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~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
— —8
东北大学毕业设计(论文) 在AT89S52中,定时器0和定时器1的操作与AT89C51和AT89C52一样。 定时器 2
定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择,如表2所示:
表2定时器2工作模式
RCLK+TCLK 0 0 1 x
CP/RL2 0 1 x x
TR2 1 1 1 0
MODE
16位自动重载 16位捕捉 波特率发生器 (不用)
定时器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引脚(P1.1)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(P1.1)引脚上的1到0的下跳变都会触发16位重载。这个跳变也置位EXF2中断标志位。T2EX上的一个逻辑0使得定时器2向下计数。当TH2和TL2
— —9
东北大学毕业设计(论文) 分别等于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、1、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 ET2 ES ET1 EX1 ET0 EX0
位地址 功能 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0
中断总允许控制位。EA=0,中断总禁止;EA=1,各中断由各自的控制位设定 预留
定时器2中断允许控制位 串行口中断允许控制位 定时器1中断允许控制位 外部中断1允许控制位 定时器0中断允许控制位 外部中断0允许控制位
2.2.2.键盘
控制模块是由键盘输入,键盘是一组按键的集合,它是最常见的单片机输
— —10
东北大学毕业设计(论文) 入设备,是一种常开型按钮开关。常态时,按键[10]的两个触点处于断开状态,如图3所示,键盘分为编码键盘和非编码键盘,键盘上闭合键的识别由专门的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;靠软件识别的称为非编码键盘。
图3 常开型按钮开关
2.2.3时钟电路模块
时钟电路在单片机系统[9]中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振[19]和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。具体连接图如图4所示:
C133p19U1X2XTAL1CRYSTAL18P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A103938373635343332212223C533pXTAL29RST 图4 晶振电路 2.2.4 复位电路模块 复位是单片机[11]的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。除进入系统的正常初始化之外,当由于 — —11
东北大学毕业设计(论文) 程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。RST引脚是复位信号的输入端。复位电路在这里采用的是上电+按钮复位电路[13]形式,具体连接电路如图5所示:
R6200R22p18XTAL2K59RSTC110u2930PSEN 图5 复位电路 2.2.5显示模块 本设计采用共阴极数码[12]显示器,通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。本次设计在显示模块用到的是一个4位一体和2个两位一体共阴极数码管,共有8个代码输入口和8个位选输入口,采用排阻提供上拉电流数码管,以保证有足够大的电流点亮数码管,采用动态驱动,使各位数码管逐个轮流受控显示[20],这就是动态驱动,由于扫描速度极快,显示效果与静态驱动相同,其具体图形如下图6图7所示:
图6 计时显示器
— —12
东北大学毕业设计(论文) 图7 分数显示器 2.2.6报警模块 蜂鸣器通过一NPN三极管[3]进行驱动,如图8所示,触发信号有基极引入。 R30R1Q2NPNLS1SPEAKER 图8 报警电路
— —13
东北大学毕业设计(论文) 2.3总硬件电路设计
图9 硬件电路设计
2.4本章小结
本章主要是对本设计所采取的设计方案和所运用的芯片、模块以及电路设计的原理作主要的介绍和说明,包括AT89S52、按键、振荡电路、报警电路、复位电路以及总电路图的设计。
AT89S52S是一个低功耗,高性能CMOS8位单片机,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大,为许多嵌入式控制应用系统提供高性价比的解决方案。所以在这个芯片上加上按键、报警模块等就把整个设计给模块化,使后面的设计更加便捷、清晰。
— —14
东北大学毕业设计(论文) 3 软件设计
在设计程序之前,我们首先要对单片机应用系统预完成的任务进行深入的分析,明确系统的设计任务、功能要求和技术指标。其次,要对系统的硬件资源和工作环境进行分析,这是单片机应用系统程序设计的基础和条件。
3.1 软件总体设计方案
本次单片机课程设计软件设计部分采用模块化程序设计,程序部分由主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、快表和回表子程序、延时子程序等组成,其程序流程图如图10图11所示。
图10 主程序流程图
— —15
东北大学毕业设计(论文)
图11扫描刷新显示子程序流程图
3.2 程序设计
编写。Keil[14]是美国Keil
Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51[23]生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
软件设计部分采用模块化程序设计,用C语言
— —16
[7]
东北大学毕业设计(论文) 程序部分由主程序、T0中断程序、扫描显示子程序、计时加减1秒的子程序、暂停子程序、快表和回表子程序、延时子程序等组成。具体程序见附录。
3.3本章小结
本章主要是针对上一章的模块介绍和电路图设计作了软件设计,根据设计任务、功能要求和技术指标对系统的硬件资源和工作环境进行分析,利用KEIL软件对系统设计进行程序编程,包括主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、快表和回表子程序、延时子程序等组成。
— —17
东北大学毕业设计(论文) 4 PROTEUS仿真
4.1 PROTEUS简介
Proteus[4] 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。
③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。
④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
4.2仿真过程
接通电源,计时显示即开始倒计时工作,上半场指示灯亮,计时初始设计为2分钟,如图12所示,按下加分键实现对甲、乙两队分别加分,每按下一次加1分,如图13所示.
— —18
东北大学毕业设计(论文)
图12 初始时间
图13 按键加分
同样可实现甲、乙两队的减分如图14所示,按下暂停/启动键可实现暂停
— —19
东北大学毕业设计(论文) 和启动。
图14 按键减分
上半场结束后,停止计时,蜂鸣器报警,报警结束后按下暂停\\启动按键启动下半场计时,同时可实现甲队和乙队交换分数,下半场指示灯亮,如图15所示。
— —20
东北大学毕业设计(论文)
图15 下半场交换比分
当下半场也结束时,上、下半场的指示灯同时亮,蜂鸣器响,如图16所
示。
图 16 全场结束两二极管发光
— —21
东北大学毕业设计(论文) 4.3本章小结
本章主要是针对前两章的硬件和软件的设计进行仿真,利用Protues软件绘制电路图并仿真,计时显示即开始倒计时工作,上半场指示灯亮,计时初始设计为2分钟,按下加分键实现对甲、乙两队分别加分,每按下一次加1分,同样也可实现甲、乙两队的减分,按下暂停/启动键可实现暂停和启动。上半场结束后,停止计时,蜂鸣器报警,报警结束后按下暂停\\启动按键启动下半场计时,同时可实现甲队和乙队交换分数,下半场指示灯亮,当下半场也结束时,上、下半场的指示灯同时亮,蜂鸣器响,仿真完成。
— —22
结论 结论
几个月以来,通过对本设计的研究,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,也锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻反思。这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。
本设计是基于AT89S52单片机的篮球计时计分器,利用7段共阳极LED作为显示器件。在此设计中共接入了2个四位一体7段共阳极LED显示器,其中一个四位一体7段共阳极LED显示器的前2位用于显示分钟,后2位用于显示秒钟,另一个四位一体7段共阳极LED显示器的前两位和后两位分别用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。
通过对本系统的设计,让我更熟悉掌握了Keil uVision3, proteus 这些应用程序的运用,让我懂得了如何编写一些简单的程序,学会了如何制作单片机应用程序,还有焊接和程序下载,但在中间暴露出很多问题:对平时上课讲的理论知识没有完全掌握消化,到了实际操作中还得请教同学,在焊接中焊接的基本工夫掌握不到家,手上工夫还是很欠缺的,使得电路板不是很美观。
另外,本设计虽然已经实现了时间的倒计时、回表、快进,以及两队的加分和减分,但现在篮球比赛的每一次进攻都是24秒制的,因此,这一点是一个很大的缺陷,希望在以后对此系统进行进一步完善。
同时,做设计的这几个月翻阅了很多书,也上了很多网站去寻找自己需要的资料。这种寻找有很强的目的性,只是为了自己选定的课题内容而查阅,所以除了自己设计以外的其他方面几乎还是一无所知。这让我深刻的认识到了自己专业知识的贫乏。为我对自己以后生活的规划敲响了警钟。我对单片机的学习不会因为本设计的结束而结束,在接触的众多资料里,做设计只是走马观花般的点到,希望以后能够进行更系统的学习。
这些问题的发现,有助于提高我在以后的工作和学习中对此类问题的认识,确保不在同一问题上再次犯错。严谨求实、踏实务实,是我这次设计的深刻总结。
— —23
参考文献 参考文献
[1]楼然苗.单片机课程设计指导[M].北京:北京航空航天大学出版社.2007 [2]何立民.单片机实验与实践教程[M].北京:北京航空航天大学出版社.2004
[3]童诗白.模拟电子技术基础[M].北京:北京高等教育出版社.2001
[4]代启化.基于Proteus的电路设计与仿真[J].现代电子技术.2006(19) [5]张俊谟.单片机中级教程[M].北京:北京航空航天大学出版社.1999 [6]余永权. Flash单片机原理及应用[M].北京:电子工业出版社.1997 [7]唐国红.基于VC++的单片机编程器软件的设计[J].现代电子技
术.2007(08)
[8]余发山,单片机原理及应用技术:中国矿业大学出社.2003 [9] 河南理工大学电气学院:单片机实验报告指导册.2008
[10]刘法治,常用电子器件及典型芯片应用技术:机械工业出版社.2007 [11]何立民,MSC--51系列单片机应用系统设计:北京航空航天大学出版社.1993
[12]荀殿栋.数字电路设计实用手册.北京:电子工业出版社,2003.
[13] Vizimuller. RF design guide-systems, circuits, and equations [M]. Boston:Artech House.1995
[14] Keil Software. The Final World On the 8051[M]. Germany:Keil Elektronik Gmbh and Keil software.1997
[15]Atmel Microcontroller Handbook.2001
[16] B.Peter,J.Meehan,D.Miller.Sensor link protocol:linking sensor systems to the digital battlefield.Military Communications Conference,MILCOM 98.Proceedings IEEE,1998:919~923.
[17] V.Ajay Kumar.Overcoming data corruption in RS-485
communication.Electromagnetic Interference and Compatibility,1995,vol.3:9~12. [18]Li.Dongsheng.A design of a low cost high precision data acquisition system.Intelligent Control and Automation.2002.vol.4:2996~2999.
[19]H.Fujita.Environmental sensor.Instrumentation and Measurement
Technology Conference,Advanced Technologies in I & M.IEEE,1994:1513~1514. [20]Qian Dong,Jianying Xie.Field network implementation based on RS-485.Intelligent Control and Automation.2002.vol.4:2790~2793. [21]C.Svelto,G..Galzerano and E.Bava.Compact and accurate digital
thermomenter Based on Anderson’s loop and Pt-100 sensor.Measurement Journal of the International Measurement Confederation IMEKO.2001,No.2:56~58.
[22](英)Ian Graham. Object-Oriented Methods: Principles&Practice. Third
Edition. Pearson Education. 2003
— —24
参考文献 [23]李春葆等.Visual Basic程序设计.北京:清华大学出版设.2005
— —25
致谢 致谢
本设计在老师的悉心指导和严格要求下业已完成,从题目选择到具体的写作过程,无不凝聚着老师的心血和汗水,在我的毕设期间,老师为我提供了种种专业知识上的指导和一些富于创造性的建议,没有这样的帮助和关怀,我不会这么顺利的完成任务。在此我向老师表示深深的感谢和崇高的敬意。您严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从题目的选择到项目的最终完成,您都始终给予我细心的指导和不懈的支持。这些天以来,您不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向你们致以诚挚的谢意和崇高的敬意。
在此,我还要感谢在一起愉快的度过室友,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。
在论文即将完成之际,从开始进入课题到论文的顺利完成,有多少可敬的老师、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!谢谢你们!
— —26
附录 附录一
#include
code unsigned seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int m=2,n=0;//计时m为分,n为秒 int x=0,y=0;//甲乙两队得分
int i=0,j=0,jie=2,zidong=1,bujin=1,zanting=0; int chuzanting=0;
/*************延时********************/ void delay(int t) {
while(t--) {
unsigned int i; for(i=0;i<200;i++); } }
/**********数码管动态显示*************/ void display(int i,int j,int x,int y) {
if(jie==1&&bujin!=2) //中间变量jie==1时,为上半场,对P1赋值 灯
P2=0xfe;
//数码管动态刷新显示程序 P2=1111 1110,i为分钟
P0=seg[i0/10]; //刷新显示时间显示分钟十位,调用延时程序, delay(1); //延时数码管的点亮 P2=0xff; P0=0;
P2=0xfd; //同理,动态刷新时分钟个位并延时点亮 P0=seg[i]; delay(1); P2=0xff; P0=0;
P2=0xfb; //同理,动态刷新时秒钟十位并延时点亮
— —27
P1=0xbf; //P1=0xbf, 即P1=1011 1111B,点亮对应上半场指示
附录 P0=seg[j0/10]; delay(1); P0=0; P2=0xff;
P2=0xf7; //同理,动态刷新时秒钟个位并延时点亮 P0=seg[j]; delay(1); P0=0; P2=0xff;
P2=0xef;
P2=0xdf; //同理,动态刷新甲队分数个位并延时点亮 P0=seg[x]; delay(1); P2=0xff; P0=0;
P2=0xbf;//P2=0xbf; ,动态刷新乙队分数十位并延时点亮 P0=seg[y0/10]; delay(1); P2=0xff; P0=0;
//同理,动态刷新甲队分数十位并延时点亮
P0=seg[x0/10];
delay(1); P0=0; P2=0xff;
P2=0x7f; //同理,动态刷新乙队分数十位并延时点亮 P0=seg[y]; delay(1); P0=0; P2=0xff; }
/**********************************************/ void t0(void) interrupt 1 {
//调用定时器T0 基本计时单位秒
— —28
附录 TH0=(65536-20000)/256; //利用定时器T0,送入计数初值
TH0=0xb1; TL0=0x10;
TL0=(65536-20000)%6; //定时器定时单位为20毫秒
i++; //进入中断次数 if(i==50)
//利用中间变量i 令i值为50 50*20毫秒=1秒
{ }
{ //当秒减到0以后分钟减1 }
else n--;
//秒减1
n=59; if(m==0)
m=0; m--; else
if(n==0)
i=0;
}
display(m,n,x,y); //调用动态刷新显示程序 /********************加分**********************/ void keyjiafen1() if(RXD==0)
{ //调用延时子程序 实现消除按键抖动功能,即,当 delay(1); //检测到按键按下时候,延时,按键仍按下,说明按键 if(RXD==0) //确实按下,非抖动,甲队对应加分 {
while(RXD==0); x++; }
///等待松手
//加分按键子程序,在主程序中不断调用该子程序
{ //当检测到甲队加分按键按下时,对应加分
}
if(TXD==0) //同理,检测乙队加分按键时候按下,并加分 {
delay(1); if(TXD==0)
{
while(TXD==0);
— —29
附录 }
y++; }
}
/**************减分*******************/ void keyjianfen1() 加 { }
void key2() {
if(INT0==0)
{ //在比赛中有时经常需要回表,故写此程序
delay(1);
//显示时间调整程序,即回表和快表
if(WR==0) //相同 {
delay(1); if(WR==0) {
while(WR==0); if(x==0)
else
x--; x=0;
//减分按键检测子程序,其基本算法及功能与
}
} if(RD==0) {
delay(1); if(RD==0)
{
while(RD==0);
if(y==0) else
y--; y=0;
} }
— —30
附录 if(INT0==0) //回表子程序,检测到INT0按下时,使时间回倒 chuzanting=0;
// chuzanting==0; zanting=1;为附加变量,当回表按键
{
zanting=1; //松开时,表暂停,这两个变量用来调用暂停
if(m==2) { m=2;
n=0;
}
else if(n==59) {
m++; n=0; }
else n++;
} } if(INT1==0) { delay(10); if(INT1==0) {
chuzanting=0;
zanting=1; if(n==0) { if(m==0) { m=0; n=0;
} else
{ m--; n=59; }
}
//快表子程序,检测到INT1按下时,使倒计加快, //通常情况下与回表子程序配合使用,即当回表 //回过的时候,按此键调整时间
// chuzanting==0; zanting=1;作用同上 —31
—
附录 }
}
else n--;
}
/******************************************/ void shijian()//回表和快表按键松开时候能自动暂停 {
if(zanting==1&&INT0==1&&INT1==1&&chuzanting==0) {
EA=0;
zanting=0;
chuzanting=0;
{
display(m,n,x,y);
while(1)
if(P1_0==0) {
delay(1); if(P1_0==0) {
while(P1_0==0);
} } } } }
/**************交换场地,换分******************/ void key3() {
int temp1,temp2; //定义中间变量temp,检测到有按键按下时候 if(zidong==1&&jie==1) //交换甲队,乙队比赛分数 {
temp1=x; // zidong==1&&jie==1是判断半场的条件 //
temp2=y;
y=temp1;
//半场交换场地时自动交换双方比赛分数子程序 EA=1; break;
— —32
附录 x=temp2;
display(m,n,x,y); zidong=0; }
/******************比赛暂停子程序***********************/ void key4() {
if(P1_0==0) //检测到暂停按键按下时候,令EA=0关闭中断 {
delay(1); //同通过死循环程序while(1),不断刷新数码管 if(P1_0==0) //当暂停键再次按下时候,开中断,以使比赛时间 { //继续倒计时,由于在暂停的时候,程序处于死循 while(P1_0==0);
EA=0; //无法回到主程序,故主程序中检测按键按下的 while(1) //无法回到主程序,即实现了暂停时,除了暂停键
{ //其他按键按下均无效 display(m,n,x,y); if(P1_0==0)
{ //当暂停键再次按下时候,EA=1开中断,计时数码管 delay(1); //继续倒计时,同时通过break语句,跳出死循环 if(P1_0==0) {
while(P1_0==0); EA=1; break; } }
} } } }
/**************比赛结束及及点亮下半场指示灯程序*****************/ void over() {
bujin=0;
}
— —33
附录
int k=1000;
if((m==0)&&(n==0)) //当m,n均为0的时候,通过变量jie的值判断比赛
//如果jie>1,说明半场到了,比赛没有结束,
{ //是否结束 if(jie>1)
T1=1;
while(k--) { } T1=0; k=7000; {
m=2;
display(m,n,x,y);
display(m,n,x,y); //不断刷新数码管
EA=0;
{ //jie--,关中断,再次按下暂停键时候继续倒计时
while(P1_0==1)
n=0;
}
if(P1_0==0)
{
delay(1); if(P1_0==0) {
while(P1_0==0); EA=1; } } }
jie--;
if(jie==1&&bujin==2) //如果jie==1&&bujin==2,说明比赛结束了,令EA=0,
m=0;
EA=0;
P1=0x3f;
// P1=0x3f上下半场指示灯同时点亮,比赛结束
{ EA=0; //全场比赛结束蜂鸣器开始报警
n=0;
— —34
附录 }
T1=1;
// 主程序
while(k--) {
display(m,n,x,y); } T1=0; k=7000;
//不断刷新数码管
} }
void main() {
TMOD=0x01; //设置定时器工作方式
EA=1; ET0=1;
TH0=0xb1; //定时器送计数初值,EA=1,开中断,P3口电平拉高 TL0=0x10; // P1=0x7f, 上半场指示灯点亮 TR0=1;
P3=0xff; P1=0x7f; while(1)
{ //通过 while(1),反复调用循环体内的子程序 }
keyjiafen1(); //执行相应的功能 keyjianfen1();
if(zidong==1) //zidong==1为key3()执行条件,仅当半场结束时候执行
key3();
if(n==18&&bujin==0) {
bujin=2; //修改变量bujin的值,设定over()中第二个if语句的执行条件 } key4();
T1=0;
key2();
shijian(); over();
— —35
正在阅读:
东北大学电子信息专业毕业论文 - 图文05-20
大学生心理健康教育教案08-18
2011毕业生实习调研报告05-14
纯化水系统改造工程URS - 图文11-08
跨越110kV线路施工方案 - 图文05-06
火药是谁发明的02-19
数值分析实验报告05-28
基于单片机的GPS轨迹记录系统-毕业设计 - 图文04-20
六年级下册语文单元复习11-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 东北大学
- 毕业论文
- 图文
- 专业
- 电子
- 信息
- 2016年8月30日GMAT考试每日一练(逻辑题)
- 人教版三年级下册数学期中考试试卷 2
- 西安交通大学高等数学期中考题 (2)
- 人教版一年级下册语文期中测试题及参考答案3()
- 食品微生物选择填空复习题
- 质控部工作计划
- 玄武湖公园及南林校园花卉 - 图文
- 高速铁路6跨一联连续梁施工工法 - 图文
- 18学年高中数学第二章平面向量2.4平面向量的基数量积教学案新人
- 基础化学开放实验(有机)指导书-学生
- XX关于干部人事纪律问题专项整治工作方案
- 高中地理中图版必修二模块测试试题含答案
- 2010英语专四词汇与语法模拟练习九
- 水泵房自动化控制方案-P 2(1)汇总
- 廉政感言
- FZt-CTC型分散自律调度集中系统操作手册(车站)
- 青海省平安县第一高级中学2018届高三(B班)上学期周练2物理试题
- 物业经营管理成本测算
- 2004年海南省环境状况公报
- 18版高中数学第二章平面向量2.2.3向量数乘运算及其几何意义学案