版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要信号发生器是科研、教学实验及各种电子测量技术中很重要的一种信号源,随着科学技术的迅速开展,对信号源的要求也越来越高,要求信号源的频率稳定度、准确度及分辨率要高、以适应各种高精度的测量,为了满足这种高的要求,各国都在研制一些频率合成信号源,这种信号源一般都是由一个高稳定度和高准确度的标准参考频率源,采用锁相技术产生千百万个具有同一稳定度和准确度的频率信号源,为了到达高的分辨率往往要采用多个锁相环和小数分频技术,因此使电路复杂、设备体积圈套、本钱较高,传统的频率合成器由于采用倍频、分频、混频和滤波环节,使频率合成技术〔DDS〕,与传统的频率合成技术相比,DDS具有频率分辨率高、频率转变速度快、输出相位连续、相位噪声低、可编程和全数字化、便于集成等突出优点、成为现代频率合成技术中的佼佼者,得到越来越广泛的应用,成为众多电子系统中不可缺少的组成局部。本文介绍一种以AT89S52、AD9850和8279为核心器件的DDS正弦信号发生器。AD9850是一款专业极的正弦信号产生器件。它的特点正如上文所述的,电路整体结构简单,输出信号波形好,控制简单,而且易于实现程控。AT89S52和8279将在正文局部仔细的说明。本次因为是毕业设计,我也首次采用12864LCD作显示器件。采用12864作显示器件的好处是可以显示汉字。关键词:单片机,电压A/D转换,C语言AbstractSignalgeneratorisaresearch,teachingexperimentsandavarietyofelectronicmeasurementtechnologyisveryimportantasasignalsource,withtherapiddevelopmentofscienceandtechnology,demandsonthesignalsourcemoreandmorerequirethesignalsourcefrequencystability,higheraccuracyandresolutiontosuitavarietyofhigh-precisionmeasurements,inordertomeetthishighdemand,allcountriesinthedevelopmentofanumberoffrequencysynthesizedsignalsource,suchsourcesarenormallyahighstabilityandhighaccuracydegreeofstandardreferencefrequencysource,usingphase-lockedwiththesametechnologiesusedtoproducemillionsofadegreeofstabilityandaccuratefrequencysignalsource,inordertoachievehighresolutionandoftenusingmultiplephase-lockedloopfractional-Ntechnology,thecircuitcomplexequipmenttrapvolume,highcost,thetraditionalfrequencysynthesizerusedasmultiplier,divider,mixerandfilterlinks,sothatfrequencysynthesis(DDS),andcomparedtotheconventionalfrequencysynthesis,DDShasafrequencyresolutionhighfrequencychangesinspeed,theoutputphasecontinuous,lowphasenoise,programmableandfullydigital,easyintegrationandotheradvantages,becomeamodernleaderinsynthesizertechnology,getmoreandmorewidelyused,alargenumberofelectronicsystemsanindispensablecomponent.
ThisarticledescribesakindofAT89S52,AD9850and8279asthecorecomponentoftheDDSsinewavegenerator.AD9850isahighlyprofessionalsinesignalgenerationdevice.Itfeatures,asdescribedabove,thecircuitstructureissimple,theoutputsignalwaveformisgood,controlissimpleandeasytoimplementprogram-controlled.AT89S52and8279willbedetailedinthebodyofthenote.
Thisisbecauseagraduationproject,Iwasfirstintroduced12864LCDfordisplaydevices.12864foruseofthebenefitsofdisplaydevicecandisplayChinesecharacters.
Keywords:DDS,MCU,AD9850,LCD,Clanguage目录TOC\o"1-4"\h\z\u摘要IAbstractII1绪论11.1课题背景11.2系统结构12硬件电路设计22.1系统设计方案22.2方案论证22.3正弦信号发生器的根本原理32.4AT89S52的简介32.4.1CPU系统52.4.2存储器系统52.4.3I/O口和其它功能单元52.4.4AT89S52的时钟电路的接法52.4.5时钟信号62.4.6AT89S52的各个管脚的功能介绍62.4.7AT89S52的复位72.4.7.1复位电路72.4.7.2开机复位后的状态82.4.8AT89S52的程序存储器配置82.4.9AT89S52的数据存储器配置92.4.10AT89S52的中断简介92.4.10.1中断的定义:102.4.10.2中断允许控制112.4.10.3中断优先级控制122.4.11AT89S52定时/计数器简介142.4.11.1T0和T1工作方式的控制152.4.11.2T0和T1工作状态的控制152.4.11.3T0和T1定时计数器的工作方式162.4.11.4T2定时/计数器的控制172.4.11.5T2定时/计数器模式的控制182.4.11.6T2的工作方式182.4.12AT89S52的串行口的简介202.4.12.1AT89S52串行口的结构202.4.12.2AT89S52串行口的控制202.4.12.3AT89S52串行口的工作方式222.4.13低功耗节电模式232.4.13.1电源断电标志232.4.13.2空闲模式232.4.13.3掉电模式232.4.14看门定时器WDT242.4.14.1WDT的使用242.4.14.2掉电模式下的WDT242.4.14.3空闲模式下的WDT252.4.15其它特殊功能存放器252.4.15.1辅助存放器AUXR252.4.15.2辅助存放器AUXR1252.4.15.3双数据指针存放器252.5AD9850简介262.5.1AD9850的控制字与控制时序272.5.2I/O方式并行接口22.5.3总线方式并行接口22.68279接口芯片22.6.18279的结构22.6.28279的引脚定义32.6.38279的操作命令42.6.48279的状态字52.7LCD简介62.7.1原理框图62.7.2LCD应用时序62.7.2.1并行方式AC特性及时序62.7.2.2并行方式AC特性及时序72.7.3系统功能82.7.3.1功能描述82.7.3.2忙标志(BF)92.7.3.3地址计数器(AC)92.7.3.4中文字型生成ROM(CGROM)及半宽字型ROM(HCGROM)92.7.3.5字型产生RAM(CGRAM)92.7.3.6ICONRAM(IRAM)92.7.3.7显示数据RAM(DDRAM)92.7.3.8图形显示RAM(GDRAM)102.7.3.9光标/闪烁102.7.4指令集102.7.4.1根本指令集(RE=0)102.7.4.2扩充指令集〔RE=1〕142.7.4.3根本指令集初始值(Registerflag)(RE=0)152.7.5LCD驱动电源连接方式152.7.6液晶显示模块显示中文时RAM地址对应表152.7.7控制器中内藏的字符表〔16×8半宽字型〕162.7.8接口引脚定义162.8直流稳压电源173软件程序设计183.1程序流程图183.1.1主程序183.1.2外部中断0子程序193.1.3T2中断子程序203.2C语言程序清单203.3C语言程序解析303.3.1运算符的优先级和结合性303.3.2库函数313.3.3功能界面建立相关函数383.3.4键盘响应相关函数383.3.5提示信息显示相关函数39结论40致谢41参考文献42附录I43附录ΙΙ55附录III56附录IV571绪论1.1课题背景DDS技术目前已成为频率合成技术开展的主流方向,它高度的集成性,对于简化电子系统的设计方案,降低硬件的复杂程度,提高系统的整机性能意义重大。用这种方法产生线性调频信号及其它复杂波形信号的技术日益受到重视,并得到广泛的应用。近年来,随着直接数字频率合成技术(directdigitalfrequencysynthesis,简称DDS)的开展,基于DDS技术的合成信号发生器,在正弦信号源的设计与使用中日益广泛.它与以往的射频信号源、锁相信号源和模拟频率合成信号源相比较,其频率分辨率高,指定频率的重复性好,而且易于程序控制.DDS技术的原理主要是通过相位与幅度的对应关系实现的,由于不同的控制字对应相位累加器中不同的相位累加速度,用此速度从正弦幅值表中进行查询,获得指定的幅度序列,最后通过数模转换输出。1.2系统结构对一个系统来说,系统结构的好坏是非常重要的。我本着实现所有要求的功能的根底上,简化系统结构,这样可以降低本钱,也可以减少一些电路本身的干扰。对于本系统我采用了四个模块,即:键盘模块、控制模块、显示模块、正弦信号发生模块。各个模块之间的关系如以下图。键盘键盘正弦信号产生显示CPU图1.SEQ图1.\*ARABIC1系统总框图根据系统总框图可知CPU是用来处理键盘传来的按键信号,并且控制显示模块和正弦信号产生模块的正常工作的。本系统的核心是正弦信号产生模块,因它是产生正弦信号的中心,其它器件只是让整个系统更加完善。2硬件电路设计2.1系统设计方案正弦信号发生器待选方案有两个:方案一:利用单片机查询正弦表的方法来产生正弦信号。此方法的优点是电路简单,易实现程控。缺点是输出信号频率范围比较窄,而且输出信号的波形好坏和单片机查询的正弦表有密切关系,既在正弦波的一个周期内所查的正弦表次数越多,那么正弦波的波形越好。但是单片机的负担也变大了,计算量将明显提高,那么单片机的大局部资源被输出正弦波的工作所占用。方案二:利用模拟电路知识中的振荡电路的方法来产生正弦信号。此方法的优点是输出信号频率范围比较宽。缺点是电路的抗干扰能力比较差,不易实现程控,当输出频率比较高时电路设计比较困难。方案三:利用DDS技术来产生正弦信号。此方法的优点是输出信号的频率范围比较宽,电路比较简单,易于实现程控。缺点是DDS器件价格有点高,一般在一百元以上,而且多数是帖片元件,这对于焊接工艺要求比较高。由于DDS技术的开展,再加上生活水平的提高,本次设计我采用DDS技术。2.2方案论证按照系统功能要求,决定CPU模块采用AT89S52单片机,正弦信号产生模块采用AD8950,显示模块采用LCD,键盘模块采用8279和4×4键盘。系统除能确保实现要求的功能外,还可以方便地进行其它功能的扩展。正弦信号发生器系统设计方案框图如图2.1所示。正弦信号发生器系统硬件电路由单片机、AD9850、LCD显示电路和按键处理电路等组成,它的硬件电路如附录所示。AT89S52AT89S524×4键盘8279LCD显示AD9850图2.SEQ图2.\*ARABIC1设计方案框图2.3正弦信号发生器的根本原理根据系统的功能要求,控制系统采用AT89S52单片机,正弦信号发生模块采用AD9850。AD9850是专业的正弦信号发生器件。通过单片机对AD9850的控制可以输出不同频率的正弦波。并且可以通过LCD显示频率值,以便于更好的实现人机界面。2.4AT89S52的简介单片微机(Single-ChipMicrocomputer)简称为单片机。它在一块芯片上集中成了中央处理单元CPU、随机存储器RAM、只读存储器ROM、定时/计数和多功能输入/输出I/O口,如并行口I/O、串行口I/O和转换A/D等。就其组成而言,一块单片机就是一台计算机。其典型结构如图2.2所示。由于它具有体积小、功能强和价格廉价等优点,因而被广泛地应用于产品智能化和工业控制自动化上。图2.SEQ图2.\*ARABIC2单片机典型内部组成原理图单片机特点:a)单片机体积小巧、使用灵活、本钱低,易于真正产品化。组装各种智能式控制设备和仪器,能做到机电仪一体化。b)面向控制。能有针对性地解决各种从简单到复杂的各类控制任务,因而能获得最正确的性能价格比。c)抗干扰能力强,适应温度范围宽,在各种恶劣的环境下都能可靠的工作。这是其它微机集中无法比较的。d)可以方便的实现多机、分布式的集散控制,使整个控制系统的效率大大地提高。e)单片机应用产品的研制周期短,所开发出来的样机就是以后批量生产的产品,可以防止不必要的二次开发过程。单片机应用:a)工业方面:电机控制,工业机器人,过程控制,智能传感器,机电仪一体化等。b)仪器仪表方面:智能仪器,医疗仪器,色谱仪,示波器等。c)家用电器:高级电子玩具,微波灶,洗衣机,录像机等。d)电讯方面:调制解调器,智能通讯设备等。e)导航与控制方面:导弹控制,鱼雷制导控制,智能武器装置,航天导航系统等。f)数据处理方面:图形终端,彩色与黑白复印机,温式硬盘驱动器,磁带机,打印机等。g)汽车方面:点火控制,变速器控制,防滑刹车,排气控制等。MCS-51系列单片机在我国得到了广泛的应用,是单片机的主流系列,软硬件应用设计资料丰富齐全。为了提高指令的执行速度和效率,采用了面向控制的结构和指令系统的独立CPU,即选择Atmel公司的AT89S52单片机。图2.SEQ图2.\*ARABIC3AT89S52引脚排列AT89S52是低功耗,高性能,采用CMOS工艺的8位单片机。其片内具有8KB的可在线编程的Flash存储器。该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业标准型AT89S52单片机的握住系统和引脚完全兼容;片内的Flash存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。AT89S52单片机具有如下特性:片内存储器包含8KB的Flash,可在线编程,擦写次数不少于1000次;具有256字节的片内RAM;具有可编程的32根I/O口线〔P0、P1、P2和P3口〕;具有3个可编程定时器T0,T1和T2;内含2个数据指针DPTR0和DPTR1;中断系统是具有8个中断源、6个中断矢量、2级优先权的中断结构;串行通信口是1个全双工的UART串行口;2种低功耗节电工作方式为空闲模式和掉电模式;具有3级程序锁定位;含有1个看门狗定时器;具有断电标志POF;AT89S52的工作电压为4.0~5.5V;全静态工作模式为0~3MHz〔AT89S52〕和0~16MHz〔AT89LS52〕;与MCS-51产品完全兼容。CPU系统8位CPU,含布尔处理器;时钟电路;总线控制逻辑。存储器系统8K的程序存储器〔Flash〕,可外扩至64K;256的数据存储器〔RAM,可再外扩64K〕;特殊功能存放器SFR。I/O口和其它功能单元4个并行I/O口;3个16位定时/计数器;1个全双工异步串行口;中断系统〔8个中断源、2个优先级〕。2.4.4AT89S52的时钟电路的接法振荡器振荡器C1C2CYS悬空外部时钟信号XTAL1XTAL2XTAL2XTAL1图2.SEQ图2.\*ARABIC4AT89S52的时钟电路的接法如上图所示,左图是内部时钟方式,右图是外部时钟方式。由于AT89S52内部有时钟,所以我选择左图的外部时钟方式。晶振选择12MHz,C1、C2电容选择30pF〔5~30pF都可以〕。时钟信号晶振周期为最小的时序单位。一个时钟周期包含2个晶振周期。一个机器周期包含12个晶荡周期或6个时钟周期。如本设计用的是12MHz的晶振频率,那么机器周期为1μS,指令周期为1~4μS。每个机器周期中ALE信号有效两次,具有稳定的频率可以将基作为外部设备的时钟信号。所以ALE引脚的频率是单片机时钟频率的1/6。应注意的是,在对片外RAM进行读/写时,ALE信号会出现非周期现象。AT89S52的各个管脚的功能介绍〔1〕电源及时钟引脚Vcc:电源接入引脚;Vss:接地引脚;XTAL1:晶体振荡器接入的一个引脚,〔采用外部振荡器时,此引脚接地〕;XTAL2:晶体振荡器接入的另一个引脚〔采用外部振荡器时,此引脚作为外部振荡信号的输入端〕;〔2〕控制线引脚RST/VPD:复位信号输入引脚/备用电源输入引脚;ALE/PROG:地址允许信号输出引脚/编程脉冲输入引脚;EA/VPP:内外有储器选择引脚/片内FlashROM编程电压输入引脚;PSEN:外部程序存储器信号输出引脚。〔3〕并行I/O引脚〔32个,分成4个8位口〕P0.0~P0.7:一般I/O口引脚或数据/低位地址总线复用引脚;P1.0~P1.7:一般I/O口引脚和定时器T2定义的引脚;P2.0~P2.7:一般I/O口引脚或高位地址总线引脚;P3.0~P3.7:一般I/O口引脚或第二功能引脚。P1.0和P1.1引脚的第二功能P1.0:T2〔T2的外部计数输入〕;P1.1:T2EX〔T2的外部控制〕;P3.0~P3.7引脚的第二功能P3.0:RXD〔串行口输入〕;P3.1:TXD〔串行口输出〕;P3.2:INT0〔外部中断0输入〕;P3.3:INT1〔外部中断1输入〕;P3.4:T0〔定时/计数器0的外部输入〕;P3.5;T1〔定时/计数器1的外部输入〕;P3.6:WR〔片外数据存储器“写”控制输出〕;P3.7:RD〔片外数据存储器“读”控制输出〕;并行口的负载能力P0、P1、P2、P3口的输入和输出电平与CMOS电平和TTL电平均兼容。P0口的每一个位口线可以驱动8个LSTTL负载。在作为通用I/O口时,由于输出驱动电路是开漏方式,由集电极开路〔OC门〕电路或漏极开路电路驱动时需外接上拉电阻;当作为地址/数据总线使用时,接口线输出不是开漏的,无在须外接上拉电阻。P1、P2、P3口的每一位能驱动4个LSTTL负载。它们的输出劝电路设有内部上拉电阻,所以可以方便地由集电极开路〔OC门〕电路或漏极开路电路所驱动,而无须外接上拉电阻。由于单片机口线仅能提供几毫安的电流,当作为输出驱动一般晶体管的基极时,应在口与晶体管的基极之间串接限流电阻。AT89S52的复位当在AT89S52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作〔如果RST引脚持续保持高电平,单片机就处于循环复位状态〕。.1复位电路在实际应用中,复位操作有两种根本形式:一种是上电复位,另一种是上电与按键均有的复位。如图2.4所示。R1R1C1+5vRSTAT89S52+5vRSTAT89S52SR1R2C1图2.SEQ图2.\*ARABIC5左图为上电复位,右图为上电与按键均有的复位上电复位要求接通电源后,单片机自动实现复位操作。开机瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间〔2个机器周期〕,单片机就可以进行复位操作。左图上电复位电路的典型的电阻和电容参数为:晶振频率为12MHz时,C1为10µF,R1为8.2kΩ;晶振频率为6MHz时,C1为22µF,R1为1kΩ。开机与按键均有效的复位电路可以在单片机运行期间,用按键完成复位操作。晶振频率为6MHz时,R2为200Ω;晶振频率为12MHz时,R2为400。.2开机复位后的状态单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器PC=0000H,所以程序从0000H地址单元开始执行。单片机启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM的内容。特殊功能存放器复位后的状态是确定的。P0~P3为FFH,SP为07H,SBUF不定,IP、IE和PCON的有效位为0,其余的特殊功能存放器的状态均为00H。相应的意义为:P0~P3=FFH,相当于各接口器已定入1,此时不但可用于输出,也可以用于入;SP=07H,堆栈指针指向片内RAM的07H单元〔第一个入栈内容将定入08H单元〕。IP、IE、和PCON的有效位为0,各中断源处于低优先级且均被关断,串行通信的波特率不加倍;PSW=00H,当前工作存放器为0组。AT89S52的程序存储器配置程序计数器PC是16位的计数器,所以能寻址64KB的程序存储器地址范围,允许用户程序调用或转向64KB的任何存储单元。地址范围为0000H~FFFFH。但是AT89S52单片机内部只有4KB的存储单元。地址范围为0000H~0FFFH。当EA引脚为高电平时,CPU将首先访问内部存储器,当指令地址超过0FFFH时,自动片外ROM去取指令;接低电平时〔接地〕,CPU只能访问外部程序存储器。程序存储器低端的一些地址被固定地用作特定的入口地址:0000H:单片机复位的入口地址;0003H:外部中断0的中断效劳程序入口地址;000BH:定时/计数器0溢出中断效劳程序入口地址;0013H:外部中断1的中断效劳程序入口地址;001BH:定时/订数器1溢出中断效劳程序入口地址;0023H:串行口接口的中断效劳程序入口地址;002BH:定时/计数器2溢出或T2EX负跳变中断效劳程序入口地址。T2中断入口T2中断入口02BH图2.SEQ图2.\*ARABIC6程序存储器配置编程时以上的中断入口地址空间最好不要使用。2.4.9AT89S52的数据存储器配置AT89S52片内RAM共有256字节,分成工作存放器区、位址区、通用RAM区和间接寻址RAM区四个局部。片内RAM地址范围是00H~FFH。片外RAM地址空间为64KB,地址范围是0000H~FFFFH。图2.SEQ图2.\*ARABIC7数据存储器配置2.4.10AT89S52的中断简介INT0〔P3.2〕,外部中断请求信号输入引脚。可由IT0〔TCON.0〕选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0〔TCON.1〕置之不理,向CPU申请中断。INT1〔P3.3〕,外部中断定请求信号输入引脚。可由IT1〔TCON.2〕选择其为低电平有效还是下降沿有效。当COU检测到P3.3引脚上出现有效的中断信号时,中沁村志IE1〔TCON.3〕置1,向CPU申请中断。TF0〔TCON.5〕,片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。TF1〔TCON.7〕,片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。RI〔SCON.0〕或TI〔SCON.1〕,串行口中断请求标志。当串行口接收完一帧串行数据置位RI或当串行口发关完一帧串行数据时置位TI,向CPU早请中断。TF2〔T2CON.7〕定时器T2溢出中断标志。定时器T2溢出时置位标志并向CPU申请中断。EXF2〔T2CON.6〕定时器T2外部中断标志。在捕捉和常数自动重装方式下,当EXEN2=1时,在T2EX端发生的负跳变使EXF2置位。如此时T2中断被允许,那么EXF2=1,使CPU响应中断。2.4.10.1中断的定义:CPU正在执行主程序时,单片机外部或内部发生的某一事件〔如外部设备产生的一个电平的变化,一个脉冲沿的发生或内部计数器的计数溢出等〕请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转到中断效劳处理程序处理所发生的事件。中断效劳处理程序处理完该事件后,再回到原来被中止的地方,继续原来的工作〔例如,继续执行被中断的主程序〕,这称为中断。CPU处理事件的过程,称为CPU的中断响应过程。能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源。中断源向CPU提出的处理请求,称为中断请求(或中断申请)。中断的工作:保护现场、恢复现场、中断返回。中断方式的优点是大大地提高了CPU的工作效率。六个中断请求源:〔1〕INT0—外部中断请求0,由引脚INT0输入,中断请求标志为IE0。〔2〕INT1—外部中断请求1,由引脚INT1输入,中断请求标志为IE1〔3〕定时器/计数器T0溢出中断请求,中断请求标志为TF0。〔4〕定时器/计数器T1溢出中断请求,中断请求标志为TF1。〔5〕串行口中断请求,中断请求标志为TI或RI。〔6〕定时器/计数器T2中断请求,中断请求标志为TF2和EXF2。标志位分别由特殊功能存放器TCON、SCON和T2CON的相应位锁存。TCON是定时/计数器T0和T1控制存放器,它锁存几个定时/计数器的溢出中断标志及外部中断INT0和INT1的中断标志。表2.SEQ表2.\*ARABIC1TCON存放器中的各位定义TCON的字节地址=88H 复位值=00000000B可以位寻址76543210TF1TR1TF0TR0IE1IT1IE0IT0IT0〔TCON.0〕:外部中断INT0非触发方式控制位。当IT0=0时,INT0非为电平触发方式。CPU在每个机器周期的S5P2取样INT0非引脚电平,当取样到低电平时,置IE0=1表示INT0非向CPU请求中断;取样到高电平时,将IE0清0。必须注意,在电平触发方式下,CPU响应中断时,不能自动去除IE0标志。也就是说,IE0状态完全由INT0非状态决定。所以,在中断返回前必须撤除INT0非引脚的低电平。当IT0=1时,INT0非为边沿触发方式〔下降沿有效〕。CPU在每个机器周期的S5P2取样INT0非引脚电平,如果在连续的两面三刀个机器周期检测到INT0非引脚由高电平变为低电平,即第一个周期取样到INT0非=1,第二个周期取样到INT0非=0,那么置IE=1,产生中断请求。在边沿触发方式下,CPU响应中断时,能由硬件自动去除IE0标志。注意,为保证CPU能检测到负跳变,INT0非的高、低电平时间至少应保持1个机器周期。IE0〔TCON.1〕:外部中断INT0非中断请求标志位。IE0=1时,表示INT0非向CPU请求中断。IT1〔TCON.2〕:外部中断INT1非触发方式控制位。其操作功能与IT0类同。IE1〔TCON.3〕:外部中断INT1非中断请求标志位。IE1=1时,表示INT1非向CPU请求中断。TF0〔TCON.5〕:定时/计数器T0溢出中断请求标志位。在T0启动后就开始由初值加1计数,直到最高位产生溢出由硬件置位TR0,向CPU请求中断。CPU响应中断时,TF0由硬件自动清0.TF1〔TCON.7〕:定时/计数器T1溢出中断请求标志位。其操作功能与TF0类同。0.2中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许存放器IE控制的。IE的状态可通过程序由软件设定。某位设定为1,相应的中断源中断允许;某位跑马场定为0,相应的中断源中断屏蔽。CPU复位时,IE各位清0,禁止所有中断。表2.SEQ表2.\*ARABIC2IE存放器位的定义IE的字节地址=A8H 复位值=00000000B可以位寻址76543210EAET2ESET1EX1ET0EX0其中:EA:中断允许总控制位0:CPU屏蔽所有的中断请求(CPU关中断);1:CPU开放所有中断(CPU开中断)。ET2:定时器/计数器T2的中断允许位0:禁止T2中断;1:允许T2中断。ES:串行口中断允许位0:禁止串行口中断;1:允许串行口中断。ET1:定时器/计数器T1的溢出中断允许位0:禁止T1溢出中断;1:允许T1溢出中断。EX1:外部中断1中断允许位0:禁止外部中断1中断;1:允许外部中断1中断。ET0:定时器/计数器T0的溢出中断允许位0:禁止T0溢出中断;1:允许T0溢出中断。EX0:外部中断0中断允许位。0:禁止外部中断0中断;1:允许外部中断0中断。AT89S52复位以后,IE被清0,所有的中断请求被禁止。CPU对中断源的开放或屏蔽,由片内的中断允许存放器IE控制。IE的字节地址为A8H,可进行位寻址。IE对中断的开放和关闭实现两级控制总的开关中断控制位EA〔IE.7位〕,当EA=0时,所有的中断请求被屏蔽。当EA=1时,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定。假设使某一个中断源被允许中断,除了IE相应的位的被置“1”外,还必须使EA位=1,即CPU开放中断。改变IE的内容,可由位操作指令来实现,即SETBbit;CLRbit。0.3中断优先级控制同一优先级中的中断中请不止一个时,那么有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如表:表2.SEQ表2.\*ARABIC3中断系统硬件的优先级形式中断源中断标志中断效劳程序入口优先级顺序外部中断0〔INT0〕IE00003H高定时/计数器0〔T0〕TF0000BH↓外部中断1〔INT1〕IE10013H↓定时/计数器1〔T1〕TF1001BH↓串行口RI或TI0023H↓定时/计数器2〔T2〕TF2或EXF2002BH低表2.SEQ表2.\*ARABIC4IP存放器各位的定义IP的字节地址=B8H 复位值=00000000B可以位寻址76543210PT2PSPT1PX1PT0PX0其中:PT2:定时器T2中断优先级控制位。1:高优先级中断;0:低优先级中断。PS——串行口中断优先级控制位1:高优先级中断;0:低优先级中断。PT1——定时器T1中断优先级控制位1:高优先级中断;0:低优先级中断。PX1——外部中断1中断优先级控制位1:高优先级中断;0:低优先级中断。PT0——定时器T0中断优先级控制位1:高优先级中断;0:低优先级中断。PX0——外部中断0中断优先级控制位1:高优先级中断;0:低优先级中断。由用户程序置“1”和清“0”,以改变各中断源的中断优先级。AT89S52单片机的中断优先级处理有三条原那么:〔1〕CPU同时接收到几个中断时,首先相应优先级别最高的中断请求。〔2〕正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。〔3〕正在进行的低优先级中断效劳,能被高优先级中断请求所中断。为了实现上述后两条原那么,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在相应高优先级的中断,它将阻止断后所有的中断请求。另一个置1,表示正在相应低优先级中断,它将阻止后来所有的低优先级中断请求。两个中断优先级,可实现两级中断嵌套。就是CPU正在执行低优先级中断的效劳程序时,可被高优先级中断请求所中断,去执行高优先级中断效劳程序,待高优先级中断处理完毕后,再返回低优先级中断效劳程序。一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。假设CPU正在执行高优先级的中断,那么不能被任何中断源所中断。可归纳为下面根本规那么:〔1〕低优先级可被高优先级中断,反之那么不能。〔2〕任何一种中断〔不管是高级还是低级〕,一旦得到响应,不会再被它的同级中断源所中断。某一中断源被设置为高优先级中断,那么不能被任何其它的中断源的中断请求所中断。中断优先级存放器IP,其字节地址为B8H,可位寻址。AT89S52的中断优先级结构。中断系统有两个不可寻址的“优先级激活触发器”。其中一个指示某高优先级的中断正在执行,所有后来的中断均被阻止。另一个触发器指示某低优先级的中断正在执行,所有同级的中断都被阻止,但不阻断高优先级的中断请求。响应中断请求的条件:一个中断请求被响应,需满足以下必要条件:〔1〕CPU开中断,即IE存放器中的中断总允许位EA=1。〔2〕该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。〔3〕该中断源的中断允许位=1,即该中断没有被屏蔽。〔4〕无同级或更高级中断正在被效劳。假设遇到以下任一条件,硬件将受阻,不能产生函数调用指令:CPU正在处理同级或高优先级中断;当前查询的机器周期不是所执行指令的最后一个机器周期。即在完成所执行指令前,不会响应中断,从而保证指令在执地过程中不被打断。正在执行的指令为返回、中断返回或任何访问IE或IP存放器的指令。即只有在这些指令后面至少再执行一条指令时才能接爱中断请求。从中断源提出中断申请,到CPU响应中断〔如果满足了中断响应条件〕,需要经历一定的时间。一般从标志置到进入相应的中断效劳〕至少要3个完整的机器周期。另外,如果中断响应过程受阻,就要增加等待时间,假设没有同级或高级中断正在进行,所需要的附加等待时间在3~5个机器周期之间。对于没有嵌套的中断,响应时间为3~8个机器周期。AT89S52定时/计数器简介在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等。也经常要对外部事件进行计数。要实现定时功能,有时亦可以采用下而三种方法:软件定时:让CPU循环执行一段程序,通过选择指令和安排循环次数以实现软件定时。软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率;采用时基电路定时:例如采用555电路,外接必要的元器件〔电阻和电容〕,即可构成硬件定时电路。此种方法实现容易,改变电阻和电容值可以在一定范围内改变定时值。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程;采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时/计数器不够用时,可以考虑进行扩展。典型的可编程定时芯片如Intel8253。TL0〔8AH〕存储T0的低8位数据,TH0〔8CH〕存储T0的高8位数据;TL1〔8BH〕存储T1的低8位数据,TH1〔8DH〕存储T1的高8位数据。.1T0和T1工作方式的控制工作方式存放器TMOD用于设置定时/计数器的工作方式,低4位用于T0,高4位用于T1。表2.SEQ表2.\*ARABIC5TMOD存放器各位的定义TMOD的字节地址=89H 复位值=00000000B不可以位寻址76543210GATEC/TM1M0GATEC/TM1M0其中:GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATE=时,要用软件使TR0或TR1为1,同时外部中断引脚INT0或INT1也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了INT0或INT1引脚为高电平这一条件。C/T:定时/计数模式选择位。C/T=0为定时模式;C/T=1为计数模式。M1M0:工作方式设置位。定时/计数器有4种工作方式,由M1M0进行设置。表2.SEQ表2.\*ARABIC6定时/计数器工作方式设置表M1M0工作方式说明00方式013位定时/计数器01方式116位定时/计数器10方式28位自动重装定时/计数器11方式3T0分成两个独立的8位定时/计数器;T1此方式停止计数.2T0和T1工作状态的控制TCON的高4位用于控制定时/计数器的启动和中断申请。表2.SEQ表2.\*ARABIC7TMOD存放器各位的定义TCON的字节地址=88H 复位值=00000000B可以位寻址76543210TF1TR1TF0TR0其中:TF1:定时/计数器T1溢出中断请求标志位。定时/计数器T1计数溢出时由硬件自动置TF1为1.CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1:定时/计数器T1运行控制位。TR1置1时,定时/计数器T1开始工作;TR1置0时,定时/计数器T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0:定时/计数器T0溢出中断请求标志位,其功能与TF1类同。TR0:定时/计数器T0运行控制位,其功能与TR1类同。.3T0和T1定时计数器的工作方式方式0方式0为13位计数,由TL0的低5位〔高3位未用〕和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。当为定时模式时,有N=t/Tcy〔式中t为定时时间,N为计数个数,Tcy机器周期〕。通常,在定时/计数器的应用中要根据计数个数求出送入TH1、TL1和TH0、TL0中的计数初值。计数初值计算的公式为X=213-N〔式中,X为计数初值,N为计数个数〕。初值在8191~0范围时,计数范围为1~8192。另外,定时器的初值还可以采用计数个数直接取补法获得。当GATE=1时,由INT0控制或门的输出,此时控制与门的开启由INT0和TR0共同控制。当TR0=1时,INT0引脚的高电平启动计数,INT0引脚的低电平停止计数。这种方式可以用来测量INT0引脚上正脉冲的宽度。应说明的是,方式0采用3位计数器是为了与早期的产品兼容,计数初值的高8位和低5位确实定比较麻烦,所以在实际应用中常由16位的方式1取代。方式1方式1的计数位数是16位,由TL0作为低8位,TH0作为高8位,组成了16位加1计数器。计数个数与计数初值的关系为X=216-N。初值在65535~0范围时,计数范围为1~65536。方式2方式2为自动重装初值的8位计数方式。TH0为8位初值存放器,当TL0计满溢出时,由硬件使TF0置1,向CPU发出中断请求,并将TH0中的计数初值自动送入TL0。TL0从初值重新进行加1计数。周而复始,直至TR0=0才会停止。计数个数与计数初值的关系为X=28-N。当初值在255~0范围时,计数范围为1~256。由于工作方式2时省去了儿童医院软件中重装常数的程序,所以特别适合于用作较精确的脉冲信号发生器。方式3方式3只适用于定时/计数器T0,定时器T1牌方式3时相当于TR1=0,停止计数。方式3时,T0分为两个独立的8位计数器TL0和TH0,TL0使用T0的所有控制位:C/T、GATE、TR0、TF0和INT0。当TL0计数溢出时,由硬件使TR0置1,向CPU发出中断请求。而TH0固定为定时方式〔不能过街外部计数〕,并且借用了T1的控制位TR1、TF1。因此,TH0的启、停受TR1控制,TH0的溢出将置位TF1。在T0方式3时,因T1的控制位C/T、M1M0并未交出,原那么上T1仍可按方式0、1、2工作,只是不能使用运行控制位TR1和溢出标志位TF1,也不能发出中断请求信号。方式设定后,T1将自动运行,如果要停止工作,只需将其定义为方式3即可。在单片机的串行通信应用中,T1常作为串行口波特率发生器,且工作于方式2.这时将T0设置成方式3,可以使单片机的定时/计数器资源得到充分利用。.4T2定时/计数器的控制T2的控制是用T2的控制存放器T2CON来设置的。在专用存放器组中有5个与T2有关的存放器:控制存放器T2CON、捕捉存放器RCAP2H〔0CBH〕和RCAP2L〔OCAH〕、定时存放器上下字节TH2〔0CDH〕和TL2〔0CCH〕。当T2用作定时器或计数器时,与T0和T1类似,只是T2没有8位和13位工作模式,仅有16位模式。表2.SEQ表2.\*ARABIC8T2CON各位功能如下: T2CON 地址=0C8H 复位值=00000000B 可位寻址76543210TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2其中:TF2:T2溢出标志。当T2溢出时,TF2=1。TF2只能用软件去除。当RCLK=1或TCLK=1〔即RCLK+TCLK=1〕时,TF2将不置位。EXF2:T2外部标志。在EXEN2=1的条件下,T2EX/P1.1引脚上的负跳变将引起T2的捕捉/重装操作,此时EXF2=1。在T2中断允许的条件下,EXF2=1将引起中断。EXF2位只能用软件去除。在T2的向上/向下计数模式下〔DCEN=1〕,EXF2的将不引起中断。RCLK:接收时钟允许。当RCLK=1时,T2的溢出脉冲可用做串行口的接收时钟信号,适用于串行模式1和3。当RCLK=0时,T1的溢出脉冲用做串行口的接收时钟信号。TCLK:发送时钟允许。当TCLK=1时,T2的溢出脉冲可用做串行口的发送时钟信号,适用于串行模式1和3。当TCLK=0时,T1的溢出脉冲可用做串行口的发送时钟信号。EXEN2:T2的外部事件〔引起捕捉/重装的外部信号〕允许。当EXEN2=1时,如果T2没有作串行时钟输出〔即RCLK+TCLK=0〕,那么在T2EX/P1.1引脚的负跳变将引起T2的捕捉/重装操作。当EXEN2=0时,T2EX/P1.1的负跳变不起作用。TR2:T2的启动/停止控制。当TR2=1时,启动T2;当TR2=0时,停止T2。C/T2:T2的计数/定时方式的选择。当C/T2=1时,T2为内部定时器;当C/T2=0时,T2为外部事件计数器〔下降沿触发〕。CP/RL2:捕捉或常数自动重装方式选择。当CP/RL2=1且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起捕捉操作。当CP/RL2=0且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起自动重装操作。当CP/RL2=0且EXEN2=0时,T2的溢出将引起T2的自动重装操作。.5T2定时/计数器模式的控制定时器2模式存放器T2MOD表2.SEQ表2.\*ARABIC9T2MOD各位功能介绍如下:T2MOD地址=0C9H 复位值=XXXXXX00B不可位寻址76543210T2OEDCEN其中:T2OE:定时器2输出允许位。当T2OE=1时,P1.0/T2引脚可输出连续脉冲信号。DCEN:允许向下计数位。当DCEN=0时,设置为向上〔增加〕计数。当DCEN=1时,定时器T2可以向上计数,还可以向下计数〔由T2EX引脚控制计数方向〕。.6T2的工作方式捕捉方式当CP/RL2=1时,T2选择为捕捉方式。假设EXEN2=0,那么T2作为定时器/计数器使用,并由C/T2位决定是作为计数器还是定时器。如作为定时器使用,其计数输入为振荡脉冲的12分频信号。作为计数器时,以T2的外部输入引脚〔P1.0〕上的输入脉冲作为计数脉冲。当定时器/计数器T2增1计数至溢出后,将TF2标志置位,并发出中断申请信号。在这种方式下,TL2和TH2的内容不会送入捕捉存放器中。假设EXEN2=1,那么T2除实现上述定时/计数功能外,还可以实现捕捉功能。当外部输入端T2EX〔P1.1〕的输入电平发生负跳变时,就会把TH2和TL2的内容锁入捕捉存放器RCAP2L和RCAP2H中,并将中断EXF2置位,向CPU发出中断申请信号。16位常数自动重装入方式当CP/RL2=0时,T2选择为常数自动重装入方式。假设EXEN2=0,那么T2作为定时器/计数器使用,并由C/T2位决定是作为计数器还是定时器。如作为定时器使用,其计数输入为振荡脉冲的12分频信号。作为计数器时,以T2的外部输入引脚〔P1.0〕上的输入脉冲作为计数脉冲。当TR2=1时从初值开始增1计数,计数至FFFFH〔即向上计数〕时溢出。溢出信号控制翻开三态门,将RCAP2L和RCAP2H存放器中存放的计数初值重新装入TL2和TH2中,使T2从该值开始重新计数,同时将溢出TF2置位。计数器的初值在初始化时由软件编程置入。假设EXEN2=1,那么T2除实现上述定时/计数功能外,还可以实现以下功能。当外部输入端T2EX〔P1.1〕的输入电平发生负跳变时,也可以控制将捕捉存放器RCAP2L和RCAP2H的内容重新装入TL2和TH2中,使T2重新从新值开始计数,同时将中断标志EXF2置位,向CPU发出中断申请信号。当DCEN=1时,定时器T2既可向上计数,又可向下计数。在这种方式下,TWEX引脚控制计数方向。当TWEX引脚为逻辑“1”时,定时器身上计数,计数到FFFFH时,向上溢出,并将标志位TF2置位,同时将RCAP2HTRCAP2L的数值分别重新装载到定时器的存放器TH2和TL2中。当T2EX引脚为逻辑“0”时,定时器向下计数,当定时器的存放器TH2和TL2中的数值等于RCAP2H和RCAP2L中存储的数值时,定时器向下溢出,并将标志位TF2置位,同时将数值FFFFH重新装载到定时器的存放器TH2和TL2中。无论定时器T2上溢还是下溢,都将使EXF2置位。波特率发生器方式此方式是由RCLK=1和TCLK=1确定的。波特率与T2的关系为:方式1和方式3波特率=T2溢出率/16T2波特率发生器方式类似于常数自动重装放方式,其16位常数值是由RCAP2L和RCAP2H装入的,而捕捉存放器里的初值那么由软件置入。由于T2的溢出率是由T2的工作方式所确定,而T2可以用作定时器或计数器,最典型的应用是把T2设置为定时器,即置C/T=0。这时,T2的输入计数脉冲为人代会二分频信号,当TH2计数溢出时,溢出信号控制将RCAP2L和RCAP2H存放器中的初值重新装入TL2和TH2中,并从此初值开始重新计数。由于T2的溢出率是严格不变的,因而使串行口方式1、方式3的波特率非常稳定,即方式1和方式3波特率=振荡频率/32×[65536-〔RCAP2H、RCAP2L〕]该波特率发生器只有在T2CON存放器中的二个控制位RCLK或TCLK为1时才有效,且TH2的溢出不能将TF2置位,不能产生中断。因此,当T2工作于波特率发生器方式时不一定禁止中断。即使EXEN2被置位,当外部输入T2EX端的电平发生负跳变时,也不会引发RCAP2H和RCAP2L的常数装入TL2和TH2的动作,而T2EX只能作为一个附加的外部中断信号。当T2作为波特率发生器被启动开始工作时〔即置TR2=1〕,不允许用软件对TL2和TH2进行读写。对RCAP2H和RCAP2L可以读但不可以写。如对RCAP2H和RCAP2L进行写操作,将会改变存放器内的常数值,使波特率发生变化。只有在T2停止计数后〔即置TR2=0〕,才可以对RCAP2H和RCAP2L进行读写。可编程时钟输出当T2CON中的C/T2=0,T2MOD中的T2OE=1时,定时器可以通过编程在P1.0输出占空比为50%的时钟脉冲。时钟输出频率为: 时钟输出频率=振荡频率/4×[65536-〔RCAP2H、RCAP2L〕]用作时钟输出时,TH2的溢出不会产生中断,这种情况与波特率发生器方式类似。定时器T2用作时钟发生器时,同时也可以作为波特率发生器使用,只是波特率和时钟频率不能分别设定〔因为二者都使用RCAP2H和RCAP2L〕。AT89S52的串行口的简介串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。串行通信的特点是:传输线少,长跳高传送时本钱低,且可以利用网等现成的设备。但数据的传送控制比并行通信复杂。2.1AT89S52串行口的结构有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一个地址99H,或同时发送、接收数据。发送缓冲器只能写入,不能读出;接收缓冲器只能读出,不能写入。串行发送与接收的速率与移位时钟同步,定时器T1或T2可作为串行通信的波特率发生器,T1溢出率经2分频〔或不分频〕又经16分频作为串行发送或接收的移位时钟。移位时钟的速率即波特率。接收器是双缓冲结构。.2AT89S52串行口的控制单片机串行口是可编程的,对它初始化编程只需将两个控制字分别定稿特殊存放器SCON和电源控制存放器PCON即可。串行控制存放器SCON是一个特殊功能存放器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志。表2.SEQ表2.\*ARABIC10SCON存放器中的各位定义SCON的字节地址=98H 复位值=00000000B可以位寻址76543210SM0SM1SM2RENTB8RB8TIRI其中:SM0和SM1:串行口工作方式选择位,可选择4种工作方式。表2.SEQ表2.\*ARABIC11串行口的工作方式SM0SM1方式说明波特率000移位存放器fosc/1201110位异步收发器〔8位数据〕可变10211位异步收发器〔9位数据〕fosc/64或fosc/3211311位异步收发器〔9位数据〕可变SM2:多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时,可以利用收到的RB8来控制是否激活RI〔RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断效劳中将数据从SBUF读走〕。当SM2=0时,不管收到的RB8为0还是1,均可以使收到的数据进入SBUF,并激活RI〔即此时RB8不具有控制RI激活的功能〕。通过控制SM2,可以实现多机通信。在方式0时,SM2必须是0。在方式1时,假设SM2=1,那么只有接收到有效停止位时,RI才置1。REN:允许串行接收位。假设软件置REN=1,那么启动串行口接收数据;假设软件置REN=0,那么禁止接收。TB8:在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。在方式0和方式1中,该位未用。RB8:在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,假设SM2=0,那么RB8是接收到的停止位。TI:发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断效劳程序中,必须用软件将其清0,取消此中断申请。RI:接收中断标志位。在方式0时,当串行接收第8位数据结束时,或在其它方式,中午接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断效劳程序中,用软件将其清0,取消此中断申请。电源控制存放器为PCON。在PCON中只有一位SMOD与串行口工作有关。表2.SEQ表2.\*ARABIC12PCON存放器中的各位定义PCON的字节地址=97H 复位值=0XX00000B不可以位寻址76543210SMODSMOD:波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。.3AT89S52串行口的工作方式方式0方式0时,串行口为同步移位存放器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD〔P3.0〕引脚输入或输出,同步移位脉冲由TXD〔P3.1〕引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。方式1串行口定义为方式1时,是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式。其中1位起始位,8位数据位,1位停止位。方式1的波特率由定时器T1的溢出率决定。方式2和方式3串行口工作方式2或方式3时,为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚。串行口方式2和方式3时起始位1位,数据9位〔含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8〕,停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为4种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的4种工作方式对应3种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算也不相同。方式0的波特率=fosc/12方式2的波特率=〔2SMOD/64〕·fosc方式1的波特率=〔2SMOD/32〕·〔T1溢出率〕方式3的波特率=〔2SMOD/32〕·〔T1溢出率〕当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式〔即方式2,且TCON的TR1=1,以启动定时器〕。这时溢出率取决于TH1中的计数值。T1溢出率=fosc/{12×[256-〔TH1〕]}低功耗节电模式AT89S52/LS52有两种节电模式:空闲模式和掉电模式。2.4.13.1电源断电标志电源断电POF位于电源控制存放器PCON的第4位。电源上电时,POF=1。POF也可用软件置1或去除。复位对POF无影响。表2.SEQ表2.\*ARABIC13PCON各位功能定义PCON地址=87H 复位值=0XX00000B不可位寻址76543210SMODPOFGF1GF0PDIDL其中:SMOD;波特率倍增位,在串行通信中使用。POF:断电标志。GF1:通用标志位1。GF0:通用标志位0。PD:掉电方式控制位。PD=1,那么进入掉电方式。IDL:空闲方式控制位。IDL=1,那么进入空闲方式。2.4.13.2空闲模式在空闲模式下,CPU进入睡眠状态,而片内接口部件〔中断系统、串行口和定时器〕仍然有效。可用软件的方式进入空闲模式。在空闲模式下,片内RAM和SFR中的内容保持不变。退出空闲模式可用硬件复件或任何一个可允许的中断。当用硬件复位退出空闲模式时,在复位控制逻辑发生复位效能之前,有长约2个机器周期的时间,系统是从断点处开始执行程序。片内的硬件禁止访问片内RAM,但不禁止对端口的访问。为防止复位期间对端口的误写入,在进入空闲模式指令的后面,不应是写端口或写片外RAM的指令。2.4.13.3掉电模式在掉电模式下,振荡器停止工作。可用软件形式进入掉电模式。进入掉电模式之后,片内RAM和SFR中的内容保持不变,直到退出掉电模式。退出掉电模式可用硬件复位或任何一种有效的外部中断。用硬件复位方式要重新SFR中的内容,但不改变RAM的内容。在VCC电源恢复到正常操作水平之前,硬件复位无效,同时也应保持足够长的时间,使振荡器启振并保持稳定。表2.SEQ表2.\*ARABIC14空闲模式和掉电模式下各引脚的状态表模式程序存储器ALEPSENP0P1P2P3空闲内部11DataDataDataData空闲外部11高阻Data地址Data掉电内部00DataDataDataData掉电外部00高阻DataDataData看门定时器WDTWDT包含一个14位计数器和看门狗定时器复位存放器〔WDTRST〕。对WDTRST〔0A6H〕实行写操作,按先写入01EH,后写入0E1H的次序依次写入WDTRST,WDT便启动,即从零开始计数,每个机器周期自动加1。WDT一旦启动,除用硬件复件或WDT溢出复位之外,没有任何方法能使WDT停止计数。WDT溢出时,在RST引脚输出一个高电平脉冲,并复位单片机。2.4.14.1WDT的使用用户按顺序将01EH和0E1H写入WDTRST,WDT便启动。为防止WDT溢出,用户应定期按次序向WDTRST写入01EH和0E1H。当14位计数器的计数值到达16383〔3FFFH〕时,就要发生溢出,并复位系统。由于WDT是每个机器周期自动加1,这就意味着用户在小于16383个机器周期内,必须将WDT复位一次,即按向WDTRST存放器写入01EH和0E1H。WDTRST是个只写存放器,WDT中的计数器不可读/写。WDT溢出时,将在RST引脚上产生一个高电平脉冲。该脉冲的宽度是96个晶振周期。2.4.14.2掉电模式下的WDT掉电模式下,振荡器停止工作,WDT也停止计数,用户不必复位WDTRST。退出掉电模式有两种方法:硬件复位或借肋于一个有效的外部电平中断。进入掉电模式前,应先初始化,使该外部中断处于允许状态。用硬件复位方式退出掉电模式后,要按正常操作及时复位WDTRST,以防止WDT溢出。用中断方式退出掉电模式时,中断要保持足够长的低电平状态,以使振荡器到达稳定。当中断由低电平变为高电平时,便开始执行中断效劳程序。在中断效劳程序中,应安排使WDTRST复位的指令,以防止WDT溢出。为保证在退出掉电模式时WDT不溢出,在进入掉电模式之前先要复位WDTRST。2.4.14.3空闲模式下的WDT在空闲模式下,假设WDIDLE=0,那么WDT将继续计数。为防止在空闲模式下WDT溢出,用户可使用一个定时器,定时退出空闲模式,然后复位WDTRST,再重新进入空闲模式。当WDIDLE=1时,WDT暂停计数。退出空闲模式后,WDT便恢复计数。其它特殊功能存放器2.4.15.1辅助存放器AUXR表2.SEQ表2.\*ARABIC15AUXR各位功能说明如下:AUXR地址=8EH 复位值=XXX00XX0B不可位寻址76543210WDIDLEDISRTODISALE其中:DISALE:ALE的禁止/允许。当DISALE=0时,ALE引脚发出频率为晶振频率的1/6的连续脉冲;当DISALE=1时,ALE只在执行MOVX或MOVC指令时才有效,否那么禁止输出脉冲信号。DISRTO:RST引脚的输出禁止/允许。当DISRTO=0时,WDT溢出时,RST引脚输出高电平信号;当DISRTO=1时,RST引脚只作输入。WDIDLE:空闲模式下WDT的禁止/允许。 当WDIDLE=0时,WDT在空闲模式下继续计数;当WDIDLE=1时,WDT在空闲模式下暂停计数;2.4.15.2辅助存放器AUXR1表2.SEQ表2.\*ARABIC16AUXR1各位功能介绍如下:AUXR1地址=0A2H 复位值=XXXXXXX0B不可位寻址76543210DPS其中:DPS:数据指针选择位。当DPS=0时,选择DPTR0中的DP0L和DP0H;当DPS=1时,选择DPTR1中的DP1L和DP1H。2.4.15.3双数据指针存放器AT89S52/LS52内含2个16位数据指针存放器DPTR0和DPTR1。DPTR0占用SFR中的82H〔DP0L〕和83H〔DP0H〕,DPTR1占用SFR中的84H〔DP1L〕和85H〔DP1H〕。AUXR1中的DPS=0时,DPTR0;DPS=1时,DPTR1。用户在访问外部数据存储器前,先要初始化DPS,选择相应的DPTR。2.5AD9850简介随着数字技术的飞速开展,用数字控制方法从一个参考频率源产生多种频率的技术,即直接数字频率合成〔DDS〕技术异军突起。美国AD公司推出的高集成度频率合成器AD9850便是采用DDS技术的典型产品之一。AD9850采用先进的CMOS工艺,其功耗在3.3V供电时仅为155mW,扩展工业级温度范围为-40~80℃,采用28脚SSOP外表封装形式。AD9850的引脚排列如图2.7所示,图2.8为其组成框图。图2.8中层虚线内是一个完整的可编程DDS系统,外层虚线内包含了AD9850图2.SEQ图2.\*ARABIC8AD9850引脚排列图图2.SEQ图2.\*ARABIC9AD9850的组成框图AD9850内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合成。可编程DDS系统的核心是相位累加器,它由一个加法器和一个N位相位存放器组成,N一般为24~32。每来一个外部参考时钟,相位存放器便以步长M递加。相位存放器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0°~360°范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动DAC以输出模式量。相位存放器每过2N/M个外部参考时钟后返回到初始状态一次,相应地正弦查询表每经过一个循环也回到初始位置,从而使整个DDS系统输出一个正弦波。输出的正弦波周期TO=Tc2N/M,频率fout=Mfc/2N,Tc、fc分别为外部参考时钟的周期和频率。AD9850采用32位的相位累加器将信号截断成14位输入到正弦查询表,查询表的输出再被截断成10位后输入到DAC,DAC再输出两个互补的电流。DAC满量程输出电流通过一个外接电阻RSET调节,调节关系为ISET=32(1.148V/RSET),RSET的典型值是3.9kΩ。将DAC的输出经低通滤波后接到AD9850内部的高速比较器上即可直接输出一个抖动很小的方波。其系统功能如图2.9所示。图2.SEQ图2.\*ARABIC10AD9850的系统功能框图AD9850在接上精密时钟源和写入频率相位控制字之间后就可产生一个频率和相位都可编程控制的模拟正弦波输出,此正弦波可直接用作频率信号源或经内部的高速比较器转换为方波输出。在125MHz的时钟下,32位的频率控制字可使AD9850的输出频率分辨率达0.0291Hz;并具有5位相位控制位,而且允许相位按增量180°、90°、45°、22.5°、11.25°或这些值的组合进行调整。AD9850的控制字与控制时序AD9850有40位控制字,32位用于频率控制,5位用于相位控制。1位用于电源休眠〔Powerdown〕控制,2位用于选择工作方式。这40位控制字可通过并行方式或串行方式输入到AD9850,图2.10是控制字并行输入的控制时序图,在并行装入方式中,通过8位总线D0…D7将可数据输入到存放器,在重复5次之后再在FQ-UD上升沿把40位数据从输入存放器装入到频率/相位数据存放器〔更新DDS输出频率和相位〕,同时把地址指针复位到第一个输入存放器。接着在W-CLK的上升沿装入8位数据,并把指针指向下一个输入存放器,连续5个W-CLK上升沿后,W-CLK的边沿就不再起作用,直到复位信号或FQ-UD上升沿把地址指针复位到第一个存放器。在串行输入方式,W-CLK上升沿把25引脚的一位数据串行移入,当移动40位后,用一个FQ-UD脉冲即可更新输出频率和相位。图2.11是相应的控制字串行输入的控制时序图。图2.SEQ图2.\*ARABIC11控制字并行输入的时序图表2.SEQ表2.\*ARABIC178位并口控制字格式及含义字节位7位6位5位4位3位2位1位0W0相位-b4相位-b3相位-b2相位-b1相位-b0电源休眠控制控制W1频率-b31频率-b30频率-b29频率-b28频率-b27频率-b26频率-b25频率-b24W2频率-b23频率-b22频率-b21频率-b20频率-b19频率-b18频率-b17频率-b16W3频率-b15频率-b14频率-b13频率-b1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度出口企业出口货物报关单据与凭证管理合同3篇
- 二零二五年餐饮项目合伙经营合同范本3篇
- 2025年度智能化工厂租赁合同涉及土地使用权及配套设施4篇
- 二零二四年临时工劳动保障与劳动法实施合同3篇
- 专属2024版企业人力外包协议样本版B版
- 2024铝合金门窗生产与安装一体化工程合同3篇
- 2025年度企业级“师带徒”人才孵化项目合同3篇
- 专业劳务派遣协议样本2024版B版
- 街道党工委知识培训课件
- 2025年度商务办公空间租赁安全合同文本4篇
- 老年人视觉障碍护理
- 《脑梗塞的健康教育》课件
- 《请柬及邀请函》课件
- 中小银行上云趋势研究分析报告
- 辽宁省普通高中2024-2025学年高一上学期12月联合考试语文试题(含答案)
- 青海原子城的课程设计
- 常州大学《新媒体文案创作与传播》2023-2024学年第一学期期末试卷
- 麻醉苏醒期躁动患者护理
- 英语雅思8000词汇表
- 小学好词好句好段摘抄(8篇)
- JT-T-1059.1-2016交通一卡通移动支付技术规范第1部分:总则
评论
0/150
提交评论