基于单片机的数字钟设计_第1页
基于单片机的数字钟设计_第2页
基于单片机的数字钟设计_第3页
基于单片机的数字钟设计_第4页
基于单片机的数字钟设计_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

./WORD格式整理版毕业设计专业:班级学号:学生姓名:指导教师:二〇〇七年六月基于单片机的数字钟设计Thedesignofdigitalclockbasedonsignal-chipcomputer专业班级:学生姓名:指导教师:系别:2007年6月摘要基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子。在基于单片机系统的数字钟电路中,除了基本的单片机系统和外围电路外,还需要外部的控制和显示装置。本电路主要以单片机AT89S52为核心而设计的,通过单片机对信息的分析与处理,控制外围设备。系统由复位模块、时钟模块、温度模块、音乐模块、光识模块及显示模块共六个模块组成,后来在时钟模块的基础上又加载了日历、星期的模块。本设计以单片机AT89S52为切入点,通过使用AT89S52的内部的可编程定时器/计数器,结合对外接晶振的调节来确定一个合适的振荡周期,从而确定出内部的机器周期。再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。然后在核心电路的基础上设计出了相应的扩展电路,使本设计更加实用。关键词:单片机;数码显示;温度传感器ABSTRACTThetimerequipmentusingmicrocontrollerunitisappliedinmanytrades,thedigitalclockisthemostfundamentalexampleamongthem,anditisalsoamosttypicalexample.Indigitalclockcircuitbasedmicrocontrollerunitsystem,therearetheexternalcontrollinganddisplaydevicebesidesthefundamentalmonolithicmachinesystemandtheouter-ringcircuit.ThekeyofthecircuitinthisdesignisAT89S52,usingthemicrocontrolsystemtoprocessinformationtocontroltheouter-ringcircuit.Thesystemismadeupofcircuit,clockcircuit,musiccircuit,temperaturecircuit,andshinecircuit.Dateandweekmodulistheexternalpart.ThisdesignfocusesonmonolithicintegratedcircuitAT89S52.UsingAT89S52,whichhastheinteriorprogrammabletimer/counter,theunionforeignmeetsthecrystaloscillatortheadjustmenttodetermineanappropriatedurationofoscillation,thusdeterminestheinteriorthecycleofthesystem.Anddesigningtheinternalinterruptprocedureestablishmenttodesigntheclockprocedure,namelydesignedthecoreofelectronicclock.Thendesigntheexpandedelectriccircuittoletthisdesignmorepractical.KeyWords:Microcontrolunit;LEDshows;Sensoroftemperature.目录TOC\o"1-4"\u1.引言12.关于单片机22.1单片机的发展22.2单片机的开发背景42.2单片机的开发背景52.3AT89S52单片机62.3.1AT89S52单片机引脚功能7AT89S52单片机硬件结构的特点8AT89S52单片机的硬件原理103.方案设计与论证124.系统总体结构框图135.系统的硬件设计145.1显示部分电路的设计14LED数码显示管的基本原理145.1.2数码管显示模块分析145.1.3LED显示电路155.2控制部分电路的设计155.2.1时钟模块155.2.2温度模块165.2.3音乐模块165.2.4复位模块165.2.5光识模块176.系统的软件设计186.1各模块的程序设计18计时程序186.1.2定时闹钟程序186.1.3温度程序186.2系统程序设计的总体框图197.系统电路的制作与调试207.1电路硬件焊接制作207.2调试的主要方法207.3系统调试20硬件调试20软件调试20联机调试21调试中遇到的问题及解决方法21结论23参考文献24附录1数字钟电路图26附录2程序清单27附录3英文资料59附录4英文资料翻译69致谢77.20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。尤其在医院,每次护士都会给病人作皮试,测试病人是否对药物过敏。注射后,一般等待5分钟,一旦超时,所作的皮试试验就会无效。手表当然是一个好的选择,但是,随着接受皮试的人数增加,到底是哪个人的皮试到时间却难以判断。所以,要制作一个定时系统。随时提醒这些容易忘记时间的人。

钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。基于单片机的定时和控制装置在许多行业有着广泛的应用,数字钟作为其中最基本的一个应用实例,具有结构简单应用广泛的特点。数字钟中使用了单片机中最为常用的输入输出设备按键开关和数码管;数字钟程序主要应用单片机的定时器和中断实现计时和显示功能。当今数字种作为一个单元电路被广泛应用于电子表、电子万年历等产品中,带来广泛的经济效益。目前的单片机产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国XX的Winbond系列单片机。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集<RISC>也有着强劲的发展势头,中国XX的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。单片机的可靠性及应用水平越来越高和互联网连接已是一种明显的走向。单片机从功能上讲可以说是万用机。目前,单片机正朝着高性能和多品种方向发展,趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。当今,单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。单片机也广泛地用于各种实时控制系统中。例如,在工业测控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、电子玩具、收录机等家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。单片机将使人类生活更加方便、舒适、丰富多彩。单片机已成为计算机发展和应用的一个重要方面。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步。在不久的将来,最终单片机与微机系统之间的距离越来越小,甚至难以辨认。2.1单片机的发展单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在单片机在液晶显示上也有了很多的应用。随着科技不断进步,各种显示技术如雨后春笋般诞生,由于液晶显示器〔LCD具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,在近年来价格不断下跌的吸引下,逐渐取代CRT之主流地位,显示器明日之星架势十足。液晶显示器件从初期的实验室到现在的生产厂家,已形成较大规模的生产能力,使液晶显示形成了独立的产业部门。而今,液晶显示已经应用于人们生产、生活中的各个领域,人们时时处处都要与这一神奇而又普通的产品打交道。液晶显示技术以它跨越多学科的工作原理,高技术、专业化的制造工艺使它披上了一层神秘的面纱,而它轻巧薄形的体态,独特而理想的性能以及广泛的应用价值,又使它充满魅力,深深地吸引着人们。在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是"麻雀虽小,肝胆俱全",单片机的学习和研究是对微机系统学习和研究的简捷途径。在目前,用户对单片机的需要越来越多,但是,要求也越来越高,因此,单片机也在不断的发展和进步。单片机的技术进步主要反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。下面分别就这三个方面说明单片机的技术进步状况。〔1内部结构的进步单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:定时器,比较器,A/转换器,D/A转换器,串行通信接口,Watchdog电路,LCD控制器等。

