百分之一秒计时器设计.doc_第1页
百分之一秒计时器设计.doc_第2页
百分之一秒计时器设计.doc_第3页
百分之一秒计时器设计.doc_第4页
百分之一秒计时器设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

08级电气工程系单片机课程设计第1章 秒计时器总体设计课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不少的,是非常必要的。1.1 设计目的设计目的1. 单片机的基本原理及相关的简单应用。2. 掌握用单片机设计系统的一般步骤。3. 了解LED数码管的基本知识和驱动方法。4掌握单片机系统各个组成部分的作用以及分布位置。5学会运用单片机的硬件资源。1.2 设计任务和要求任务和要求任务:用AT89S51单片机和中小规模集成芯片设计1/100秒计时器要求:1. 计时精度 10-2秒。2. 6位数码显示,分别表示分、秒、1/10秒、1/100秒。3. 有两个按键分别控制秒表的归零、停止。4. 用汇编语言编程,用proteus仿真。1.3 总体设计方案1.硬件设计方案方案:该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。 MCS-51单片机特点如下: (1)可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高、易扩充。(2)单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。 (3)控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。其原理框图如图1.1所示:六位显示AT89C51复位开关暂停开关时间脉冲源图1.1 硬件设计原理框图2.软件设计方案显示程序主程序复位程序暂停程序中断程序 通过汇编语言编写程序来实现设计任务与要求,总体设计方案图如图1.2所示: 图1.2 软件设计原理框图第2章 单片机应用系统简介单片机的应用系统随着用途不同,它们的硬件和软件结构差别很大,但系统设计的方法和步骤基本上是相同的。一般包括总体设计、硬件设计、软件设计、仿真调试、固化程序、应用系统独立运行等步骤。2.1单片机结构1. 80C51单片机的功能结构 正如我们所知,单片机是属于三总线结构,80C51单片机功能方框图如图2.1所示:图2.1 单片机内部结构框图2. 单片机内容结构单片机的内部结构如图2.2所示,从图中看出,它具有以下特征;适于控制应用的8位CPU56字节片内数据存储器,分高低两个128字节4K字节片内程序存储器64KB程序存储器空间64KB数据存储器空间4个8位共32根双向并可按位寻址的I/O口线两个16位定时/计数器一个全双工的串行I/O接口有5个中断源片内时钟振荡器具有布尔处理(位处理)能力图2.2 单片机内部结构2.2 单片机的封装形式、引脚定义及功能1. 80C51封装80C51系列单片机具有双列直插式和方形两种封装。2. 80C51系列单片机引脚功能 引脚分布:如图2.3所示为双列直插式引脚分布图 引脚功能:VCC-工作电源+5VGND-电源地ALE/PROG -访问外部存储器时作为低8位地址锁存控制信号;在对EPROM编程时作为编程脉冲输入;在不访问外部存储器和非EPROM编程状态下,该脚输出频率为1/6单片机晶振频率的方波信号,该信号,可作为时钟脉冲,但在访问数据存储器时会丢失一个脉冲 PSEN外部程序存储器读选通信号EA/VPP访问程序存储器控制信号。当EA为低电平时,只读外部存储器,当EA为高电平时则先读内部程序存储器,再读外部程序存储器;这个引脚在编程时接编程电压VPP RST复位信号,对系统复位信号要2TXTAL1片内振荡电路输入端XTAL2片内振荡电路输出端 P0-P3输入输出端口 图2.3 双列直插式引脚分布图2.3 定时计数器1.定时/计数器结构80C51单片机内部设有两个16位定时/计数器,简称为定时器0(T0)和定时器1(T1)。定时器计数器的结构如图2.4所示:TMOD-方式控制寄存器,用于设定定时计数器的工作方式TCON-定时器控制寄存器,用于启动定时计数器IE-中断允许控制寄存器:定时计数器是微机的中断源图2.4 80C51单片机内部定时计数器的结构2.工作原理定时/计数功能选择:当CT0时,为定时器功能,此时,C与A相连(计数脉冲为机器周期);当CT1时,为计数功能,此时,C与B相连(计数脉冲从P3.4或P3.5口输入)。定时/计数器设置:定时计数器设置由工作方式控制寄存器(TMOD)、定时控制寄存器(TCON)以及中断允许寄存器(IE)共同完成。2.4 键盘接口技术键盘分两类:独立连接多键盘和矩阵式键盘,如图2.5所示。1.独立式键盘独立式按键结构的键盘是最简单的键盘电路,每个键独立接入一根输入线。这种键盘的优点是结构简单、使用十分方便,目前这种结构的键盘应用还相当普遍,这种键盘的缺点是随着键数数量的增加所占用的I/O口线也增加。独立式按键结构的键盘在没有键按下时,数据输入线均为高电平,当有键按下时,与之对应的数据线将变成低电平。因此可用位指令判别是否有键按下。2.行列式键盘独立式键盘虽然结构简单,使用方便,但每一个按键开关要占一根I/O口线,因此在按键数较多时,采用行列式键盘技术。 图2.5独立式键盘行列式键盘的结构及原理输出锁存器输入缓冲器图2.6 行列式键盘行线列线 行列式键盘的结构图2.6所示为行列式键盘的基本结构。它由键盘开关矩阵、输出(行线)锁存器、输入(列线)缓冲器三部分组成。在具体组成电路时,有以下几种组合方式:直接使用I/O的键盘电路。MCU的I/O口输出具有锁存器,输入具有缓冲器,因此应用I/O口直接与行线与列线相连就可以组成行列式键盘。如图2.6所示,是由P1口组成的44键盘。图中左示的是普通接法,右示为带中断的键盘接法。利用I/O口和译码器的接口电路P10P11P12 P00P01P02P03ABC 图2.7 由I/O口与译码器组成的行列式键盘如图2.7所示为使用I/O口与74LS138译码器构成的键盘电路利用串行口的键盘接口电路图2.8为由I/O口与串行口组成的键盘电路。行列式键盘的工作原理:尽管构成行列式键盘有多种形式,但它们的工作原理是相同的,现以图2.8为例来说明: 行线P14P17为输出,列线P10P13为输入。CPU先使第一行( P14)为“0”,其余行为“1”。读输入口P10P13的状态,若输入缓冲器的状态全部为“1”,则表示所在行无键按下,CPU使一下行线为“0”,其余行线为“1”,扫描下一行,这样在P14P17循环进行。若输入缓冲器不全为“1”,说明所在行有键按下,CPU停止当前行线扫描,转入到列线扫描,列线P10 P13为“0”状态的列表示对应列有键按下。这样,行线与列数交叉键就是扫描到的按键。P10P11 AB P12 RXD TXD图2.8 I/O口与串行口组成的行列式键盘键扫描方式:程控扫描方式:CPU从执行程序就开始了键盘的扫描,等待来是键盘的命令。这种程控扫描方式,适用单任务多分支结构。定时扫描方式:在多任务应用系统中,既要执行当前任务,又要及时接受键盘命令,定时扫描方式适应这种需要。具体做法是:在程序初始化时,先对定时/计数器进行设置,使其每10ms中断一次,每次中断,CPU将去扫描一次键盘,若两次中断扫描到有键按下(这里考虑了消抖动),CPU将对键作相应的处理。中断扫描方式:采用中断扫描方式必需有外部中断接口,当有键按下时,产生中断请请求,CPU响应中断,在中断服务程序扫描键盘,作相应处理。这是多任务应用系统常用的一种方式。2.5 显示接口技术1.显示器结构与原理如图2.9所示为LED显示器。在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。八段LED显示器由8个发光二极管组成。基中7个长条形的发光管排列成“8”字形,另一个点置于右下角作为显示小数点用。LED显示器有共阴和共阳两种结构,显示器各笔划段名和安排位置相同。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。在单片机接口中,单片机口线须接300-750的限流电阻。aabcdefghabcdefghbcdefghgfGNDabedGNDcdp共阳极共阴极图2.9 LED显示器2. LED显示接口技术LED显示电路分静态显示和动态显示两类:(1)静态显示接口技术所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。单片机只要把要显示的字形代码发送到接口电路就可以了,静态显示电路有以下几种形式:通过MCU的口线的显示接口电路aabcdefghbcdefghP1GND图2.10 单片机的I/O口直接与LED显示器相连如图2.10所示,数码管既可直接接单片机的口线(如果是P0口的话,只能接共阳极的,接共阴的要接上拉电阻),又可通过锁存器接单片机口线。通过MCU口线和译码驱动的显示接口如图2.11所示,图中MC14495为带锁存的地址译码器,译码器采用通用的二-四译码器。图2.11 I/O口线与译码器构成静态显示电路利用串行总线控制的显示接口如图2.12所示,通过单片机的串行总线控制的静态显示电路:abcdefgh+5VVCCaedfchgbdfgahcbeP0+5VVCCP10 P11图2.12 单片机动态显示扫描电路图中74LS164为移位寄存器,将单片机设置在串行口方式0,欲显示的数据建一个表格,然后采用MOVC A,A+DPTR指令,将欲显示的数据送入SBUF寄存器中,SBUF中的数据通过串行口送到74LS164,移位寄存器的输出接数码管。(2)动态显示接口技术如图2.12是动态扫描显示接口电路。接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,虽然所所有显示器接收到相同的字形码,但是只有被选中的位才显示。所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。2.6 复位操作复位操作是单片机的初始化操作,单片机在进入运行前和在运行过程中程序出错或操作失误使系统不能正常运行时,需要进行复位操作。复位操作后,程序将从0000H开始重新执行,复位时特殊功能寄存器的状态。除此之外,复位操作还使单片机的ALE和PSEN引脚信号在复位期间变为无效状态。单片机对复位信号的要求:一是复位信号为高电平,二是复位信号有效持续时间不少于24个振荡脉冲(两个机器周期)以上。在这里特别要提醒的是,在一个应用系统中,如果有几片单片机同时工作,在程序上有连接关系,系统复位时,应确保每一片单片机同时复位。复位信号由单片机的RST引脚输入,复位操作有上电自动复位、按键复位和外部脉冲复位三种方式。随着单片机技术的发展,目前有些单片机内部带有看门狗电路,当程序进行出错或进入了无休止循环时,看门狗电路将利用软件强行使系统复位。第3章 硬件电路设3.1 秒计时器电路图如图3.1所示为电路图。其工作原理为:接通电源后,按“开始”按键,开始计数,数码管显示从00开始每百分之一秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数。图3.1 秒计时器电路原理图3.2 单元电路设计1.时序控制电路设计时序电路设计是秒计数器设计的关键,如图3.2所示,它主要完成以下功能: (1)当我们按下“开始”按钮时,数码管显示数字,秒计时器开始计时。 (2)当我们再按一下“暂停”按钮时,数码管停止计数,显示当前数值。2.复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。复位电路如下图3.3所示:图3.2 开始/暂停按钮图3.3 复位电路3.3外部震荡电路外部震荡电路单片机必须在AT49C51的驱动下才能工作,在单片机内部有一个时钟震荡电路,只需要外接一个振荡器就能产生一定的时钟信号送到单片机内部的各个单元,外部震荡电路如图3.4所示。图3.4外部震荡电路图3.4 LED显示电路设计秒计时器采用LED动态显示,为了简化电路将所有位的段选线并联在一起,由一个八位IO的接口控制,电路如图3.5所示:图3.5 LED显示第4章 软件设计通过前面的硬件介绍,现在我们将对1/100秒表进行系统软件设计。4.1 系统主程序设计1.秒计时器主程序流程图如图4.1所示:END开始计数取秒钟的六位数字放六个连续单元存放起来调用显示子程序STATR显示单元置初值定时和中断的初始化秒钟初值设置调用键盘操作(主程序) 图4.1 主程序流程图2.LED动态程序图如图4.2所示:秒钟加160秒到吗分钟加160分到吗分钟清0开T1RETI1s到吗MSECBUF 内容加1关T1并重装时常数(中断服务程序)中断入口N YNYNY图4.2 LED动态程序图3.程序清单ORG 0000HLJMP START ORG 001BH ;中断入口 LJMP CLOCK ORG 0100H;-内存分配- DISBUF EQU 30H ;显示数字缓冲首地址 MSECBUF EQU 21H ;1/100秒缓冲 SECBUF EQU 22H ;秒缓冲 MINBUF EQU 23H ;分钟缓冲 ;-主程序-START: MOV MSECBUF ,# 00H MOV SECBUF ,#00H MOV MINBUF,#00H JB P3.2,$ CALL DELAY1 MOV TMOD ,#10H ;设置T1工作于定时方式1 MOV TL1,#68H MOV TH1,#0C5H ;写0.01S的时间常数 MOV SP,#50H SETB EA ;开放CPU中断 SETB ET1 ;开放T1中断 SETB TR1 ;允许T1工作;-暂停复位程序-L2:CALL DELAY ;跳转消抖程序 JB P3.5,L3 ;暂停程序 JMP L2L3:JB P3.5,$ CALL DELAY1L4:JB P3.5,START ;复位程序JMP4DISP1:MOV R0,#DISBUF ;显示数字存放首地址 MOV A, MSECBUF ;取0.01秒高位数字 ANL A, #0FH MOV R0, A INC R0 ;指向下一个单元 MOV A, MSECBUF ;取0.01秒低位数字 ANL A, #0F0H SWAP A MOV R0 ,A INC R0 MOV A, SECBUF ;取秒高位数字 ANL A, #0FH MOV R0 , A INC R0 MOV A, SECBUF ;取秒低位数字 ANL A, #0F0H SWAP A MOV R0, A INC R0 MOV A, MINBUF ;取分高位数字 ANL A, #0FH MOV R0 ,A INC R0 MOV A, MINBUF ;取分低高位数字 ANL A ,#0F0H SWAP A MOV R0 ,A LCALL DISPLAY SJMP DISP1;-显示子程序-DISPLAY: MOV P3, #0FEH ;驱动最低位 MOV R1, #DISBUF ;取显示数字首地址 MOV R2, #06H ;软计数器表示显示位数LOOP1: MOV DPTR,#SEGTAB ;七段显示码表首地址 MOV A, R1 MOVC A, A+DPTR ;查代码 MOV P0 ,A ;送段驱动器74LS273 LCALL DELAY ;延时 MOV A, P3 RL A ;指向下一位位驱动 MOV P0, A INC R1 ;指向下以个显示数字的地址单元 DJNZ R2, LOOP1;显示位完了吗 RET;-中断服务程序-CLOCK: CLR TR1 ;关T1 MOV TL1, #68H MOV TH1, #0C5H ;重装时间常数 PUSH PSW PUSH ACC ;压栈保护 MOV A, MSECBUF ADD A, #01H ;0.01S缓冲器加1 DA A ;转换为BCD码数 MOV MSECBUF ,A CJNE A, #100H, INT_DONE ;1 S时间没有到中断返回 MOV MSECBUF ,#00H ;1S到就将BUF清0 MOV A , SECBUF ADD A , #01H DA A ;秒钟加1并变成BCD码数 MOV SECBUF , A CJNE A, #60H, INT_DONE;60秒没有到中断返回 MOV SECBUF ,#00H ;60秒到秒钟清0 MOV A, MINBUF ADD A, # 01H DA A ;环种蛹?并变成BCD码数 MOV MINBUF , A CJNE A, #60H, INT_DONE ;60分钟没到中断返回 MOV MINBUF , #00H ;60分到分钟清0INT_DONE:POP ACC POP PSW SETB TR1 RETI ;-延时此程序-DELAY: MOV R7 , #2 D1: MOV R6 , #255 D2: DJNZ R6 ,D2 DJNZ R7 , D1 RET ;-消抖程序-DELAY1: MOV R6,#60D2:

温馨提示

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

评论

0/150

提交评论