本科毕业设计之基于51单片机控制的60秒倒计时系统设计.doc_第1页
本科毕业设计之基于51单片机控制的60秒倒计时系统设计.doc_第2页
本科毕业设计之基于51单片机控制的60秒倒计时系统设计.doc_第3页
本科毕业设计之基于51单片机控制的60秒倒计时系统设计.doc_第4页
本科毕业设计之基于51单片机控制的60秒倒计时系统设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

摘 要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。由于单片机具有体积小,易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本次设计采用C语言编程,通过倒计时子程序模块、矩阵键盘扫描模块、中断等子程序的正确调用,完成了可以随时设置初值的基于51单片机控制的60秒倒计时系统。关键词:倒计时 单片机 KeiluVision3 LED数码显示器目 录1 MCS-51 单片机硬件结构及原理11.1MCS-51系列单片机结构11.1.1MCS-51单片机的基本组成11.1.2内部基本结构31.2MCS-51单片机存储器安排61.2.1存储器空间安排61.2.2片内存储器62 课程设计的目的和任务92.1单片机秒表课程设计的概述92.2课程设计思路及描述92.3 课程设计任务和要求103 软件与硬件设计113.1系统硬件方案设计113.2软件方案设计113.3 生“HEX”文件的步骤124 程序编写与课程设计效果154.1 源程序及注释154.2原理图分析154.3课程设计效果18总 结19致 谢20参考文献21单片机60秒倒计时1 MCS-51 单片机硬件结构及原理1.1 MCS-51系列单片机结构1.1.1 MCS-51单片机的基本组成 1 总体结构图1-1单片机的总体结构2. MCS-51单片机外部引脚及其说明最常见的封装形式是40引脚双列直插式DIP(Dual In-line Package)尚有44引脚的无引线芯片载体封装PLCC(Plastic Leaded Chip Carrier) P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0图1-2 MCS-51单片机外部引脚及说明其中两条电源线,两条外接晶体,4条控制或作电源复用,32条I/O引线。 电源引脚:2条 VCC : +5V VSS : 接地 外接晶体:2条,接石英晶体构成自激振荡器 控制线:4条 EA/VPP : 程序存储器选择编程电源 输入线 1 访问片内程序存储器,寻址范围为0000H0FFFH EA 0 访问片外程序存储器(用于片内无ROM/EPROM型)VPP : 用于片内EPROM型,在编程固化期间加编程高压。 RST: 复位输入 (VPD:对HMOS芯片为片内RAM掉电保护备用电源)10F C1RST R18.2K+5V10F C1RST+5V R2200RSTR1+5VC222F 803180518751803180518751803180518751(a)上电复位电路(c)按键脉冲复位电路(b)按键电平复位电路 R1 8.2K图1-3 复位电路保持两个机器周期的高电平便复位。推荐此引脚与VCC 之间接一个10f电容,与VSS 之间接一个下拉电阻8.2k,便上电复位。 ALE/PROG:(外部扩展存储器低位字节)地址锁存允许/编程脉冲输入 ALE (Address Latch Enable):当访问外部存储器时,用该输出脉冲锁存地址的低位字节。 ALE输出正脉冲的频率为晶体频率的1/6。但在访问外部数据存储器时,即运行MOVX指令时,将跳过一个ALE脉冲,即这时的频率是晶体频率的1/12。 PROG:编程脉冲输入,用于片内EPROM型单片机编程期间输入编程脉冲。 PSEN:外部程序存储器读信号输出。用以区分外部数据存储器RAM的读信号RD(P3.7)。其写信号WR是P3.6。 I/O接口:4个8位的I/O接口P0、P1、P2和P3口,每个口都有锁存器、一个输出驱动器和一个输入缓冲器。其中P0口是三态开漏双向口,而P1、P2和P3口都是准双向口,内部都有固定的上拉电阻。特点:一口多用、分时复用 P0口: 作输出时,开漏电路需加上拉电阻不需要扩展时此口可作一般I/O口用 作输入时,需要先写入1,使之浮置 外接存储器时,分时作为扩展电路的低8位地址和数据总线复用,这时由P2口提供高8位地址。 P1口:内有固定上拉电阻,每条I/O线都可单独用作输入或输出。要用作输入,必须先写入1,使输出驱动器的FET截止,通过上拉电阻置为高电平。 复位以后,自动对其写入1,置为输入状态。 P2口:在外接存储器时,作为高8位地址总线。 P3口:内有固定的上拉电阻,可作为通用I/O口用,也可通过把相应位置1,使它具有以下专用功能:P3.0 RXD串行输入口 P3.1 TXD 串行输出口 P3.2 INT0 外部中断O P3.3 INT1 外部中断I P3.4 T0 定时器O的外部输出 P3.5 T1 定时器I的外部输出 P3.6 WR 外部RAM写信号 P3.7 RD 外部RAM读信号 1.1.2 内部基本结构 (1) 运算器 主要由8位的算术逻辑运算单元ALU、两个8位的暂存器TMP1和TMP2、8位累加器ACC、寄存器B和程序状态字寄存器PSW组成。 ALU:可对4位、8位(、16位)数据进行操作和处理。如加、减、乘、除、增量、减量、十进制数调整、比较、逻辑与、或、异或、求补循环移位等操作。 ACC:累加器(Accumulator)这是使用最频繁的寄存器,它本身没有运算功能,它配合ALU完成算术和逻辑运算。在算术和逻辑运算中,参与运算的两个操作数必须有一个是在A累加器中,运算结果也存放在A累加器中。 B:8位寄存器,在乘和除法运算中用来存放一个操作数和部分的运算结果。在不作乘除用时,可作为一般通用寄存器来使用。 PSW:程序状态字寄存器,8位寄存器,用来提供当前指令操作结果引起的状态变化信息特征,以供程序查询和判断用。这些标志如有无进位、半进位、溢出等信息。 (2) 控制器控制器包括指令寄存器、指令译码器和定时控制逻辑电路等。这部分是整个CPU的控制中枢。控制过程是取指译码控制。 指令寄存器和指令译码器:从存储器中取出指令指令寄存器指令译码器翻译成控制信号,再通过定时控制电路,在规定的时刻向有关部件发出相应的控制信号,如寄存器传送、存储器读写、加或减算术操作、逻辑运算等命令,其动作的依据就是该时刻执行的指令。 时钟和定时电路:CPU的操作需要精确的定时,这是用一个晶体振荡器产生稳定的时钟脉冲来控制的。单片机内部已集成了振荡器电路,只需要外接一个石英晶体和两个频率微调电容就可工作。其频率范围为1.212MHz。* 振荡周期:定时信号振荡器频率的倒数,用P表示。如6MHz时为 1/6S,12MHz时为 1/12S。 * 时钟周期:对振荡周期二分频,它是振荡周期的两倍。又称状态周期,用S表示,其前半周期为P1,后半周期为P2。* 机器周期:一个机器周期含6个时钟周期,分别用S1S6表示。含12个振荡周期,分别用S1P1、S1P2S6P2表示。* 指令周期:完成一条指令所需要的时间。一个指令周期一般含14个机器周期。大部分指令是单字节单周期指令,少数是单字节双周期、双字节双周期指令,只有乘法和除法指令占用4个机器周期。P1P2S1P2振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2图1-4各种周期的相互关系(3) 存储器根据不同的型号,不同的芯片内部可有不同的存储器配置,一般片内可以有两类存储器:程序存储器(ROM、EPROM、EEPROM等)和数据存储器RAM。它们是两个完全分开的各自独立的存储空间。详细情况在存储器安排一节介绍。 存储器类型单片机系列掩膜ROMEPROMRAMMCS-5151子系列8031/128 B80514KB/128 B8751/4 KB128 B52子系列8032/256 B80528KB/256 B8752/8 KB256 B表1-1 存储器型号表(4) 输入和输出接口 从结构安排上看,MCS-51单片机有4个8位的并行I/O接口P0、P1、P2、P3,当采用片内存储器而不再片外扩展存储器时,它们都是既可输入也可输出的(准)双向接口,这些端口的地址与RAM统一编址,可以把它们当作寄存器来看待。但当需要在片外扩展存储器芯片时,P2口就作为高8位地址总线使用,同时P0既作为8位的数据总线又作为低8位的地址总线分时复用。详细结构后面介绍。(5) 其他部件定时器计数器、通信串行口、中断控制逻辑 定时器计数器MCS-51单片机片内有2个16位的定时器计数器。详细结构和用法后面介绍。 通信串行口MCS-51单片机片内有一个全双工异步通信串行接口。详细结构和用法后面介绍。 中断控制逻辑MCS-51单片机片内有可实现五个中断源二个不同优先级的中断控制逻辑。详细结构和用法后面介绍。(6) 布尔处理机位处理机可直接位寻址、位操作,构成一个位处理机。有位处理指令系统计17条指令,位处理累加器Cy。在片内RAM中,可对16个字节(20H2FH)的168=128位直接寻址,其位地址从00H 7FH。(也可字节寻址20H 2FH)。在寄存器中可对11个字节的专用寄存器(80H、88H、90H、98H、A0H、A8H、B0H、B8H、(C8H)、D0H、E0H、F0H单元)的(118-3)/(128-3)计85/93位直接寻址,其位地址从80H F7H(中间不完全连续)。其中包括P0 P3的各位I/O口。这提供了面向控制的功能,可简化、优化实时控制程序设计,实现复杂的组合逻辑功能。1.2 MCS-51单片机存储器安排1.2.1 存储器空间安排 程序存储器与数据存储器严格分开数据存储器片内与片外严格分开 片内-程序存储器(851 4kB8)有4个物理存储空间: 数据存储器 256 Bytes 片外-程序存储器(851 60 kB8, 8031 64kB8) 数据存储器 64 kB8但仅有3个逻辑存储空间: 程序存储器 64 kB8 片内数据存储器 256 Bytes 片外数据存储器 64 kB8SFR寄存器通用RAM区位寻址区00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H专用寄存器中位寻址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)外部数据存储器(b)程序存储器(c)工作寄存器区图1-5 存储器空间安排1.2.2 片内存储器 片内RAM区(128单元) 寄存器区(00H1FH):32个单元通用寄存器或工作寄存器,4组寄存器,每组8个单元。每组都以R0R7编号。任一时刻只能使用其中的一组,由PSW中的RS1、RS0指定。RS1 RS0选择工作寄存器组0 00组(00H07H)0 11组(08H0FH)1 02组(10H17H)1 13组(18H1FH) 可位寻址区(20H2FH):16个单元,128位。既可作一般字节寻址的字节单元,也可以每一个单元中的每一位进行位操作,作为布尔处理机中的存储空间。 普通RAM区(30H7FH):80个单元,作为用户通用RAM存储单元。如需要用到(08H1FH)单元的寄存器,一般可把堆栈存储区设置在该区域中。 SFR区(21个) PSW(Program Status Word):程序状态字寄存器其中,CY:进借位标志;AC:辅助进借位标志; F0:用户标志; RS1、RS0:工作寄存器组选择;OV:溢出标志;P:奇偶标志。(1) Cy进位标志。当执行算术运算时,最高位向前进位或借位时,Cy被置位。在执行逻辑运算时,可以被硬件或软件置位或清零。在布尔处理机中,它被认为是位累加器。(2)Ac辅助进位标志。进行加法或减法运算时,当低四位向高四位进位或借位时,Ac被置位,否则就被清零。Ac被用于十进制调正,详见DA A指令。(3)F0标志。是用户定义的一个状态标志,可以用软件来使它置位或清零,也可以用软件测试F0以控制程序的流向。(4)RS1,RS0寄存器区选择控制位1和0。可以用软件来置位或清0,以确定工作寄存器区。RSl,RS0与工作寄存器区的对应关系如表23所示。(5)OV溢出标志。当执行算术运算ADD或SUBB指令时,对带符号数作加、减运算时,OV1,表示加、减运算的结果超出8位带符号数的范围(+127-128)。 OV标志常用C6和C7的关系来表示。 OV=C6C7当进行加、减运算时,C6表示D6位向D7位有进位或借位,C7表示D7位向进位位有进位或借位。在MCS-51单片机中,无符号数乘法指令MUL和除法指令DIV的执行结果也会影响溢出标志。(6)奇偶标志。表示累加器A中1的位数的奇偶数。若1的位数为奇数,则P置位,偶数,则清0。该标志在每个指令周期由硬件来置位或清o。此标志位对串行通信中的数据传输有重要意义。在串行通信中常用奇偶校验来检验数据传输的误码率。在发送端可根据P的值对数据的奇偶位置位或清零,若通信协议中规定采用奇校验的办法,则P1,当数据传输到接收端,若P1,则表示传输过程中,奇偶无错误,可以接收,否则奇偶有错,不能接收。 DPTR:数据指针 DPTR=DPH+DPL 83H 82H这是一个16位的寄存器,用来存放外部数据存储器的16位地址,当对64kB的外部数据存储器寻址时,可作间址寄存器,用下列两条指令来传送数据: MOVX A,DPTR MOVX DPTR,A在访问程序存储器时,DPIR可用作基址寄存器,以读取存放在程序存储器内的表格常数; MOVC A,A十DPTRDPTR可以分成两个8位寄存器:高位字节寄存器DPH和低位字节寄存器DPL,既可作一个16位寄存器用,也可作两个8位寄存器来用。 SP,堆栈指针,8位寄存器复位初始化后,SP=07H,从08H开始存放。因为08H1FH是工作寄存器13区,如要用到这些区,可重新设置SP。2. 课程设计的目的和任务2.1单片机秒表课程设计的概述一、课程设计题目秒表系统设计用At 89C51设计一个2位LED数码显示“秒表”,显示时间为0.060秒,每毫秒自动加一,每十毫秒自动加一秒。二、增加功能增加一个“复位0.0”按键(即清零),一个“暂停”和“开始”按键,一个“复位60”按键(用来60秒倒计时),一个倒计时“逐渐自减”按键。三,课程设计的难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程。四、课程设计内容提要本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有一个开关按键:即秒表开始键(同时也用作暂停键), key1按键按下去时数码管复位为“60”(用于倒计时),key4按键按下去则是数码管开始“逐渐自减”倒计时。五、课程设计的意义1) 通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。2) 掌握定时器、外部中断的设置和编程原理。3) 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4) 该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义六、课程设计软件MCS-51系列单片机微机仿真课程系统中的软件(Keil uvision2)。2.2课程设计思路及描述该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.4,P3.5,P3.6,P3.7作为按键的入口;定时器T0作为每0.1秒减一的定时器;定时器T1作为每0.1秒加一的定时器。其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。方框图如图所示:开关MCS-51AT89C52RCLED显示图2-1 数字秒表设计导向2.3 课程设计任务和要求1设计指标 了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、倒计时清零等功能,精确到0.1秒。要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。2设计要求画出电路原理图(或仿真电路图);软件编程与调试;电路仿真与调试。3软件与硬件设计3.1系统硬件方案设计单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、IO接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和IO接口,使单片机应用系统能够运行。在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。12.0MHz晶振1个独立式的按键电源指示灯电源开关2个数码管显示STC89C51RC 图3-1系统硬件结构框3.2软件方案设计此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义。其次还有显示程序、按键扫描及处理程序、时钟程序和倒计时程序,系统软件流程图如图所示:开始系统初始化While (1)数码管显示选择按键的扫描及处理图3-2系统软件流程图3.3 生“HEX”文件的步骤1 新建工程图3-3新建工程2 “HEX”文件输出设置图3-4“HEX”文件输出设置3 新建“C”文件图3-5新建“C”文件4 写入程序图3-6 写入程序5 运行程序使之输出“HEX”文件图3-7 运行程序使之输出“HEX”文件4 程序编写与课程设计效果4.1 源程序及注释可键盘设置倒计时时间#includeunsigned char num,t,n;unsigned char code table =0xc0,0x90,0x80,0xf8 ,0x82,0x92,0x99,0xb0,0xa4,0xf9;unsigned char code table1 =0x92,0x99,0xb0,0xa4,0xf9,0xc0;void main() num=0; t=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; P0=0xc0; P2=0x82; while(1) if(t=20) t=0;num+; if(num=10)

温馨提示

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

评论

0/150

提交评论