有的单片机为了构成控制网络或形成局部网,内部含有局部网络控制模块CAN。例如,Infineon公司的C505C,C515C,C167CR,C167CS-32FM,81C90;Motorola公司的68HC08AZ系列等。特别是在单片机C167CS-32FM中,内部还含有2个CAN。因此,这类单片机十分容易构成网络。特别是在控制,系统较为复杂时,构成一个控制网络十分有用。

为了能在变频控制中方便使用单片机,形成最具经济效益的嵌入式控制系统。有的单片机内部设置了专门用于变频控制的脉宽调制控制电路,这些单片机有Fujitsu公司的MB89850系列、MB89860系列;Motorola公司的MC68HC08MR16、MR24等。在这些单片机中,脉宽调制电路有6个通道输出,可产生三相脉宽调制交流电压,并内部含死区控制等功能。〔2功耗、封装及电源电压的进步现在新的单片机的功耗越来越小,特别是很多单片机都设置了多种工作方式,这些工作方式包括等待,暂停,睡眠,空闲,节电等工作方式。Philips公司的单片机P87LPC762是一个很典型的例子,在空闲时,其功耗为1.5mA,而在节电方式中,其功耗只有0.5mA。而在功耗上最令人惊叹的是TI公司的单片机MSP430系列,它是一个16位的系列,有超低功耗工作方式。它的低功耗方式有LPM1、LPM3、LPM4三种。当电源为3V时,如果工作于LMP1方式,即使外围电路处于活动,由于CPU不活动,振荡器处于1~4MHz,这时功耗只有50?A。在LPM3时,振荡器处于32kHz,这时功耗只有1.3?A。在LPM4时,CPU、外围及振荡器32kHz都不活动,则功耗只有0.1?A。

现在单片机的封装水平已大大提高,随着贴片工艺的出现,单片机也大量采用了各种合符贴片工艺的封装方式出现,以大量减少体积。在这种形势中,Microchip公司推出的8引脚的单片机特别引人注目。这是PIC12CXXX系列。它含有0.5~2K程序存储器,25~128字节数据存储器,6个I/O端口以及一个定时器,有的还含4道A/D,完全可以满足一些低档系统的应用。扩大电源电压范围以及在较低电压下仍然能工作是今天单片机发展的目标之一。目前,一般单片机都可以在3.3~5.5V的条件下工作。而一些厂家,则生产出可以在2.2~6V的条件下工作的单片机。这些单片机有Fujitsu公司的MB89191~89195,MB89121~125A,MB89130系列等,应该说该公司的F2MC-8L系列单片机绝大多数都满足2.2~6V的工作电压条件。而TI公司的MSP430X11X系列的工作电压也是低达2.2V的。〔3工艺上的进步现在的单片机基本上采用CMOS技术,但已经大多数采用了0.6?m以上的光刻工艺,有个别的公司,如Motorola公司则已采用0.35?m甚至是0.25?m技术。这些技术的进步大大地提高了单片机的内部密度和可靠性。

