《基于STC89C52的定时器.doc》由会员分享,可在线阅读,更多相关《基于STC89C52的定时器.doc(70页珍藏版)》请在三一办公上搜索。
1、摘 要当今社会,单片机已经普及到我们生活、工作的各个方面,已经发展成为一门比较成熟的技术。定时器在日常生活、工业控制、交通灯管理、检测、报警等方面的应用越来越广泛,同时人们对定时器的要求也越来越高。本课题设计一个基于 STC89C52构成的实用定时器,这在某些应用中具有一定的实用价值。本课题设计了一个基于 STC89C52的定时器,首先介绍了设计内容及要求,介绍了定时器的设计思路以及功能模块的划分,并对各模块实现的具体功能进行了说明。然后结合框图,介绍了定时器的工作原理,之后详细介绍了定时器具体单元电路的设计与分析。该定时器除具有基本的定时功能外,还具有定时时间连续可调、倒计时显示和定时开关功
2、能。它造价低,功能全,整体功能性价比高,配以LED显示器,它适应各种场合的定时预警之用。而且设计巧妙,体积小,功能强,计时范围大,用途广泛,操作携带方便,是一种较理想的定时工具。关键词:定时器; STC89C52;连续可调;倒计时显示ABSTRACTToday, the monolithic integrated circuits has been popular in our daily life and work ,and has become a relatively mature technology.The timer in our daily lives, industrial c
3、ontrol, traffic lights management, detection, alarm and so on, while people on the timer there are increasingly high requirements. The design of a subject with a practical STC89C52 timer, which in some applications has some practical values.This paper first introduced the design of the content and r
4、equirements on the design of the timer and the delineation of functional modules, each module and the specific functions of the note. Then with diagram, on the principle of the timer, after details of the specific unit timer circuit design and analysis. The timer in addition to a basic function of t
5、he timing, but also with adjustable timing consecutive time, the countdown display and regularly switching function. it is low cost, full-featured, cost-effective overall function, together with a LED display, it is adapt to a variety of occasions for use in varieties of warning. And cleverly design
6、ed, small, strong function, wide time range, wide range of uses, easy to carry and operate, is an ideal timing tool.Keywords: Timer; STC89C52; continuously adjustable; the countdown show目 录第一章 绪论11.1设计背景31.2论文研究内容51.3 论文结构安排5第二章 整体方案设计62.1设计任务及要求62.2系统设计整体方案62.2.1时钟计时的方案选择62.2.2时钟显示的方案选择82.2.3系统硬件的整
7、体设计82.2.4主控制模块的方案选择与设计9第三章 硬件电路设计103.1 STC单片机103.2 STC单片机模块介绍123.2.1 复位电路123.2.2 晶振电路143.2.3 电源电路143.2.4 下载电路153.3 LED与单片机接口电路163.4发光二级管电路设计183.5器件选择193.6 接口连接设计203.7 功能简介20第四章 软件设计204.1主程序204.2发光二极管指示程序214.3键扫描程序224.1定时器中断程序24第五章 设计调试255.1 软件调试255.1.1 Keil软件及其调试功能简介255.1.2 C语言简介275.1.3Keil软件调试285.2
8、 硬件调试325.2.1 Protel 99 SE 简介325.2.2 Protel 99 SE 绘制原理图见附录C345.2.3 Protel 99 SE 绘制PCB图见附录D345.3 调试结果34第六章 总结36致谢37参考文献38附录A:电路原理图39附录B:PCB图40附录C:程序清单41附录E:英文资料52附录F:英文资料翻译59第一章 绪 论目前单片机已渗透到生活的各个领域,几乎很难找到哪个领域没有单片机的足迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机
9、、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说全自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。科技越发达,智能化的东西就越多。看来学习单片机是社会发展的必然需求。 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit), 常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,
10、单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。单片机由于将cpu,内存和一些必要的接口集成到一个芯片上,并且针对面向控制功能将结构做了一定的优化,所以它具备通用芯片不具有的特点。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步
11、向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。因此,单片机被广泛应用于测控系统,智能仪表仪器,机电一体化产品,智能接口以及单片机的多系统等领域。 它的应用主要表现在以下几个方面:(1)单片机在智能仪表中的应用 单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。 (2)单片机在机电一体化中的应用 机电一体化是机械工业发展的方向。机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的体
12、积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。 (3)单片机在实时控制中的应用 单片机广泛地用于各种实时控制系统中。例如,在工业测控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。 (4)单片机在分布式多机系统中的应用在比较复杂的系统中,常采用分布式多机系统。多机系统一般由若干台功能各异的单片机组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时的测量和控制。单片机
13、的高可靠性和强抗干扰能力,使它可以置于恶劣环境的前端工作。 (5)单片机在人类生活中的应用 自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、电子玩具、收录机等家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。单片机将使人类生活更加方便、舒适、丰富多彩。综合所述,单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 本文在对单片机研究的基础
14、上,以 STC89C52为核心,对定时器进行设计与应用,通过对其原理深入分析,探讨以 STC89C52单片机构成定时器的实现方法,介绍其设计原理及方法,给出定时器软件设计。考虑到存在的各种干扰对系统的影响,从软、硬件设计两个方面进行分析,采取相应的措施以增强系统的抗干扰能力。1.1 设计背景近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异地更新。定时、延时装置在工业控制中被广泛的应用。它可以实现信号的异步传送,根据控制要求设置接收到和做出相关反应的时间差。被广泛的用于仪表、通信、办公自动化、军工领域及各种控制柜、控制台,使用极为广阔。在实时检测和自动控制的
15、单片机应用系统中,单片机往往是作为一个核心部件来使用,根据具体硬件结构及具体应用对象的特点,与软件相结合,加以完善。单片机之所以在工业控制中有大量的应用,就在于它有独特的定时、计数功能。在工业检测、控制中,许多场合都要用到计数或定时功能。例如,对外部脉冲进行计数、产生精确的定时时间等。人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。“定时器”总的来说有两种类型。一种是基于模拟技术的传统产品,这种定时器功能简单,尽管曾被广泛应用过,但已进入淘汰之列。另一种是基于数字技术的新一代产品,这种产品功能强,是前者的换代
16、之物。随着单片机性能价格比的不断提高,新一代产品的应用越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能,小则可以用于家电控制,甚至能够用来做儿童电子玩具。它功能强大,体积小,重量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。定时器按结构可分为机械式、电动式和电子式3类。 机械式定时器:以发条为原动力,用擒纵调速器控制走时精度,通过齿轮传动和凸轮,按时间控制机构预置的时段操纵执行机构动作。计时精度要求不高的定时器(如风扇定时器、洗衣机定时器、厨房用定时器、照相暗房用定时器、电视机控制用定时器、电灯开关定时器),一般采用无固有振动周期的调速器。这些定时器都
17、是在手动上发条的同时预置时限,定时精度不高,但结构简单,使用方便。计时精度要求高、定时范围在312小时的定时器,一般采用摆轮游丝调速器。电动式定时器:用交流同步电动机或石英步进电机驱动,通过齿轮传动和凸轮簧片触点机构,按预置的时段或时刻控制执行机构。其中短时段控制的电动式定时器可用于程序控制式洗衣机、洗碗机、微波炉、烘箱及时间继电器等;长时段电动式定时器是一种24小时或7天程序控制的开关装置,可预置开关动作多次,最短时间控制间隔一般为15分钟,可用于用户用电情况监控、照明控制、实验室装置控制、空调器控制和自动生产线上某些设备的定时控制等。电子式定时器:利用石英振荡器或民用交流电的标准频率,经过
18、分频计数组成时间累加器或数字钟,按照预置的时间编码输出控制信号。这种定时器走时精确,时间设定没有误差,定时精度高,控制程序多。其中长时段定时器最小控制时段一般为1分钟,配上微处理器后能精确地编制一年的时间程序,组成多路可编程序的定时器。电子式定时器在工业自动化控制系统中应用广泛,它也是节约能源管理中一种有效的技术措施。电子定时器类的电子定时开关钟,可用于按高、平、低峰用电收取不同电费制度的场合,它将一天内的用电高峰、平峰、低谷时间在定时开关中设定,并分别接通3种电表进行计费。电子式定时器在科学实验中和在微波炉、电饭锅、洗衣机等电器中也有使用。本设计开发了一种基于单片机的多用途定时器。它造价低,
19、功能全,整体功能价格比高,配以小键盘和LED显示器,它适应各种场合的定时预警之用。而且设计巧妙,体积小,功能强,计时范围大,用途广泛,操作携带方便,是一种较理想的定时工具。1.2 论文研究内容基于单片机的定时器电路包含了如下的功能模块:1,以STC89C52为核心的主控模块;2,四位LED显示模块;3,电源供电模块;4,键盘扫描模块;5,下载模块。该系统利用单片机的定时器定时,时间准确、稳定、可靠,并可以利用单片机的功能很好地进行时间的显示、指示,输出。原理简单,使用元器件少。而且成本低。用单片机完全可以实现定时功能。1.3 论文结构安排第一章,前言。介绍了本课题研究的目的背景和本次论文的结构
20、框架。第二章,整体方案设计。介绍了本设计的任务要求和整体的方案设计。第三章,硬件电路设计。介绍了本设计所需要的各芯片及接口连接。第四章,软件设计。介绍了所用到的软件和各模块的软件流程图。第五章,设计调试。介绍软件仿真调试与硬件调试。第六章,总结。对本次设计过程中的一些学习心得。 致谢。感谢指导老师和帮助我的同学。第二章 整体方案设计2.1 设计任务及要求设计一个基于单片机控制的专用定时器。要求定时器可以实现三个定时时间的显示,而且每个时间的初值都可以改变,独立完成系统的分析、设计和程序编写,记录开发过程中的问题及解决方法,要有计算过程和原理图,以及独立的稳定电源。设计主要指标参数: (1) 定
21、时时间1。1s-99s,可调。 (2) 定时时间2。1s-99s,可调。 (3) 定时时间3。1min-99min,可调。 (4) 每个时间的初始值、设定值都可以改变。 (5) 所有时间数字均可调。 (6) 用LED数码管显示剩余时间。2.2 系统设计整体方案按照系统设计功能的要求,初步确定设计系统由主控模块、显示模块、键扫描电路模块、电源供电模块、下载模块等组成。设计采用STC89系列单片机,以C语言为程序设计的基础,设计出多功能定时器。2.2.1时钟计时的方案选择单片机的接口信号是数字信号。要想用单片机获取时间这类非电信号的信息,必须使用时间芯片,将时间信息转换为电流或电压输出。如果转换后
22、的电流或电压输出是模拟信号,还必须进行A/D转换,以满足单片机接口的需要。如果是数字信号就可以直接送往单片机进行数据处理。方案一:比较传统的基于单片机的时钟设计可以采用单片机内部的晶振来产生脉冲,然后通过单片机内部的计时器经过分频产生秒脉冲,然后通过软件编程来实现时钟的显示,这种设计方案的优点是外围器件少,电路简单清晰,电路焊接容易,出问题的故障几率小。但是这种方案需由软件编程来实现秒脉冲的产生,编程相对来说比较复杂,而且也不利于排故。另外由单片机内部时钟产生的秒脉冲由于受到温漂的影响和程序执行时的延时的影响,而使的计时会产生不定的误差,即使设计时间误差补偿程序也很难实现提供准确时间的功能。另
23、外,这种电路设计方案的另外一个设计要求就是晶振的选择要求晶振的振荡频率必须通过分频得到秒脉冲。这种设计还有一个非常大的缺点就是如果单片机断电,时间计时就停止,再次上电时又从初始设定重新计时,这样就需要在每次上电都调整时间,比较麻烦。方案二:在传统的基于单片机的数字时钟设计的基础上经过一些改进,引入12887时间芯片,将电路的控制部分和计时部分分开,电路的控制部分为单片机,计时部分为12887时间芯片。12887芯片是独立计时,并且具有掉电保护功能,内部自带锂电池,能够在断电的情况下继续计时,主电路恢复供电之后能够不必调整时间,为时钟的日常操作省去了很大的麻烦,而且这种设计更节能,在需要观察时间
24、的时候比如白天就可以给主电路通电。而在夜晚不需要观察时钟的时候就可以给主电路断电,这样可以节约大量能量。时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM和内置电池的实时时钟DS12887。采用DS12887作为主要计时芯片,可以做到计时准确。更重要的是,DS12887可以在外部电源断电的情况下继续计时,在没有外部供电的情况下,DS12887可以连续计时10年以上。时间芯片12887采用了内部集成晶振的电路,并且具有内部温漂补偿电路设计。能够准确计时,提供精确的时间,这样就简化了电路的器件选择,另外也使程序的设计更加简洁。比较上述两种方案可以看出,第二种方案计时更加准确而且电路
25、硬件设计先对来说并不复杂,软件设计更加简洁。为了减少实物的制作难度和节约成本,我决定选择第一种方案。2.2.2时钟显示的方案选择方案一:时钟的显示可以用4位LED数码管显示,4位LED数码管显示电路耗能多,而且显示位数有限,每增加一位都要在程序设计和硬件设计方面增加很多的工作量,不利于电路的扩展,而且无法显示年、月、日、星期这些汉字,使得显示不够直观,灵活。但是这种设计方案在显示位数比较少时性价比比较高,价格便宜。方案二:采用LCD液晶显示器显示。而LCD液晶显示则耗能少,能够显示年、月、日、星期等汉字,在显示方面更加灵活,而且改变显示时只要改变软件设计就可以,不用改变硬件电路的设计,易于电路
26、的功能扩展。电路的软件设计也很简单。另外,这种设计硬件更加简洁。采用LCD液晶显示方案的缺点是在显示位数比较少时,价格略显昂贵。比较上述两种方案可以看出方案二耗能少,显示灵活,易于电路扩展而且不管是软件设计还是硬件设计都比较简单。为了减少实物的制作难度和节约成本,我决定选择第一种方案。综上所述,本设计采用单片机内部时钟计时方式,用4位LED显示时间。2.2.3系统硬件的整体设计主控芯片使用51系列STC89C52单片机,系统由主控制器STC89C52、LED显示模块、键扫描电路和系统下载模块电路组成。利用单片机定时输出Y1、Y2、Y3,定时时间分别T1、T2、T3,并用发光二极管表示其时间长短
27、,用LED显示定时的剩余时间。时间长短通过按键调节,串口用来对单片机在线编程。如图2-1所示:各模块功能如下:1.主控模块:以STC89C52单片机为核心。2.键盘接口模块:本设计共采用按键7个,分别与单片机的三个I/O管 脚相连,分别对应复位、可以任意时间的调整和退出,任意设定一个时 间,到闹铃开关键的功能。3.显示模块:显示器部分是4位LED数码管显示电路组成。4.串口模块:对单片机在线编程图2-1系统结构图2.2.4主控制模块的方案选择与设计系统的设计可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖数字电路的各
28、功能模块的组合来实现。若用单片机来设计完成,由于其功能的实现主要通过软件编程来实现的,那么就降低了硬件电路的复杂性,所以在该设计中采用单片机作为主控模块。另外这个课题设计的软件程序比较简单,不需要很强大的单片机,只要用简单的单片机就可以满足要求,因此我选用了性价比比较高的低端STC89C52单片机。基于单片机系统的定时器电路包含了如下的功能模块:基本的单片机系统单片机的定时中断单片机的外围电路外部按键输入装置数码管LED显示装置利用单片机的定时器定时的优点是时间准确、稳定、可靠,并可以利用单片机的功能很好地进行时间的显示、指示、输出。原理简单,使用元器件少,相对来说在实物调试时出现的问题就少。
29、该方案还有一个好处就是成本低。第三章 硬件电路设计3.1 STC单片机MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有
30、8K 在系统可编程Flash存储器。器件采用高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和 Flash 存储单元,STC89C52 单片机适合于许多较为复杂控制应用场合。STC89C52单片机为40引脚双列直插芯片,有四个I/O口P0、P1、P2、P3,每一条I/O线都能独立地作输出或输入。STC89C52 PDIP管脚封装,如图3-1所示。图3-1 STC89C52 PDIP管脚封装STC89c52包含以下部分,其结构图如图3-2所示(1)一个8位微处理器CPU(2)片内数据存储器RAM和特殊功能寄存器SFR(3)片内
31、程序存储器ROM(4)三个定时/计数器,可用作定时器,也可用以对外部脉冲进行计数(5)四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输 出(6)一个串行端口,用于数据的串行通信(7)中断控制系统(8)内部时钟电路图3-2 STC89c52内部结构图STC89C52 提供以下标准功能:8k字节 Flash 闪速存储器,512字节内部 RAM,32 个 I/O 口线,3 个 16 位定时/计数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,STC89C52 可降至 0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但
32、允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.2 STC单片机模块介绍3.2.1 复位电路复位操作有上电自动复位、按键电平复位和外部脉冲复位三钟方式,本次实验用的是按键电平复位,利用电容的充放电公式来选择所需的电容、电阻,能保证复位信号高电平持续时间大于2个机器周期。复位电路图如下:图3-3 复位电路 在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF
33、=0.1S。 在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。该设计中复位电路选用10uF的电容和10k欧姆的电阻组成,在满足单片机可靠复位的前提下该复位电路的优点在于降低复位引脚的对地
34、阻抗,可以显著增强单片机复位电路的抗干扰能力。3.2.2 晶振电路单片机的晶振电路是一种典型的电路,分为内部时钟和外部时钟两种方式。内部时钟,是用芯片内部振荡,形成的时钟,精度不高,温飘也较大,不需要外部振荡器件。出于成本及工艺复杂的考虑,选择内部时钟方式。内部时钟方式如图3-4所示:图3-4 内部时钟晶振电路内部时钟电路和晶振频率一般选择在4MHz12MHz之间(该设计选用12MHz),外接两个谐振电容。该电容的典型值为30pF,该设计也选用30pF。3.2.3 电源电路本课题选择USB供电模式,即基于电脑USB口供电,电脑的USB接口可以提供达到5V/500mA的供电水平,虽然USB接口对
35、于给大型设备供电存在不足,但就本课题而言已经可以充分满足需求,所以在设计的时候仅仅是使用插针预留了电源、地线接口,电源获取方式为电脑供电。由于采用了此这种设计方式省去了普遍使用的LM7805稳压电源电路,所以将低了一部分成本。同时,本课题还设计有电源指示电路,发光二极管串联一个电阻起到了限流的作用,防止二极管烧坏。此处的二极管还起到了防止电流反灌的作用,保护USB接口正常工作。具体电路如图3-5所示:图3-5 USB供电3.2.4 下载电路单片机是一种数字集成芯片,数字电路中只有两种电平:高电平和低电平。我们暂且假定单片机的输入输出高电平为5V,低电平为0V。而计算机串口为RS-232C电平,
36、它是一种负逻辑电平,原因是其高电平为-12V,低电平为+12V。因此,计算机要与单片机相连,必须使用电平转换芯片。在这里我们使用的是MAX232芯片,采用3线连接方式,即RXD、TXD和GND。该电路是一个电平转换电路。如图3-6:图3-6 电平转换电路3.3 LED与单片机接口电路4位LED数码管有静态显示和动态显示两种结构。为了减少元器件及连线,可选用动态显示的4位一体的LED数码管。用单片机的某个I/O口送数码管的显示段码(字符数据),用另一I/O口的其中4位经过三极管驱动后分别作为4个数码管的显示控制信号,当三极管导通时候对应的数码管显示。如图3-7。常用的LED显示器有7段(或8段,
37、8段比7段多了一个小数点“dp”段)。这种显示器有共阳极和共阴极两种。该设计中选用的是共阳极,LED与单片机的接线如下图3-8所示。图3-8 LED与单片机的接线共阳极LED显示器的发光二极管的阳极连接在一起,通常该共阳极接地。当某个发光二极管的阴极为低电平时,发光二极管点亮,相应的段被显示。使用LED显示器时,为了显示数字或符号,要为LED显示器提供代码,因为这些代码是通过段的亮与灭来显示不同字形的,因此称之为代码。7段发光二极管,再加上一个小数点位,共计8段,因此提供给LED显示器的段码正好一个字节。各段字节中各位的对应关系如表3-9所示:显示数dpGfedcba段码011000000C0
38、H111111001F9H210100110A3H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H由于单片机I/O的电气特性决定了单片机的端口的驱动能力有限,一般地,单片机的端口只是驱动TTL电平,不提供或者提供很小的驱动电流,所以在带负载时,单片机应当在I/O口加上驱动芯片或使用三极管驱动。该设计中使用4个9012三极管驱动。共阳极LED显示器的八段由单片机的P0.0P0.7控制,P2.0P2.3控制位信号。当P2.0P2.3中有引脚输出低电平时,三极管导通,集电极给位控制
39、端供电,从而驱动数码管。3.4 发光二级管电路设计在设计此电路时发光二极管的电流流向也是有讲究的,由于单片机的驱动电流较小,为了确保能够通过单片机I/O口的电平高低来实现发光二极管的点亮和熄灭,我们通常将发光二极管按下图方式与单片机进行连接,如图3-10所示:图3-10 二极管连接方式3.5 器件选择STC89C52:单片机,控制LED的数据显示。LED:一个四位的8段码LED,用于显示单片机的数据。9012三极管:驱动LED,相当于一个反相器。按键KEY_ST:KEY_ST未按时时间正常运行,按一下KEY_ST键后数码管显示的时间暂停,这时可以使用KEY_UP、KEY_DW自行加、减时间。按
40、键KEY_UP:当时间暂停之后,按一次KEY_UP键数码管上的时间加1。按键KEY_DW:当时间暂停之后,按一次KEY_DW键数码管上的时间减1。按键KEY_T1:电路上电之后,按下KEY_T1键后,开启定时器0,时间从99s开始倒计时。按键KEY_T2:电路上电之后,按下KEY_T2键后,开启定时器1,时间从99s开始倒计时。按键KEY_T3:电路上电之后,按下KEY_T3键后,开启定时器2,时间从99min开始倒计时。L2L9:发光二极管,通过单片机的P1.0-P1.7控制,用以观看使用的是哪一个定时器。3.6 接口连接设计P0.0P0.7:接上数码管的8个段选。P1.0P1.7:分别和七
41、个发光二极管相连,其中三个用以显示使用的是哪一个定时器。P2.4P2.6:分别接KEY_UP、KEY_DW、KEY_ST三个按键,控制时间的自加、自减以及暂停。P2.0P2.3:分别和4个9012三极管相连,然后接上数码管的4个位选端。P2.7,P3.6,P3.7:分别接KEY_T1、KEY_T2、KEY_T3三个按键,控制定时时间1、2、3。 3.7 功能简介LED显示模块与单片机的连接中,LED显示模块的控制是通过单片机的P2.0P2.3口完成的。按键KEY_ST、KEY_UP、KEY_DW完成定时器的暂停、自加和自减功能。而发光二极管L2L4则反映了选用的定时时间的不同。第四章 软件设计
42、本章首先对设计思想即主程序进行介绍,然后对发光二极管指示程序、键扫描程序和数码管的显示程序的设计分别进行说明。4.1 主程序本次设计中,由于要求有定时器1、2、3,所以程序设计中使用了三个定时器分别进行定时。数码管显示部分由于最大数是99,所以使用两只数码管已绰绰有余。为了分清使用的是哪一个数码管,所以又用了三个发光二极管进行区分。程序流程图如下图4-1所示:图4-1 主程序流程图4.2 发光二极管指示程序发光二极管的亮灭指示了此刻数码管显示的时间是使用了三个定时器中的哪一个进行的定时。流程图如图4-2所示。图4-2 发光二极管指示流程图4.3 键扫描程序键扫描程序中主要是扫描判断KEY-ST
43、、KEY-UP、KEY-DW这三个扫描程序如图4-3所示。图4-3 按键子程序流程图4.4 定时器中断程序程序设计中使用了单片机的三个定时器,虽然定时时间各不相同,但定时器中断流程图是相同的,所以此处只画出定时器0的中断流程图,如下图4-4所示:图4-4 定时器0的中断流程图第五章 设计调试 5.1 软件调试5.1.1 Keil软件及其调试功能简介目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为Vision(通常称为V2)。Keil提供包括C编译器、宏
44、汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:Vision IDE集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存建立工程并添加源文件设置工程编译/汇编、连接,产生目标文件程序调试。Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握
45、。首先选择菜单FileNew,在源程序编辑器中输入汇编语言或C语言源程序(或选择FileOpen,直接打开已用其他编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单ProjectNew Project,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group Source Group
46、1”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其他文件)。加入文件后点close返回主界面,展开“Source Group1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的Target1,再选择ProjectOption for TargetTarget1(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中“Creat Hex File”;其他选项卡内容一般可取默认值。工程设置后按F7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。 成功编译/汇编、连接后,选择菜单DebugStart/Sto