毕业设计(论文)基于单片机的篮球比赛计时计分系统.doc
-
资源ID:4050926
资源大小:1.78MB
全文页数:52页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业设计(论文)基于单片机的篮球比赛计时计分系统.doc
第一章 设计方案比较1 设计方案的选择和论证本次篮球比赛计时/计分和实时时钟系统设计功能较多,用单片机的最小系统就难以实现。而单片机的最小系统设计中实际上最重要的就是对键盘/显示器接口电路的设计,由于系统功能不同所以要求就不同,接口设计也就不同。对一个键盘/显示器接口设计应从整个系统出发,综合考虑软、硬件特点。下面是本人在设计前对各种设计方案的考虑:1.1利用硬件电路实现采用芯片74LS192(十进制同步加/减计数器)、NE555(秒脉冲发生器)以及辅助电路等组成。设计中秒脉冲发生器是采用555集成电路组成的多谐振荡器构成,通过计算来产生比较准确的1秒脉冲。译码显示电路用CD4511和共阴极七段LED数码管组成,报警电路在实验中用发光二极管代替。该方案能较准确的显示比赛时间和比分,但是有众多的不足。例如:电路中用到的芯片较多,无法简化设计方案。1.2利用单片机系统实现单片机系统核心部件采用MCS51系列单片机。同时利用外围模块化电路来实现。由单片机来进行计时/记分,由外围电路如DS1302实现实时时钟系统的控制。利用单片机系统的优点是可以准确的显示比赛时间和比分,同时利用软件执行相关功能的执行速度上远优于硬件电路,而且准确度高。在电路方面相对简单。缺点是对内部的软件要求较高,不适合大范围推广。本次设计利用的单片机是AT89S52。计时/计分显示采用动态显示方式,或静态显示方式即采用74LS164、74LS259或专用显示处理芯片AMT9094静态锁存显示数据,经功率放大,驱动数码管显示计时/计分数据。实时时钟芯片采用DS1302,为系统提供时间信息;年、月、日、时、分、秒和星期等信息。操作键盘按控制要求设计成专用键盘,采用有线控制方式。显示电路采用0.8in (1in=2.54cm)数码管,操作按键为微动开关直接控制单片机作为输入信号。实际系统采用20in数码管显示计时/计分数据。 硬件系统框图和硬件系统原理图见图1。图1-1硬件系统设计第二章 篮球比赛计时/计分和实时时钟系统工作原理篮球比赛计时/计分和实时时钟系统设计的运行主要是利用单片机定时/计数器的工作和中断服务的作用完成计时功能的。首先时钟电路产生单片机工作时所需要的时钟脉冲信号,这是单片机能够正常工作的前提,而单片机有无定时的基础以及定多长的时间,这些还需要我们人为去确定。电子钟的时钟要运行,首先要有“秒”的计时,因为单片机内部是没有规定的“秒”的概念。同时它工作在不同的工作方式时,它的计数初值也是不同的。这就要我们人为首先计算出计数的初值了,这就可以实现所谓的定时了。如果单片机的定时时间到了的话,那么单片机会自动地产生中断使程序转向中断服务程序执行,中断服务程序执行完了就会返回主程序,等待下一次定时时间的到来再产生中断。在此基础上,单片机就会按照人为设定的程序执行下去,从而使单片机能计算其他的时间量。当然,本次设计单片机要执行多种不同的计时功能,还需要选择多种不同的工作方式,这样才不会使单片机产生混乱。因为本次设计需要单片机完成的任务较多,而单片机的定时/计数器有限。为节省宝贵的单片机资源,我们选用DS1302时钟芯片完成实时时钟系统。 DS1302时钟芯片包括:实时时钟/日历,31字节的静态RAM和慢速充电控制。它经过一个简单的串行接口与单片机通信。实时时钟/日历提供秒、分、时、日、星期、月和年等信息,每月天数以及闰月能自动调整,时钟可以采用24h或AM/PM的12h格式;31字节的静态RAM用于存放数据;带慢速充电控制备份电源的充电特性。该芯片使用同步串行通信。 在本次设计中首次采用了看门狗(WATCHDOG)电路。看门狗(WATCHDOG)电路是自行监测系统运行的重要保证硬件看门狗是真正意义上的“程序运行监视器”,如计数型的看门狗电路通常由555多谐振荡器、计数器以及一些电阻、电容等组成,分立元件组成的系统电路较为复杂。第三章 总体电路的设计 篮球计时/计分器和实时时钟系统主体电路主要由电源电路、复位电路、时钟电路、键盘电路、驱动电路、显示电路这六部分组成。3.1电源电路常用小功率直流稳压电源电路由电源变压器、整流电路、滤波电路、稳压电路等四部分组成,如图3-1所示。 图3-1 直流稳压电源基本电路框图(1)电源变压器电源变压器作用是将电网220V的变流电压V1变换成整流滤波电路所需的变流电压V2。变压器副边与原边的功率比P2/P1=,式中为变压器的效率。(2) 整流滤波电路整流电路将交流电压变成单向脉动的直流电压;滤波电路用来滤除整流后单向脉动电压中的交流成份,合之成为平滑的直流电压。常用的整流电路有全波整流电路、单相半流整流电路、桥式整流电路、及倍压整流电路。小功率直流电源因功率比较小,通常采用单相交流供电。由于桥式整流电路克服了半波整流的缺点,在桥式整流电路中,由于每两只二极管只导通半个周期,故流过每个二极管的平均电流仅为负载电流的一半,与半波整流电路相比较,其输出电压提高,脉动成分减小了。但是为了获得平滑的直流电压,常在整流电路的后面加接滤波电路,以滤去交流成分。滤波电路常见的有电容滤波电路(主要利用电容两端电压不能突变的特性,使负载电压波形平滑,故电容应与负载并联)、电感滤波电路及型滤波电路。本设计采用电容滤波电路。(3)稳压电路稳压电路的作用是当输入交流电源电压波动、负载和温度变化时,维持输出直流电压的稳定。常用的是三端式稳压器。三端式稳压器有两种,一种称为固定输出三端稳压器,另一种称为可调输出三端稳压器。三端式稳压器均采用串联型稳压电路。三端固定输出集成稳压器常见的产品有CW78系列和CW79系列。CW78系列:正压系列。该系列稳压块有过流、过热和调整管工作保护,以防过载而损坏。一般不需要接元件即可工作,有时为改善性能也加少量元件。CW79系列:负压系列。与CW78系列相比,除了输出电压极性、引脚定义不同外,其他特点都相同。在实际设计中要根据稳压电源的技术指标进行设计和选择。(1)稳压电源的技术指标分为两种一是特性指标:包括允许的输入电压、输出电压、输出电流及输出电压调节范围等;另一种是质量指标,用来衡量输出直流电压的稳定程度,包括稳压系数(或电压调整流器率)、输出电阻(或电流调整率)、温度系数及纹波电压等。(2)参数的计算及选择根据上述的性能指标,选择合适的电源变压器、集成稳压器、整流二极管及滤波电容就可以进行电源的设计了。因此这里介绍的是输出为+5V的电源的设计(其他的计算原理与之相同)根据要求V0=+5V,稳压系数在0.2%,故可先用集成稳压(W7805)。W7805的稳压差为U1U22V,所以根据公式U1=(23)+U2,现在为了留有余量,取3V,其输入电压为U1=5+3=8V。稳压器的输入电流即为整流滤波电路的负载电流,故I1=I0(max)+ID=300+8=308mA。由变压器副边电压: 令取U2=7V整流二极管和滤波电参数确定:正向平均电流: 最大反向电压: URMUR(max)=2U2=10V所以整流二极管选用其耐压值为50V,最大整电流为1A的整流器流管IN4004。滤波电容的参数计算: 因此,取C=2200F电容的耐压:取UCM25V,故滤波电容参数为C:2200F/25V副边电流有效值:IZ=(1.52) IL=(1.52)×308=462616mA取IZ为500 mA电源变压器容量:副边容量:P2=U2I2=7×0.5=3.5VA原边的容量: 取T=0.6 故平均容量为: 因此取P=10VA(3)设计电源使用的器件的介绍电源变压器:使220V的交流电压变换成桥式整流电路所需要的交流电压U1=10V。整流滤波电路:使交流电压U1转换成波动直流电压。再经过滤波电容滤除纹波,输出直流电流。二极管:保护稳压器。图3-2 直流电源原理图器。型号中最后两位数表示输出电压的稳定值,有5V、6V、9V、12V、18V、和24V。在此次设计中,我们就做了一个5V的稳压直流电源,用于给单片机的正常工作提供电压。电源电路的总设计图如图3-2所示:3.2 时钟电路 时钟信号通常由两种方式产生:一是内部振荡方式,二是外部时钟方式。时钟电路原理图如图3-3所示,在单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。并在单片机内部产生时钟脉冲信号。电容C1和C2一般取30pF左右,作用是稳定频率和快速起振,而晶体的振荡频率范围通常是1.2MHz-12MHz,晶体振荡频率高,则系统的时钟频率也高,单片机运行的速度也就快。但反过来运行速度快对存储器的速度要求就高,对印刷电路板的工艺要求也高。 外部时钟方式是把外部已有的时钟信号引入到单片机内。此方式常用于多片单片机同时工作,以便于各单片机的同步。一般要求外部信号高电平的持续时间大于20ns,且为频率低于12MHz的方波。 图3-3 时钟信号电路3.3 看门狗电路看门狗(Watchdog)电路是嵌入式系统需要的抗干扰措施之一。本文用X25045芯片设计了一种新的看门狗电路,具有体积小、占用I/O口线少和编程方便的特点,可广泛应用于仪器仪表和各种工控系统中。看门狗电路一般有软件看门狗和硬件看门狗两种。软件看门狗不需外接硬件电路,但系统需要出让一个定时器资源,这在许多系统中很难办到,而且若系统软件运行不正常,可能导致看门狗系统也瘫痪。硬件看门狗是真正意义上的“程序运行监视器”,如计数型的看门狗电路通常由555多谐振荡器、计数器以及一些电阻、电容等组成,分立元件组成的系统电路较为复杂,运行不够可靠。X25045硬件连接图如图2所示。X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。在看门狗定时器预置的时间内若没有总线活动,则X25045将从RESET输出一个高电平信号,经过微分电路C2、R3输出一个正脉冲,使CPU复位。图2电路中,CPU的复位信号共有3个:上电复位(C1、R2),人工复位(S、R1、R2)和Watchdog复位(C2、R3),通过或门综合后加到RESET端。C2、R3的时间常数不必太大,有数百微秒即可,因为这时CPU的振荡器已经在工作。看门狗定时器的预置时间是通过X25045的状态寄存器的相应位来设定的。如表2所示,X25045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。 图3-4 X25045看门狗电路硬件连接图 3.4 显示接口电路显示接口电路设计的原理图如下图3-5所示: 图图3-5 显示接口电路单片机应用系统最常用的显示器是LED(发光二极管显示器)、LCD(液晶图3-6 七段LED显示器原理图显示器)。这两种显示器可显示数字、字符及系统的状态。它们的驱动电路简单、易于实现且价格低廉,因此,得到了广泛应用。本次设计只要显示6位数字,不需显示图形或字符,因而采用七段数码管做显示器。LED显示器有共阴极与共阳极两种结构,如图3-6所示。共阴极LED显示块的发光二极管阴极并接,如图中(a)所示,当某个发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED显示块的发光二极管则阳极并接,如图中(b)所示, 当发光二极管的阴极为低电平时,发光二极管点亮。 七段显示块与单片机接口非常容易。只要将一个8位并行输出口与显示块的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如表1所示。通常将控制发光二极度管的8位字节数据称为段选码。显示器的共阳极和共阴极的公共连接点为位选位。共阳极和共阴极的段选码互为补数,即互为反码。LED显示工作方式可分为静态显示和动态显示。在静态显示方式下,共阴极应固定接地,共阳极应固定接高电平。我们采用的是利用8051芯片I/O口构成键盘/显示接口电路,为简化电路,降低成本,显示将采用动态显示。在动态显示中将所有相同位的段控线并联在一起,由一个I/O口线控制,8段由8个I/O口控制,而共阴极点或共阳极点分别由相应的I/O口线控制。LED动态显示电路只需要两个8位I/O口。其中一个8位I/O口控制段控码,另一个8位I/O口控制位选。由于所有段控码都由一个8位I/O控制,因此,在同一瞬间,6只LED都会显示相同的字符。要想每位显示不同的字符,必须采用扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,段选控制I/O口输出相应字符段选码,位选控制I/O口在该显示位送入选通电平(共阴极送低电平,阳极送高电平)以保证该位显示相应字符。表3-1七段LED显示器的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0Hb7CH83H106HF9HC39HC6H25BHA4Hd5EHA1H34FHB0HE79H86H466H99HF71H8EH56DH92HP73H8CH67DH82HU3EHC1H707HF8H31HCEH87FH80HY6EH91H96FH90H8.FFH00HA77H88H“灭”00HFFH3.5 键盘电路 键盘采用独立式键盘采用8键。其电路图如图3-7所示:此键盘与AT89S52的P2脚相连。图3-7 独立式键盘电路 独立式键盘实际上是一组相互独立的按键,这些按键可直接与单片机的I/O口连接。即每个按键独占一条口线,接口简单。从按一个键到键的功能被执行主要包括两项工作:一是键的识别,即从键盘中找出被按的是哪个键,另一项是键功能的实现。第一项工作是使用接口电路实现的,而第二项工作则是通过执行中断服务程序来完成。具体的说,键盘接口应完成以下操作功能:A) 键盘扫描,以判定是否有键被按下(称之为“闭合键”)。B) 键识别,以确定闭合键的行列位置。C) 产生闭合键的键码。D) 排除多键、串键(复按)及去抖动。这些内容通常是以软硬件结合的方式来完成的,即在软件的配合下由接口电路来完成。但具体那些由硬件完成那些由软件完成,要看接口电路的情况。总的原则是,硬件复杂软件就简单,硬件简单软件就复杂。 在此次设计过程中,在考虑到单片机内部的储存器的空间有限且要将P1口留下作为无线遥控的扩展口,因此采用了8个键的独立式键盘。考虑到用在如此少的键要完成如此多的功能因此在设计时将S1,S2,S3,S4,S5,S6,S7,S8进行了相互嵌套。S1作为此次与外部中断的最高级,它作为计分程序的控制键,按下它后程序先判断是不是S1按下,确定是以后程序再一次调用键扫子程序来判断有没有其他的键按下,如果是S2则转向主客队的查询,以便确定是哪个队记分。如果没有键按下则对主队记分,如果有键按下则对客队记分。此次后程序将再一次调用键扫子程序从而判断如果是 S4则加一分,如果是S5则加两分,如果是S6则加三分,如果是S7则减一分。如果有S8按下则对客队进行上一轮操作。S2是程序计时控制键,程序在判断到S2控制键后自动启动进攻24秒计时,同时程序将查询S7、S8是否按下,如果S7按下则将存储器清零重新开始计时进攻24秒计时。如果是S8按下则暂停计时,同时程序将判断S8是否按下两次,是则继续计时,否则继续等待。S3是实时电子钟系统的控制键程序判断到S3按下则显示电子时钟信息。第四章 主要器件介绍4.1 单片机AT89S52AT89S51 是一种低功耗,高性能的CMOS 8位微型计算机。它带有16K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容。它集Flsah程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S52单片机可为我们提价许多高性价比的应用场合,可灵活应用于各种控制领域。引脚排列如图4-1所示。 图4-1 AT89S52引脚图 AT89S52提供以下标准功能:8k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89S52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 AT89S52单片机集成在一块小芯片上,有一台微型计算机的各个部分,包括CPU、存储器、I/O口、定时器/计数器、中断系统等。AT89S52的封装形式有40引脚双列直插式填封装方式和44引脚封装方式。方型封装有4个引脚(标有NC)是不连线的,故在连接时应注意。下面分别叙述各引脚功能。(1)VCC:电源电压(2)GND:地线表4-1 AT89S52Flash单片机特点表中断可从空闲模唤醒系统看门狗(WDT)及双数据指针全静态工作模式:0Hz-33MHz三级程序加密锁兼容MCS-51指令系统4k字节在线系统编程(ISP)Flash闪速存储器1000次擦写周期4.0-5.5的工作电压范围128×8字节内部RAM32个可编程I/O口线2个16位定时/计数器6个中断源掉电标识和快速编程特性灵活的在系统编程(ISP-字节或页写模式)全双工串行UART通道低功耗空闲和掉电模式(3)P0口:是一个8位漏极开路的双向I/O口。作为输出口,每个引脚可驱动8个TTL逻辑门电路。当把“1”写入P0口的引脚时可作为高阻输入端。当访问外部程序存储器和数据存储器时,P0口也可作为复用的地址/数据总线。在此状态下,P0口有内部上拉电路。在Flash 编程时,P0口接收代码字节,而在程序校验时,输出代码字节。在程序校验期间,需要外部接上拉电路。(4)P1口:是一个具有内部上拉电路的8位双向I/O口。P1口的输出缓冲器能够吸入/放出4个TTL逻辑门电路。当对P1口的引脚写“1”时,它被内部上拉电路拉高,并能作输入使用,作为输入时,由于上拉电路的作用,由外部拉低的P1口引脚将放出电流(IIL)。 P1口在Flash编程和校验期间,接收低8位地址。它的部分引脚的第二功能如表4所示。表4-2P1口的第二功能表端口引脚第二功能P1.5MOSI(用于ISP编程)P1.6MISO(用于ISP编程)P1.7SCK(用于ISP编程)(5)P2口:是一个具有内部上拉电路的8位双向I/O口,P2口输出缓冲器能吸入/放出4个TTL逻辑门电路。当对P2口引脚写“1”时它们被内部上拉电路拉高,并能作为输入使用,此时,由于内部上拉电路的作用,被外部拉低的P2口引脚将放出电流(IIL)。当访问外部程序存储器及使用16位地址的是数据存储器(MOVXDPTR)时,P2口输出高8位地址。这种情况下,当不置“1”时,P2口使用强大的内部上拉电路。当访问使用8位地址的外部存储器(MOVXRI)时,P2口输出P2口锁存器的内容。(6)P3口:是一个具有内部上拉电路的8位双向I/O口,P3输出缓冲器能吸入/放出4个TTL逻辑门电路。当对P3口引脚写“1”时,则它们被内部上拉电路拉高,并能作为输入使用。此时,由于内部上拉电路的作用,被外部拉低的P3口引脚将放出电流(IIL)。P3口也提供AT89S52各种专用功能,见表4-3表4-3 AT89S52的P3口各种专用功能表端口引脚替代的专用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)在Flash编程及检验期间,P3口还可以用于Flash闪速存储器编程和程序校验的控制信号。(7)RST:复位端。当振荡器工作时,此引脚上出现两个机器周期的高电平将系统复位。(8)ALE/ :当访问外部存储器时,ALE(允许地址锁存)是一个用于锁存地址的低8位字节的时钟脉冲。在Flash 编程期间,此引脚也可用于输入编程脉冲()。在正常操作情况下,ALE以振荡器频率的1/6的固定速率发出脉冲,它是用作对外输出的时钟,需要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。如果希望禁止ALE操作,可通过将特殊功能寄存器中位地址为8EH那位置的“0”来实现。该位置的“1”后。ALE仅在MOV或MOVC指令期间激活,否则ALE引脚将被略微拉高。若微控制器在外部执行方式,ALE禁止位无效。(9):外部程序存储器读选取通信号。当AT89S51在读取外部程序时, 每个机器周期 将PSEN激活两次。在此期间内,每当访问外部数据存储器时,将跳过两个信号。(10)/Vpp:访问外部程序存储器允许端。为了能够从外部程序存储器的0000H至FFFFH单元中取指令,必须接地,然而要注意的是,若对加密位1进行编程,则在复位时,的状态在内部被锁存。执行内部程序应接VCC。不当选择12V编程电源时,在Flash编程期间,这个引脚可接12V编程电压。(11)XTAL1:振荡器反向放大器输入端和内部时钟发生器的输入端。XTAL2:振荡器反相放大器输出端。4.2 低功耗带RAM实时时钟芯片DS13021)特性。DS1302时钟芯片包括:实时时钟/日历,31字节的静态RAM和慢速充电控制。它经过一个简单的串行接口与单片机通信。实时时钟/日历提供秒、分、时、日、星期、月和年等信息,每月天数以及闰月能自动调整,时钟可以采用24h或AM/PM的12h格式;31字节的静态RAM用于存放数据;带慢速充电控制备份电源的充电特性。该芯片使用同步串行通信。与时钟/RAM通信仅需三根线:/RST(复位);I/O数据线;SCLK(串行时钟)。数据可以以每次一个字节或多字节的形式传送至时钟/RAM或从其读出。DS1302的引脚及内部结构如图4-2所示,引脚功能如表4-4所示。内部主要有移位寄存器、控制逻辑、振荡器、实时时钟和RAM等组成。2)工作原理及使用。对芯片的读写操作,首先必须置/RST为高电平,并且把提供地址和命令的8位信息装入移位寄存器中,数据输入时,数据位在SCLK的图4-4 DS1302引脚及内部电路图上升沿必须有效;而数据输出时,数据位是在时钟的下降沿有效。数据操作完成,置/RST为低电平,这时数据传送中止,且I/O引脚呈高阻态,当把/RST置逻辑1状态时,SCLK必须为逻辑0。表4-4 DS1302引脚功能表引脚号引脚名称功 能1VCC2主电源2.3X1.X2振荡源,外接32768HZ晶振4GND地线5RST复位/片选线6I/D串行数据输入/输出(双向)7SCLK串行数据输入端8VCC1后备电源芯片的操作,受地址/命令字节控制,每一数据的传送由命令字节开始。地址/命令字节格式如表4-5所示。表4-5地址命令格式1RAM CKA4A3A2A1A0RD W最高位MSB(D7)必须为逻辑1,D6为逻辑0指定时钟/日历数据,逻辑1指定RAM数据,D5-D1指定输入/输出的特定寄存器。最低有效位LSB(D0)为逻辑0指定进行写操作(输入),逻辑1指定进行读操作(输出)。命令字及总是从最低有效位LSB(D0)开始输入,跟随在输入写命令字节的8个SCLK周期之后,在下8个SCLK周期的上升沿输入数据字节,数据从LSB(D0)开始;跟随在输入读命令字节的8个SCLK周期的下降沿输出数据字节。多字节方式:通过对地址31(十进制)寻址(地址/命令D5-D1置逻辑1),可以把时钟/日历或RAM寄存器规定为多字节方式(BURST),这时,D6选择时钟/日历或RAM。D0选择读或写操作。在多字节方式中,读或写从地址0的D0开始。3)数据字节定义。时钟/日历数据字节定义:时钟/日历包含7个读/写寄存器内,数据以二-十进制(BCD)码形式存放。其中: 秒寄存器的CH:时钟停止位,CH=0:振荡器工作允许; CH=1:振荡器停止。 小时寄存器的BI1T7:12/24h 标志, BIT7=1:12h标志,这时BIT5=1:上午模式 BIT5=0:下午模式 BIT7=0:24h标志,这时BIT5是第2个10h位(20-23)时 写保护寄存器的BIT7是写保护位,开始7位(位60)置为0,在读操纵时总是读出0,在对时钟或RAM进行写操作之前,位7必须为0,当它为高电平时,写保护位防止对任何其他寄存器进行写操作。 时钟/日历命令字节可规定多字节工作方式,在此方式下,前8个时钟/日历寄存器可以从地址0的第0位开始连续地读或写。在写保护状态下,多字节写无效。DS1302 的控制字如表4-5所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示要进行读操作,控制字节总是从最低位开始输出。DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表4-6。表4-6 DS1302的日历、时钟寄存器及其控制字寄存器名命令字取值范围个位内容写操作读操作76543210秒寄存器80H81H00-59CH10 SECSEC分钟寄存器82H83H00-59010 MINMIN小时寄存器84H85H01-12或00-2312/24010/APHRHR日期寄存器86H87H01-30,310010 DAYDATE月份寄存器88H89H01-120001QMMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910 YEARYEAR此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。4.3 X25045芯片简介X25045是美国Xicor公司的生产的标准化8脚集成电路,它将EEPROM、看门狗定时器、电压监控三种功能组合在单个芯片之内,大大简化了硬件设计,提高了系统的可靠性,减少了对印制电路板的空间要求,降低了成本和系统功耗,是一种理想的单片机外围芯片。X25045引脚如图4-5所示。图4-5 X25045引脚图其引脚功能如下。CS:片选择输入;SO:串行输出,数据由此引脚逐位输出;SI:串行输入,数据或命令由此引脚逐位写入X25045;SCK:串行时钟输入,其上升沿将数据或命令写入,下降沿将数据输出;WP:写保护输入。当它低电平时,写操作被禁止;Vss:地;Vcc:电源电压;RESET:复位输出。X25045在读写操作之前,需要先向它发出指令,指令名及指令格式如表1所示。表4-7 X25045指令及其含义WD10,WD0=0,预置时间为1.4s。WD10,WD0=1,预置时间为0.6s。WD11,WD0=0,预置时间为0.2s。WD11,WD0=1,禁止看门狗工作。看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。编程时,可在软件的合适地方加一条喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,用软件陷阱等别的方法无法捕捉回程序时,则看门狗定时时间很快增长到预置时间,迫使系统复位。以下是C语言编写的看门狗程序部分。#include "reg51.h"sbit cs=P12;/*片选信号由P1.2产生*/sbit sck=P13; /*时钟信号由P1.3 产生*/sbit si=P10; /*SI由P1.0产生*/sbit so=P11; /*SO由P1.1产生*/sbit c=ACC7; /*定义位变量*/bdata unsigned char com;void tran() /*发送一字节数据子函数*/unsigned char i;for(i=0; i<8; i+) ACC=com; /*将数据放入a中*/si=c;sck=0; /*sck产生一个上跳变*/sck=1;com=com<<1; /*左移一位*/return;main()com=0x06; /*发写读使能命令*/cs=0;tran();cs=1;com=0x01; /*发写状态字命令*/cs=0;tran();com=0x00; /*定时1.4s*/tran();cs=1;.;系统正常运行的程序部分需要注意的是,在程序正常运行的时候,应该在适当的地方加一条喂狗指令,使系统正常运行时的定时时间达不到预置时间。系统就不会复位。喂狗指令如下。main().;系统正常运行的程序部分cs=0; /*产生cs脉冲*/cs=1;X25045的看门狗电路使用十分方便。X25045内部还集成了512BEEPROM和电压运行监视系统,只需这样一块芯片,外加晶振和复位电路就可以组成单片机的应用系统,非常适合于便携式仪器和嵌入式系统的设计。第五章 程序设计思路与程序流程图5.1程序设计思路实时时钟系统的运行主要是利用单片机定时/计数器的工作和中断服务的作用完成计时功能的。首先时钟电路产生单片机工作时所需要的时钟信号,这是单片机能够正常工作的前提,而单片机有无定时的基础以及定多长的时间,这些还需要我们人为的确定。钟表的时钟要运行,首先要有“秒”的计时,因为单片机内部是没有规定的“秒”的概念。同时它工作在不同的工作方式时,它的计数初值也是不同的。这就要我们人为首先计算出计数的初值了,这就可以实现所谓的定时了。如果单片机的定时时间到了的话,那么单片机会自动地产生中断使程序转向中断服务程序执行,中断服务程序执行完了就会返回原程序,等待下一次定时时间的到来再产生中断。在此基础上,单片机就会按照人为设定的程序执行下去。使单片机能计算其它时间量。记分系统的运行是利用程序扫描键盘后按照先查是主队还是客队加减分,然后再查询是加1分、加2分、加3分还是减1分的操作。因此首先要定义键盘各个键的功能和相应的键值。同时此时的进攻24秒时间还在计时因此要分配单片机定时/计数器,以免造成程序崩溃。程序扫描键盘后得到相应的键值就可以调用相应的加减操作。对于上下半场交换场地后交换比分,可以用一个中间储存单元,例如:累加器A,先将主队的显示缓冲区一个单元的内容给A,再将客队相应单元的传递过去最后将A的内容给客队相应的单元,如此类推即可完成比分的交换。5.2 程序设计流程图5.2.1 主程序流程图图5-1 主程序设计流程图5.2.2 24秒计时程序流程图图5-2 24秒计时程序流程图5.2.3 加减分程序流程图图5-3 加减分程序流程图5.2.4 DS1302时钟程序流程图图5-4 DS1302时钟程序流程图5.2.5 键扫子程序流程图 图5-5键扫子程序流程图5.2.6 显示子程序流程图扫描达8次返回据显示缓冲区字型序列号查表得字段码送字段码到P0口送位控码到P2口延时2毫秒改变字段码序列改变位控码现场恢复NY现场保护图5-6 显示子程序流程图结束语回顾百年来电子技术和电子工业发展的成就,举世瞩目。可以看到,从国民经济到日常生活中的各个方面,电子产品无处不在,具体事例无庸枚举,其发展前景未可限量。毕业设计课题选择篮球比赛计时/计分和实时时钟系统设计有着重大的意义。它能够使我们学生掌握模拟电子电路及数字电子电路的设计方法,以及单片机的相关知识,从而真正获得一技之长,以利于今后自身的发展。该设计具有篮球比赛计时/计分和实时时钟系统。其硬件部分共包括电源电路、实时时钟系统、键盘操作、单片机控制、数码管显示等五个主要组成部分。设计的总体思路是首先实时时钟系统的控制,接下来是主芯片AT89S52对键盘扫描判断其要执行的程序,再者对自身的计时判断,最后完成相应的操作并