单片机在目前的发展形势下,可靠性及应用越来越高的水平和互联网连接已是一种明显的走向。所集成的部件越来越多;NS〔美国国家半导体公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。功耗越来越低和模拟电路结合越来越多也将会成为单片机的一个发展的方向。随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。2.2单片机的开发背景现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。液晶显示器是人与机器沟通的重要界面,而且液晶显示器也有如下特点,开发出来会有很大的应用空间。液晶显示器目前发展最快,也已经成为电子信息产业的支柱性产业之一,受到普遍关注与重视。那么液晶显示器与传统的显示器相比,到底有什么新的特点呢?⑴质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器〔CRT那样需要不断刷新亮点。因此,液晶显示器画质高而且绝对不会闪烁,把眼睛疲劳降到最低。⑵没有电磁辐射传统显示器的显示材料是荧光粉,通过电子束撞击荧光粉而显示,电子束在打到荧光粉上的一刹那间会产生强大的电磁辐射,尽管目前有许多显示器产品在处理辐射问题上进行了比较有效的处理,尽可能地把辐射量降到最低,但要彻底消除是困难的。相对来说,液晶显示器在防止辐射方面具有先天的优势,因为它根本就不存在辐射。⑶可视面积大对于相同尺寸的显示器来说,液晶显示器的可视面积要更大一些。液晶显示器的可视面积跟它的对角线尺寸相同。阴极射线管显示器显像管前面板四周有一英寸左右的边框不能用于显示。⑷应用范围广最初的液晶显示器由于无法显示细腻的字符,通常应用在电子表、计算器上。而随后出现的DSTN和TFT则被广泛制作成电脑中的液晶显示设备,DSTN液晶显示屏用于早期的笔记本电脑;TFT则既应用在笔记本电脑上〔现在大多数笔记本电脑都使用TFT显示屏,又用于主流台式显示器上。⑸画面效果好与传统显示器相比,液晶显示器一开始就使用纯平面的玻璃板,其显示效果是平面直角的,让人有一种耳目一新的感觉。而且液晶显示器更容易在小面积屏幕上实现高分辨率。⑹数字式接口液晶显示器都是数字式的,不像阴极射线管彩显采用模拟接口。也就是说,使用液晶显示器,显卡再也不需要像往常那样把数字信号转化成模拟信号再行输出了。理论上,这会使色彩和定位都更加准确完美。⑺体积小传统的阴极射线管显示器,后面总是拖着一个笨重的射线管。液晶显示器突破了这一限制,给人一种全新的感觉。传统显示器是通过电子枪发射电子束到屏幕,因而显像管的管颈不能做得很短,当屏幕增加时也必然增大整个显示器的体积。而液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示目的,即使屏幕加大,它的体积也不会成正比的增加,而且在重量上比相同显示面积的传统显示器要轻得多。⑻功率消耗小传统的显示器内部由许多电路组成,这些电路驱动着阴极射线显像管工作时,需要消耗很大的功率,而且随着体积的不断增大,其内部电路消耗的功率肯定也会随之增大。相比而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比传统显示器也要小得多。2.2单片机的开发背景现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。液晶显示器是人与机器沟通的重要界面,而且液晶显示器也有如下特点,开发出来会有很大的应用空间。液晶显示器目前发展最快,也已经成为电子信息产业的支柱性产业之一,受到普遍关注与重视。那么液晶显示器与传统的显示器相比,到底有什么新的特点呢?⑴质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器〔CRT那样需要不断刷新亮点。因此,液晶显示器画质高而且绝对不会闪烁,把眼睛疲劳降到最低。⑵没有电磁辐射传统显示器的显示材料是荧光粉,通过电子束撞击荧光粉而显示,电子束在打到荧光粉上的一刹那间会产生强大的电磁辐射,尽管目前有许多显示器产品在处理辐射问题上进行了比较有效的处理,尽可能地把辐射量降到最低,但要彻底消除是困难的。相对来说,液晶显示器在防止辐射方面具有先天的优势,因为它根本就不存在辐射。⑶可视面积大对于相同尺寸的显示器来说,液晶显示器的可视面积要更大一些。液晶显示器的可视面积跟它的对角线尺寸相同。阴极射线管显示器显像管前面板四周有一英寸左右的边框不能用于显示。⑷应用范围广最初的液晶显示器由于无法显示细腻的字符,通常应用在电子表、计算器上。而随后出现的DSTN和TFT则被广泛制作成电脑中的液晶显示设备,DSTN液晶显示屏用于早期的笔记本电脑;TFT则既应用在笔记本电脑上〔现在大多数笔记本电脑都使用TFT显示屏,又用于主流台式显示器上。⑸画面效果好与传统显示器相比,液晶显示器一开始就使用纯平面的玻璃板,其显示效果是平面直角的,让人有一种耳目一新的感觉。而且液晶显示器更容易在小面积屏幕上实现高分辨率。⑹数字式接口液晶显示器都是数字式的,不像阴极射线管彩显采用模拟接口。也就是说,使用液晶显示器,显卡再也不需要像往常那样把数字信号转化成模拟信号再行输出了。理论上,这会使色彩和定位都更加准确完美。⑺体积小传统的阴极射线管显示器,后面总是拖着一个笨重的射线管。液晶显示器突破了这一限制,给人一种全新的感觉。传统显示器是通过电子枪发射电子束到屏幕,因而显像管的管颈不能做得很短,当屏幕增加时也必然增大整个显示器的体积。而液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示目的,即使屏幕加大,它的体积也不会成正比的增加,而且在重量上比相同显示面积的传统显示器要轻得多。⑻功率消耗小传统的显示器内部由许多电路组成,这些电路驱动着阴极射线显像管工作时,需要消耗很大的功率,而且随着体积的不断增大,其内部电路消耗的功率肯定也会随之增大。相比而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比传统显示器也要小得多。2.3AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程存储器。使用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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图2-1AT89S52的引脚2.3.1AT89S52单片机引脚功能P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写"1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写"1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入〔P1.0/T2和时器/计数器2的触发输入〔P1.1/T2EX,具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写"1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL。在访问外部程序存储器或用16位地址读取外部数据存储器〔例如执行MOVX@DPTR时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址〔如MOVX@RI访问外部数据存储器时,P2口输出P2锁存器的内容。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写"1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流〔IIL。RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR<地址8EH>上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号〔ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚〔PROG也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置"1”,ALE操作将无效。这一位置"1”,ALE仅在执行MOVX或MOVC指令时有效。PSEN:外部程序存储器选通信号〔PSEN是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接收12伏VPP电压。AT89S52单片机硬件结构的特点MCS-51单片机硬件结构有如下一些主要特点:①内部程序存储器〔ROM和内部数据存储器〔RAM容量MCS-51单片机的内部ROM和内部RAM的容量如表-1所示:表-1MCS-51单片机存储器容量存储器类型单片机类型掩模ROMEPROMRAMMCS-5151子系列8031//128B80514KB/128B8751/4KB128B52子系列8032//256B80528KB/256B②输入/输出〔I/O口MCS-51单片机内的I/O口的数量和种类较多且齐全,尤其是它有一个全双工的串行口。该串口是利用两根I/O口线构成的,有四种工作方式,可通过编程选定,MCS-51有32根I/O口线,而MCS-48只有27根。③外部程序存储器和外部数据存储器寻址空间MCS-51可对64KB的外部数据存储器寻址且不受该系列中各种芯片型号的影响,而对程序存储器是内外总空间为64KB,故根据表-1不同的芯片型号,MCS-51外部程序存储器最大寻址范围为64KB。④中断与堆栈MCS-51有5个中断源〔对8032/8052为6个,分为2个优先级,每个中断源的优先级是可编程的。它的堆栈位置也是可编程的,堆栈深度可达128字节。而MCS-48只有不分优先级的2个中断源,且堆栈设置在片内RAM的16个字节的固定单元内。⑤定时/计数器与寄存器区MCS-51子系列有2个16位定时/计数器,通过编程可以实现四种工作模式。MCS-52子系列则有3个16位定时/计数器。而MCS-48只有一个8位定时/计数器。MCS-51在内部RAM中开设了四个通用工作寄存器区,共32个通用寄存器,以适应多种中断或子程序嵌套的要求。而MCS-48的内部RAM中只有两个通用工作寄存器区,每个寄存器区包含8个8位寄存器。2.3.3AT89S52单片机的硬件原理⑴如图所示,图为单片机的基本外围电路。20管脚接地,40管脚接+5V电源,为单片机工作提供电源。18及19管脚接晶振,为单片机提供时钟信号,晶振为12MHz。晶振的振荡频率越高,系统的时钟频率越高,单片机工作的速度也越高。对于液晶显示电路的设计,需要单片机有较高的工作效率,所以选择比较高频率的晶振,从而提高液晶屏幕的刷新速率,获得更加连贯、流畅的图像显示。根据需要还可以加上复位电路,复位是单片机的初始化操作。或者当单片机程序运行出错导致死锁状态的时候,为摆脱困境,也需要按复位键以重新启动。图2-2AT89S52单片机基本外围电路图2-3单片机和液晶模块连接电路图2-3单片机和液晶模块连接电路AT89S52LCM⑵如图2-3所示,左边为单片机模块,右边为液晶模块。单片机的P0口与液晶模块的8个数据端口相连,作为数据传送端口。P2.4、5、7、8与液晶模块的片选CS1、CS2和R/W、D/I相连,作为控制字的写入。液晶模块的E端为使能端,由单片机的P2.3和P3.7、8三个口送信号至与非门驱动液晶模块,同时给使能端提供高低电平,控制液晶模块工作。液晶模块的VSS接地,VCC和V0接滑动变阻器,VCC接正5V电源,通过滑动变阻器分压,从而为液晶模块更好的工作提供电源,也作为液晶显示屏的亮度控制端。此图即为单片机控制液晶显示的基本电路。其中的与非门组合可以用74LS00芯片,74LS00可以提供3个与非门。本设计电路成本低,元件比较普通,市场上可以轻易买到,为整个毕业设计提供方便。电路简单易于焊接,调试中也能减少很多麻烦。按照系统设计功能的要求,初步确定设计系统由复位模块、时钟模块、音乐模块、光识模块及显示模块共五个模块组成,后来在时钟模块的基础上又加载了日历、星期的模块,为了使本设计中的数字钟的功能更加完善和强大,最后又将温度显示加入了设计方案中。首先以单片机AT89S52为入手点,通过使用AT89S52的内部的可编程定时器/计数器,结合对外接晶振的调节来确定一个合适的振荡周期,从而确定出内部的机器周期。再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。根据题目的要求,我设计了以下方案:设计中加载了年、月、日的设计,刚开始时打算用18个共阳数码管,考虑到数码管太多是毕会给硬件电路带来麻烦,经过考虑后,决定把年、月、日与时间设置到一组数码管上来,即六个数码管即能显示时间又能显示年、月、日,这样一来就方便了硬件电路。主控芯片使用51系列AT89S52单片机,温度模块设计中,温度元件采用AD590,利用AD590以及接口电路把温度转换成模拟电压,经由ADC0804转换成数字信号,然后经AT89S52处理显示温度。但由于AD590价钱比较贵,且只能转换成模拟电压,这样一来硬件就要增加更多的器件且又不经济,经查找发现18B20温度传感器价钱便宜且可以直接把温度转换成数字量测温范围为-55—125度,最大分辨率可达0.0625度,采用3线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,所以我选择了18B20温度传感器。在音乐模块的设计中,我决定采用音乐芯片,这样可以避免对铃声音乐的编程,即节省了时间,又减少了在程序中发生错误的可能性。AT89S52AT89S52主控模块光识电路温度电路音乐电路显示电路电路时钟电路复位电路图4-1在本设计中,以按键开关作为输入装置,LED七段数码显示管作为显示装置,因此,各按键开关的功能为:S1键:P1.0口时间调整S2键:P1.1口日期调整S3健;p1.2口闹铃设置S4健:p1.3口闹铃开关电路是由控制部分和显示部分两大部分组成。利用单片机程序进行控制,并通过数码管进行显示。5.1显示部分电路的设计LED数码显示管的基本原理用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示,按译码方式可分为硬件译码和软件译码。静态显示是显示驱动电路具有输出锁存功能,单片机将要显示的数据送出后不再控制LED,直到下次显示时再传送一次新的显示数据。静态显示的数据稳定,占用CPU时间少。动态显示要CPU时刻对显示器件进行刷新,显示数据有闪烁感,占用CPU时间多。这两种显示方式各有利弊:静态显示虽然数据显示稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。动态扫描显示接口是单片机中应用最广泛的一种显示方式。其接口电路是把所有LED显示器的8个笔划段A~D、DP的同名端连在一起,而每一个数码管的公共端COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接受到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,是各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,约1ms左右,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。从上述的论述中,可以看出动态显示方案具备一定的实用性,也是目前单片机数码管显示中较为常用的一种显示方法。所以,本设计也采用动态显示方案。5.1.2数码管显示模块分析电路先通过电源电路送出+5V电压,单片机AT89S52通过74LS47和CD4515〔4—16译码器驱动数码管显示数值,显示部分采用普通共阳极数码管显示,采用动态扫描,以减少硬件电路。考虑到一次扫描12位数码管显示时会出现闪烁情况,设计时分两排显示,一排显示时间和年月日,一排显示星期和温度,共阳极数码管中8个发光二极管的阳极〔二极管正端连在一起。通常,公共阳极接高电平〔一般接电源,其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。采用动态显示方式,比较节省I/O口,硬件电路也较静态显示简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多时间。

