基于PIC18F4620的波形发生器设计_第1页
基于PIC18F4620的波形发生器设计_第2页
基于PIC18F4620的波形发生器设计_第3页
基于PIC18F4620的波形发生器设计_第4页
基于PIC18F4620的波形发生器设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

山西煤炭职业技术学院毕业设计说明书题目基于PIC18F4620的波形发生器设计专业电子信息工程技术班级电子331101学生寇艳如学号4233110106指导教师韩建萍2014年5月基于PIC18F4620的波形发生器设计摘要PIC18F4620单片机采用程序设计的方法来产生波形,线路相对简单、结构紧凑、价格低廉、频率稳定度高、抗干扰能力强等优点。而且还能对波形进行细微的调整,改良波形,易于程序控制。只要对电路稍加修改,调整程序,就能实现功能的升级。本系统利用PIC18F4620单片机采用程序设计方法产生锯齿波、三角波、正弦波、梯形波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,最终由示波器显示出来并通过按键来控制四种波形的类型选择。本次设计主要由信号发生模块、数模转换模块和仿真模块。关键词PIC18F4620单片机DAC0832独立式键盘PROTEUS目录第一章绪论11信号发生器的现状及展趋势12信号发生器的背景与意义13本次设计任务及设计方法21国内研究成果第二章信号发生器控芯片工作原理24主控芯片原理241单片机的发展及趋势242PIC18F4620系列单片机的主要特点243单片机特性及基本电路244DAC0832模块第三章总体设计方案及硬件电路设计31系统总体方案设计32元器件选择321主控模块选择322采样模块及原理33按键电路331按键电路的选择332按键的确认及防抖处理34显示电路35D/A电路36流压转换电路37单片机与DAC0832的连接第四章软件设计41软件的总体设计42波形程序设计421正弦波设计422三角波程序设计423方波程序设计424频率改变与波形输出流程图43频率程序设计44键盘扫描程序与处理程序451602显示程序第五章系统调试51仿真图52实物图第六章总结1总结23研究中存在的问题52展望谢参考文献附录原理图附录元器件清单附录源程序清单第一章基于PIC18F4620的波形发生器设计概述在科学研究、工程教育及生产实践中,如工业过程控制、教学实验、机械振动试验、动态分析、材料试验、生物医学等领域常常需要用到低频信号发生器。而在我们日常生活中,以及一些科学研究中。锯齿波和正弦波、矩形波信号是常用的基本测试信号。譬如在示波器、电视机等仪器中,为了使电子按照一定规律运动,以利用荧光屏显示图像。常用到锯齿波产生器作为时基电路。信号发生器作为一种通用的电子仪器,在生产、科研、测控、通讯等领域都得到了广泛的应用。11信号发生器的发展趋势随着现代电子、计算机和信号处理等技术的发展极大促进了数字化技术在电子测量仪器中的应用,使原有的模拟信号处理逐步被数字信号处理所代替,从而扩充了仪器信号的处理能力,提高了信号测量的准确度、精度和变换速度,克服了模拟信号处理的诸多缺点,数字信号发生器随之发展起来。波形发生器的发展趋势是更高取样率、更高分辨率和更大存储量。目前实时带宽超过1GHZ的产品比较少,而且分辨率只有8位,不能满足快速发展的移动通信和高速网络的测量要求。与数字存储示波器相比,波形发生器的全面指标存在明显差距。前者的取样率达到20GS/S和带宽6GHZ;后者的取样率是48GS/S和带宽2GHZ。波形发生器首先要赶上数字存储示波器,然后再往前发展。因为在电路构成方面,波形发生器的核心部件是高速数/模转换器,它的工艺潜力还很大,显然缺少的是市场需求。12信号发生器的设计背景与意义信号发生器作为一种通用的信号源发生器仪器早在20年代电子设备刚出现时它就产生了。随着通讯和雷达技术的发展40年代出现了主要用于测试各种接收机的标准信号发生器使信号发生器从定性分析的产生信号仪器发展成定量分析的产生信号仪器。同时还出现了可用来测量脉冲电路或用作脉冲调制器的脉冲信号发生器。自60年代以来信号发生器有了迅速的发展这个时期的波形发生器大多采用模拟电子技术由分立元件或模拟集成电路构成其电路结构复杂且仅能产生正弦波、方波、锯齿波和三角波等几种简单波形。自从70年代微处理器的出现以后利用各种微处理器、模数转换器和数模转多以软件为主实质是采用微处理器对DAC的程序控制就可以得到各种简单的波形。极大促进了数字化技术在电子测量仪器中的应用使原有的模拟信号处理逐步被数字信号处理所代替从而扩充了仪器信号的控制力提高了信号的准确度、精度和变换速度。单片机在我国的应用历史不久,但发展很快1980年应用软件只有100项到1985年猛增至15000项目前我国的单片机应用主要在工业自动化与仪器仪表控制。与控制有关的的仪器表因广泛采用单片机对单片机的应用产生重大的影响1简化了仪表面盘,用数字键盘代替了面板开关和旋钮,外表美关。2增强了仪表的功能和灵活性。3使仪表能对简单的测量数据进行处理以及实现校正和自动诊断。4可用软件代替硬件,实现虚拟检测,这使单片机向智能化随着单片机技术的迅猛发展,信号发生器也伴随着它得到迅猛的发展。可以说单片机技术的发展,为信号发生器提供了广大的空间。单片机的性价比高,具有体积小、耗电省、携带方便、使用环境要求低,以及灵活、通用性好等特点。尽管单片机还存在速度不高、内存容量小、寻址方式不多等特点,但随着不断的技术改进和本身特点,因而得到迅速发展。通过该设计课题的研究和制作使我对信号发生系统要有一个全面的了解,对信号的发生原理要理解掌握以及低频信号发生器工作流程、波形的设定、D/A转换、单片机、显示电路、键盘控制、显示和各模块的连接通信等各个部分的熟练联接与调试。全面的了解常规芯片的使用方法、掌握了简单信号发生器应用系统软硬件的设计方法,进一步锻炼了我在信号处理方面的实际工作能力。13设计任务及技术指标本设计的任务是通过AT89C51单片机制作波形信号发生器该设计课题的研究和制作使我对信号发生系统要有一个全面的了解、对信号的发生原理要理解掌握以及低频信号发生器工作流程、波形的设定、D/A转换、单片机、51单片机、显示电路、键盘控制、显示和各模块的连接通信等各个部分的熟练联接与调试。全面的了解常规芯片的使用方法、掌握了简单信号发生器应用系统软硬件的设计方法。本设计的目标是利用单片机程序产生数字式的正弦波、方波、三角波频率可调的信号。波形要求正弦波输出电压值为5V5V、初始频率为10HZ、频率最大值为100HZ、频率调节步进值为10HZ。方波输出电压为5V5V、初始频率为200HZ、频率最大值为2KHZ、频率调节步进值为200HZ。三角波输出电压为5V5V、初始频率为50HZ、频率最大值为500HZ、频率调节步进值为500HZ。可通过键盘进行波形和频率的切换。通过LCD显示波形类型及频率大小。设计硬件电路、选择合适的器件、调节好器件的工作状态、保证能输出明显的波形信号且不失真。14设计说明书结构15国内研究成果胥绍禹在多波形信号发生器一文中设计的电路采用了两块CMOS数字集成电路74C04内含六个反相器和74C14内含六个带施密特电路的反相器。由反相器IC1的A、B、C三个并联、电阻W1R1、电容C1、C2、C3构成振荡器产生三角波振荡频率。计算公式为F117RC。可由开关控制频率。此三角波经施密特触发器IC2A整形为方波,再经IC2BF并联输出。多个门电路并联以提高驱动能力,其电平兼容TTL。IC1D、IC1EF构成两级线性放大器,用于将三角波整形为模拟正弦波。当波形选择开关K3将电阻R2和二极管D1或D2接入电路时,输出的方波被整流为正电压或负电压加到三角波发生器的输入端,构成压控振荡器VCO从而获得极性不同的锯齿波或脉冲波,脉冲宽度取决于电阻R2和积分电容的大小。杨潇、刘刚、翟玉文在多功能PWM信号发生器设计中设计的多功能PWM信号发生器以MSP430F169单片机为核心,由时钟和复位、频率及波形设定、LCM显示器、PWM信号发生电路组成。MSP430F169单片机数模转换模块输出端DAC1输出直流电压可控制PWM占空比,DAC0输出交变电压可产生SPWM信号,且基波频率和波形受单片机控制。MSP430F169单片机小系统电路由MSP430FI69、复位电路、低速时钟电路32768HZ、高速时钟电路8MHZ等元件构成。MSP430F169片内有6OK程序存储区、2K的数据存储区和多种外围模块,并具有12位数模转换模块DAC12,选用内部25V参考电压源,输入DAC12的数字量从0XO到0XFFF变化时,对应的输出电压量也就从0到25V变化。他的设计中使用DAC1通道控制PWM占空比,DAC0通道产生交变基波。李辉、朱林生基于FPGA的三相函数发生器设计设计的信号发生器是基于DDS原理频率控制字M和相位控制字P分别控制DDS输出波形的频率和相位。相位累加器是整个波形产生的核心。它有一个累加器和一个N位相位寄存器组成。每来一个时钟脉冲、相位、寄存器以步长M增加。相位寄存器的输出与相位控制字相加,其结果作为波形查找表的地址。波形查找表由ROM构成,内部存有一个完整周期的波形的数字幅度信息,每个查找的地址对应波形中0360范围的一个相位点。查找表输入的地址信息映射达成波形幅度信号,同时输出到数模转换器的输入段,DAC输出的模拟信号经过程控滤波器,得到一个频谱纯净的波形。徐仁贵、管运生、李学东在实用的多功能信号发生器用单片机制作信号发生器。除了单片机以外,包括有查表地址发生器、ROM、DAC以及放大倒相等环节。该结构的特点是应用可编程计数器设计了一个“查表地址发生器”,其目的是使信号发生器只是在设定信号参数时瞬间占用微处理器,其余时间微处理器都可以用来处理其它事务。在ROM中储存着所要产生信号某种曲线的离散值。为了保证信号质量,应该使一个周期内所取离散值的点数足够多特别是在信号频率很低时。假设这一周期性函数为FX,在一个周期内所取点数为N,则存放在该数据表中的数据依次为F0F2/NF22/NFN12/N。如果信号由对称的正负半波组成如正弦波,则可以只储存正半波的离散值。如果需要产生多种波形的信号,则不同信号的离散值可以分区。例如以256个单元为一个区存放。查表地址发生器由时钟、分频器和N位二进制计数器N8组成。它用来产生访问ROM中某一数据表的周期性地址信号。该信号为等于或大于8位的二进制数。相邻两个查表地址信号的时间间隔决定了所产生信号的周期,这一时间间隔由分频器的分频系数决定。第二章信号发生器主控芯片工作原理21单片机的发展及趋势在计算机应用控制领域上,如工业控制、汽车、家电等很多控制场合,对控制系统的要求都比较苛刻。例如需要智能高、体积小、成本低、功耗低、抗干扰能力强和可靠性高。不仅传统电气设备无能为力,一般应用性PC机也不能胜任。在这个背景下,单片机的设想才逐渐成型。单片机就是将计算机的几个基本组成部分集成在单一的芯片上,体积相对较小,很好地满足了对控制系统体积的要求。自从1975年美国德克萨斯公司开发生产出第一台单片机TMS1000以来,单片机经历了4位8位16位32位的发展过程。最有代表性的INTEL公司先后推出了三个系列MCS48系列8位单片机、MCS51系列高档8位单片机、MCS96/98系列16位单片机。很多控制场合并不需要单片机去完成复杂的数学计算。因此单片机在生产工艺上进行了简化,降低了制造成本。同时采用大批量生产,成本进一步降低。从目前市场上来看,其价格一般都在几元到几十元之间。未来单片机技术的发展趋势将以8位单片机主流,并大力发展专用单片机。很多单片机生产厂家充分考虑到用户的需求,将一些常用的功能部件,如ADC、模/数转换器、DAC数/模转换器、PWN、脉冲产生器以及LCD、液晶、驱动器等集成到芯片内部、尽量做到单片化。同时,用户还可以提出要求,由厂家为其量身定做、SOC设计或自主设计。另外,随着科技发展,程序存储器的容量将进一步扩大。当存储空间足够大时,可嵌入一些软件。如平台软件、虚拟外设软件、系统诊断管理软件等,以提高系统开发效率。22PIC18F4620系列单片机的主要特点该系列具备所有PIC18单片机固有的优点,即以实惠的价格提供出色的计算性能,以及高耐久性的增强型闪存程序存储器。除了这些优点之外,PIC18F2525/2620/4525/4620系列还增强了器件设计,使得该系列单片机成为许多高性能、功率控制应用的明智选择。221纳瓦技术PIC18F2525/2620/4525/4620系列的所有器件具有一系列能在工作时显著降低功耗的功能。主要包含以下几项1、备用运行模式通过将TIMER1或内部振荡器模块作为单片机时钟源,可使代码执行时的功耗降低大约90。2、多种空闲模式单片机还可工作在其CPU内核禁止而外设仍然工作的情况下。处于这些状态时,功耗能降得更低,只有正常工作时的4。3、动态模式切换在器件工作期间可由用户代码调用该功耗管理模式,允许用户将节能的理念融入到他们的应用软件设计中。4、较低的关键模块功耗TIMER1和看门狗定时器模块的功耗需求可降至最小。222多个振荡器选项和特性PIC18F2525/2620/4525/4620系列的所有器件可提供10个不同的振荡器选项,使用户在开发应用硬件时有很大的选择范围。这些选项包括1、4种晶振模式使用晶振或陶瓷谐振器2、两种外部时钟模式提供使用两个引脚(振荡器输入引脚和四分频时钟输出引脚)或一个引脚(振荡器输入引脚四分频时钟输出引脚重新分配为通用I/O引脚)的选项3、两种外部RC振荡器模式具有与外部时钟模式相同的引脚选项4、一个内部振荡器模块它提供一个8MHZ的时钟源和一个INTRC时钟源(近似值为31KHZ)并有6个时钟频率可供用户选择(从125KHZ到4MHZ)总共8种时钟频率。此选项可以空出两个振荡器引脚作为额外的通用I/O引脚。5、一个锁相环倍频器可在高速晶振和内部振荡器模式下使用,使时钟速度最高达到40MHZ。PLL和内部振荡器配合使用,可以向用户提供频率范围从31KHZ到32MHZ的时钟速度以供选择,而且不需要使用外部晶振或时钟电路。除了可被用作时钟源外,内部振荡器模块还提供了一个稳定的参考源。增加了以下功能以使器件更安全地工作1、故障保护时钟监视器该部件持续监视主时钟源将其与内部振荡器提供的参考信号作比较。如果时钟发生了故障,单片机会将时钟源切换到内部振荡器模块,使器件可继续低速工作或安全地关闭应用。2、双速启动该功能允许在上电复位或从休眠模式唤醒时将内部振荡器用作时钟源,直到主时钟源可用为止。223其他特殊功能1、存储器耐久性程序存储器和数据EEPROM的增强型闪存单元经评测,可以耐受数万次擦写,程序存储器高达100,000次、EEPROM高达1,000,000次。在不刷新的情况下,数据保存时间保守地估计在40年以上。2、自编程能力这些器件能在内部软件控制下写入各自的程序存储器空间。通过使用受保护的引导块(位于程序存储器的顶端)中的引导加载程序,可创建能在现场进行自我更新的应用。3、扩展指令集PIC18F2525/2620/4525/4620系列在PIC18指令集的基础上进行了可选择的扩展,添加了8个新指令和变址寻址模式。此扩展可以使用一个器件配置选项使能,它是为优化重入应用程序代码而特别设计的。这些代码原来是使用高级语言(如C语言)开发的。4、增强型CCP模块在PWM模式下,该模块提供用于控制半桥或全桥驱动器的1、2或4路调制输出。其他功能包括自动关闭,用于在中断或其他条件下禁止PWM输出;自动重启,一旦条件清除后重新激活输出。5、增强型可寻址USART该串行通讯模块可进行标准的RS232通讯并支持LIN总线协议。其他增强功能包括自动波特率检测和分辨率更高的16位波特率发生器。当单片机使用内部振荡器模块时USART为与外界对话的应用程序提供稳定的通讯方式,而无需使用外部晶振也无需额外的功耗。6、10位A/D转换器该模块具备可编程采集时间,从而不必在选择通道和启动转换之间等待一个采样周期,因而减少了代码开销。7、扩展型看门狗定时器(WDT)该增强型版本加入了一个16位预分频器,允许扩展的超时范围在工作电压和温度变化时保持稳定。224系列中各产品的详细说明PIC18F2525/2620/4525/4620系列器件具有28引脚和40/44引脚两种封装形式。这两类器件在以下五个方面存在差异1闪存程序存储器(PIC18FX525器件为48KB、PIC18FX620器件为64KB)。2A/D通道(28引脚器件有10路、40/44引脚器件有13路)。3I/O端口(28引脚器件上有3个双向端口、40/44引脚器件上有5个双向端口)。4CCP和增强型CCP实现(28引脚器件有2个标准的CCP模块、40/44引脚器件有一个标准的CCP模块和一个ECCP模块)。5并行从动端口(仅存在于40/44引脚器件)。本系列器件的所有其他功能都是相同的。和所有的MICROCHIPPIC18器件一样PIC18F2525/2620/4525/4620系列也分标准器件和低压器件。器件编号中标有字母“F”的是带有增强型闪存存储器的标准器件(如PIC18F2620)其工作电压VDD范围为42V到55V。编号中标有“LF”的低压器件(如PIC18LF2620)可工作在扩展的VDD范围(20V到55V)中。23单片机特性及原理231振荡器配置PIC18F2525/2620/4525/4620器件可以在10种不同的振荡器模式下工作。通过编程配置寄存器1H中的配置位FOSC3FOSC0,用户可以选择这10种模式中的一种模式1LP低功耗晶振模式2XT晶振/谐振器模式3HS高速晶振/谐振器模式4HSPLL使能PLL的高速晶振/谐振器模式5RC外部电阻/电容振荡器模式通过RA6引脚输出FOSC/4信号6RCIO外部电阻/电容振荡器模式RA6作为I/O引脚7INTIO1内部振荡器模式通过RA6引脚输出FOSC/4信号、RA7引脚为I/O引脚8INTIO2内部振荡器模式RA6和RA7均可用作I/O引脚9EC带FOSC/4输出的外部时钟模式10ECIORA6用作I/O引脚的外部时钟模式时钟源与振荡器切换与早期的PIC18器件一样PIC18F2525/2620/4525/4620系列包含允许将器件时钟源从主振荡器切换到备用低频时钟源的功能。PIC18F2525/2620/4525/4620器件提供了两个备用时钟源。当使能备用时钟源时,可以使用多种功耗管理工作模式。基本上,这些器件都有3种时钟源1、主振荡器2、辅助振荡器3、内部振荡器模块主振荡器包括外部晶振和谐振器模式、外部RC模式、外部时钟模式和内部振荡器模块。特定的模式由FOSC3FOSC0控制位定义。辅助振荡器是不与OSC1或OSC2引脚连接的外部时钟源。即使在控制器处于功耗管理模式时这些时钟源仍可继续工作。PIC18F2525/2620/4525/4620器件将TIMER1振荡器作为辅助振荡器。此振荡器(在所有功耗管理模式中)通常是实时时钟等功能模块的时基。大部分情况下,在RC0/T1OSO/T13CKI和RC1/T1OSI引脚之间接有一个32768KHZ的时钟晶振。与LP模式振荡器电路类似,在每个引脚与地之间均接有负载电容。除了作为主时钟源之外内部振荡器模块还可以作为功耗管理模式的时钟源。INTRC源也可作为几种特殊功能部件(例如WDT和故障保护时钟监视器)的时钟源。PIC18F2525/2620/4525/4620时钟框图OSCCON振荡器控制寄存器BIT7IDLEN空闲使能位1执行SLEEP指令后器件进入空闲模式0执行SLEEP指令后器件进入休眠模式BIT64IRCF2IRCF0内部振荡器频率选择位1118MHZ由INTOSC直接驱动时钟1104MHZ1012MHZ1001MHZ3011500KHZ010250KHZ001125KHZ00031KHZ(来自INTOSC/256或直接来自INTRC)2BIT3OSTS振荡器起振延时状态位11振荡器起振定时器延时已结束主振荡器正在运行0振荡器起振定时器延时正在进行主振荡器尚未就绪BIT2IOFSINTOSC频率稳定位1INTOSC频率已稳定0INTOSC频率尚未稳定BIT10SCS1SCS0系统时钟选择位1X内部振荡器模块01辅助TIMER1振荡器00主振荡器注1、复位状态取决于IESO配置位的状态。2、时钟源由INTSRC位(OSCTUNE)选择。3、复位时INTOSC的默认输出频率。232复位PIC18F2525/2620/4525/4620器件有以下几种不同的复位方式A上电复位(POR)B正常工作状态下的MCLR复位C功耗管理模式下的MCLR复位D看门狗定时器(WDT)复位(执行程序期间)E可编程欠压复位(BOR)FRESET指令G堆栈满复位H堆栈下溢复位233存储器构成PIC18增强型单片机器件有三种类型的存储器1、程序存储器2、数据RAM3、数据EEPROM在哈佛架构的器件中,数据和程序存储器使用不同的总线,因而可同时访问这两种存储器空间。出于实用目的,可将数据EEPROM当作外设器件,因为它可以通过一组控制寄存器进行寻址和访问。程序存储器构成PIC18单片机具有21位程序计数器,可以对2MB的程序存储器空间进行寻址。访问存储器物理地址上边界和这个2MB地址之间的存储单元会返回全0(NOP指令)。PIC18F2525和PIC18F4525各有48KB的闪存存储器,可以存储最多24,576个单字指令。PIC18F2620和PIC18F4620各有64KB的闪存存储器并且可以存储最多32,768个单字指令。PIC18器件有两个中断矢量。复位矢量地址为0000H、中断矢量地址为0008H和0018H。数据存储器构成PIC18器件中的数据存储器是用静态RAM实现的。每个数据存储器有12位地址,可存储数据达4096个字节。存储器空间被分为16个存储区,每个存储区包含256个字节。PIC18F2525/2620/4525/4620器件用到所有16个存储区。数据存储器由特殊功能寄存器(SPECIALFUNCTIONREGISTER,SFR)和通用寄存器(GENERALPURPOSEREGISTER,GPR)组成。SFR用于单片机和外设功能模块的控制和状态显示,GPR则用于用户应用程序存储数据和临时存储操作的中间结果。任何未用单元均读为0。这样的指令集和架构支持跨存储区的操作。可以通过直接、间接或变址寻址模式访问整个数据存储器。为确保能在一个周期存取常用寄存器(SFR和所选的GPR),PIC18器件设置了一个快速操作存储区。该存取区是一个256字节的存储器空间,它可实现对SFR和GPRBANK0的低地址单元的快速存取,而无需使用BSR。数据EEPROM存储器数据EEPROM是非易失性的存储器阵列,独立于数据RAM和程序存储器,用于程序数据的长期存储。它并不直接映射到寄存器文件或程序存储器空间,而是通过特殊功能寄存器(SFR)来间接寻址。在整个VDD范围内的正常运行期间,EEPROM是可读写的。有5个SFR用于读写数据EEPROM以及程序存储器1、EECON12、EECON23、EEDATA4、EEADR5、EEADRH数据EEPROM允许以字节为单位读写。当与数据存储器模块接口时,EEDATA存放8位读写数据,而EEADRHEEADR寄存器对存放被访问的EEPROM存储单元的地址。EEPROM数据存储器具有高耐擦写次数。字节写操作会自动擦除目标存储单元并写入新数据(在写入前擦除)。写入时间由片上定时器控制,其值根据电压、温度和不同的芯片而不同。234中断PIC18F2525/2620/4525/4620器件具有多个中断源及一个中断优先级功能,该功能可以给绝大多数中断源分配高优先级或者低优先级。高优先级中断矢量位于0008H,低优先级中断矢量位于0018H。高优先级中断事件将中断正在处理的低优先级中断。有10个寄存器用于控制中断操作。这些寄存器是1、RCON2、INTCON3、INTCON24、INTCON35、PIR1和PIR26、PIE1和PIE27、IPR1和IPR2建议使用MPLABIDE提供的MICROCHIP头文件命名这些寄存器中的位。这使得汇编器/编译器能够自动识别指定寄存器内的这些位。通常,中断源有3个位用于控制其操作。分别是1、标志位表明发生了中断事件2、允许位允许程序跳转到中断矢量地址处执行(当标志位置1时)3、优先级位用于选择高优先级还是低优先级通过将IPEN位(RCON)置1,可使能中断优先级功能。当使能中断优先级时,有2个全局中断允许位。将GIEH位(INTCON)置1,可允许所有优先级位已置1(高优先级)的中断。将GIEL位(INTCON)置1,可允许所有优先级位已清零(低优先级)的中断。当中断标志位、允许位及相应的全局中断允许位均被置1时,中断将根据设置的中断优先级立即跳转到地址0008H或0018H。也可以通过设置相应的允许位来禁止单个中断。当IPEN位清零(默认状态)时,便会禁止中断优先级功能,并且中断是与PIC中档系列器件兼容的。在兼容模式下,各个中断源的中断优先级位不起作用。INTCON是PEIE位,用于允许/禁止所有的外设中断源。INTCON是GIE位,用于允许/禁止所有中断源。在兼容模式下,所有中断均跳转到0008H。当响应中断时,全局中断允许位被清零以禁止其他中断。清零后的IPEN位就是GIE位。如果使用了中断优先级,这个位就是GIEH位或者GIEL位。高优先级中断源会中断低优先级中断。在处理高优先级中断时,低优先级中断将不被响应。返回地址被压入堆栈,中断矢量地址(0008H或0018H)被装入PC。只要在中断服务程序中,就可以通过查询中断标志位来确定中断源。在重新允许中断前,必须用软件将中断标志位清零,以避免重复响应这些中断。执行“从中断返回”指令RETFIE将退出中断程序,同时将GIE位(若使用中断优先级则为GIEH或GIEL位)置1,从而重新允许中断。对于外部中断事件例如INT引脚中断或者PORTB输入电平变化中断,中断响应延时将会是3到4个指令周期。对于单周期或双周期指令,中断响应延时完全相同。各中断标志位的置1不受对应的中断允许位和GIE位状态的影响。注当允许任何中断时,不要使用MOVFF指令修改中断控制寄存器。否则可能导致单片机操作出错。INTCON中断控制寄存器BIT7GIE/GIEH全局中断允许位当IPEN0时1允许所有未被屏蔽的中断0禁止所有中断当IPEN1时1允许所有高优先级中断0禁止所有中断BIT6PEIE/GIEL外设中断允许位当IPEN0时1允许所有未被屏蔽的外设中断0禁止所有外设中断当IPEN1时1允许所有低优先级的外设中断0禁止所有低优先级的外设中断BIT5TMR0IETMR0溢出中断允许位1允许TMR0溢出中断0禁止TMR0溢出中断BIT4INT0IEINT0外部中断允许位1允许INT0外部中断0禁止INT0外部中断BIT3RBIERB端口电平变化中断允许位1允许RB端口电平变化中断0禁止RB端口电平变化中断BIT2TMR0IFTMR0溢出中断标志位1TMR0寄存器已溢出必须用软件清零0TMR0寄存器未溢出BIT1INT0IFINT0外部中断标志位1发生了INT0外部中断(必须用软件清零)0未发生INT0外部中断BIT0RBIFRB端口电平变化中断标志位1RB7RB4引脚中至少有一个引脚的电平状态发生了改变(必须用软件清零)0RB7RB4引脚电平状态没有改变注电平的不匹配会不断地将RBIF位置1。读取PORTB可以结束这种情况,并将RBIF位清零。235TIMER0模块TIMER0模块具有以下特性1、可由软件选择作为8位或16位定时器/计数器2、可读写寄存器3、专用的8位软件可编程预分频器4、可选的时钟源内部或外部5、外部时钟的边沿选择6、溢出时中断T0CON寄存器控制该模块操作的所有方面,包括预分频比的选择。它是可读写的。T0CONTIMER0控制寄存器BIT7TMR0ONTIMER0开/关控制位1使能TIMER00停止TIMER0BIT6T08BITTIMER08位/16位控制位1TIMER0被配置为8位定时器/计数器0TIMER0被配置为16位定时器/计数器BIT5T0CSTIMER0时钟源选择位1T0CKI引脚上的传输信号0内部指令周期时钟CLKOBIT4T0SETIMER0时钟源边沿选择位1在T0CKI引脚上电平的下降沿递增0在T0CKI引脚上电平的上升沿递增BIT3PSATIMER0预分频器分配位1未分配TIMER0预分频器。TIMER0时钟输入不经过预分频器。0已分配TIMER0预分频器。TIMER0时钟输入来自预分频器的输出。BIT20T0PS2T0PS0TIMER0预分频值选择位1111256预分频值1101128预分频值101164预分频值100132预分频值011116预分频值01018预分频值00114预分频值00012预分频值TIMER0工作原理TIMER0既可用作定时器也可用作计数器。可通过T0CS位(T0CON)来选择模式。在定时器模式下(T0CS0),该模块在每个时钟周期计时都会递增(默认情况下),除非选择了其他预分频值。如果写入TMR0,那么在随后的两个指令周期内,计时都不再递增。用户可通过将调整值写入TMR0寄存器来避开这一问题。通过将T0CS位(1)置1选择计数器模式。在该模式下,TIMER0可在RA4/T0CKI引脚上电平的每个上升沿或下降沿递增。递增边沿由TIMER0时钟源边沿选择位T0SE(T0CON)决定。清零该位即选择上升沿。下面讨论外部时钟输入的限制条件。可以使用外部时钟源来驱动TIMER0。但是,必须满足一定要求,以确保外部时钟和内部相位时钟(TOSC)保持同步。在同步之后,定时器/计数器仍需要一定的延时才会引发递增操作。TIMER0的16位读写模式TMR0H并不是16位模式下TIMER0的高字节,而是被缓存的TIMER0高字节,不可以被直接读写。在读TMR0L时使用TIMER0高字节的内容更新TMR0H。这样可以一次读取TIMER0的全部16位,而无需验证读到的高字节和低字节的有效性(在连续读取高字节和低字节时,由于可能存在进位,因此需要验证读到的高字节和低字节的有效性)。同样,写入TIMER0的高字节也是通过TMR0H缓冲寄存器来操作的。在写入TMR0L的同时,使用TMR0H的内容更新TIMER0的高字节。这样一次就可以完成TIMER0全部16位的更新。23610位模数转换器(A/D)模块28引脚器件的模数(ANALOGTODIGITAL,A/D)转换器模块有10路输入,40/44引脚器件有13路输入。此模块能将一个模拟输入信号转换成相应的10位数字信号。此模块有五个寄存器1、A/D转换结果高位寄存器ADRESH2、A/D转换结果低位寄存器ADRESL3、A/D转换控制寄存器0ADCON04、A/D转换控制寄存器1ADCON15、A/D转换控制寄存器2ADCON2ADCON0寄存器控制A/D模块的工作。ADCON1寄存器配置端口引脚功能。ADCON2寄存器配置A/D时钟源、可编程采样时间和输出结果的对齐方式。ADCON2A/D控制寄存器2BIT7ADFMA/D结果格式选择位1右对齐0左对齐BIT6未用读为0BIT53ACQT2ACQT0A/D采样时间选择位11120个TAD11016个TAD10112个TAD1008个TAD0116个TAD0104个TAD0012个TAD0000个TAD1BIT20ADCS2ADCS0A/D转换时钟选择位111FRC(时钟来自A/D模块RC振荡器)1110FOSC/64101FOSC/16100FOSC/4011FRC(时钟来自A/D模块RC振荡器)1010FOSC/32001FOSC/8000FOSC/2可通过软件选择将器件的正电源电压和负电源电压(VDD和VSS)或RA3/AN3/VREF和RA2/AN2/VREF/CVREF引脚上的电压作为A/D转换的模拟参考电压。A/D转换器具有可在休眠状态下工作的特性。要使A/D转换器在休眠状态下工作,A/D转换时钟必须来自于A/D模块内部的RC振荡器。采样保持电路的输出是转换器的输入,A/D转换器采用逐次逼近法得到转换结果。器件复位将强制所有寄存器进入复位状态。这将迫使A/D模块关闭并中止正在进行的转换。与A/D转换器相关的每个端口引脚都可以被配置为模拟输入或数字I/O。ADRESH和ADRESL寄存器保存A/D转换的结果。当A/D转换完成时,结果被装入ADRESHADRESL寄存器,GO/DONE位在ADCON0寄存器中被清零且A/D中断标志位ADIF位被置1。在执行A/D转换时应该遵循以下步骤1配置A/D模块配置模拟引脚、参考电压和数字I/O通过ADCON1寄存器选择A/D输入通道通过ADCON0寄存器选择A/D采集时间(通过ADCON2寄存器)选择A/D转换时钟(通过ADCON2寄存器)使能A/D模块(通过ADCON0寄存器)2需要时,配置A/D中断ADIF位清零ADIE位置1GIE位置13需要时,等待所需的采样时间。4启动转换将GO/DONE位置1(通过ADCON0寄存器)5等待A/D转换完成,可通过以下两种方法之一来判断转换是否完成查询GO/DONE位是否被清零或等待A/D中断6读取A/D结果寄存器ADRESHADRESL,需要时将ADIF位清零。7如需再次进行A/D转换,返回步骤1或步骤2。每位的A/D转换时间定义为TAD。在下一次采样开始前需要等待至少2TAD的时间。A/D采集要求为了使A/D转换器达到规定的精度,必须使充电保持电容CHOLD充满至输入通道的电压电平。模拟输入模型见图193。电源阻抗RS和内部采样开关阻抗(RSS)直接影响给电容CHOLD充电所需要的时间。采样开关阻抗(RSS)值随器件电压(VDD)不同变化。电源阻抗影响模拟输入的失调电压(由于引脚泄漏电流的原因)。模拟信号源的最大阻抗推荐值为25KO。选择(改变)模拟输入通道后,必须对通道进行采样才能启动转换,采集时间必须大于最小采集时间。可以使用公式191来计算最小采集时间。该公式假设误差为1/2LSB(A/D转换需要1024步)。1/2LSB误差是A/D达到规定分辨率所允许的最大误差。例193显示了所需的最小采集时间TACQ的计算过程。计算结果基于以下假设CHOLD25PFRS25K转换误差1/2LSBVDD5VRSS2K温度85C(系统最大值)CPU的特殊功能PIC18F2525

温馨提示

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

评论

0/150

提交评论