课题设计单片机电子时钟.doc

上传人:e****s 文档编号:88149688 上传时间:2023-04-22 格式:DOC 页数:32 大小:254.50KB
返回 下载 相关 举报
课题设计单片机电子时钟.doc_第1页
第1页 / 共32页
课题设计单片机电子时钟.doc_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《课题设计单片机电子时钟.doc》由会员分享,可在线阅读,更多相关《课题设计单片机电子时钟.doc(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1、绪言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控检测技术日新月异。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,利用软件和硬件相结合,以完善整个系统。 首先在绪论中介绍了本课题的课题背景、研究意义,完成的功能及设计方法。本系统中单片机的编程用汇编语言。指令的执行速度快,节省存储空间。使硬件在软件的控制下协调运作。正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,并介绍了单片机微处理器的基本原理,论述了本次设计所应用的各硬件接口技术和各个接口模块的功能及工作过程, 并具体描述了

2、89S51、74LS164、 LED数码管的外接电路接口的软、硬件调试。其次阐述了程序的流程和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。 单片微机又称微控制器(MCU Micro Ctroller Unit),在全世界的年产量已近100亿片,在中国大陆,年用量约为6亿片,而且还在不断增长,简单的如玩具,家用电器,复杂的如仪器仪表,工业控制,军用设备等等。几乎每一个领域都可以看到单片机的应用。单片微机的应用带来了“智能化”,“傻瓜化”,使控制更灵活,设备更精确,并符合“绿色”电子的要求。Intel公司的MCS51单片机在我国流行了20多年,至今仍在发展。

3、特别是MCS51实施技术开放以后,由于Philips,IISS,Atmel,WINBIND,ADI,DALLAS,Siemens等知名公司的介入,在MCS51基础上形成了新一代的80C51系列单片机,这使80C51的应用领域更宽广。另外在80C51单片机中采用了Flash ROM,基于Flash ROM的ISP(in system programmable)技术,软件上已有C编译器和实时多任务操作系统等,使得单片机在目标板上可以在线实时仿真,从而提高了工作效率,缩短了开发周期,适应了商品经济的发展。毕业设计是教学和工程实践的重要结合点,要求学生在设计中明确什么是正确的设计思想和设计方法。学生在

4、岗位之前必须通过工程知识和专业技能的严格训练,完成向工程技术人员的过渡,使自己走上工作岗位后有能力综合利用学过的理论知识和专业技能解决工程实际问题。.毕业设计的要求和应注意的事项 毕业设计要求学生初步掌握工程设计的程序和方法,综合进行工程知识和工程技能的训练。学生必须全面的掌握本专业的基本理论知识和专业技能,有较强的分析,解决问题的能力和较高的综合素质。学校和教师在坚持以教学为主的同时应侧重于学生解决工程实际问题能力的培养。作为工科毕业生,应根据在教师指导选定的毕业设计题目,经过综合实习或顶岗实习,结合生产实际独立完成一项电类专业的模拟工程设计或工程设计。在设计过程中以实践为主,注重综合能力的

5、发掘和培养。 毕业设计一定要注重培养学生多角度观察问题和抓住工程技术关键的能力。学生在毕业设计中应注意发现有争议、有疑问、有难度的技术敏感点,寻找交叉学科的结合部,抓住实习中碰到的偶然现象和事件,利用新信息、新技术、新知识进行别人尚未涉足或刚刚开始涉足的工程技术领域的探索和开发。通过独立设计一个工程技术课题,使自己能较快地对国外引进设备中的新技术、新装置进行消化吸收。能用目前较先进的装置和技术对现有电气控制系统及设备进行技术改造,充分提高运用新科技、新信息、新技术成果和装置的能力。同时应该注意,毕业设计是一项复杂、细致的劳动,任何设计都不可能脱离前人的经验和积累的资料凭空想象出来。合理地掌握和

6、使用已有的技术和设计方法,可以避免重复劳动。任何不同的课题都有其特定的设计要求和具体技术指标,学生必须正确处理资料和创新的关系,使用资料和创新的能力都有提高。 我是在上学期学单片机这本书的,掌握了单片机的基本结构、内部结构、引脚分配、功能存储器结构、地址空间、80C51的工作方式、指令系统、中断、串口通信、定时器/计数器、单片机的系统扩展及接口技术。通过设计本同步串行通信板,进一步加深了对单片机的认识,锻炼了自己的动手能力。特别是对接口设计和串行同步通信的方法有了更深的了解。另外通过查资料,掌握了74LS164、AT89C51、7805等芯片的功能及各个引脚的作用。1.3 课题设计采用的方法在

7、设计阶段,经分析决定采用51单片机、74LS164芯片,总线采用ISA方式,51单片机程序采用汇编语言编写。课题的设计采用先粗略设计后精确设计,先纸上设计后用软件设计的方法。软硬件设计相结合,先硬件设计后软件设计,通过硬件的设计而后设定软件设计中的端口地址。利用Protel 99 SE画出整体电路图(关于Protel 99 SE的信息会在第三章系统软件设计中会有介绍)。然后用Keil C 中写出89S51的通信程序。最后进行调试。 即:硬件电路调试软件测试综合测试。2 系统硬件设计2.1 单片机8051简介单片机是把CPU、内存及I/O压缩在同一块芯片上,再外加一些电子元件便可以构成一套简易的

8、控制系统。如此一来可以降低硬件成本,由于单片机芯片设计及制造技术的限制,在面积有限的芯片上无法设计出太大的内存空间,因此单片机上ROM及RAM的容量都比较小,不过却也加入了位输入输出控制,计时计数器及外部中断的控制功能,有些单片机还有串行传输的接口,甚至还提供有A/D(模拟至数字转换)及D/A(数字至模拟转换)的接口,可谓麻雀虽小五脏俱全。MCS是Intel的注册商标,80C51较8051采用的CMOS设计,使其功耗更小。.1 8051特性8051单片机是INTEL公司在8048的基础上,对其功能加以改进所开发出来的8位单片机,图11是8051单片机内部的组成结构图。图1-18051的内部结构

9、8051主要功能如下:(1)为一般控制应用的8位单片机;(2)芯片内部有时钟振荡器(传统最高工作频率可达12MHz);(3)内部只读存储器(ROM)为4K字节;(4)内部随机存储器(RAM)为128字节;(5)外部只读存储器可扩充至64K字节;(6)外部随机存储器可扩充至64K字节;(7)32条双向输入输出线,且每条均可以单独做IO的控制;(8)5个中断向量源;(9)2组独立的16位定时器;(10)1个全双工串行通信端口;(11)8751及8752单片机具有数据保密的功能;(12)单片机提供逻辑运算指令。图21 89S51引脚图.2 8051的引脚在本设计中用到的引脚有:ALEPROG是英文“

10、Address Latch Enable”的缩写,表示地址锁存允许信号。805l可以利用这个引脚来触发外部的8位锁存(如74LS373),将端口O的地址总线(AOA7)锁存进入锁存器中,因为8051是以多工的方式送出地址及数据。平时在程序执行时引脚的输出频率约是系统工作频率的16,因此可以用来驱动其他外围芯片的时钟输入。此外在烧录875l程序代码时,此引脚会被当成特殊功能特殊功能的引脚来使用。P3.6:/WR,外部随机存储器的写入信号。P3.7:/RD,外部随机存储器的读取信号。端口P0是一个8位宽的漏极开路(open Drain)双向输入输出端口,共有8位,P表示P0口的位0,P0.1表示位

11、1,依此类推。其他三个IO端口(Pl、P2、P3)则不具有此电路结构,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电位时(即取用外部程序代码或随机存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。必须外加一锁存器将端口P0送出的地址锁存为A0A7,再配合端口P2所送出的A8A15合成一完整的16位地址总线而寻址到64K的外部内存空间。Vcc运行和程序校验时接电源正端。Vss接地。XTAL1输入到单片机内部振荡器的反向放大器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作驱动端。XTAL2反向

12、放大器的输出,输入到内部时钟发生器。当采用外部振荡器时,XTAL2接收振荡器信号,对CHMOS单片机,此引脚应悬浮。RESET复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。2.2 ATMEL系列单片机在本设计中使用的是ATMEL公司的89S51单片机。ATMEL 89C51系列单片机的特点有:189C51工作频率可达20MHz。2. 89C51具有4K字节可电气烧录及擦除的程序空间,可以快速擦除程序并烧录新的程序,方便实验。3. 89C52具有8K字节可电气烧录及擦除的程序ROM。489C51具有20K字节可电气烧录及擦除的程序ROM。589C1

13、051(1K)、89C2051(2K)为20引脚包装,没有I/O端口P0及P2。适合做更小型的电路设计。2.3 LED数码管的相关介绍2.3.1 LED显示器的工作原理发光二极管一般为砷化镓半导体二极管, 在发光二极管两端加上正向电压,则发光二极管发光。 而数码管LED是由若干发光二极管组合而成的,一般的“8”字型LED由“a,b,c,d,e,f,g,dp”8个发交二极管组成,如下图所示,每个发光二极管称为一个字段。 七段LED有共阴极和共阳极两种结构形式。 显示电路一般分为静态显示和动态下显示两类。(1) 共阳极接法 把发光二极管的阳极连在一起构成公共阳极。便用时公共阳极。使用时公共阳极接V

14、cc,当某阴极端为低电平时,该段发光二极管就导通发光。(2) 共阴极接法 把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接GND,当某阳极端为高电平时, 该段发光二极管就导通发光。 七段LED包含七段发光二极管和小数位发光二极管,共需位I/O口线控制,其代码为一个字节。七段LED字型码见下表 七段字型码显示字符共阴极字型码共阳极字型码03FHC0H106HF9H25BHF10H34FHF11H466HF12H56DHF13H67DHF14H707HF15H87FHF16H96FHF17HA77HF18HB7CHF19HC39HF20HD5EHF21HW79HF22HF71HF23HP7

15、3HF24HU3EHF25HR31HF26Hy6EHF27HH76HF28HL38HF29H灭00HF30H-2.3.2 LED显示电路由N个LED显示块可构成N位LED显示器。N位LED显示器需要N根位选线和8 X N根段选线。根据显示电路不同,位选线和段选线的联接方式不同,实际所需的位选线和段选线的根数也不一样。显示电路主要有静态显示和动态显示两种。(1) 静态显示电路LED显示器工作在静态显示时,其公共阳极(或阴极)接电源(或地),一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。静态显示时,LED的亮度高,控制容易,但功耗大,所需口线多。若显示位数增多,

16、则静态显示方式很难适应。一般需要采用动态显示方式。(2) 动态显示电路 对于动态显示,一般将所有位的段选线的同名端联在一起,由一个8位I/O口控制,形成段选线的多位复用。而各位的公共阳极或公共阴极则分别由相应的I/O口线控制,实现各位形成段的分时选通,即同一时刻被选通位是能显示相应的字符,而其他所有位都是熄灭的。由于人眼有视觉暂留现象,只要租位显示间隔足够短,则会造成多位同时点亮的假象。这就需要单片机不断地对显示进行控制,牺牲单片微机的CPU时间来换取元件的减少以及显示功耗的降低。动态显示电路如下图所示:数码管数码管字形锁存器驱动器字位锁存器驱动器数码管数码管数码管数码管动态显示电路工作过程:

17、将字形代码字形锁存器锁存,这时所有的显示块都有可能显示同样的字符;再将需要显示的位置代码送入字位锁存器锁存。为防止闪烁,每位显示时间在12ms,然后显示另一位,CPU需要不断地进行显示刷新。2.4 74LS164的介绍 所谓时钟脉冲端,其实就是需要高、低、高、低的脉冲,不管这个脉冲是怎么来的,比如,我们用根电线,一端接T,一端用手拿着,分别接高电平、低电平,那也是给出时钟脉冲,在74LS164获得时钟脉冲的瞬间(再讲清楚点,是在脉冲的沿),如果数据输入端(第1,2引脚)是高电平,则就会有一个1进入到74LS164的内部,如果数据输入端是低电平,则就会有一个0进入其内部。在给出了8个脉冲后,最先

18、进入74LS164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,就象车站排队买票,栏杆就那么长,要从后面进去一个人,前面必须要从前面走出去一个人才行。 74LS164工作原理为:在的一个脉冲作用下,的一个值就写入了74LS164中。现向四个seg7中发送上图数字0、1、2、3,其七段共阴码分别为0x3f,0x06,0x5b,0x4f,二进制代码分别为 0011 1111、0000 0110、0101 1011、0100 1111,编写程序写入即可。74LS164是一个串行输入并行输出的移位寄存器。并带有清除端。 其中; Q0Q7 并行输出端

19、 。 A,B串行输入端。 MR 清除端, 为0时,输出清零。 CP 时钟输入端。 74LS164 引脚定义 74LS164逻辑表 74LS164 电路原理: 51单片机与74LS164静态显示接口(转)学习2007-04-21 13:55在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。可以提供单独锁存的I/O接口电路很多,这里以常用的串并转换电路

20、74LS164为例,介绍一种常用静态显示电路,以使大家对静态显示有一定的了解。MCS-51单片机串行口方式0为移位寄存器方式,外接6片74LS164作为6位LED显示器的静态显示接口,把8031的RXD作为数据输出线,TXD作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入,并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。T(第8脚)为时钟输入端,可连接到串行口的TXD端。每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。R(第9脚)为复位端,当R=0

21、时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。Q1Q8(第3-6和10-13引脚)并行输出端分别接LED显示器的hga各段对应的引脚上。在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲会有什么发生呢?再来一个脉冲,第一个脉冲就会从最高位移出,搞清了这一点,下面让我们来看电路,6片7LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出的数据就进入到了第一片74LS164中了,而当第二个8个脉冲到来后,这个数据就进入了第二片74LS164,而新的数据则进入了第一片74LS164,这样,当第六个8个脉冲完成后,首次送出的

22、数据被送到了最左面的164中,其他数据依次出现在第一、二、三、四、五片74LS164中。 3 系统软件设计3.1 Protel 99 SE(本软件设计的电路图见附录A)随着电子工业发展的日新月异,大规模集成电路的应用已越来越普遍。电子设计自动化EDA(Electronic Design Automation)如今已成为不可逆转的潮流。Protel 就是一套建立在PC环境下的EDA电路集成设计系统。 本设计中用到的是Protel 99 SE。Protel 99 SE具有强大的自动设计的功能,高速有效的编辑功能,简洁方便的设计过程管理PDM(Product Data Management),可完整

23、的实现电子产品从电学概念设计到生成物理生产数据的全过程,以及这中间的所有分析,仿真和验证。其主要的功能模块,包括电路原理图设计,印刷电路板设计,无网格布线器,可编程逻辑器件设计,电路图模拟/仿真等,它集成了电路设计与开发环境。在Protel 99 SE中,所有的设计文档都保存在同一个而且是单一的设计库中,这个设计库则由设计管理器Design Explore负责管理。设计管理器主要包括Design Team和Documents两部分。 在Protel 99 SE中,其设计时面向一个设计小组的,设计组的成员和特点都在Design Team管理器中进行管理,可以在Design Team中定义设计组的

24、成员,授予设计组成员不同的权限。在Protel 99 SE中,所有的设计文档都被包含在这个管理器中,有电路图sch文件,印刷电路板PCB,报表Peport文件,PCB板作PCB制作PCB Fabrication文件,仿真分析文件等。3.2 Keil C基础(本软件设计的程序见附录B)eil C51是美国eil Software 公司出品的系列兼容单片机语言软件开发系统。eil C51软件提供丰富的库函数和功能强大的集成开发调试工具ision2, ision2全Windows 界面,eil C51生成的目标代码效率分非常高,编译后多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高

25、级语言的优势。ision2是eil C51的集成开发环境,通常叫做eil C51的调试器。它具有对C51代码进行编辑,编译,与库以及其他目标程序进行连接,以及调试,仿真,最后生成HEX文件的功能。它的人机界面友好,操作方便。在使用eil Software工具时,其项目开发流程与其他软件开发项目的流程极其相似:()创建一个项目,从器件库中选择目标器件,配置工具设置;()用51或汇编语言创建源程序;()用项目管理器生成应用程序文件;()修改源程序中的错误;()测试连接应用。3.3 S51编程电缆线伟煌S51编程电缆线说明本设计中用到了编程电缆线,所以作一简单的介绍:本下载线为简易型编程器,针对AT

26、MEL89S51/S52/S53进行编程,采用并口编程模式,方便简捷。操作说明:1、 将电脑的并口模式设置为ECP模式(在CMOS中设置)。2、 将光盘中的”89S51下载线软件”文件夹拷到硬盘上,再将伟煌下载电缆.exe文件图标发送到WINDOWS桌面上。3、 将下载电缆线插到计算机并口上,并和用户板上89S51连好(如下连线:P15,P16,P17,RST,GND,VCC)。注:电缆线上的白插座上1(红点)对应的是VCC,余下的依次为:GND、RST、P17、P16、P15。4、 检查所有的连线是否连好,确信无误后接上5V直流电源。5、 点击图标,打开文档后,将编程器端口选为LPT1(端口

27、378H),器件选为89S51或89S52(51E板出厂默认为89S51)。6、 打开要烧写的BIN文件,先点击擦除芯片,然后点击写FLASH ROM即可进行编程,处于擦除和编程状态时下载线指示灯点亮,任务完成后指示灯熄灭,MCU自动进入运行状态。7 若要进行加密,则可将写锁定位设置成Lock Bit-3,点击写加密锁定位即可。通过上述方法就可以把程序下载到89S51中,这样就完成了程序的烧录工作。3.4 电子钟的原理该电子钟是依靠硬件和软件结合而完成的,可以完整地显示时、分、秒,共六位信息。其中时两位,分两位,秒两位。调节时间时可以快速的针对性地调节每一位。单片机送出串行的显示段选码信号,该

28、串行信号经过74LS164的串变并后输出并行信号,该并行信号再共给各个LED数码管。共给数码管的信号是一样的,所以LED显示的数据都应该是一样的,但是经过字选码(即选通信号),就会显示不同的数字,因为人的眼睛有视觉短暂停留习惯,在某一个时刻只有一只数码管在显示数字,就是因为眼睛的视觉停留才感觉到看到的六个数码管是同时亮的,利用这一视觉停留的现象就可以完成该显示功能。当T1时刻送出的数据为AFH ,然后再送给某只LED一个选通的电平信号,这只LED就会显示AFH对应的数字,T2时刻送出的数据为BEH,然后再送给另外一只LED一个选通的电平信号,则这只LED就会显示BEH对应的数字,同样的在T3T

29、6时刻也有数据和选通信号送出,这样每个LED都显示不同的数据。比如,此刻显示13 41 28,代表十三时四十一分二十八秒,要调节为15 27 42,现调整按键SW1,连续按两下;再调整按键SW4,长按或连续按使分显示到27;最后调整按键SW5,长按或连续按使秒显示到42。说明:SW1为时加按键,SW2为时减按键,SW3为分加按键,SW4为分减按键,SW5为秒加按键,SW6为秒减按键。 本电子钟共分为以下几个部分:1 电源部分,输入该电路板的外部电源电压为+9V的直流电压,然后经过电解电容的滤波,并经过小高频电容的防干扰后送给三端稳压块7805,输出比较稳定的+5V的直流电压,共给单片机和其他元

30、器件工作。2 MCU部分,提供字形显示码(串行数据);小按键为单片机提供复位信号;振荡信号部分,通过一只晶振和两只起振电容为单片机提供11.0592MHz的正弦波信号;移位脉冲部分,为74LS164数据的移位提供移位脉冲信号。3开关部分,共有六只按钮开关SW1SW6,每只按键一端的引脚都连接在一起,按键的另一端通过一只提供偏置电流的电阻连接到三极管的基极,并且每只按键对应一只三极管,该处的三极管相当于一只开关,是利用三极管的性质而设计的,当基极的电流达到饱和电流时,三极管就会饱和使集电极和发射极导通。当然基极没有电流时,三极管的集电极和发射极是截止的,即是断开的。P0口不断的送出选通信号,该信

31、号控制三极管的通断从而控制LED的选通,利用按键可以把信号送给P0口,从而达到调整显示时间的目的。4 串行变并行数据部分,利用八位串行移位寄存器74LS164实现数据的转换,只要为74LS164提供一个使能信号和一个移位脉冲信号,74LS164就可以正常工作,使用十分方便。另外,送出的八位数据后面每一位数据的通道上都要加一个限流电阻,防止总的电流过大,烧坏LED和三端稳压块7805,经过计算应该选用1K欧姆的电阻,这样电流既不会过大,LED显示的亮度也不会太暗。因为7805提供的电流是有限的。如果电流的功耗太大,7805不能够提供大电流,就会使7805不能正常工作,发烫而烧坏。5显示部分,由六

32、位共阳极的七段数码管组成。分别显示两位“时”,两位“分”,两位“秒”。 4 系统调试4.1 硬件调试按照如下顺序进行调试,发现问题并作出解决。 1 电源调试。现象:三端稳压块7805无输出,触摸7805有炙热感。 原因:7805 的第一脚为输出,2脚接地,3脚接OUT,3个脚顺序接反了,所以会有发烫的现象。还应注意的是,一般要求输入端的电压应该高于输出端电压2.5V才会有稳定的输出。 即输入端的电压应该在7.5V之上,但太高也不行,电压过高会导致耗散功率太大,热量不能及时的散出去而导致三段稳压块烧坏。调整之后仍有发烫的现象。说明稳压块后面的电路出现了问题。用示波器分别观察89S51的20脚、4

33、0脚、74LS164的7脚、14脚。发现电压分别为5V、0V、5V、0V。当有5V时并非很平滑的5V,而是在5V左右的有毛刺的电平。此时三端稳压块仍有发烫的现象。立即关掉电源,发现每个IC即89S51和74LS164的电源和地线都接反了。 调整好之后用示波器再次测试得到预期的结果-电源正常。2 检查单片机的振荡信号。示波器的探头放在单片机的18脚和19脚即XTAL2和XTAL1上示波器显示无信号,这时单片机不能正常工作。说明外部的振荡器件出现了问题,要么是晶振要么是起振电容出现了问题。晶振是新的所以损坏的机率比较小,想到可能是起振电容有问题。然后查看电容上面印有的标称值发现是1UF的,更替为3

34、0PF的电容后,在示波器上看到频率为11MHz的正弦波信号(虽然用的晶振的频率为11.0592MHz,但由于示波器的精度问题,就不可能看到频率读数显示为11.0592MHz),说明单片机的震荡信号正常,可以为单片机提供工作的震荡信号。3 把程序烧录到单片机,然后进行测试,发现单片机没有输出信号。先写一段程序使单片机的32脚(P0.7)输出为250Hz的方波,下载好之后把单片机插到40脚的IC座,32脚并没有方波信号输出(这时的程序仅有输出方波的功能,已经编译通过是绝对没有错误问题的),说明硬件还是没有完全调试通过。在该毕业设计中MCU只有三个地方可调:1 40脚VCC,2 18和19脚振荡信号

35、,3 复位信号。在调试的第一步和第二步已经把电源和振荡信号调好,所以只可能是复位信号出现了问题。电源通电之后,从三端稳压块的第三脚引出一条线,在MCU的第九脚轻触,再看单片机的32脚,看到示波器上面有250Hz的方波出现。说明复位信号确实有问题。原来复位电路接法如下图a。 图aMCU无法复位,原因是开机瞬间,MCU没有达到稳定状态,RST就由低变为高再变为低而复位,(也可以理解为复位信号的持续时间没有达到24个振荡周期之上)。调整方法:加大电容容量。而设计中换为另外一种复位方式-按键复位。如图b。 图b按照上图所示的电路连接元器件,开机后按下复位按钮,在单片机的32脚250Hz的方波出现。另外

36、还可以按照课本上的第三种接法:外部脉冲复位,即在开机后外部给出一个脉冲信号,同样也要使脉冲宽度要大于两个机器周期(24个振荡周期)。但考虑到成本问题,不用了。4 因为250Hz的正弦波信号是作为74LS164的CLOCK(CLK)信号,即74LS164的移位信号,是和74LS164的第八脚相连的,用示波器观察第八脚,却发现没有任何信号。单片机的32脚有CLK信号,而和其相连的74LS164的第八脚却没有信号,说明连接出现了问题。用万用表查看发现两个管脚是断开的。原来74LS164的第八脚和GND连在了一起。重新焊接之后,第八脚上面有了CLK信号。5 利用程序一直送出一组串行数据,用示波器在单片

37、机的33脚可以看出。 单片机的33脚是和74LS164的1脚和2脚连在一起的,按照习惯把两个串行输入端A和B连接起来,用示波器在这两个脚上也看到了数据,在74LS164的输出端应该有并行的数据送出来。用示波器只看到了同样的高电平,说明74LS164的外围电路不对,查阅74LS164相关资料发现它的第九脚为使能信号端,空置着没用。正确的接法应该是接+5V。接好之后测试发现74LS164的输出端有数据送出。再看LED上也有数字显示。至此74LS164部分调试完毕。6 单片机和74LS164的电源都已经调试通过,用手触摸三端稳压块感觉还是烫的,每个IC消耗的电流大约几十mA,这两个IC的电流加起来也

38、不过四五十mA,在这种情况下是不会这么烫的,说明其他电路流过的电流比较大,再次查看分析电路,出现问题的地方可能是共阳极数码管消耗的功率太大,从而导致7805发烫。如果数码管的每段消耗10mA电流,则40段就会消耗400mA。在一般情况下每段LED通过34mA的电流就能正常发光,为了减小7805的温度和减弱共阳极数码管的亮度,决定在74LS164和共阳极数码管之间加上限流电阻,经过计算电阻选用1K的阻值,使每段通过的电流在34mA。这样使得总共的消耗的电流才一百多mA,7805才不会那么烫。把所有的电阻焊接后,再打开电源,果真三端稳压块没有原来那么烫。这样加上了限流电阻后主要有两个好处:1 减小

39、了总功耗,延长了器件的寿命;2 减小了LED中通过的电流,减弱了LED的亮度,防止LED长时间工作而烧坏。7 最大的一个问题:接通电源后,LED虽有显示,全显示为一个8字型,而非开机时显示0字型,在显示数据时,数码管的G、D两节始终显示 ,用万用表测试发现是显示G和D的两个引脚和电源连在一起。8 去耦电容没加,电源杂波较大,输出显示不稳,有错位现象,原因是电源本来就不稳,加上了三端稳压和滤波电容后得到比较干净的电源,此时显示的数据比较稳定。9 对三极管进行调试,三极管与数码管的共阳极相连。R9R14为各个三极管基极提供偏置电流,使三极管达到饱和,当P0口有高电平送出时,三极管饱和,相对应的LD

40、i为高电平,LED发光。 最后,结合计算机对电子时钟板进行全面调试,具体为AT89S51接受数据,然后传给74LS164芯片,通过74LS164芯片向LED数码管一位一位传送数据。另外,可以通过人为的对开关的按键控制数据显示。4.2 软件调试软件部分主要完成数据的发送、74LS164移位脉冲信号的输出、定时和中断。1首先向74LS164发送字型码,使LED显示对应的数字。将字型码送入字型锁存器锁存,这时所有的显示块都有可能显示。同样的字符;再将需要显示的位置代码送入字位锁存器锁存。为防止闪烁,每位显示时间在12mS,然后显示另一位,单片机需要不断的进行显示刷新。在这之前应该定义好单片机的引脚并

41、对内存初始化。因为端口3是一个双向I/O端口,每个脚有内部升压电阻,可以直接驱动外部电路。作为按键的公共端,并定义每个按钮的另一端:DIG1DIG2DIG3DIG4DIG5DIG6 之所以DIG1DIG6定义的引脚和按键定义的引脚重复,是因为按键和每个DIG共用同一个引脚,每个引脚用于控制对应的LED的选通,并且通过单片机检测按键引脚电平的高低来对时分秒进行加减。2 定义好程序段的起始地址和数据段的起始地址后就可以初始化内存了:ORG 0000HJMP MAINMAIN: MOV SP,#40H MOV PSW,#00HMOV R0,#7FH CLR_RAM : MOV A,#00H DJNZ

42、 R0,A MOV P1,#0FFH MOV P2,#0FFH MOV P0,#0FFH MOV P3,#0FFH 3这样单片机经过复位以后就开始正常工作,从主程序开始执行,可以看到四个口输出的全都是高电平。此时,想测试以下LED显示是否正常,以下几条指令往P0.6送数据即可, MOV BUFF_164, #08HPUSH ACC SND164_LP: RLC A MOV DAT164,C DJNZ BUFF_164, SND164_LP POP ACC RET本段程序是利用串行传送数据的思想,即先把要发送的数据发送到专用寄存器A,然后把累加器A中的数据循环左移。当然这之前是一定要把各个寄存器

43、定义好的,否则会是错误百出,我原来想当然的把0C0H发送到P0口,用示波器在P0.6引脚看信号,只发现该引脚一直都是低电平, 不论怎么调试输出的结果都是低电平,还是向在实习的公司工作的人才知道了所以然:原来我用的方法是把八位的数据直接送到一个口上,当然,每个引脚只能占到一位的数据。后来在他的讲解下我才知道关键是把八位的数据变成串行数据输出,即用循环移位的方法把数据一位一位的送出去,由于在学校的时候自己写的程序不多,再加上我们学校开设的硬件反面的课程不是很多,所以对程序与硬件之间的关系不是太了解,但是经过反复的翻书、查阅资料,使自己在程序和硬件方面比以前都得到了很大的提高。然后,我把每八位数据对

44、应的数字都试过了一遍,从0F直到所有的显示都完全正确,其实也是把书本上面的字型码又验证了一遍而已,发现和书上给的字型码是完全一致的。所以决定程序中使用以下数形表:TAB_LED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0A7HDB 0A1H,86H,8EH4 每次仅仅发送数据是不行的,还要和每一位的选通码结合起来,才能实现数据的动态显示。要不然就是一个实实在在的静态显示的例子。所以要用到了定时和中断。考虑到时间的精确性,决定每4MS中断一次,1S中断250次,4MS的时间既不会使六个数码管有闪烁感,也使中断的编程容

45、易一些。由于89S51的计数器是往上计数的,晶振为12MHZ,所以机器好周期位1US,定时器初值的计算方法如下;溢出率=1/T=Fosc/12(2L-TC),溢出率为定时时间的倒数; T为定时时间;Fosc为振荡器的频率;L为计数器的长度;TC为定时器的初值;带入公式:计算初值为(65536-4000)。编程如下:MOV TMOD,#21H ;设定定时器的工作方式:T1为方式2(自动重装载的8位计数)T0为方式1(16位计数器)MOV TH0,#HIGH(65536-4000) ;T0=4MSMOV TL0,#LOW(655536-4000)SETB TR0 ;启动T0MOV IE,#10000011B ;设置中断使能:外部中断0允许中断MOV IP,#00000010B ;T0中断优先原来调试之前,并没有加上SETB TR0这一条指令,所以T0并不正完成计数,使得后面的程在在工作时出现了异常,不能够在规定的地方中断。加上去就恢复了正常。5在课本的149页也讲到了扩展的多个外部中断的方法:SW1SW6六个按键每个按键的引脚都连接在一起,然后在连接到P3.2口,P3.2口实际上是外部中断零的引脚。六个扩展外部中断源有一个或几个出现低电平,引起INT0低电平出发中断,所以这些中断源都是电平触发方式。当满足外部中断请求条件时,则CPU响应中断;转入0003H单元开始执行中断

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com