为了提供共阳LED数码管的驱动电压,用三极管9012作电源驱动输出。采用12MHz晶振,有利于提高秒计时的精确性。;LED显示电路图5-15.2控制部分电路的设计时钟模块利用芯片内部的振荡器,然后在引脚XTAL1和引脚

XTAL2两端接晶体谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部的时钟电路,如图外接晶振时,C1和C2的值通常选择30pF;C1、C2对频率有微调作用,晶体谐振器的频率12MHz。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。设置了12—24两种显示状态,调整计时的按键、设置定时的按键且定时设置了3次定时、还另加载了星期、年、月、日的调整及闰年的自动调整。5.2.2温度模块主要由18B20通过单片机AT89S52中的温度程序不断的检测温度来显示温度。18B20温度传感器工作原理:DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并可根据实际要求通过简单的编程实现9—12位的数字值读数方式,DS18B20的性能特点如下:1、独特的单线接口仅需要一个引脚进行通信;2、多个DS18B20可以并联在唯一的三线上,实现多点组网功能;3、无须外部器件;4、可通过数据线供电,电压范围为3.05.5V;5、零待机功耗;6、温度以9或12位数字量读出;7、用户可定义的非易失性温度报警设置;8、报警搜索命令识别并标志超过程序限定温度〔温度报警条件的器件;9、负电压特性,电源极性接反是,温度计不会因发热而烧毁,但不能正常工作。音乐模块通过LM386N-1给扬声器信号来发出音乐,这个模块主要是为时钟定时到时发出音乐闹铃,而在软件部分设置了可以一次设置3次定时,每次定时到时,音乐程序中编了6种音乐,它可以自动选择6种音乐中的任一音乐响1分钟,如果中间不想让闹铃响可以按一按键,闹铃就立刻停止。复位模块单片机复位电路是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是断电后或者发生故障后都要复位。电路图为:图5-25.2.5光识模块同样也是为定时服务的,只要定时到,组成心字的18只发光二极管就会按程序全亮全灭20次,如此循环。电路图为:AT89S52AT89S52P1图5-36.1各模块的程序设计6.1.1计时程序计时程序是实现电子时钟的核心内容,本程序用中断time0来控制,计时显示的单元从50h开始,50h=秒的个位,51h=秒的十位,52h=分的个位,53h=分的十位,54h=时的个位,55h=时的十位org000bh.jmptime0movtmod,#00010001bmovie,#10001010bmovip,#00000010bmovth0,#<65536-2000>/256movtl0,#low<65536-2000>mov4fh,#02;两个中断250次为1秒定时闹钟程序作用是判断时间是否与设置的闹钟时间相等,如相等则开启闹钟。片机内定时振铃开关使用软件开关,即用标志寄存器,且程序设置了3次定时,可见要使电子时钟定时打铃,必须同时具备两个条件,第一:定时振铃开;第二:当前定时项数不为0项。因为要使电子时钟定时打铃,必须同时具备上述的两个条件,所以在单片机执行查询定时各项的程序之前,主程序会首先查询这两个条件是否同时满足,如果满足的话,则进行一轮查询,所谓一轮查询定时,即将当前时间与定时各项一一比较,看是否相符,如果查到某项相符,则调用音乐程序。每查完一项,寄存器中的值会自动减1〔即为定时时间的项数。当定时时间的项数值自动减为0时,则表示这一轮查询定时时间完毕,只要条件允许〔定时音乐开且定时项数不为0,有可以进行一轮新的查询定时时间。定时1:33h=分,34h=时,定时2:35h=分,36h=时,定时3:37h=分,38h=时,定时状态=39h;定时显示的单元从60h开始,60h=定时状态,61h=此时;定时状态的音乐种类,62h=分的个位,63h=分的十位;64h=时的个位,65h=时的十位温度程序57h=温度的十位,58h=温度的个位,6.2系统程序设计的总体框图开始开始系统初始化显示计时、温度值判断按键是否有按下年、月、日调整计时调整定时调整星期12--24转换省电模式图6-17.1电路硬件焊接制作电路硬件焊接是毕业设计的重要内容之一,其焊接工艺的好坏直接关系到系统的整体性能。本设计的样品制作采用手工焊接,在焊接制作中应遵守手工焊接的工艺流程和技术要求。7.2调试的主要方法⑴测试单片机软件功能的完善性。这是针对整个单片机系统功能的测试,测试软件是否写的正确完整。单片机是否能正常工作。⑵上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可靠性。⑶老化测试。测试长时间工作情况下,单片机系统的可靠性。必要的话可以放置在高温,高压以及强电磁干扰的环境下测试。⑷D和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等等。⑸整个显示系统的测试。这是针对整个单片机显示系统功能的测试,单片机正常工作后,加上负载液晶整个系统共同测试。⑹整个显示系统的调试。编写不同的程序写入单片机,用单片机控制液晶显示不同的画面,如字符、图形。7.3系统调试硬件调试静态测试。在电路板制作好以后,先不要急着加电,首先进行静态测试。检查线路:通过目测和使用万用表,检查线路连接的正确性,有无断路和短路,无虚焊的存在等。核对元件:检查元件是否安装正确,有无损坏等。7.3.2软件调试本程序采用单片机汇编语言编写,用wave6000编译器编程模拟调试。联机调试在硬件无故障和软件模块调试完成的情况下,还要对系统进行联机调试。在系统调试时,应将全部硬件电路都接上,应用程序模块也都组合好,进行全系统软硬件调试。系统调试的任务是排除软硬件中的残留错误。使整个系统能够完成预定的工作任务,达到要求的技术性能指标。系统联机调试到能正确显示时间、日期、12小时和24小时的转换,并且闹铃功能正常,即铃声响起的同时,摆成心型的18个二极管闪烁。调试中遇到的问题及解决方法⑴调试中反复检查,仍没有错误,这时候看是否要排除元器件失效了。造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。⑵还有可能是电源故障,所以排除电源故障这项必不可少。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。⑶当判断单片机不工作时候,需要进行联机仿真调试。联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。信号线是联络单片机和外部器件的纽带,信号线连结错误或时序不对,都会造成对外围电路读写错误。单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号〔PSEN、地址锁存信号〔ALE、复位信号等几类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器〔这里指通用示波器用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。MAIN:MOVDPTR,#DPTR;将地址送入DPTRMOVXA,@DPTR;将译码地址外RAM中的内容送入ACCNOP;适当延时SJMPMAIN;循环执行程序后,就可以利用示波器观察芯片的片选信号引出脚〔用示波器扫描时间为1μs/每格档,这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到单片机的复位引脚将变为高电平;一旦松开,电平将变低。总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。中文题目.经过调试,和多次改进,本设计达到了预期的效果。数字钟可以正常显示时间和日期,并且对每个月份的天数进行了处理,特别是2月这个特殊月份,本设计可以自动从2月28日直接过度到3月1日。而且,在本设计中,闰年和平年的2月,其天数可以被正常区分,从而达到了实用和人性化的效果。对温度的显示也比较正常,能够正常反映出室温情况。当然,还可以根据需要,增加整点报时的功能,以使本设计更加完善。总之,本设计提供了一套行之有效的数字钟的设计方案,并且成本较低,具有较高的实用性。[1]卢坤,奚大顺电子设计技术[M].XX电子科技大学出版社,1997.P103-210[2]唐竞新.数字电子电路[M].第1版.北京:清华大学出版社,2003.P99-120[3]康华光.电子技术基础[M].数字部分.第4版.北京:高等教育出版社,1998.P47-79[4]电子工程手册编委会等中外集成电路简明速查手册[M]TTL,CMOS.北京:电子工业出版社,1991.P245-340[5][6]彭国贤.数码显示[M].北京:电子工业出版社,1993.P21-50[7]康华光主编,邹寿彬副主编《电子技术基础<数字技术>》高等教育出版,2004.P129-180[8]康华光主编,陈大钦副主编《电子技术基础<模拟技术>》高等教育出版社,2003.P269-307[9]袁俊泉,孙敏琪,曹瑞编著《数字系统设计及其应用》[J].《数字电子》第9908期.XX电子科技大学出版社,2002.P13-26[10]李光飞、楼然苗等《单片机课程设计实例指导》北京航空航天大学出版社,2004.P5-37[11]余永权.《ATMEL系列Flash单片机原理及应用》北京:电子工业出版社,1997年第一版,P88~121[12]沙占友.《智能化集成温度传感器原理与应用》北京:机械工业出版社,2002年第一版,P84~106[13]李广弟,朱月秀,王秀山.《单片机基础修订版》北京:北京航空航天大学出版社,2001年第二版,P11~77[14]蔡明生.《电子设计》北京:高等教育出版社,2004年第一版,P48~101[15]孙安青.《AT89S51单片机实验及实践教程》www.supermcu.com.P179~186[16]刘云,成后发,尹波.《温度无线传输技术的研究》电脑与信息技术,2004年第4期,P47~50[17]陈跃东.《DS18B20集成温度传感器原理及其应用》XX机电学院学报,2002年第4期,P34~38[18]刘楚浩.《用单片机实现温度远程显示》单片机与嵌入式系统应用.2002年第9期[19]WilliamStallings.《DataandComputerCommunications》.北京:高等教育出版社,2001年第一版[20]CHEE-YEECHONG,SRIKANTAPKUMAR.《SensorNetworks:Evolution》,OpportunitiesandChallenges[A].PROCEEDINGSOFTHEIEEE[C].2003,91〔8:1247-1256.[21]AlteraCorporation.2002.《AlteraDigitalLibrary.Altera》.P99-101[22]XilinxInc.2001.DataBook2001.Xilinx.P31-54附录2程序清单org0000h jmpstart org000bh jmptime org30hstart: movsp,#5fh ;// 小时 分钟 秒 movr1,#0 ;// r2r1r5r0r3r4 movr2,#0 movr7,#0 movr0,#0 movr6,#0 movr5,#0 mov20h,#31 ;//20h日地址 日 月 年个位 年十位 年百位 年千位 mov21h,#10 ;//21h 月地址 20h 21h 22h 23h 24h 25h mov22h,#6 ;//年个位 mov23h,#0 ;//年十位 mov24h,#0 ;//年百位 mov25h,#2 ;/年千位 mov34h,#0 ;//闹铃1秒个位 时十位 时个位 分十位 分个位 秒十位 秒个位 mov35h,#0 ;//闹铃1秒十位 mov36h,#1 ;//闹铃1分个位 39h 38h 37h 36h 35h 34h mov37h,#0 ;//闹铃1分十位 mov38h,#0 ;//闹铃1时个位 mov39h,#0 ;//闹铃1时十位 时十位 时个位 分十位 分个位 秒十位 秒个位 mov49h,#1 ;//闹铃2分个位 4ch 4bh 4ah 49h 48h 47h mov4ah,#0 ;//闹铃2分十位 mov4bh,#0 ;//闹铃2时个位 mov4ch,#0 ;//闹铃2时十位setbp1.5 movTMOD,#00000001b movTH0,#3ch ;//定时器初值 movTL0,#0b0h setbEA ;//开总中断 setbET0 ;//开定时器一的中断 movp1,#0ffh setbTR0 ;//定时器开始工作k: mov12h,r0 mov13h,r1 mov14h,r2 ;// 小时 分钟 秒 ; // r2r1r5r0r3r4 mov15h,r5 ; //14h13h 15h12hloop: movr5,15h movr2,14h movr1,13h ;//地址中不是BCD码而是要显示的数字 movr0,12h mova,r6 ;//R6中是秒脉冲个数 movb,#10 divab movdptr,#tab1 ;//商存在a中 movca,@a+dptr movr3,a mova,b movca,@a+dptr ;//余数在b中 movr4,a movdptr,#tab1 mova,r0 movca,@a+dptr ; //分个位 movr0,a mova,r5 movca,@a+dptr ;//分十位 movr5,a; // 小时 分钟 秒 ; // r2r1r5r0r3r4 mova,r1; movca,@a+dptr ;//时个位 //14h13h 15h12h movr1,a; //18h17h 19h16h mova,r2 ;//时十位 movca,@a+dptr; //此时地址中是要显示数字的BCD码 movr2,a mov19h,r5 mov18h,r2 mov17h,r1 mov16h,r0 mov46h,r6dsp: movp2,r4 movp0,#70h ;//p0的高位接74LS138 lcalldelay movp2,r3 movp0,#60h lcalldelay movp2,r0 ;// 小时 分钟 秒 movp0,#40h lcalldelay ; // r2r1r5r0r3r4; movp2,r5 movp0,#30h lcalldelay movp2,r1 movp0,#10h lcalldelay movp2,r2 movp0,#00h lcalldelay movp0,#50h ;//在分与秒之间加"一" movp2,#3fh lcalldelay movp0,#20h ;//在分与秒之间加"一" movp2,#3fh lcalldelay jnbp1.1,return1 ;//p1.1是年月日调整 jnbp1.0,jie ;//p1.0是时间调整 jnbp1.2,goto5 ;//p1.2进入闹铃 movp3,#0ffhcallcheak2callcheak3 callzcheak; //2ah.0为0跳转,不去整点报时jbp1.5,out3callcheakout3:jbp1.6,out2callcheak1out2: jmploopgoto6: movp3,#150 ljmpnoticegoto5: lcalldelay1 ;//跳往闹铃的按键防抖程序 jnbp1.2,goto6 ljmploopreturn5:movP3,#190 ljmpshowdatereturn1:lcalldelay1 ;/;/跳往日期调整的按键防抖程序 jnbp1.1,return5 ljmploopreturn8:movp3,#230 ljmpdsp1jie: lcalldelay1 ;//跳往时间调整的按键防抖程序 jnbp1.0,return8 ljmploop;//*************闹铃校对程序************************************************8cheak: mova,46h cjnea,#0,out mova,36h ;//闹铃1比对,若成立就给P3口传入#00h cjnea,12h,out ;时十位 时个位 分十位 分个位 秒十位 秒个位 mova,37h ;;39h 38h 37h 36h 35h 34h cjnea,15h,out mova,38h cjnea,13h,out mova,39h cjnea,14h,outmova,36h;4dh存闹铃1后一分的分个位incamov4dh,a clrp1.7clrp0.0out: retcheak1: mova,46h cjnea,#0,out22 mova,49h ;//闹铃1比对,若成立就给P3口传入#00h cjnea,12h,out22 ;时十位 时个位 分十位 分个位 秒十位 秒个位 mova,4ah ;;39h 38h 37h 36h 35h 34h cjnea,15h,out22;4ch 4bh 4ah 49h 48h 47h mova,4bh cjnea,13h,out22 mova,4ch cjnea,14h,out22mova,49hincamov4eh,a clrp1.7clrp0.0out22: ret;***************关闹铃报警******************************************************;关闹铃一cheak2: mova,46h cjnea,#0,out33 mova,4dh ;//闹铃1比对,若成立就给P3口传入#00h cjnea,12h,out33 ;时十位 时个位 分十位 分个位 秒十位 秒个位 mova,37h ;;39h 38h 37h 36h 35h 34h cjnea,15h,out33;4ch 4bh 4ah 49h 48h 47h mova,38h cjnea,13h,out33 mova,39h cjnea,14h,out33 setbp1.7setbp0.0out33: ret;关闹铃二cheak3: mova,46h cjnea,#0,out44 mova,4eh ;//闹铃1比对,若成立就给P3口传入#00h cjnea,12h,out44 ;时十位 时个位 分十位 分个位 秒十位 秒个位 mova,4ah ;;39h 38h 37h 36h 35h 34h cjnea,15h,out44;4ch 4bh 4ah 49h 48h 47h mova,4bh cjnea,13h,out44 mova,4ch cjnea,14h,out44 setbp1.7setbp1.6out44: ret;********整点报时校对程序****************************************************************** ; 小时 分钟zcheak: mova,46h cjnea,#0,out mova,12h ;14h13h 15h12h cjnea,#0,out mova,15h cjnea,#0,out mova,14h ;将原来存在13h,14h的小时转为一个值存在a中 movb,#10 mulab adda,13h cjnea,#1,play1 movp3,#0 jmpout1play1: cjnea,#2,play2 movp3,#10 jmpout1play2: cjnea,#3,play3 movp3,#20 jmpout1play3: cjnea,#4,play4 movp3,#30 jmpout1play4: cjnea,#5,play5 movp3,#40 jmpout1play5: cjnea,#6,play6 movp3,#50 jmpout1play6: cjnea,#7,play7 movp3,#60 jmpout1play7: cjnea,#8,play8 movp3,#70 jmpout1play8: cjnea,#9,play9 movp3,#80 jmpout1play9: cjnea,#10,play10 movp3,#90 jmpout1play10: cjnea,#11,play11 movp3,#100 jmpout1play11: cjnea,#12,play12 movp3,#110 jmpout1play12: cjnea,#13,play13 movp3,#120 jmpout1play13: cjnea,#14,play14 movp3,#130 jmpout1play14: cjnea,#15,play15 movp3,#140 jmpout1play15: cjnea,#16,play16 movp3,#150 jmpout1play16: cjnea,#17,play17 movp3,#160 jmpout1play17: cjnea,#18,play18 movp3,#170 jmpout1play18: cjnea,#19,play19 movp3,#180 jmpout1play19: cjnea,#20,play20 movp3,#190 jmpout1play20: cjnea,#21,play21 movp3,#200 jmpout1play21: cjnea,#22,play22 movp3,#210 jmpout1play22: cjnea,#23,play23 movp3,#220 jmpout1play23: cjnea,#24,out1 movp3,#230out1: ret ;闹铃调整notice: movdptr,#tab1 mova,34h movca,@a+dptr ; 时十位 时个位 分十位 分个位 秒十位 秒个位 mov45h,a ; 39h 38h 37h 36h 35h 34h ;BCD码 40h 41h 42h 43h 44h 45h mova,35h movca,@a+dptr ;14h 13h 15h 12h mov44h,a mova,36h movca,@a+dptr mov43h,a mova,37h movca,@a+dptr mov42h,a mova,38h movca,@a+dptr mov41h,a mova,39h movca,@a+dptr mov40h,a movp2,45h movp0,#70h ;显示时间 lcalldelay movp2,44h movp0,#60h lcalldelay movp2,43h movp0,#40h lcalldelay movp2,42h movp0,#30h lcalldelay ; 40h 41h 42h 43h 44h 45h movp2,41h movp0,#10h lcalldelay movp2,40h movp0,#00h lcalldelay movp0,#50h movp2,#3fh lcalldelay movp0,#20h movp2,#3fh lcalldelay jnbp1.2,goto7 ;p1.2跳回 jnbp1.1,addfen ;p1

温馨提示

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

评论

0/150

提交评论