毕业设计(论文)-单片机教学打铃设计与仿真.doc_第1页
毕业设计(论文)-单片机教学打铃设计与仿真.doc_第2页
毕业设计(论文)-单片机教学打铃设计与仿真.doc_第3页
毕业设计(论文)-单片机教学打铃设计与仿真.doc_第4页
毕业设计(论文)-单片机教学打铃设计与仿真.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

电子信息工程系毕业论文江阴职业技术学院毕业论文课题:单片机教学打铃设计与仿真 专 业 学生姓名 班 级 _ 学 号 _ 指导教师 完成日期 摘 要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。单片机技术起着不可忽视的作用并且在智能控制领域有着举足轻重的地位。本设计就是利用Atmel 公司生产的单片机AT89S52芯片和AT24C02芯片(存储芯片),以及利用DS1302用作时钟芯片(具有实时显示当前时间,按设定时间用蜂鸣器报时,能修改当前时钟(闹钟)等功能)。在以单片机为核心的基础上加上其外围设备实现的小的系统自动打铃系统。所谓的单片机小系统从系统的角度来定义就是完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。硬件设计部分分别从各个功能电路进行阐述,包括电源电路、复位电路、时钟电路、红外遥控及显示电路。软件部分分成了四个模块:初始化模块、时间显示模块、以及定时打铃模块。初始化模块主要是对定时计数器的方式及初值的设定。时间显示模块负责正确的显示当前时间。按键设定模块主要是对时间的校准及设定。定时打铃模块负责到时响铃功能。也就是说系统的功能是由硬件和软件两大部分共同合作完成。AbstractIn recent years, with the penetration of computers in the social sphere and the development of large scale integrated circuit, microcontroller applications is constantly deepening, as it has strong functions, small size, low power consumption, cheap, reliable, easy to use, etc. therefore particularly suitable in relation to control of the system, more and more widely used in automatic control, intelligent instruments, instrumentation, data acquisition, military products, and household appliances and other fields, the microcontroller is often used as a core component in depending on the hardware architecture, application-specific objects and features of the software combination for improvement. SCM technology plays a significant role and in the field of intelligent control has a pivotal position. This design is manufactured using Atmels AT24C02 MCU AT89S52 chip and chips (memory chips), and use as a clock chip DS1302 (with real-time displays the current time, press the buzzer to set the time with timekeeping, can modify the current clock (alarm clock) other functions). In a microcontroller core with on the basis of its peripheral devices to achieve the small system - automatic bell system. The so-called small system microcontroller from the system point of view is to define the complex functions of the hardware and software, and is tightly coupled to the computer system. Hardware design part of the circuit are described from various functions, including power supply circuit, reset circuit, clock circuit, infrared remote control and display circuit. Software part is divided into four modules: initialization module, the time display module, and the regular bell module. Initialize the timer counter module is mainly for the way and set the initial value. Module is responsible for the correct time display shows the current time. Button to set the module is the time of calibration and settings. Time when the bell rings to function module is responsible for. That is a function of the system hardware and software work together to complete the majority.目 录摘 要IAbstractI目 录III第一章 绪论11.1 1、绪言11.1课题的开发背景11.2课题设计的意义1第二章 系统总体设计22.1 设计要求22.2 功能特点22.3 总体设计图2第三章 方案的论证33.1 电源模块33.2 AT89S52芯片模块33.3 显示模块33.4 其他模块4第四章 系统硬件设计54.1 AC-DC电源模块名片5AC-DC电源模块的作用64.单片机系统及外围电路64.1时钟脉冲电路74.程序及数据存储器设定84.5 Flash编程并行模式94.3时钟芯片模块电路91 DS1302 的基本组成102. DS1302 内部寄存器1044 AT24C02芯片模块电路12I2C 总线实现原理12起始和终止信号13数据传送格式字节传送与应答134.5 LED显示电路14第五章 系统软件设计165.1 基本原理概述165.1.1 中断服务程序设计165.1.2 显示程序设计和按键判断与按键处理程序设计165.2 流程图175.2.1 系统主程序流程图175.2.2显示程序流程图17第六章 系统测试及分析196.1调试步骤196.2性能分析196.3调试成果206.4心得体会21致 谢22参考资料23附录24- IV -第一章 绪论 1.1 1、绪言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控检测技术日新月异。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,利用软件和硬件相结合,以完善整个系统。 首先在绪论中介绍了本课题的课题背景、研究意义,完成的功能及设计方法。本系统中单片机的编程用汇编语言。指令的执行速度快,节省存储空间。使硬件在软件的控制下协调运作。正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,并介绍了单片机微处理器的基本原理,论述了本次设计所应用的各硬件接口技术和各个接口模块的功能及工作过程, 并具体描述了89S52、24C02、 LED数码管的外接电路接口的软、硬件调试。其次阐述了程序的流程和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。1.1课题的开发背景单片微机又称微控制器(MCU Micro Ctroller Unit),在全世界的年产量已近100亿片,在中国大陆,年用量约为6亿片,而且还在不断增长,简单的如玩具,家用电器,复杂的如仪器仪表,工业控制,军用设备等等。几乎每一个领域都可以看到单片机的应用。单片微机的应用带来了“智能化”,“傻瓜化”,使控制更灵活,设备更精确,并符合“绿色”电子的要求。Intel公司的MCS51单片机在我国流行了20多年,至今仍在发展。特别是MCS51实施技术开放以后,由于Philips,IISS,Atmel,WINBIND,ADI,DALLAS,Siemens等知名公司的介入,在MCS51基础上形成了新一代的80C51系列单片机,这使80C51的应用领域更宽广。另外在80C51单片机中采用了Flash ROM,基于Flash ROM的ISP(in system programmable)技术,软件上已有C编译器和实时多任务操作系统等,使得单片机在目标板上可以在线实时仿真,从而提高了工作效率,缩短了开发周期,适应了商品经济的发展。1.2课题设计的意义毕业设计是教学和工程实践的重要结合点,要求学生在设计中明确什么是正确的设计思想和设计方法。学生在岗位之前必须通过工程知识和专业技能的严格训练,完成向工程技术人员的过渡,使自己走上工作岗位后有能力综合利用学过的理论知识和专业技能解决工程实际问题。第二章 系统总体设计2.1 设计要求设计一个校园打铃系统,使用的是24小时制。要求在掉电状态下数据不丢失,可以设置多个打铃时间点(在本系统中我利用AT24C02芯片存储使系统能够设置40组的打铃时间点),数字键输入设置内容,不只上、下键地调时。由于用的不是单片机内部的定时器,定时功能用的是外部时钟DS1302芯片,而DS1302芯片的精度取决于32768HZ晶振的精度,32768HZ晶振的精度小于0.01%,所以整个系统的精确度高于99.99%2.2 功能特点采用首创的忽略定时新概念,可以设置定时某项为忽略值,再配合多路定时项目使定时的内容自由发挥,千变万化,能够适应各种的定时要求。全程帮助提示和独立的帮助菜单,易学易用。数字键输入设置内容,不只上、下键地调时了。人性化软件设计,设计时考虑到许多使用细节。2.3 总体设计图时钟电路电源显示电路AT89C51CPU键盘电路驱动电路电铃图2-1 系统总体设计图第三章 方案的论证3.1 电源模块电源模块是为系统提供电源,本设计中用到的是正5V的直流稳压电源。方案一:采用串联反馈式稳压电路获得直流稳压电源。该电路由比较放大电路、稳压管、三极管、限流电阻及两个取样电路组成,此电路由主回电路式起调整作用的BJTT与负载串联而得名的。但它的输出电源不可能绝对稳定的,只能是基本稳定,且负载电流较大时,调整管的集电极损耗大,电源效率低,有时还要配有庞大的散热装置。方案二:本设计用到的电源为5V,属于中小功率稳压电源,所以可以采用三端稳压芯片LM7805。用其设计的是线性开关,线性稳压电路,具有结构简单、调节方便、输出电压稳定性强、文波电压小等优点,但是,在负载电流较大且输出电压较低时,其自身的功耗很大。但如果给本系统供电,完全满足要求。综上所述,我选择方案二。3.2 AT89S52芯片模块方案一:采用AT89C2051芯片,它具有体积小、功耗小。含有中断、定时/计数器。本次设计需要非常大的编程量,虽然其价钱相对便宜,但IO口数和存储空间相对较少,所以此芯片不利于系统的工作和系统功能的扩展。方案二:采用AT89C51芯片,它具有AT89C2051芯片的所有功能,且IO口数相对较多,价钱相对也比较便宜,但存储空间不是非常大,而本次的设计需要大量的存储空间。方案三:采用AT89S52芯片,它具有AT89C2051和AT89C51芯片的所有功能,且IO口数非常多,比AT89C2051和AT89C51多。价钱虽然比AT89C2051和AT89C51昂贵,但存储空间非常大,可以到达8K。而本次的设计正需要此容量的空间。综上所述,我选择AT89S52芯片作为本次设计的主控芯片3.3 显示模块在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED 数码管、液晶显示器。方案一:采用LCD1602液晶模块,1602 液晶模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A”。方案二:采用LCD2402液晶模块,用LCD 显示一个字符时比较复杂,因为一个字符由68 或88 点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM 区的8 字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。 由于LCD1602液晶显示模块只能显示16*2个字符,而LCD2402液晶显示模块能够显示24*2个字符,在本设计中要显示的字符比较多,综上所述,我选择LCD2402作为本设计的显示模块。3.4 其他模块在通过各种的考虑后,时钟芯片我选用的是DS1302, DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进,行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。数据存储芯片选用的AT24C02,AT24C02 是美国ATMEL公司的低功耗CMOS 串行EEPROM,它是内含2568 位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10000 次)、写入速度快(小于10ms)等特点。 第四章 系统硬件设计4.1 AC-DC电源模块名片AC-DC 电源模块能使电路中形成恒定电流的装置,如干电池、蓄电池、直流发电机等,称为直流电源。 直流电源有正负两个电极,正极的电势高,负极的电势低;当两个电极与电路连通后,直流电源能维持两个电极之间的恒定电势差,从而在外电路中形成由正极到负极的恒定电流。 要使直流电源两极间的电势差保持恒定必须使在外电路中由正极流到负极的正电荷,在电源内部逆着电场力的方向,由负极返回到正极去。这个过程不能靠静电力,只能靠某种与静电力方向相反的“非静电力”来实现。因此,电源就是一种提供非静电力的装置,通过非静电力做功,把非电能转化为正负电极之间的电势能。 表征电源特征的重要物理量有两个:一个是电源电动势E,另一个是电源的内电阻(简称内阻)r0。 直流电源的类型很多,不同类型的直流电源,非静电力的性质不同,能量转换的过程也不同。例如,在化学电池中,非静电力来自与离子的溶解和沉积过程相联系的化学作用,化学电池放电时,化学能转化为电能和电路中的内能。在直流发电机中,非静电力来自电磁感应作用,直流发电机供电时,机械能转化为电能和电路中的内能。 直流电源的分类: 直流稳定电源按习惯可分为化学电源,线性稳定电源和开关型稳定电源,它们又分别具有各种不同类型: 化学电源: 我们平常所用的干电池、铅酸蓄电池、镍镉、镍氢、锂离子电池均属于这一类,各有其优缺点。随着科学技术的发展,又产生了智能化电池;在充电电池材料方面,美国研制人员发现锰的一种碘化物,用它可以制造出便宜、小巧、放电时间长,多次充电后仍保持性能良好的环保型充电电池。图4-电源电路AC-DC电源模块的作用一、隔离: 1、安全隔离:强电弱电隔离IGBT隔离驱动浪涌隔离保护雷电隔离保护(如人体接触的医疗电子设备的隔离保护) 、噪声隔离:(模拟电路与数字电路隔离、强弱信号隔离) 、接地环路消除:远程信号传输分布式电源供电系统 二、保护:短路保护、过压保护、欠压保护、过流保护、其它保护 三、电压变换:升压变换降压变换交直流转换(AC/DC、DC/AC)极性变换(正负极性转换、单电源与正负电源转换、单电源与多电源转换) 四、稳压:交流市电供电远程直流供电分布式电源供电系统电池供电 五、降噪:有源滤波 4.单片机系统及外围电路 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。主要性能l 与MCS-51单片机产品兼容l 8K字节在系统可编程Flash存储器l 1000次擦写周期l 全静态操作:0Hz33Hzl 三级加密程序存储器l 32个可编程I/O口线l 三个16位定时器/计数器l 八个中断源l 全双工UART串行通道l 低功耗空闲和掉电模式l 掉电后中断可唤醒l 看门狗定时器l 双数据指针l 掉电标识符4.1时钟脉冲电路 AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器,如图4.2所示。图4-2 晶振电路石英晶振(利用12MHZ晶振) C1,C2=30PF陶瓷谐振器 C1,C2=40PFXTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端4.程序及数据存储器设定 MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元,MOV 0A0H , #data使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV R0 , #data堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。因为一般单片机内部数据存储器只有128 Byte,非常有限,而且程序存储器空间也只有4K,大一点的程序就存储不下,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52芯片及外围电路如图4.4所示。图4-4 AT89S52芯片及外围电路4.5 Flash编程并行模式AT89S52 带有用作编程的片上Flash 存储器阵列。编程接口需要一个高电压(12V)编程使能信号,并且兼容常规的第三方Flash或EPROM编程器。AT89S52程序存储阵列采用字节式编程。编程方法对AT89S52编程之前,需根据Flash编程模式表和对地址、数据和控制信号设置。可采用下列步骤对AT89S52编程:1在地址线上输入编程单元地址信号2在数据线上输入正确的数据3激活相应的控制信号4把EA/Vpp升至12V5每给Flash写入一个字节或程序加密位时,都要给ALE/PROG一次脉冲。字节写周期时自身定制的,典型值仅仅50us。改变地址、数据重复第1步到第5步,知道全部文件结束。4.3时钟芯片模块电路DS1302 是由DS1202 改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1 为可编程涓流充电电源附加七个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域,下面将主要的性能指标作一综合 实时时钟能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力 31 8 位暂存数据存储RAM 串行I/O 口方式使得管脚数量最少 宽范围工作电压2.0 5.5V 工作电流2.0V 时,小于300nA 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配 与TTL 兼容Vcc=5V 可选工业级温度范围-40 +85 与DS1202 兼容 在DS1202 基础上增加的特性对Vcc1 有可选的涓流充电能力双电源管用于主电源和备份电源供应备份电源管脚可由电池或大容量电容输入附加的7 字节暂存存储器1 DS1302 的基本组成管脚描述 X1 X2 32.768KHz 晶振管脚 GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚 2. DS1302 内部寄存器CH: 时钟停止位 寄存器2 的第7 位12/24 小时标志CH=0 振荡器工作允许 bit7=1,12 小时模式CH=1 振荡器停止 bit7=0,24 小时模式WP: 写保护位 寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入 AP=1 下午模式WP=1 寄存器数据不能写入 AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电 DS=01 选择一个二极管TCS=其它 禁止涓流充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止图4-7 RS配置表图4-8 DS1302时钟图4-9 DS1302RAM44 AT24C02芯片模块电路图4-11 AT24C02管脚描述图4-12 AT24C02管脚配置上图4.11中AT24C02 的1、2、3 脚是三条地址线,用于确定芯片的硬件地址。在设计上它们都接地,第8 脚正电源。第5 脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,第6 脚SCL为串行时钟输入线。SDA 和SCL 都需要和正电源间各接一个10k 的电阻上拉,第7脚和第4 脚分别需要接地,24C02 中带有片内地址寄存器.每写入或读出一个数据字节后,该地寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8 个字节的数据I2C 总线实现原理I2C 总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。图4-13 I2C时序操作起始和终止信号SCL 线为高电平期间,SDA 线由高电平向低电平的变化表示起始信号;SCL 线为高电平期间,SDA 线由低电平向高电平的变化表示终止信号。图4-14 I2C起始和终止信号数据传送格式字节传送与应答每一个字节必须保证是8 位长度.数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9 位).如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到数据图4-15 I2C数据传送格式字节传送与应答AT24C02 的芯片地址如下图,1010 为固定,A0,A1,A2 正好与芯片的1,2,3 引角对应,为当前电路中的地址选择线,三根线可选择8 个芯片同时连接在电路中,当要与哪个芯片通信时传送相应的地址即可与该芯片建立连接,TX-1B 实验板上三根地址线都为0.最后一位R/W 为告诉从机下一字节数据是要读还是写,0 为写入,1 为读出.图4-16 任一地址写入数据格式图4-17 任一地址读取数据格式利用24C02 的存储功能,将所设置的打铃时间点的数据从24C02 的第一存储单元一一存储进去,再从24C02 的第一个存储单元开始一一将数据读出送显示验证。读到打铃时间点系统就开始打铃。所以选择24C02用作多组数据的存储。4.5 LED显示电路由N个LED显示块可构成N位LED显示器。N位LED显示器需要N根位选线和8 X N根段选线。根据显示电路不同,位选线和段选线的联接方式不同,实际所需的位选线和段选线的根数也不一样。显示电路主要有静态显示和动态显示两种。(1)静态显示电路LED显示器工作在静态显示时,其公共阳极(或阴极)接电源(或地),一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。静态显示时,LED的亮度高,控制容易,但功耗大,所需口线多。若显示位数增多,则静态显示方式很难适应。一般需要采用动态显示方式。(2)动态显示电路 对于动态显示,一般将所有位的段选线的同名端联在一起,由一个8位I/O口控制,形成段选线的多位复用。而各位的公共阳极或公共阴极则分别由相应的I/O口线控制,实现各位形成段的分时选通,即同一时刻被选通位是能显示相应的字符,而其他所有位都是熄灭的。由于人眼有视觉暂留现象,只要租位显示间隔足够短,则会造成多位同时点亮的假象。这就需要单片机不断地对显示进行控制,牺牲单片微机的CPU时间来换取元件的减少以及显示功耗的降低。动态显示电路如下图4-18所示:数码管字形锁存器驱动器字位锁存器驱动器数码管数码管数码管数码管数码管4-18动态显示电路第五章 系统软件设计5.1 基本原理概述 主程序首先是初始化部分,主要是计时单元清零,中断初始化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。主程序的起始存储地址是0000H单元,但由于本系统用了定时器T0的中断,中断服务程序入口地址为000BH,因此从0000H单元起存放一条短调转指令AJMP,使真正的主程序从0300H单元开始存放。5.1.1 中断服务程序设计单片机内部的定时/计数器T0定时100ms,即0.1s,10次中断即为1秒,60秒为1分,60分为1小时,24小时为一天,如此循环,从而实现计时功能。编写中断服务程序关键要注意:1.现场保护,本系统中是累加器A和程序状态字PSW值的保护。2.计时处理时采用的确十进制,因此时,分,秒单元加1后要进行十进制调整,即要执行DAA指令,还要注意的是时计到24就回零,分和秒计到60就回零。3.中断返回前的现场恢复。5.1.2 显示程序设计和按键判断与按键处理程序设计显示采用的是动态显示,段控和位控都经过反相器,显示的字形代码是共阳的显示代码,位控信号输出时是高电平有效,在校时时,采用的是点亮小数点信位调节器标志,哪位小数点亮表示调整的是该为的值。显示子程序的第一部分是拆字,显示缓冲区是2FH2AH;第二部分是查字型码,输出段控和位控信号,由于采用的是动态显示,所以每出输出一位的段控和位控信号要延时一定的时间,使LED显示器显示的字符时稳定的。按键判断程序有编写时应注意按键的去抖动,该系统采用的是延时去抖动的方法,延时是通过调用子程序来实现的,每个按键按下后都要等待释放后再返回。按键处理程序中的按键式校时的,所以进入按键处理程序后就关闭定时中断,对于动能键注意设置显示标志。5.2 流程图 5.2.1 系统主程序流程图开始初始化参数设置调用键盘子程序调用显示子程序调用控制子程序5-1主程序流程图5.2.2显示程序流程图开始向缓冲区放数指向缓冲区首地址关显示指向A口查段码,送段码指向B口送出码延时1ms指向指向下一个缓冲单元显示下一位六位显示完返回5-2显示程序流程图第六章 系统测试及分析6.1调试步骤进入调试状态后应该在关键的地方设置断点然后按步运行,同时观察参数的变化,通过变化来判断程序运行的过程即可找出程序中混乱的部分,进行改正,这需要对软件熟练的掌握和对语言程序的很好的理解,实验板搭建成功后,我们就进入了程序的设计和调试阶段,开始编写程序时很顺利,但是后来在调试过程中出现了很多的错误,比如定时器准确度的设置,子程序的调用问题,最困难的就是对没步程序执行顺序的分析,由于程序中一些语句的错误理解和执行顺序的判断失误,让我掉进了误区,耽误了很长时间,最后在同学的帮助下终于找到了错误的关键点,更正成功了。看来对程序的调试能力我还需要加强,程序的调试需要耐心,而且需要熟练掌握软件的跟部分功能6.2性能分析自动打铃系统在学校很工厂和日常生活中应用广泛,原理主要是通过单片机的计数器进行计时,同时通过定时器中断扫描定时时间点来判断是否到了打铃时间,到了打铃,同时可以手动灭铃,主要功能即计时和打铃,相当于闹钟,通过计时器DS1302的使用使电路在断电后依然有后备电源进行计数,设计很人性化。还可以通过按键来设置时间,如果想深入设计,也可以通过键盘来设置闹钟时间,使系统更加方便。6.3调试成果 闹钟打铃时,继电器和上,打铃的时间长度为时一分钟。图6-1打铃状态,而图6-2打铃结束,即为继电器恢复原来的位置。6-1打铃状态6-2打铃结束6.4心得体会本系统被子广泛用企事业单位,设计比较简单。经过一学期的学习,使我对单片机有了初步的认识,了解了一些软件编程的技巧。 经过这次的课程设计,使我学会了课堂上学不到的知识,颇有一番感受,对于单片机更加的了解了,对各种器件的使用方法更加熟悉,学会了电路的基本设计思路和原理,掌握单片机设计步骤,知道这门课程在工作中的重要性,因为需要大量的资料,所以我和我的合作者到图书馆查阅了大量的资料,也利用了互联网查找大量的资料,经过一番努力,第一周我们完成了电路图的设计,第二周我们领取了所需的元器件,开始了电路的装调,经过几天的努力,终于把电路装好了,但电路调试过程并不是那么的容易,但经过调试我们发现了电路的一些问题,但在老师和同学们的同共努力下都得到解决,最终看到了成果.我感谢老师,课程设计加深了学生对所学课程理论的理解,扩展了教学中的实验内容和要求,积累了实践体验和经验,让我们提前感受到毕业设计的大致过程,进而能顺利进入毕业设计,提高毕业设计质量和学生实际应用能力。致 谢在本文的撰写过程中,导师王琦华给予了悉心的指导和关心,使我克服了众多困难终于完成了毕业设计的撰写工作。导师渊博的知识、严谨求实的治学态度及敬业精神,给我留下了深刻的印象,并将在我今后的人生道路上产生深远的影响,在此论文完成之际,谨向导师致以崇高的敬意和衷心的感谢!再一次感谢所有关心我、帮助我的人!参考资料【1】 沈红卫。基于单片机的智能系统设计与实现。电子工业出版社。2005。【2】 张志良。单片机原理与控制技术。机械工业出版社。2009。【3】 孙涵芳,徐爱卿。MCS-51/96系列单片机原理及引用。北京航空航天大学出版社。1996。【4】 李光弟。单片机基础。北京航空航天大学出版社。1992。【5】 孙育才,苏学成。单片微型计算机应用系统设计与实现。东南大学出版社。1990。【6】 林毓梁。单片机原理及应用。机械工业出版社。2009。【7】 杨宏丽,王静霞。单片机基础教程。人民邮电出版社。2009。【8】 唐继贤。51单片机工程引用实例。北京航空航天大学出版社。2009。【9】 赵星寒,刘小波,王庚兰。从0开始教你学单片机。北京航空航天大学出版社。2008。附录单片机教学打铃控制器芯 片:AT89S52晶 振:频率12MHz按键说明: Ring_Set P10/时间设置 Time_Set P11/闹铃设置 Left_Move P12/向左移动 Add P13/数据增加 Sub P14/数据减小 Right_Move P15/向右移动 ESC P16/取消 Enter P17/确定*/#include AT89X52.H#include intrins.h#define uchar unsigned char#define AddressWrite24C02 0xa0/24C02写地址#define AddressRead24C02 0xa1/24C02读地址uchar ClockData=0,0,12;/时钟数据uchar RingDataH40;/40个闹铃数据(时)uchar RingDataL40;/40个闹铃数据(分)uchar RingCount=0;/闹铃总数uchar counter=0;uchar I2cStartByte=0xaa;/I2c开始标志字uchar I2cEndByte=0x55;/I2c结束标志字uchar S_Ray_Flag=0;/秒闪标志1sbit S_Ray=P31;/秒闪sbit s_ray=P30;/秒闪标志2sbit Alarm=P34;/闹铃信号sbit SDA=P32;/I2C BUS数据sbit SCL=P33;/I2C BUS时钟/-T1中断,产生时钟-void Timer1(void)interrupt 3 using 1TH1=0x3c;TL1=0xb0;if(counter%10=0)s_ray=s_ray;if(S_Ray_Flag)S_Ray=0;else S_Ray=S_Ray;if(counter=20)counter=1;if(ClockData0=59)ClockData0=0;if(ClockData1=59)ClockData1=0;if(ClockData2=23)ClockData2=0;else ClockData2+;/时else ClockData1+;/分else ClockData0+;/秒else counter+;/-BCD码转换成字形码的程序-uchar BCD_to_Grapheme(uchar Data)switch(Data)case 0:return 0x3f;case 1:return 0x06;case 2:return 0x5b;case 3:return 0x4f;case 4:return 0xe6;case 5:return 0xed;case 6:return 0xfd;case 7:return 0x07;case 8:return 0xff;case 9:return 0xef;/-得到位地址的程序-uchar GetC

温馨提示

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

评论

0/150

提交评论