《单片机原理与应用课程设计说明书》由会员分享,可在线阅读,更多相关《单片机原理与应用课程设计说明书(18页珍藏版)》请在金锄头文库上搜索。
1、1 软件介绍Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以
2、及多种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而
3、是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 (1)Proteus的工作过程 运行Proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Define code generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在s
4、ource菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。 (2)Proteus软件所提供的元件资源 Proteus 软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等.(3)Proteus软件所提供的仪表资源 在Proteus软件包中,不存在同类仪表使用数量的问题,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。图形显示功能如表3所列。(4)Proteus软件所提供的调试手段 Proteus提供了比较
5、丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。对于单片机硬件电路和软件的调试,Proteus 提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。 对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pause animation菜单项或pause键暂停系统的运行;或用debug菜单下的stop animation 菜单项或shift-break组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。 对于软件的分步调试,应先执行 debug菜单下的start/res
6、tart debugging 菜单项命令,此时可以选择step over 、step into 和 step out命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start / restart debuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。2 理论分析我们这组的单片机课程设计题目是:用计数器测量外部一给定周期信号的周期,并显示测得的周期值,即设计频率计。通过对本题目进行认真分析以及查阅相关的资料,我认为这次的课程设计主要重点是:首先是程序设计。
7、由于题目要求是用计数器来测量一给定的外部周期信号的周期,因此,我们就要用到计数器的定时和计数功能来对外部周期信号进行测量周期,设计程序时先设计一个测周期的程序,然后设计一个显示程序。而显示程序,我是采用动态显示的方法,因此,我们就要将测得的周期的二进制数转换为十进制并分离出来,然后输出到对应的数码管上完成动态显示。然后就是电路原理图。根据题目的要求和程序的设计思路,可以大致确定本次课程设计的电路图。单片机周围的一些基本电路:时钟电路,复位电路。还有设计程序中所用的显示电路,再就是课程设计的核心部分AT89C51单片机芯片。2.1 定时计数器1 定时计数器结构和工作原理51系列单片机片内有二个十
8、六位定时/计数器:定时器0(T0)和定时器1(T1)。两个定时器都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。定时/计数器实际上是16位加1计数器:T0由2个8位特殊功能寄存器TH0和TL1构成,T1由2个8位特殊功能寄存器TH1和TL1构成。每个定时器都可由软件设置为定时工作方式或计数工作方式。T0和T1受特殊功能寄存器TM0D和TCON控制。定时工作方式。设置为定时工作方式时,定时器计数的脉冲是由51单片机片内振荡器经12分频后产生的。每经过一个机器周期,定时器(T0或T1)的数值加1直至计数满产生溢出。如:当8051采用12MHz晶体时,每个机器周期为1us
9、,计5个机器周期即为5us,即定时5us。计数工作方式。设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当输入脉冲信号产生由1至0的下降沿时,定时器的值加1,在每个机器周期CPU采样T0和T1的输入电平。若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加1。由于检测一个1至0的足迹需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前到少被采一次,要求电平保持时间至少是一个完整的机器周期。2 定时器的四种工作方式对TMOD寄存器的M1、M0位的设置,可选择四种工作方式,即方式0、
10、方式1、方式2和方式3。(1) 方式0定时器(T0或T1)工作于13位定时、计数方式。用于计数方式时最大计数值为个脉冲用于定时工作时,定时时间为:t=(-T0初值)时钟周期12在这种模式下,16寄存器(THx和TLx)只用13位,其中THx占高8位,TLx占低5位,TLx的高3位未用。当TLx的低5位溢出时,向THx进位,而THx溢出时硬件置位TF0,并申请中断。定时、计数溢出否可查询TF0是否置位,如果开中断则产生溢出中断。(2) 方式1当TMOD中M1M0=01时,定时计数器工作在方式1。该模式是一个16位定时/计数方式。寄存器TH0和TL0是以全16位参与操作,计数方式时最大计数(个外部
11、脉冲)。用于定时工作方式时,定时时间为:t=(-T0初值)时钟周期1216寄存器(THx和TLx)中THx提供高8位、TLx提供低8位计数初值。(3) 方式2当TMOD中M1M0=10时,定时计数器工作在方式2。方式2是8位的可自动重装载的定时计数方式。16位的计数器被拆成两个8位,其中TL0用作8位计数器,TH0用以保持计数初值。当TL0计数溢出,置TF0,TH0中的初值自动装入TL0,继续计数,循环重复计数。用于计数工作方式时,最大计数值为:(个外部脉冲)用于定时工作方式时,其定时时间为:t=(-TH0初值)振荡周期12这种方式可省去用户重装常数的程序,并可产生精确的定时时间,特别适用作品
12、德口波特率发生器。(4) 方式3当TMOD中M1M0=11时,定时计数器工作在方式3。若将T0设置为模式3,TL0和TH0被分成为两个互相独门的8位计数器TH0和TL0。TL0可工作为定时方式或计数方式。战胜原T0的各控制位、引脚和中断源。TH0只可用作定时功能,占用定时器T1的控制位TR1和TL1的中断标志位,其启动和关闭仅受TR1的控制。定时器T1无模式3,可工作于方式0、1、2,但不能使用中断方式。只有将T1用做串行口的波特率发生器时,T0才工作在方式3,以便增加一个定时器。2.2 数码显示器1 LED显示器原理LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数
13、码管。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见LED的管脚排列见下图。其中COM为公共点,根据内部发光二极管的接线形式,可分成共阴极型和共阳极型。abcdefgdp(a)(b)(c)cdedp12345678910abfgcomcomabcefabcdefgdpcomcom图 2.1LED数码管的g-a七个发光二极管因加正电压而发亮,因为零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码)。显然,共阳极和共阴极的字形码是不同的,其字形码见表2.1。LED数码管每段需10-20mA的驱动电流,可用TTL或CMO
14、S器件驱动。字形码的控制输出可采用硬件译码方式,如采用BCD 7段译码/驱动器74LS48、74LS49、CD4511(共阴极)或74LS46、74LS47、CD4513(共阳极)也可用软件查表方式输出。2 LED数码管的接口数码管的接口有静态接口和动态接口。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阴或共阳分别接地或Vcc。这种皎洁占有用接口多,如果P0口和P2口要用作数据线和地址线,仅用单片机的并行口就只能接二个数码管。也可以用串行接口的方法,接多个数码管,使之静态显示。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留
15、特性,看不出闪烁显示现象,这各显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。3 电路设计通过对本次课程设计题目进行理论分析,我们可以得到系统总体的方案如下:(1) 由于要显示周期,需要数码管。(2) 由于要测量一给定的外部信号的周期,因此需要一个信号发生器。 单片机AT89C51外部周期信号RESPACK-87SEG-MPX4-CC-BLUE 数码管显示时钟电路复位电路(3) AT89C51单片机加上外围器件(数字显示器7SEG-MPX4-CC-BLUE,RESPACK-8排阻)和应用程序(ISIS 6 Professional软件和WAVE6000编译软件),构成相应的应用系统。根据得到的总体设计方案,我们可以得到系统设计原理图,如下图所示:图3.1 设计框图我们根据设计的框图,可以在proteus仿真软件中进行原理图设计,设计的电路原图图如下:图3.2 电路原理图