单片机原理与应用课程设计说明书.doc_第1页
单片机原理与应用课程设计说明书.doc_第2页
单片机原理与应用课程设计说明书.doc_第3页
单片机原理与应用课程设计说明书.doc_第4页
单片机原理与应用课程设计说明书.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1 软件介绍Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 (1)Proteus的工作过程 运行Proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Define code generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。 (2)Proteus软件所提供的元件资源 Proteus 软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等.(3)Proteus软件所提供的仪表资源 在Proteus软件包中,不存在同类仪表使用数量的问题,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。图形显示功能如表3所列。(4)Proteus软件所提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。对于单片机硬件电路和软件的调试,Proteus 提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。 对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pause animation菜单项或pause键暂停系统的运行;或用debug菜单下的stop animation 菜单项或shift-break组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。 对于软件的分步调试,应先执行 debug菜单下的start/restart debugging 菜单项命令,此时可以选择step over 、step into 和 step out命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start / restart debuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。2 理论分析我们这组的单片机课程设计题目是:用计数器测量外部一给定周期信号的周期,并显示测得的周期值,即设计频率计。通过对本题目进行认真分析以及查阅相关的资料,我认为这次的课程设计主要重点是:首先是程序设计。由于题目要求是用计数器来测量一给定的外部周期信号的周期,因此,我们就要用到计数器的定时和计数功能来对外部周期信号进行测量周期,设计程序时先设计一个测周期的程序,然后设计一个显示程序。而显示程序,我是采用动态显示的方法,因此,我们就要将测得的周期的二进制数转换为十进制并分离出来,然后输出到对应的数码管上完成动态显示。然后就是电路原理图。根据题目的要求和程序的设计思路,可以大致确定本次课程设计的电路图。单片机周围的一些基本电路:时钟电路,复位电路。还有设计程序中所用的显示电路,再就是课程设计的核心部分AT89C51单片机芯片。2.1 定时计数器1 定时计数器结构和工作原理51系列单片机片内有二个十六位定时/计数器:定时器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,计5个机器周期即为5us,即定时5us。计数工作方式。设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当输入脉冲信号产生由1至0的下降沿时,定时器的值加1,在每个机器周期CPU采样T0和T1的输入电平。若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加1。由于检测一个1至0的足迹需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前到少被采一次,要求电平保持时间至少是一个完整的机器周期。2 定时器的四种工作方式对TMOD寄存器的M1、M0位的设置,可选择四种工作方式,即方式0、方式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位参与操作,计数方式时最大计数(个外部脉冲)。用于定时工作方式时,定时时间为: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这种方式可省去用户重装常数的程序,并可产生精确的定时时间,特别适用作品德口波特率发生器。(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显示器,又称数码管。七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见LED的管脚排列见下图。其中COM为公共点,根据内部发光二极管的接线形式,可分成共阴极型和共阳极型。abcdefgdp(a)(b)(c)cdedp12345678910abfgcomcomabcefabcdefgdpcomcom图 2.1LED数码管的g-a七个发光二极管因加正电压而发亮,因为零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码)。显然,共阳极和共阴极的字形码是不同的,其字形码见表2.1。LED数码管每段需10-20mA的驱动电流,可用TTL或CMOS器件驱动。字形码的控制输出可采用硬件译码方式,如采用BCD 7段译码/驱动器74LS48、74LS49、CD4511(共阴极)或74LS46、74LS47、CD4513(共阳极)也可用软件查表方式输出。2 LED数码管的接口数码管的接口有静态接口和动态接口。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阴或共阳分别接地或Vcc。这种皎洁占有用接口多,如果P0口和P2口要用作数据线和地址线,仅用单片机的并行口就只能接二个数码管。也可以用串行接口的方法,接多个数码管,使之静态显示。动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这各显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。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 电路原理图最后我们可以通过原理图来进行硬件设计。1 芯片:AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,可稳定地工作于5V的电源下.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器.AT89C51管脚说明:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。图3.3 AT89C51管脚图2 时钟电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中AT89C51单片机采用外部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间,电容值无严格要求。外部振荡方式是把已有的时钟信号引入单片机内,这种方式宜用来使单片机的时钟与外部信号保持一致。 3 显示模块设计利用7SEG-MPX6-CC-BLUE数字显示器的1-6引脚连接AT89C51单片机 P2.0 P2.5接口,其他8个引脚分别与AT89C51单片机的P0.0 - P0.7和共阴极管RESPACK-8排阻的 2 - 9 引脚分别连接。数码管:7SEG-MPX6-CC-BLUE单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。因为共阴极的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该系统中的6位LED数码管均用共阴极的数码管。图3.4 数码管7SEG-MPX6-CC-BLUE图4 程序设计根据设计要求,测量并显示周期程序可以分为以下几个模块:(1) 用定时计数器测量外部给定周期信号的周期;(2) 将二进数转换为十进数(3) 用动态方式显示周期这样我们设计的程序如下:MS EQU 7FHBUFF DATA 40HTHH EQU 51HTLL EQU 50HDICA EQU 60HBINA EQU 70HINTF0 BIT 20H.0ORG 0000HLJMP STARTORG 000BHMOV TH0,#3CHMOV TL0,#0B0H ;恢复定时初值DJNZ MS, T0end ;20次MOV MS,#20 ; 恢复软计数SETB INTF0 ;建立标志MOV THH,TH1 ;Read DATA from t0MOV TLL,TL1 ;MOV TH1,#00HMOV TL1,#00HT0end:RETI ; START:MOV MS,#20 ;软计数初值MOV TMOD,#51H;定时方式,16位计数模式MOV TH0,#3CHMOV TL0,#0B0H ;定时初值SETB TR0 ;启动SETB TR1MOV SP,#30HSETB EASETB ET0MAIN:JBC INTF0,CONVT LCALL DISP SETB EA LJMP MAINCONVT: NOP MOV BINA,TLL MOV BINA+1,THHLCALL b2bcd LCALL SJCS LJMP MAINSJCS:MOV R0,#DICA;MOVING DATAMOV R1,#BUFFMOV R2,#03HSJCA:MOV A,R0ANL A,#0FHMOV R1,AINC R1MOV A,R0ANL A,#0F0HSWAP AMOV R1,AINC R1INC R0DJNZ R2,SJCARETB2BCD: CLR A;BIN to BCD;仅使用ACC R0,R1,BINA.DICAMOV R0,#DICAMOV R1,#03HSS0:MOV R0,AINC R0DJNZ R1,SS0MOV R6,#10HS0:MOV R0,#BINAMOV R1,#02HSS1:MOV A,R0RLC AMOV R0,AINC R0DJNZ R1,SS1MOV R0,#DICAMOV R1,#03HSS2:MOV A,R0ADDC A,R0DA AMOV R0,AINC R0DJNZ R1,SS2DJNZ R6,S0 RET;Disp:MOV R0,#BUFF MOV R2,#06h MOV R3,#01h; MOV DPTR,#tableDisp1:MOV A,R3 MOV P2,A RL A MOV R3,A MOV A,R0 MOVC A,a+DPTR; CPL A MOV P0,A INC R0 LCALL DELAY DJNZ R2,Disp1 RETtable:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71H,40H,00HDELAY: MOV R7,#10DELAY0:MOV R6,#100DELAY1:DJNZ R6, delay1 DJNZ R7,delay0 RETEND5 结果与分析在WAVE软件中运行并编译上述程序得到HEX文件,然后在PROTEUS软件按设计框图设计好电路图并设定好元件的参数,其中外部振荡方式的时钟信号的频率为1KHz,再就是往AT89C51芯片中装载HEX文件,最后运行,我们就可以得到如下的结果:图5.1 运行结果接下来我们对运行后的结果进行分析。首先分析电路原理图,电路是由时钟电路,复位电路,显示电路以及一片AT89C51芯片组成。显示的内容是由AT89C51芯片中装载的程序决定的。然后分析装载的程序,即设计的测量并显示周期的程序。程序先利用芯片提供的两个定时计数器来对一给定的外部周期信号进行测量,即先将T0设置成方式2的计数方式,对外部周期信号的下降沿进行检测。当第一次检测到下降沿时,启动T1,其中,T1设置为方式2的定时方式,当T0再次检测下降沿时,停止T1和T0,这样TL1中的数就是测得的周期值。再通过进制转换电路,得到周期值的个位,十位,百位,最后通过显示程序,就可以动态地显示测得的周期值,但是我们由于间隔是我们人眼不法认识的,所以我们看到的像是静止的一样。6 心得体会本次的单片机课程设计让我有了非常大的收获与体会。这次的课程设计真的是让人很怀念。虽然这段时间让人很累,很辛苦,不过也伴随着欢乐。因为有同组伙伴的相互关心与鼓励,有老师的耐心指导,这都让我们的任务相对轻松了一些。因此,我有了相当大的感悟,网络真的是一个非常便捷的有用的工具,我们可以通过网络快速的查找到我们需要的资料,这大大节省我们的时间,而且团队中的每个人同时查找的时候,还有相互间的讨论,这都体现出来了团队的力量以及合作的重要性,给我们在以后的工作提供的宝贵的经验。还有,有时的确需要向别人请教,我们的知识毕竟有限,不可能不会遇到这样或者那样的问题,因此,我们不能仅仅依赖个人的能力来解决问题,那样只会浪费时间和精力,我们要做的是尽快的高效的完成任务的要求,不管是自己亲自弄出来的还是请教出来的

温馨提示

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

评论

0/150

提交评论