毕业设计-基于AT89C52单片机可调数字钟的设计.doc_第1页
毕业设计-基于AT89C52单片机可调数字钟的设计.doc_第2页
毕业设计-基于AT89C52单片机可调数字钟的设计.doc_第3页
毕业设计-基于AT89C52单片机可调数字钟的设计.doc_第4页
毕业设计-基于AT89C52单片机可调数字钟的设计.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

基于汇编语言的51单片机可调数字钟的设计目 录摘要3abstract4引言5第一章 绪论61.1 课题的背景61.2课题的来源71.3课题的意义7第二章 设计目的及要求82.1设计目的82.2设计要求82.1.1 基本要求82.1.2 高级要求82.1.3毕业设计作品要求9第三章 系统方案选择与论证103.1方案选择103.1.1方案比较103.1.2 芯片的选择103.2方案论证113.2.1显示模块方案选择与论证113.2.2时钟信号方案选择与论证113.3电路设计最终方案12第四章 系统电路的总体方案134.1数字钟的工作原理134.1.1实现时钟计时的基本方法144.1.2数字钟的时间显示154.1.3数字钟的启、停及时间调整154.2总体设计16第五章 系统的硬件设计175.1 at89c52单片机最小系统175.2单片机的概念175.2.1单片机的结构175.2.2单片机的功能介绍205.3复位电路235.4电源电路245.5时钟振荡电路245.6键盘控制电路245.7 led数码管显示电路26第六章 系统的软件设计286.1系统软件设计流程图286.2 系统中断流程图296.3 子程序说明316.3.1 按键扫描316.3.2 数码管动态扫描32第七章 数字钟元件清单和软件介绍337.1数字钟元件清单337.2 软件介绍337.2.1软件调试347.2.2硬件调试34第八章 总结35参考文献36致 谢37附 录38附录一 系统程序源代码38附录二 电路原理图44基于汇编语言的51单片机可调数字钟的设计摘 要在当今社会,随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此它特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件相结合,以作完善。单片机数字时钟是以单片机为核心,在它的基础上设计出来的数字时钟,在日常生活中最常见,应用也最广泛。本论文的数字钟设计,是以at89c52单片机为核心,配备led显示模块、时钟电路、复位、电源等功能模块。文章的核心主要从硬件设计和软件编程两个大的方面。硬件设计用软件仿真和实际电路来实现,软件编程用汇编语言来实现。因此,研究数字钟及扩大其应用,有着非常现实的意义。关键字:单片机; 数字钟;编程; 汇编语言;仿真51 assembly language-based microcontroller design adjustable digital clockabstractwith the computer in the social sphere in recent years, the penetration and the development of large scale integrated circuits, microcontroller applications are continually deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use, etc. therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and home appliances fields, scm is often used as a core component in according to the specific hardware architecture, and object-specific features of the software application combining to make perfect. digital clock is a single chip microcontroller as the core, designed on the basis of its digital clock., in their daily lives the most common and most widely applied. digital clock design of this paper is based on at89c52 microcontroller as the core, with led display module, the clock circuit, reset, power supply modules. the main core of the article from the hardware design and software programming are two major aspects. hardware design using software simulation and actual circuit design, software programming in assembly language to achieve. therefore, the study of digital clock and extend its application, has a very practical significance.keywords: mcu;digital clock;programmingassembly language;simulation引 言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展,趋势将是进一步向着cmos化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。1微控制技术标志着一种全新概念的出现。随着单片机应用的推广普及,微控制技术必将不断发展并日趋完善,而单片机的应用则必将更加深入和广泛。单片机模块中最常见的是数字时钟,数字时钟是一种用单片机原理实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用范围,有着非常现实且重要的意义。第一章 绪论1.1 课题的背景 人类跨入21世纪,科学技术突飞猛进,人民的生活发生了翻天覆地的变化。当今的社会已经进入信息化时代,基本所有的电子产品都向智能化,环保化发展。而产生这一变化的重要原因是计算机技术的飞速发展。第一台计算机eniac(electronic numberical integrator and computer)诞生,到现在仅仅是几十年时间,计算机的性能已经大大提高,价格不断下降,从而使之可以广泛而迅速地应用于人类生产和生活的各个领域。 计算机最初的设计目的是为了提高计算数据的速度和完成海量数据的计算。随着技术的发展,人们发现计算机在逻辑处理以及工业控制等方面也具有非凡的能力。在控制领域,人们更多的关心计算机的低成本,小体积,运行的可靠性和控制灵活性。特别是智能仪表,智能传感器,智能家电,智能办公设备,汽车以及军事电子设备等应用系统要求将计算机嵌入这些设备中。而单片机体积小,价格低,可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。目前,单片机应用技术已经成为电子应用系统设计最为常用的手段。“单片机(single chip microcomputer)”亦称单片微电脑或单片微型计算机,国际上统称为“微控制器(microcontroller,mcu,c)”,是一类内部集成了计算机核心技术的智能芯片。也就是把中央处理器cpu、随机存取存贮器ram、只读存贮器rom、输入/输出端口i/o等主要的计算机功能部件,都统统集成在了一块集成电路芯片上,从而形成一部概念上完整的微型计算机。单片机的设计目标主要是增强“控制”能力,满足实时控制(就是快速反应)方面的需要。因此,它在硬件结构、指令系统、i/o端口、功率消耗及可靠性等方面均有其独特之处,其最显著的特长之一就是具有非常有效的控制功能。尽管单片机主要是为控制目的而设计的,它仍然具备通用微型计算机的全部特征。“麻雀虽小,五脏俱全”。既然单片机是一部概念上完整的微型计算机,那么单片机的功能部件和工作原理与微型计算机也是基本相同的。1.2课题的来源时钟,自从它发明的那天起,就成为人类的好朋友,但随着时间的推移,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便。人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。比如多功能数字钟,除了传统的显示时间功能之外还可以测试温度、电网频率、电压、并提供了过压报警、非接触止闹等功能。本设计的数字时钟是采用了现在广泛使用用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,从而制作出新型且比较实用的数字钟。1.3课题的意义数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头,办公室等公共场所, 给人们的生活、学习、工作、娱乐带来极大的方便,成为人们日常生活中不可少的必需品, 由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,使得数字钟的精度,远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。它还用于计时、自动报时及自动控制等各个领域。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。第二章 设计目的及要求2.1设计目的(1)掌握51系列内部定时/计数器的原理和基本应用;(2)掌握使用单片机处理复杂逻辑的方法;(3)掌握多位数码管动态显示的方法;(4)掌握独立式(和矩阵)键盘的编程方法;(5)掌握利用汇编语言编写单片机系统的应用软件的方法;(6) 巩固,加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(7) 培养针对课题需要,选择和查阅有关手册,图表及文献资料的自学能力,提高组成系统,编程,调试的动手能力;(8) 过对课题设计方案的分析,选择,比较,熟悉单片机用系统开发,研制的过程,软硬件设计方法,内容及步骤.(9) 了解数字钟的组成及工作原理. 2.2设计要求2.1.1 基本要求(1)用51单片机的定时/计数器tmr0产生一秒的定时时间,作为秒计数时间;(2)当一秒产生时,秒计数加1;(3)开机时,显示00.00.00,并开始连续计时;(4)计时满23.29.59时,返回00.00.00重新开始计时;2.1.2 高级要求(1)在以上设计基础上,在单片机的i/o口上分别接入四个按键;(2)k3时间设置按键。该键按下时,将当前显示的时间停止走动。当再次按下该键时,再次启动时钟;(3)k0控制“秒”的调整,每按一次加1秒;(4)k1控制“分”的调整,每按一次加1分;(5)k2控制“时”的调整,每按一次加1小时;2.1.3毕业设计作品要求(1)该设计要用keil软件进行编程与调试,利用proteus 7 professional软件进行绘制硬件电路图且进行仿真。画出电路图和pcb;(2)提供实际产品,全部汇编语言程序源代码;第三章 系统方案选择与论证3.1方案选择3.1.1方案比较方案一: 基本门电路搭建 用基本门电路来实现数字钟,电路结构复杂,故障系数大,不易调试;方案二: 单片机编程 用单片机设计电路,由于使用软硬件结合的方式,所以电路结构简单、调试也相对方便。与第一种方案比较优点是非常明显的。我们选择了第二种方案;而第二种方案也需要进行各种电路设计的优化和比较。3.1.2 芯片的选择方案一:采用at89c51芯片,其为高性能cmos 8位单片机,该芯片内含有4k bytes的可反复擦写的只读程序存储器(perom)、128 bytes的随机存取数据存储器(ram)、 32位可编程i/o口线、2个16位定时/计数器、5个中断源、可编程串行uart通道及低功耗空闲和掉电模式,但是由于at89c51芯片可擦写的空间不够大,且中断源提供的较小,为防止运行过程中出现不必要的问题,我们建议不选用at89c51。方案二:采用at89c52芯片。 at89c52是一个低电压,高性能cmos 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,3功能强大的at89c52单片机可为您提供许多较复杂系统控制应用场合。它除了具备at89c51的所有功能与部件外,其最大的优势就是at89c52提供了8k字节可擦写flash闪速存储器空间、6个中断源、及256字节内部存储器(ram),解决了我们对可反复擦写的flash闪速存储器空间大小与中断源的不够问题的担心。而且非常适合于初学者用于学习阶段的反复烧写演练,也非常适合单片机应用项目开发工程师用于产品的开发试制阶段。3.2方案论证3.2.1显示模块方案选择与论证led显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用cpu时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留特性,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。所以显示器的驱动常采用动态扫描电路形式,以达到简化电路的目的。4但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。可采用74ls245或者晶体管;其中74ls245是用来驱动段选码,晶体管是驱动位选码。23.2.2时钟信号方案选择与论证方案一:直接采用单片机内定时计数器提供的秒信号,使用程序可实现年、月、日、周、时、分、秒计数。采用此种方案可减少芯片的使用,节约成本,实现的时间误差较小,但程序设计较为复杂。方案二:采用时钟芯片实现时钟,时钟芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度非常高,且硬件电路连接较为简单,程序设计容易实现。此次本设计的要求并不高,采用专门的时钟芯片进行控制时钟信号有点大材小用,确实有点浪费,如要设计具有多功能的数字钟,最好用时钟芯片提供时钟信号。因此,本设计就采用单片机内部的定时和计数器来提供时钟信号。3.3电路设计最终方案综上各方案所述,对此次数字时钟设计的方案选定为: 采用at89c52作为主控制系统; 并由其内部的定时计数器提供时钟信号; led数码管作为显示电路,采用74ls245来驱动数码管的段选码,用程序来控制数码管的位选码。利用汇编语言来编写数字钟程序来实现数字钟功能。 第四章 系统电路的总体方案4.1数字钟的工作原理数字钟的设计首先要保证其走时尽可能准确,其次再根据人们日常的使用习惯来设定其附加功能。数字钟的工作原理是利用单片机定时计数器来完成走时并用两组输出口控制数码管来显示;通过编程向某一输出口输出方波实现报时;利用输入端口外接各种开关来完成对走时及显示的控制(如预置时间等)。在设计中需要用到许多技巧。以下是在学习单片机课程中总结的一些设计思想或方法。占空比概念在设计中的运用如图所示的一串方波序列,导通时间同周期的比值即占空比。在用单片机控制对多个数码管的扫描显示中,数码管接收到的电压可以看成是一串方波序列,占空比控制了数码管的亮度。实际上对显示延时时间的调节就是调节数码管电压的占空比,当占空比大于一定数值的时候数码管可以显示,实验证明占空比在0.1时仍可以使数码管清晰显示。5利用这个概念可直观地理解显示延时的调节。图4-1 时钟脉冲序列cpu的分时复用单片机只有一个cpu,因此在一个时间内只能执行一条语句,要使单片机同时控制多个外部元件(比如扬声器和数码管)就必须对单片机的cpu进行分时复用,让单片机在一小段时间内连续交替执行控制多个器件的语句,从表面上看,单片机便用一个cpu控制了多个元件。单片机位寻址区的使用单片机内部数据存储器由20h到2fh共有16个字节的位寻址区可以被作为程序执行过程中的状态参数,许多程序模块至于两个状态(比如闪烁与正常显示,报时与不报时等)用位寻址区中的某一位来记录程序执行状态,在需要对状态进行判断的时候十分方便并且节约空间,一个字节便可以判断八个状态,而非位寻址区的地址记录程序状态时可能需要先进行变换,增加了执行成本且容易出错。系统资源分配与使用单片机有许多资源是有限的不能滥用,比如定时计数器t,外部中断等,在设计一个多模块程序时,要注意先做一个整体规划,把稀缺资源用在最需要用的地方。此外在有多个模块时,要注意模块间的数据传递,比如累加器a和进位标志c,在使用时要注意不能让前一个模块的数据对下一个模块产生不希望有的影响。在模块间的数据传递比较多时最好用固定的内部数据存储器,以避免冲突发生错误。4.1.1实现时钟计时的基本方法用at89c52单片机的定时/计数器t0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1开机时。显示00-00-00的时间,开始计时;计时满23-59-59时,返回00-00-00重新计时at89c52单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器tmod,即可完成。定时/计数器何时工作也是通过tcon特殊功能寄存器来设置的。在此设计中,选择16位定时工作方式。对于t0来说,系统时钟为12mhz,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,必须通过软件来处理这个问题,假设取t0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时。对于这20次计数,就可以采用软件的方法来统计了。设定tmod00000001b,即tmod01h,设置定时/计数器0工作在方式1。下面我们要给t0定时/计数器的th0,tl0装入预置初值,通过下面的公式可以计算出:th0(21650000)/256tl0(21650000)mod取摸256这样,当定时/计数器0计满50ms时,产生一个中断,我们可以在中断服务程序中,对中断次数加以统计,以实现数字钟的逻辑功能。4.1.2数字钟的时间显示显示器的时间显示采用动态扫描电路驱动形式,以达到简化电路的目的。但要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。可采用74ls244或者晶体管;其中74ls244是用来驱动段选码,晶体管是驱动位选码。电子钟的时钟时间在六位数码管上进行显示,因此,在内部ram中设置显示缓冲区共8个单元。led8 led7 led6 led5 led4 led3 led2 led137h 36h 35h 34h 33h 32h 31h 30h时十位 时个位 分隔 分十位 分个位 分隔 秒十位 秒个位4.1.3数字钟的启、停及时间调整 数字钟启、停是通过用户编写程序到单片机内部,利用单片机的输入输出(i/o)口控制.就可以简单地控制数字钟的时间和启用问题。电子钟的时间调整按键key状态1: key0=k-0,调整数字钟的秒数据,每按一次加1秒。状态2: key0=k-1, 调整数字钟的分数据,每按一次加1分。状态3: key0=k-2,调整数字钟的时数据,每按一次加1时。状态4: key0=k-3,设置按键,按一次时间为停止状态,时间设好后再按一次时间即按设好的时间开始led动态扫描显示模块单片机at89c52主控制器开关调节模块晶振电路模块复位电路电源电路4.2总体设计图4-2-1电路设计框图图4-2-2数字钟系统原理图(数字钟整机电路图)系统的总体设计方案是以单片机at89c52为核心,软硬件相结合,主要配备led显示模块、时钟电路、复位、电源等功能模块。组成基本的数字钟。以上是本系统的原理图和方框图。第五章 系统的硬件设计5.1 at89c52单片机最小系统 单片机的最小系统是由单片机,振荡电路,复位电路,电源电路等4部分组成。数字钟在单片机的最小系统的基础上,增加一些外围电路(如键盘控制电路)和设备,使之具有某些特定功能的数字钟。5.2单片机的概念单片机又称单片微控制器,是一类内部集成了计算机核心技术的智能芯片,也就是把中央处理器cpu、随机存取存贮器ram、只读存贮器rom、输入/输出端口i/o等主要的计算机功能部件,都统统集成在了一块集成电路芯片上,从而形成一部概念上完整的微型计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。6同时,学习使用单片机是了解计算机原理与结构的最佳选择。提到单片机的应用,有人这样说:“凡是能想到的地方,单片机都可以用得上”,全世界单片机的年产量数以亿计(根据权威调查机构公布,2001年世界单片机产量高达70亿,仅仅中国大陆的年需求量就达6亿片左右其应用范围之广、花样之多,一时难以详述,这里仅列举一些典型的应用领域和场合仅供参考。如电信,家用电器,计算机外围设备,办公自动化,工业控制,商用电子,电子玩具,仪器仪表,汽车电子,军用电子等等。基本上单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。5.2.1单片机的结构学习单片机的主要目的,就是为了把这种单片机芯片应用到我们的科研项目和电子产品中,把单片机现有的引脚资源和内部一切可以利用的硬件资源充分开发和调动起来,以便实现项目或产品的性能/价格比的最优化。本次设计单片机研究主要以at89c52为例,分析其内部结构,硬件资源分配等,下面是at89c52单片机引脚功能简化图。图5-2-1 单片机at89c52引脚功能简化图mcs-52单片机内部结构89c52单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,cpu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(ram)89c52内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,7所以,用户能使用的ram只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图2-1 单片机8052的内部结构程序存储器(rom)89c52共有4096个8位掩膜rom,用于存放用户程序,原始数据或表格。定时/计数器(rom)89c52有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(i/o)口89c52共有4组8位i/o口(p0、 p1、p2或p3),用于对外部数据的传输。全双工串行口89c52内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统89c52具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路89c52内置最高频率达12mhz的时钟电路,用于产生整个单片机运行的脉冲时序,但89c52单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(princeton)结构。intel的mcs-52系列单片机采用的是哈佛结构的形式,而后续产品16位的mcs-96系列单片机则采用普林斯顿结构。8下图是mcs-52系列单片机的内部结构示意图。图2-2 mcs-52系列单片机的内部结构5.2.2单片机的功能介绍1 主控制芯片at89c52的原理及说明at89c52是美国atmel公司生产的低电压,高性能cmos8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(perom)和蔼可亲256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,与标准mcs-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(cpu)和flash存储单元,功能强大at89c52单片机适合于许多较为复杂控制应用场合。2 主要性能参数与mcs-51产品指令和引脚完全兼容8k字节可重擦写flash闪速存储器1000次擦写周期全静态操作:0hz24mhz三级加密程序存储器2568位内部ram32个可编程i/o口线3个16位定时/计数器8个中断源可编程串行uart通道低功耗空闲和掉电模式3 引脚功能结构vcc(40):电源电压 gnd(20):接地p0口(32-39):p0口是一个8位双向i/o接口,也即地址/数据总线复用口。作为输出口用时,每位吸收电流的方式驱动8个ttl逻辑门电路,对端口p0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用。p1口(1-8):p1是一个带内部上拉电阻的8位双向i/o口,p1的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路,对端口写“1”通过内部的上拉电阻把端口拉到高电平时,此时可作输入口。作为输入品使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。与at89c51不同之处是,p1.0和p1.1还可以分别作为定时/计数器2的外部计数输入(p1.0/t2)和输入(p1.1/t2ex)。p2口(21-28):p2是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路,对端口p2写“1”,通过内部的上拉电阻把端口拉到高电平时,此时可作输入口。作为输入品使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行movx dptr 指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器时,p2口输出p2锁存器的内容。p3口(10-17):p3是一组带有内部上拉电阻的8位双向i/o口,p3口输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路,对端口p3写“1”时,它们被内部上拉电阻拉高并可作为输入端口,此时,被外部拉低的p3口将用上拉电阻输出电流。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能,如下表所示:表3-1 p3口的第二功能端口引脚第二功能p3.0rxd(串行输入口)p3.1txd(串行输出口)p3.2int0(外中断0)p3.3int1(外中断1)p3.4t0(定时/计数器0)p3.5t1(定时/计数器1)p3.6wr(外部数据存储器写通道)p3.7rd(外部数据存储器读通道)rst(9):复位信号输入端。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。ale/prog(30):地址锁存有效信号输出端。当访问片外程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节,一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的,要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。psen(29):程序存储允许输出端。是片外程序存储器的读选通信号,当at89c52由外部程序存储器取指令(或数据)时,每个周期两次psen有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次psen信号。ea/vpp(31):外部访问允许。欲使cpu仅访问外部程序存储器(地址为0000hffffh),ea端必须保持低电平(接地),需注意的是:如果加密位lb1被编程,复位时内部会锁ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器中的指令。flash存储器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v编程电压vpp。xtal1(19):振荡器反相放大器的及内部时钟发生器的输入端。xtal1(18):振荡器反相放大器的输出端。通过xtal1、xtal2外接晶振后,即可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。4 特殊功能寄存器在at89c52片内存储器中,80h-ffh共128个单元为特殊功能寄存器(sfr),其中包括b寄存器、累加器、程序状态寄存器(psw)、定时/计数器控制、中断优级控制寄存器(ip)、p3口锁存寄存器、中断允许控制寄存器(ie)、串行口控制寄存器等。它们可运用来设置片内电路的运行方式,记录电路的运行状态,mcs-51单片机对特殊功能寄存器采取与片内ram统一编址的方法,可按字节地址直接寻址。在已有的基础上at89c52与at89c51相比还提供了两个定时/计数器。定时/计数器2的控制和状态位位于t2con与t2mod。5.3复位电路复位是单片机的一项重要操作内容,其目标是确保单片机运行过程有一个良好的开端,确保单片机运行过程中有一个良好的状态。具备数字电路基础知识的人都知道,在数字集成电路中,有各式各样的计数器。这些计数器一般都有一个复位端,在计数过程中一旦该脚施加有效电平,就会强迫计数器回零,再从头开始计数。与此类似,单片机也有一个复位端,以便于人为地输入复位信号。除了人工复位之外,单片机还有其他自动复位的途径。也就是说复位在电路中起到一定的保护作用。当单片机芯片初始加电并且电源vdd上升到适合芯片 工作的电压值时,或者人为从外部引脚rst送入一个高电平复位信号时,在复位逻辑的控制下单片机进行可靠复位,然后从头开始执行程序。最简单的一种电路连接方法是,将该脚外界一个如图5-3所示的阻容支路,以便在vdd加电、上升和趋于稳定的过程中,产生一定的延时作用,来确保cpu在可靠的电源电压下开始执行程序。如果需要单片机 过程中的人工复位操作,可以增加一只按钮开关“reset”,并且串联一只限流电阻以避免电容放电瞬间电流过大。保护电路。本次设计采用人工复位方式进行复位。图5-3 时钟和复位常用外接电路5.4电源电路系统电源就是单片机应用系统的功率源。任何单片机及其外围电路的运转都是靠电能来维持的,并且对于电源的电压,电流,稳定度,杂波等参数具有一定的要求。因此,关于电源的索取途径,电源电路的方案和规划设计,是每一位单片机应用者都要面对和考虑的问题。负责将vdd和vss引脚之间是假的5v电源电压分配到单片机芯片之内的各个功能电路上。只要电源电压不超出一定范围,就能够保障单片机正常工作。 包括单片机应用电路在内的许多电子系统,其电源大致分为以下几种情况:220v/50hz交流市电、干电池、可充电电池、计算机usb电源、稳压电源。稳压电源电路为了更好地抗击来自电源途径的杂波干扰,在电路中采用了一些电气加固措施。本次设计中稳压电源是单片机系统的重要组成部分,它不仅为系统提供多路电压源,还直接影响到系统的技术指标和抗干扰性能。一个稳压电源输出电压和最大输出电流决定于所选三端稳压器。在本设计方案中采用+5v稳压电压。5.5时钟振荡电路时钟振荡器即时钟脉冲发生器,产生整个芯片内部各功能电路正常操作所需的时钟脉冲和定时信号。最常用的一种电路连接方法是,在xtal1和xtal2这2只引脚之间外接一只晶体振荡器xtal和2只电容c1和c2到地(如图5-3所示),与片内电路共同构成一个多谐振荡器电路。其振荡频率取决于外接石英晶体振荡器元件xtal的固有频率,常选取12mhz或6mhz的晶振。典型的晶振取11.0592mhz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12mhz(产生精确的us级时歇,方便定时操作) 特别注意:对于31脚(ea/vpp),当接高电平时,单片机在复位后从内部rom的0000h开始执行;当接低电平时,复位后直接从外部rom的0000h开始执行95.6键盘控制电路键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。下图5-6是非编码键盘式控制电路。图5-6-1 键盘控制电路1.按键在闭合和断开时,触点会存在抖动现象:如下图所示 图5-6-2按键波形2.按键的去抖动计算机处理的速度是在微秒级,按键是机械触点,机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。如下图所示。图5-6-3按键闭合和断开时的波形3.消除按键抖动的原则为使cpu能正确地读出端口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。单片机中常用软件法,软件法其实很简单,就是在单片机获得端口为低的信息后,不是立即认定按键已被按下,而是延时10毫秒或更长一些时间后再次检测端口,如果仍为低,说明按键的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(端口为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。以上是消除键抖动的原则。校时电路主要靠键盘来控制。键盘是一组按键的集合。共有四个按键,分别是:时调整,分调整,秒调整,启停动能。它是嵌入式计算机系统中不可缺少的外围电路。是实现人机对话的纽带,借助键盘可以向计算机输入程序、置数、逻辑操作以及写入程序和程序检测等。5.7 led数码管显示电路单片机系统中常用的显示器有:发光二极管led显示器、液晶lcd显示器、crt显示器等。10led、lcd显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(58、88点阵等)。使用led显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为led显示器提供的编码正好是一个字节。tx实验板用共阴led显示器,根据电路连接图显示16进制数的编码已列在下表。以下图5-7是led数码管显示电路图 共阴极数码管码表 0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 1 2 3 4 5 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 6 7 8 9 a b 0x39 , 0x5e , 0x79 , 0x71 , 0x00 c d e f 无显示图5-7 led数码管显示电路图第六章 系统的软件设计系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。6.1系统软件设计流程图 这次的数字钟设计用到很多子程序,最好将它们分为若干个相对独立且相互联系的部分。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。以下是数字钟工作的流程图。开始显示初始化,设置定时器,定时50毫秒,开断断。器根据计数值显示时间到60秒?s键按下?m键按下?h键按下?到60分?到24小时?秒计数加1小时计数加1分计数加1小时计数值清0是否否否是是是否否是否r键按下?否是秒计数清零是分计数清零 图6-1 数字钟工作流程图6.2 系统中断流程图在这里,我们有必要介绍一下单片机的中断系统,以利于我们的学习。中断的概念cpu在处理某一事件a时,发生了另一事件b请求cpu迅速去处理(中断发生);cpu暂时中断当前的工作,转去处理事件b(中断响应和中断服务);待cpu将事件b处理完毕后,再回到原来事件a被中断的地方继续处理事件a(中断返回),这一过程称为中断。中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机cpu的效率,也可以对突发事件处理。所谓中断就是当cpu正在执行程序a时,发生了另一个急需处理的事件b,这是cpu暂停当前执行的程序a,立即转去执行处理事件b的程序,处理完事件b后,再返回到程序a继续执行,这个过程被叫做中断。关于中断的概念有下列几个名词:(1)程序a称为主程序,(2)处理事件b的程序称为中断服务程序,(3)主程序中转向中断服务程序的地方称为断点,(4)引起中断的原因即事件b称为中断源,(5)转去执行中断服务程序称为中断响应。关于中断的概念可以打个如下的比喻。领导(cpu)在自己的房间办公(执行主程序),下属(外设)有问题打电话来请示(中断源),领导停下正在进行的工作,通过电话给下属做指示(执行中断服务程序),指示完后,领导挂断电话,继续做自己的工作(返回主程序继续执行)。中断是一个过程,当中央处理器cpu在处理某件事情时,外部又发生了另一紧急事件,请求cpu暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来被中断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断源。单片机一般允许有多个中断源,当几个中断源同时向cpu请求中断时,就存在cpu优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别,并且cpu总是响应级别

温馨提示

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

评论

0/150

提交评论