基于单片机的数字时钟设计.doc_第1页
基于单片机的数字时钟设计.doc_第2页
基于单片机的数字时钟设计.doc_第3页
基于单片机的数字时钟设计.doc_第4页
基于单片机的数字时钟设计.doc_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品1 引言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。而时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。除此之外,由于对社会责任的更多承担,人们要求所设计的产品能够产生尽量少的垃圾、能够消耗尽量少的能量。因此人们对时钟的又有了体积小、功耗低的要求。传统的机械表由于做工的高精细要求,造价的昂贵,材料的限制,时间指示精度的限制,使用寿命方面,以及其它方面的限制,已不能满足人们的需求。另外,近些年随着科技的发展和社会的进步,人们对时钟的要求也越来越高,而使得新型电子钟表成了大势所趋。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。在电子技术高速发展推动下微机开始向社会各个领域渗透同时大规模集成电路获得了高速发展,单片机的应用正在这时不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。这正符合了现代时钟的设计要求。另一方面,电子技术的高速发展,有力地推动了社会生产力的发展和社会信息化程度的提高,这些使时间显得更加宝贵,从时间就是生命,时间就是效率这些名言警句中就能看出。1.1 数字时钟的意义数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。1.2 设计目的数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。此次设计与制作数字电子钟的目的是让学生在了解数字钟的原理的前提下,运用刚刚学过的数电知识设计并制作数字钟,而且通过数字钟的制作进一步了解各种在制作中用到的中小规模集成电路的作用及其使用方法。由于数字电子钟包括组合逻辑电路和时序电路,通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法,从而实现理论与实践相结合。总的来说,此次课程设计,有助于我们对电子线路知识的整合和电子线路设计能力的训练,并为后继课程的学习和毕业设计打下一定的基础。1.3 设计任务设计指标:1.时间计数电路采用24进制,从00开始到23后再回到00。2.可以显示温度、年、月、日、时、分、秒。3.具有自动校时、校分功能,可以分别对时及分进行单独校时,使其校正到标准时间; 4.计时过程具有报时功能,当时间到达整点前10秒开始,蜂鸣器1秒响1秒停地响5次。5设计具有定时报时功能,当时间到达预先设定时间,蜂鸣器一秒响一秒停响5次。1.4设计思路时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。本次设计要用单片机内部的定时/计数器来实现电子时钟的方法,设计单片机与时钟芯片相结合的电路,实现实时显示时间,并能够进行远程通信,实现数据与电脑的交换。按照课题的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键扫描电路模块共4个模块组成。设计采STC89系列单片机,以C语言为程序设计的基础,设计出用液晶显示年、月、日、周、时、分、秒的时钟。2总体方案设计单片机的接口信号是数字信号。要想用单片机获取时间这类非电信号的信息,必须使用时间芯片,将时间信息转换为电流或电压输出。如果转换后的电流或电压输出是模拟信号,还必须进行A/D转换,以满足单片机接口的需要。如果是数字信号就可以直接送往单片机进行数据处理。2.1设计方案2.1.1 方案一比较传统的基于单片机的时钟设计可以采用单片机内部的晶振来产生脉冲,然后通过单片机内部的计时器经过分频产生秒脉冲,然后通过软件编程来实现时钟的显示,这种设计方案的优点是外围器件少,电路简单清晰,电路焊接容易,出问题的故障几率小。时钟的显示可以用多位七段LED数码管显示,七段 LED数码管显示耗能多,而且显示位数有限,每增加一位都要在程序设计和硬件设计方面增加很多的工作量,不利于电路的扩展,而且无法显示年、月、日、星期这些汉字,使得显示不够直观,灵活。但是这种设计方案在显示位数比较少时性价比比较高,价格便宜,但是这种方案需由软件编程来实现秒脉冲的产生,编程相对来说比较复杂,而且也不利于排故。另外由单片机内部时钟产生的秒脉冲由于受到温漂的影响和程序执行时的延时的影响,而使的计时会产生不定的误差,即使设计时间误差补偿程序也很难实现提供准确时间的功能。另外,这种电路设计方案的另外一个设计要求就是晶振的选择要求晶振的振荡频率必须通过分频得到秒脉冲。这种设计还有一个非常大的缺点就是如果单片机断电,时间计时就停止,再次上电时又从初始设定重新计时,这样就需要在每次上电都调整时间,比较麻烦。2.1.2 方案二在传统的基于单片机的数字时钟设计的基础上经过一些改进,引入DS12887时间芯片,将电路的控制部分和计时部分分开,电路的控制部分为单片机,计时部分为DS12887时间芯片。并采用LCD液晶显示器显示。而LCD液晶显示则耗能少,能够显示年、月、日、星期等汉字,在显示方面更加灵活,而且改变显示时只要改变软件设计就可以,不用改变硬件电路的设计,易于电路的功能扩展。电路的软件设计也很简单。另外,这种设计硬件更加简洁。采用LCD液晶显示方案的缺点是在显示位数比较少时,价格略显昂贵。DS12887芯片是独立计时,并且具有掉电保护功能,内部自带锂电池,能够在断电的情况下继续计时,主电路恢复供电之后能够不必调整时间,为时钟的日常操作省去了很大的麻烦,而且这种设计更节能,在需要观察时间的时候比如白天就可以给主电路通电。而在夜晚不需要观察时钟的时候就可以给主电路断电,这样可以节约大量能量。2.2方案论证从计时方式来说,相比较于第一种方案,在第二中方案中时间芯片DS12c887采用了内部集成晶振的电路,并且具有内部温漂补偿电路设计。能够准确计时,提供精确的时间,这样就简化了电路的器件选择,另外也使程序的设计更加简洁。在硬件设计方面,由于只增加了一个DS12887时间芯片,因此并不是特别复杂,而且这种独立计时的设计使得产品排故更加方便。再比较上述两种方案可以看出方案二耗能少,显示灵活,易于电路扩展而且不管是软件设计还是硬件设计都比较简单,因此采用第二种设计方案。比较上述两种方案可以看出,第二种方案计时更加准确而且电路硬件设计先对来说并不复杂,软件设计更加简洁,综上所述,本设计采用独立计时,引入时钟日历芯片DS12887的设计方案,显示使用LCD液晶显示,因此采用第二种方案。2.3方案选择经过综合考虑比较本次设计任务及成本问题,选择第二种方案实现设计要求。通过以AT89C52为核心,采用LCD液晶显示系统,辅以闹钟模块,日期提醒,键盘时间调整预设置等模块,处理内部产生时钟数据或读取接受外部时钟数据进行处理,并暂时寄存在其内部存储器中,再通过单片机调用内部RAM的数据送到LCD上显示出来。下图为整体设计框图。电 源 模 块单片机LCD1602液 晶 显 示 DS12887S时钟模块键盘红外遥控串 口图2.1系统原理框图系统设计中用到 89 C52 单片机的部分功能:包括内部定时器,键盘扩展,程序中断, 串口通信等。用时间芯DS12c887实现独立计时器功能,用一个LCD1602液晶显示器作为时间显示,可通过一个输入输出口作为显示器数据发送端;另一个输入输出口的四位作为显示器各位的片选信号,另四位作为键盘扩展口使用。采用一个频率为 11.0592 MHz 的晶振构成时钟电路。采用红外键盘遥控,对时间进行调整及预设置。3单元模块设计3.1单片机主控电路模块单片机STC89C52的P0口作为输入口。P0与DS12887的AD相连,进行时间数据的采集;P3.7(RD)与DS12887的17脚DS相连,P3.3与DS12887的19脚IRQ相连,P2.7与DS12887的13脚CS相连;30脚ALE与DS12887的14脚AS相连。单片机的第18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,XTAL2接外部晶振和微调电容的另一端。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为11.0592MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。第9引脚为复位输入端,接上电容,电阻后构成上电复位电路。20引脚为接地端,40引脚为电源端。/EA端(31引脚)接+5V电压。由此就构成了单片机主控模块的最小系统。图3.1为单片机主控电路图。 图3.1 单片机主控电路图3.1.1单片机STC89C52功能介绍STC89c52包含以下部分(1)一个8位微处理器CPU(2)片内数据存储器RAM和特殊功能寄存器SFR(3)片内程序存储器ROM(4)两个定时/计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计 数(5)四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输出(6)一个串行端口,用于数据的串行通信(7)中断控制系统(8)内部时钟电路其管脚结构如图3.2所示图3.2 STC89C52管脚图 VCC:电源。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。3.1.2脉冲电路主要用来产生时间标准信号,因为时钟的精度主要取决于时间标准信号的频率及稳定度,所以常采用石英晶体振荡器。实验板的时钟振荡源电路如图3-3所示。其中JT 为11.0592MHz 的晶振,改变两电容CB的值即可对此晶振频率进行调节。该电路提供单片机工作所需的振荡频率,计算定时器初值即需此晶振频率,在通信时也需知道晶振频率,以对波特率进行计算。图3.3脉冲电路3.1.3复位电路MCS-52单片机的复位是由外部的复位电路来实现的。复位引脚 RST 通过一 个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期 的 S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复 位操作所需要的信号。上电复位:上电复位电路是种简单的复位电路,只要在 RST 复位引脚接一 个电容到 VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位 电路通过电容加到 RST 复位引脚一个短暂的高电平信号,这个复位信号随着 VCC 对电容的充电过程而回落, 所以 RST 引脚复位的高电平维持时间取决于电容的充 电时间。为了保证系统安全可靠的复位,RST 引脚的高电平信号必须维持足够长的时间。上电自动复位是通过外部复位电路的电容充电来实现的。只要 Vcc 的上升时 间不超过 1ms,就可以实现自动上电复位。图3.4复位电路3.2显示模块随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用,所以本次设计采用液晶显示。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。由于液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。数字钟要显示现在的日历时间包括年、月、日、星期、时、分、秒及温度,在这里采用1602LCD液晶显示。如下图所示.图3.2显示电路3.2.1 LCD1602主要技术参数 显示容量:162个字符 芯片工作电压:4.55.5V 工作流:2.0mA(5.0V) 模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm3.2.2 LCD1602引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表所示。编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E 使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表3.1 LCD1602引脚说明图第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.3按键电路 按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相 应的 I/O 端口形成一个负脉冲。 闭合和释放过程都要经过一定的过程才能达到稳 定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时 间的常长短与开关的机械特性有关,一般在 5-10ms 之间。为了避免 CPU 多次处 理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用 I/O 口线构成单个按键电路,每个按键占用一条 I/O 口线,每个按键的工作状态 不会产生互相影响。 电路图如下:P1.0 口表示功能移位键,按键选择要调整的时十位、时个位、分十位或分 个位。 P1.1 口表示数字“+“键,按一下则对应的数字加 1。 P1.2 口表示数字“-”键,按一下则对应的数字减 1。 P1.3 口表示时间表的切换,程序默认为日常时间表,当按下该开关,使输 入为低电平时, 表示当前执行的是考试时间表, 并有绿发光二极管显示。 再按键,使键抬起,输入维高电平时,表示当前执行的是日常作息时间表,用红发光二极管显示。电路图如图3.4所示。 图3.4 按键电路此次设计按键电路采用红外遥控设置,以安装红外连接设备,用遥控器实现时间预设置及调整.3.4电源模块220V交流电通过双12V变压器变为12V的交流电,12V交流电通过四个二极管的全桥整流后变为12V直流电,然后经过电解电容(470F)进行一级滤波,以去除直流电里面的杂波,防止干扰。12V直流电出来后再经过三端稳压器7805稳压成为稳定的5V电源,其中7805的Vin脚是输入脚,接12V直流电源正极,GND是接地脚,接12V直流电源负极,Vout为输出脚,它和接地脚的电压就是+5V了。5V电源出来再经过电解电容的二级滤波,使5V电源更加稳定可靠。同时在5V稳压电源加上一个470的电阻和一个绿色发光二极管,当上电后,绿色发光二极管点亮,表示电源工作正常。此时一个稳定输出5V的电源已经设计好,对于本设计它完全能够满足单片机及集成块所需电源的要求。电路原理图如图3.5所示。 图3.5 电源电路3.7蜂鸣电路模块其硬件原理图如下图所示。此电路用于定时时发出提示音。SPEAKER与P3.2口相连,当SPEAKER输出高电平时蜂鸣器不响,而SPEAKER输出低电平时蜂鸣器发出响声。只需控制SPEAKER输出高低电平的时间和变化频率,就可以让蜂鸣器发出不同的声音。此电路用于产生定时器提示音。 图3.6 蜂鸣器电路3.8时钟模块电路时钟模块DS12887的AD口与单片机的P0口相连,进行时间、日历数据输出。其它各功能端口的连接在主控电路中已有描述,不在赘述。另外DS12887的12脚与电源地相连,24脚与电源相连。总线选择端口MOT端与电源地相连。电路图如图3.7所示。图3.7时钟模块电路4. 软件设计软件是系统的主要组成部分,也是整个调试的重点和难点工作。本设计采用了C编语言,因为C语言编写更简洁方便,编写的代码可以非常精确的被执行,可以编写出高效的执行代码。因此,依据课题设计的要求,采用C语言进行软件编程,用模块化程序设计思想,将软件划分成若干模块单元;包括:DS12887时钟显示模块、延时等模块,键盘扫描子程序,按键处理子程序模块,通信中断子程序。通过C语言编程实现单片机时钟控制调节功能。4.1 数字钟的工作原理工作原理: 数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,按一下second,秒单元就加1 ,按一下minute,分就加1,按一下hour,时就加1。4.2系统软件设计流程图 这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。开始启动定时器按键检测时间显示图4.1主程序流程图按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。NYNYNYhour加1显示时间结束开始second按键按下?sceond加1minutes按键按下?minute加1hour按键按下?图4.2按键处理流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。N24小时到?分单元清零,时单元加1NNNYY时单元清零时间显示中断返回开始开始一秒时间到?60秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1YY图4.3 定时中断流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。时十位计算显示结束开始秒个位计算显示秒十位计算显示分个位计算显示分十位计算显示时个位计算显示图4.4 时间显示流程图5.系统调试5.1 硬件测试该数字钟的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有封皮的导线,使电路造成短路现象,另外,买来的元器件要先进行检测,如果有坏的器件要进行更换,还有就是要注意元器件的正确放置与安装以及布线的合理,便于成品电路的检测与维护。硬件组装前首先要仔细核对硬件系统设计原理的正确性,包括参数选用的正确性和原理的正确性,这取决于设计者的学识和经验积累。对没有把握的电路可以通过在通用实验板上直接焊接实际电路来进行实物调试和验证。在系统通过理论分析后,便可进行电路设计和加工。一般而言,电路板加工企业的质量是有保证的,但也不排除个别企业加工的电路板出现工艺性缺陷的情况。因此在调试前,必须首先进行工艺排错,这对于第一块样板的调试更是必不可少的环节。调试分为断电调试和通电调试。(1)第一步:断电调试为了安全起见,首先必须进行断电调试,断电调试的内容至少包含短路检测和原理正确性确认。短路检测系统电路焊接完成后,进行短路检测,选用合适的万用表欧姆挡(例如,20K挡或200K挡),用红黑表笔接电路板的+5V电源的+、极,如果存在充放电现象(即电阻指示从大到小再到大或从小到大),最后电阻稳定在一个适当的位置(一般为几千欧姆),则基于可排除系统短路现象。如果无充放电现象或电阻值稳定在很小的位置(例如几欧姆),则说明系统中可能存在短路故障,不能通电实验,必须对系统进行彻底排查,直至解决。正确性确认这里以显示亮度调节电路为例进行说明。首先检查VTI(9013)的极性不能接错(e、c),否则,因为VTI始终不能正向偏置而无法导通,W1(LM317)的显示控制失去作用,使显示始终打开,导致在送数过程中出现显示抖动现象,影响正常显示。另外,R5和R6的电阻总值必须要在合适的值上(原因是此支路电流一般要求为5mA左右),太大则LM317不能正常工作而无法调节输出电压,太小则输出电压偏高(极限为2.5V),可能会由于过流而影响数码管的寿命。(2)第二步:通电调试凡是微处理器系统,正常运行的必要条件是系统时钟稳定正常。在实际工作中,因为各种原因导致系统时钟不正常出现系统无法正常运行的情况也有时出现,因此系统时钟是否起振应是通电检查的首要一环。检查方法有:逻辑笔法。 数字万用表法。示波器法。设计中采用的是数字万用表法,复位不正常也会导致系统不工作。例如,1脚(复位脚)如果始终为高,则系统始终处于复位状态;如果始终为低电平(不能产生复位所需的高电平脉冲),则系统也可能无法正常工作。检查的重点是相关电路是否正确。5.2 软件调试数字钟的功能虽然比较少,但是程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成, 最终解决了问题。本设计采用伟福编译软件来编译程序,是目前使用广泛的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持C语言编译,另外它还支持第三方编译器,可以编译汇编语言和PL/M语言。如图5.1所示。图5.1程序编译源程序的编写:首先从菜单的“文件”中“新建文件”,建立文件;然后为文件选择好单片机型号,语言设置项选择伟福汇编器;确定后新的文件就算建立了。接下来进行编辑、修改等操作。编译:加载好要编译的文件,在工具栏的右上方找到编译按钮,按下编译按钮,开始编译,编译后会提示编译是否通过,如果编译通过就可以进行程序下载,实验;如果编译没有通过说明程序存在错误需要修改这时会在软件下方提示哪里有错误,是什么错误类型,如图5.2所示。双击下边的错误提示,软件会将光标自动移到错误处以便于修改。编译通过后会显示编译成功提示,如图5.3所示。图5.2 编译错误提示图5-3 编译通过提示在软件的调试过程中主要遇到的问题如下: 烧入程序后,LCD液晶显示屏显示亮度不好解决:一边旋转10K的滑动变阻器,一边观看LCD显示屏,知道看到合适的亮度为止。5.3 Proteus仿真Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。具有4大功能模块 u 智能原理图设计(ISIS)丰富的器件库超过27000种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸。u ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件。 u 独特的单片机协同仿真功能支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、等。实用的PCB设计平台 先进的自动布局/布线功能;支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;完整的PCB设计功能;可以输出多种格式文件。使用Proteus对系统进行仿真,仿真图见附录2.5.4实物调试由于实物调试中遇到的问题可能是软件的问题也可能是硬件的问题,因此需要采取好的调试过程,制定一个好的调试原则。本设计在调试时采用了遇到问题先排查是否是硬件故障,然后再排查软件故障的顺序。在排查硬件故障时可以利用已有的设计成功的软件来测试。例如在调试过程中,最先遇到的问题是液晶显示器不能显示。我在排查故障时采用了一个原有的能够正常运行的程序来测试电路是否能够显示,结果是能够显示,如图5.4所示。这说明电路的硬件连接没有问题,然后再排查软件问题,结果发现是程序中查询日历芯片时的地址赋错值了,在排除这个错误之后再烧写程序测试就能够正常显示了。图5.4 LCD显示调试程序能够正常显示时间之后是调试按键子程序,要测试是否能扫描到按键及按键功能是否正确。由于按键程序设计时跳转比较麻烦因此出了些小错误,在按键调整之后总是不能返回时间显示界面。经过细心检查发现是在返回显示程序的跳转标号写错了,经过改进,终于成功了。实物调试图如图5.5所示。图5.5时钟电路实物调试6 系统功能、指标参数6.1 系统实现的功能 1.时间计数电路采用24进制,从00开始到23后再回到00。2.可以显示年、月、日、时、分、秒及温度。3.具有自动校时、校分功能,可以分别对时及分进行单独校时,使其校正到标准时间。 4.实现红外键盘遥控调节设置时间功能。4.计时过程具有报时功能,当时间到达整点前10秒开始,蜂鸣器1秒响1秒停地响5次。5设计具有定时报时功能,当时间到达预先设定定时时间,蜂鸣器一秒响一秒停响5次。6.2 系统指标参数测试对于本设计系统的参数测试,总共分两步。第一步就是将自己设计的电路用软件protel作出具体的线路图,用protel自带的检测功能检测线路是否连接有误,直到修改线路至无误为止。第二步就是将我们的电路的各部分分开进行仿真。对此部分仿真可用到仿真软件proteus。在对每个部分仿真达到正确结果后,然后将各个模块连接起来进行整体测试。经过仿真即证明的时钟电路工作正常。再通过以上硬件与软件调试最终使得实物达到实现初定目标。6.3 系统功能及指标参数分析通过前面的参数计算和仿真系统各元件的参数要求对比分析本次设计成功,通过软硬见调试及实物调试最终是系统达到预定目标,本次设计十分成功。感谢下载载精品7 结论自学习单片机我起初认为单片机是个噩梦,因为自己在单片机这一块存在着太大的缺陷,幸运的是我终于完成了这次考试论文。一开始按照老师布置的流程,一步步去实现那个目标,找资料,读懂程序,写写流程图,当然不懂就去查资料问老师,通过自己的勤奋和同学之间的取长补短,目标一步步的被我找到和实现,时间尽管很短但是我在单片机这一块的缺陷正在慢慢缩短和知识的不断上升,对单片机也有了很大的兴趣,并且使这次的

温馨提示

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

评论

0/150

提交评论