毕业设计(论文)-基于51单片机频率计的设计.doc_第1页
毕业设计(论文)-基于51单片机频率计的设计.doc_第2页
毕业设计(论文)-基于51单片机频率计的设计.doc_第3页
毕业设计(论文)-基于51单片机频率计的设计.doc_第4页
毕业设计(论文)-基于51单片机频率计的设计.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

桂林电子工业学院课程设计(论文)报告用纸 1 桂林电子科技大学毕业设计(论文)报告用纸 第1页 共4页摘 要 桂林电子科技大学毕业设计(论文)报告用纸 第3页 共4页数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,而且会产生比较大的延时,造成测量误差、可靠性差。传统的数字频率计一般是由分离元件搭接而成,随着单片机的大规模的应用,单片机在频率测量方面也越来越多的被使用。在本课题中使用的AT89S51 这种低功耗,高性能CMOS 8位单片机系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。而本次设计就是要通过以AT89S51单片机为控制核心,实现对信号频率进行准确计数的设计。单片机是将微型计算机的基本功能部件全部集成在一块半导体电路芯片上,具有功能强、体积小、价格低、稳定可靠、研制周期短等优点,具有广阔的应用前景。本次毕业设计以ATMEL公司的AT89S51单片机为核心,实现频率计数功能。频率计装置由单片机系统模块,LED显示模块、MAX232串口通信模块组成,实现对频率进行测试并在LED显示出来。本次毕业设计基于AT89S51单片机的频率计装置,设计sch电路原理图,并根据原理图完成硬件部分的制作,采用KEIL-51单片机应用系统编制C语言系统程序,最后通过综合调试,能实现所有要求的功能,完全满足本次毕业设计的要求。关键词:频率计;单片机;LED显示;MAX232;定时器/计数器 桂林电子科技大学毕业设计(论文)报告用纸 第6页 共4页AbstractThe digital frequency meter is in a digital circuit model application, the actual hardware design uses component more, moreover can have the quite big time delay, creates the measuring error, the reliability is bad. The traditional digital frequency meter generally is becomes byseparative element joining, along with the monolithic integrated circuit large-scale application, the monolithic integrated circuit more and more are also many in the frequency measurement aspect is used. AT89S51 this kind of low power loss uses which in this topic, high performance CMOS 8 monolithic integrated circuits series monolithic integrated circuit appearance, has a better stability, is quicker and the more accurate operation precision, impelled the industrial production, is interfering with peoples work and the study. But this design is must through take the AT89S51 monolithic integrated circuit as the control core, realizes design which carries on to the signalling frequency accurately counts.The monolithic integrated circuit is completely integrates the microcomputer basic function part on together the semiconductor electric circuit chip, has the function strongly, the volume small, the price low, stable reliable, the development cycle is short and soon the merit, has the broad application prospect. This graduation project take ATMEL Corporations AT89S51 monolithic integrated circuit as the core, the realization frequency counts the function. The frequency meter installment by the monolithic integrated circuit system module, LED demonstrated the module, the MAX232 string mouth connection module composes, realizes carries on the test to the frequency and demonstrates in LED.This graduation project based on the AT89S51 monolithic integrated circuit frequency meter installment, designs the sch electric circuit schematic diagram, and completes the hardware partial manufactures according to the schematic diagram, uses the KEIL-51 monolithic integrated circuit application system to establish the C language system program, finally through the synthesis debugging, can realize all requests function, completely satisfies this graduation project the request.Key words: Frequency meter; Monolithic integrated circuit; LED demonstrated; MAX232; Timer/counter目 录引言11 基于AT89S51单片机的频率计的设计装置原理图及其设计思路22 单片机系统模块原理设计32.1 AT89S51芯片介绍32.2 AT89S51芯片管脚介绍32.3 AT89S51复位电路原理52.4 AT89S51的时钟62.4.1 AT89S51基本时序周期72.5 AT89S51各端口工作原理讲解72.5.1 P0口介绍72.5.2 P1口介绍82.5.3 P2口介绍92.5.4 P3口介绍102.5.5端口的负载能力和输入/输出操作112.5.6串行端口的基本特点112.5.7串行端口的工作方式122.5.8串行端口的控制寄存器142.6 定时器/计数器 142.6.1定时器/计数器结构142.6.2定时器/计数器控制寄存器142.6.3定时器/计数器工作模式152.6.4定时器/计数器的初始化162.7 中断系统172.7.1中断系统的结构172.7.2中断系统的控制寄存器182.7.3中断的响应过程193 硬件设计203.1 LED显示模块设计原理203.1.1 LED发光原理203.1.2种类和符号203.1.3 LED的特性213.2 LED数码管介绍213.2.1 LED数码管原理结构213.2.2 LED数码管工作方式223.2.3静态显示方式233.2.4动态显示方式243.2.5 LED显示控制原理243.3 MAX232芯片介绍254 软件设计255 硬件的调试与测试265.1 硬件制作265.1.2 PCB图的制作265.1.3 电路板制作过程275.2 硬件调试285.3软件调试295.4硬件测试306 结论30谢辞31参考文献32附录33 毕业设计(论文)报告用纸 第38页 共37页 引言单片机的英文名字为Microcontroller(微控制器),从词义上理解它已能比较准确地反映出单片机的本质。它是将微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM或EPROM)、定时计数器及输入输出接口等多个功能部件集成在一块芯片上的一种微型计算机。单片机的主要任务是面向控制,因此又称做控制器(Microcontroller)。它只需要与很少的软件及外部设备相结合,便可组成为一个单片机控制系统。控制器(Controller)一个完全不同于Computer和IT的名词。有的教材将单片机划分到计算机硬件中,准确地应该将它划到控制器中。单片机无处不有、BP机、手机、电视机、打印机、IC卡、语音提示、报警器等,其中都有单片机。单片机作为微型计算机的一个重要分支,它的发展和应用越来越引起人们的重视。单片机在我国的使用已经20余载了,人们的应用水平也有了大幅度的提高,积累了极其丰富的经验和资料。然而,随着计算机应用技术的不断发展,单片机的应用领域越来越广泛,其处理的实际问题也越来越复杂,因此,人们越来越重视单片机应用系统的研发周期和工作效率。随着信息化社会和知识经济的发展,单片机的应用渗透到各行各业,越来越引起人们的重视。单片机控制着当今大多数的电子设备、家用电器与机器设备。单片机的身影无处不在的存在于工业控制、消费电子、计算机及周边产品、通信和办公设备等领域。而据预测,到2010年,一个成年人每日会接触到351个单片机。毫不夸张的说,我们生活在一个单片机的世界里。单片机的应用领域非常广泛,同时,它的应用也从根本上改变了传统控制系统设计思想和设计方法,取代以微控制技术来实现,这是一个全新的概念。随着单片机应用技术的推广普及,微控制技术必将不断发展、完善。本文将以基于AT89S51单片机的频率计的设计装置说明单片机的原理和强大的功能,突现单片机的巨大作用。1 基于AT89S51单片机的频率计的设计原理图及其设计思路电路原理图如下图1-1所示:图1-1 电路原理图如上图所示,原理图可分为单片机系统模块,和与PC机连接的通信扩展模块。本设计用AT89S52单片机的T0、T1的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过8位动态数码管显示出来。要求能够对0200KHZ的信号频率进行准确计数,计数误差不超过1HZ。T0是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的T0,最大计数值为fOSC/24,由于fOSC12MHz,因此:T0的最大计数频率为250KHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以T1工作在定时状态下,每定时1秒中到,就停止T0的计数,而从T0的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。T1工作在定时状态下,最大定时时间为65ms,达不到1秒的定时,所以采用定时50ms,共定时20次,即可完成1秒的定时功能。另外电路中还扩展了和PC机串口通信模块,可以将测试出的频率在电脑中显示,方便对数据进行采集和分析。2 单片机系统模块原理2.1 AT89S51芯片介绍AT89S51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写存储器(PEROM)和128 bytes随即存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大,AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89S51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗WDT,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。2.2 AT89S51芯片管脚介绍AT89S51是标准的40引脚双列直插式集成电路芯片,其引脚图如图2-1所示。图2-1 AT89S51单片机引脚图P0.0P0.7 P0口8位双向口线(在引脚的3932号端子)。P1.0P1.7 P1口8位双向口线(在引脚的18号端子)。P2.0P2.7 P2口8位双向口线(在引脚的2128号端子)。P3.0P3.7 P2口8位双向口线(在引脚的1017号端子)。P0口:(1)外部扩展存储器时,当数据总线(如图2-1中的D0D7为数据总线接口);(2)外部扩展存储器时,当作地址总线(如图2中的A0A7为地址总线接口);(3)不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口:只做I/O口使用,其内部有上拉电阻。P2口:(1)扩展外部存储器时,当作地址总线使用;(2)做一般I/O口使用,其内部有上拉电阻。P3口:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态。:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低位字节。对Flash存储器编程间,该引脚还用于输入编程脉冲()。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲()如果必要,可通过对待特殊功能寄存器(SER)区中的8EH单位的D0位置位,可禁止ALE操作。高位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。:程序存储允许()输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的信号不出现。:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存端状态。如端接为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的允许编程电压Vpp。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。Vcc: 电源电压。GND: 地。2.3 AT89S51复位电路原理 RST引脚是复位信号的输入端。复位信号是高电平有效。高电平有效的持续时间应为24个振荡周期以上。若时钟周期为6MHz,则复位信号至少应持续4us以上,才能使单片机复位。复位以后,07H写入栈指针SP,P03口均置1(允许输入),程序计数器PC和其他特殊功能寄存器SFR全部清“0”。只要该脚保持高电平,MSC-51便循环复位。当RST端由高变低后,MSC-51由ROM的0000H开始执行程序。MSC-51的复位不影响内部ROM的内容。当VCC加电后,RAM的内容是随机的复位电路的基本功能是系统上电时提供复位信号,直至系统电源稳定后撤销复位信号。为可靠起见电源稳定后还要经一定的延时才撤销复位信号以防电源开关或电源插头分合过程中引起的抖动而影响复位。图2-2所示的RC复位电路可以实现上述基本功能。左边的电路为高电平复位有效,右边为低电平为手动复位开关,可避免高频谐波对电路的干扰。复位电路共有3种:图2-2 复位电路图 本设计复位电路采用按键电平复位,电路原理图如图2-3所示: 图2-3 复位电路原理图当按键按下的时候,所计数的结果将清零,或者重新接电的时候上电复位,计数结果也会清零。2.4 AT89S51的时钟 时钟是时序的基础,AT89S51片内由一个反相放大器构成振荡器,可以由它产生时钟,时钟可以由两种方式产生:内部方式和外部方式,具体电路见图2-4: (a) 内部振荡方式 (b)外部震荡方式图2-4 时钟产生电路图(1)内部方式:在XTAL1和XTAL2端外接石英晶体作定时元件,内部反相放大器自激振荡,产生时钟。时钟发生器对振荡脉冲二分频,即若石英频率Fosc=12MHZ,则时钟频率=6MHZ,因此,时钟是一个双相信号,由P1相和P2相构成。Fosc可在1.2MHZ12MHZ选择,电容可以选30pF左右。(2)外部方式:可以通过XTAL1和XTAL2接入外部时钟。所设计振荡电路原理图如图2-5所示: 图2-5 振荡电路原理图2.4.1 AT89S51基本时序周期 一条指令译码产生的一系列微操作信号在时间上产生严格的先后次序,这种次序就是计算机的时序。这里先介绍它的基本时序周期。(1)振荡周期:指振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。(2)时钟周期(称S周期):为振荡周期的两倍,时钟周期=振荡周期P1+振荡周期P2。(3)机器周期:一个机器周期含6个时钟周期(S周期),即12个振荡周期。(4)指令周期:完成一条指令占用的全部时间。AT89S51的指令周期喊14个机器周期,其中多数为单周期指令,还有2个周期和4个周期指令。若Fosc=6MHZ,则AT89S51的:振荡周期=1/6us; 时钟周期=1/3us;机器周期=2us; 指令周期=28us;2.5 AT89S51各端口工作原理讲解 并行端口:2.5.1 P0口介绍图2-6 P0端口功能结构图总线IO端口,双向,三态,数据地址分时复用,该端口除用于数据的输入输出外,在8051单片机外接程序存储器时,还分时地输出输入地址指令。由Po端口输出的信号无锁存,输入的信息有读端口引脚和读端口锁存器之分。P0端口8位中的一位结构图见图2-6:由上图可见,P0端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应管驱动电路构成。在输出状态下,当切换开关MUX向下时,从内部总线来的数据经锁存器反相和场效应管T2反相,输出到端口引脚线上。此时,场效应管T1关断,因而这种输出方式应为外接上拉电阻的漏极开路式。当切换开关MUX向上时,一位地址数据信号分时地输出到端口线上。此外,由T1、T2的通断组合,形成高电平、低电平与高阻浮动三态的输出。在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从内部总线输出低电平后,锁存器Q0,Q1,场效应管T2开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q1,Q0,场效应管T2截止。如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。为此,8051单片机在对端口P0-P3的输入操作上,有如下约定:为此,8051单片机在对端口P0-P3的输入操作上,有如下约定:凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。 读-修改-写指令的特点是,从端口输入(读)信号,在单片机内加以运算(修改)后,再输出(写)到该端口上。下表2-1是几条读-修改-写指令的例子。 表2-1 指令表ANL P0,#立即数;P0立即数P0ORL P0,A;P0AP0INC P1;P1+1P1DEC P3;P3-1P3CPL P2;P2P2这样安排的原因在于读-修改-写指令需要得到端口原输出的状态,修改后再输出,读锁存器而不是读引脚,可以避免因外部电路的原因而使原端口的状态被读错。 P0端口是8051单片机的总线口,分时出现数据D7-D0、低8位地址A7-AO,以及三态,用来接口存储器、外部电路与外部设备。P0端口是使用最广泛的IO端口。2.5.2 P1口介绍通用I0端口,准双向静态口。输出的信息有锁存,输入有读引脚和读锁存器之分。P1端口的一位结构见下图. 由图可见,P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,并且输出的信息仅来自内部总线。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。由下图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。为此,在作引脚读入前,必须先对该端口写入l。具有这种操作特点的输入输出端口,称为准双向IO口。8051单片机的P1、P2、P3都是准双向口。P0端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入l后再作读操作。图2-7 P1端口功能结构图单片机复位后,各个端口已自动地被写入了1,此时,可直接作输入操作。如果在应用端口的过程中,已向P1-P3端口线输出过0,则再要输入时,必须先写1后再读引脚,才能得到正确的信息。此外,随输入指令的不同,H端口也有读锁存器与读引脚之分。Pl端口是805l单片机中唯一仅有的单功能IO端口,并且没有特定的专用功能,输出信号锁存在引脚上,故又称为通用静态口。2.5.3 P2口介绍 P2端口的一位结构见图2-8:图2-8 P2端口功能结构图由图可见,P2端口在片内既有上拉电阻,又有切换开关MUX,所以P2端口在功能上兼有P0端口和P1端口的特点。这主要表现在输出功能上,当切换开关MUX向左时,从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;当MUX向右时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。由于8051单片机必须外接程序存储器才能构成应用电路,而P2端口就是用来周期性地输出从外存中取指令的地址(高8位地址),因此,P2端口的切换开关MUX总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。因此P2端口是动态的IO端口。输出数据虽被锁存,但不是稳定地出现在端口线上。其实,这里输出的数据往往也是一种地址,只不过是外部RAM的高8位地址。在输入功能方面,P2端口与P0和H端口相同,有读引脚和读锁存器之分,并且P2端口也是准双向口。可见,P2端口的主要特点包括:(1)不能输出静态的数据;(2)自身输出外部程序存储器的高8位地址; (3)执行MOVX指令时,还输出外部RAM的高位地址,故称P2端口为动态地址端口。2.5.4 P3口介绍双功能静态IO口P3端口的一位结构见图2-9:图2-9 P3端口功能结构图由上图可见,P3端口和Pl端口的结构相似,区别仅在于P3端口的各端口线有两种功能选择。当处于第一功能时,第二输出功能线为1,此时,内部总线信号经锁存器和场效应管输入输出,其作用与P1端口作用相同,也是静态准双向IO端口。当处于第二功能时,锁存器输出1,通过第二输出功能线输出特定的内含信号,在输入方面,即可以通过缓冲器读入引脚信号,还可以通过替代输入功能读入片内的特定第二功能信号。由于输出信号锁存并且有双重功能,故P3端口为静态双功能端口。P3端口特殊功能表如下表2-2所示:表2-2 P3口的特殊功能表(即第二功能)口线 第二功能 信号名称 P3.0 RXD串行数据接收P3.1TXD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通使P3端品各线处于第二功能的条件是:(1)串行I/O处于运行状态(RXD,TXD);(2)打开了处部中断(INT0,INT1);(3)定时器/计数器处于外部计数状态(T0,T1);(4)执行读写外部RAM的指令(RD,WR)。在应用中,如不设定P3端口各位的第二功能(WR,RD信叼的产生不用设置),则P3端口线自动处于第一功能状态,也就是静态IO端口的工作状态。在更多的场合是根据应用的需要,把几条端口线设置为第二功能,而另外几条端口线处于第一功能运行状态。在这种情况下,不宜对P3端口作字节操作,需采用位操作的形式。2.5.5 端口的负载能力和输入输出操作P0端口能驱动8个LSTTL负载。如需增加负载能力,可在P0总线上增加总线驱动器。P1,P2,P3端口各能驱动4个LSTTL负载。 前已述及,由于P0-P3端口已映射成特殊功能寄存器中的P0-P3端口寄存器,所以对这些端口寄存器的读写就实现了信息从相应端口的输入输出。例如:MOV A, P1 ;把Pl端口线上的信息输入到;MOV P1, A ;把A的内容由P1端口输出;MOV P3, #0FFH ;使P3端口线各位置l.。串行端口: MCS-51系列单片机片内有一个串行IO端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信。2.5.6 串行端口的基本特点8051单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的IO电路;方式1多用于双机之间或与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向阳UF写入数据就启动了发送过程;读SBUf就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频值或由定时器Tl的定时溢出时间确定,使用十分方便灵活。2.5.7 串行端口的工作方式(1)方式08位移位寄存器输入输出方式。多用于外接移位寄存器以扩展IO端口。波特率固定为fosc/12。其中,fosc为时钟频率。在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输出(从低位到高位);此时,TXD输出频率为fosc/12的同步移位脉冲。数据发送前,仅管不使用中断,中断标志TI还必须清零,8位数据发送完后,TI自动置1。如要再发送,必须用软件将TI清零。串行端口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc/12的同步移位脉冲,使外部数据逐位移入RxD。当接收到8位数据(一帧)后,中断标志RI自动置。如果再接收,必须用软件先将RI清零。串行方式0发送和接收的时序过程见图2-10。(2)方式1图2-10 中断方式0发送接收时序(a为发送时序,b为接收时序)10位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位)和1个停止位(1)。波特率由定时器T1的溢出率和SMOD位的状态确定。一条写SBUF指令就可启动数据发送过程。在发送移位时钟(由波特率确定)的同步下,从TxD先送出起始位,然后是8位数据位,最后是停止位。这样的一帧10位数据发送完后,中断标志TI置位。在允许接收的条件下(REN1),当RXD出现由1到O的负跳变时,即被当成是串行发送来的一帧数据的起始位,从而启动一次接收过程。当8位数据接收完,并检测到高电乎停止位后,即把接收到的8位数据装入SBUF,置位RI,一帧数据的接收过程就完成了。 方式1的数据传送波特率可以编程设置,使用范围宽,其计算式为: 波特率2SMOD/32(定时器T1的溢出率)其中,SMOD是控制寄存器PCON中的一位程控位,其取值有0和l两种状态。显然,当SMOD0时,波特率1/32(定时器Tl溢出率),而当SMOD1时,波特率1/16(定时器T1溢出率)。所谓定时器的溢出率,就是指定时器一秒钟内的溢出次数。波特率的算法,以及要求一定波特率时定时器定时初值的求法,后面将详细讨论。串行方式1的发送和接收过程的时序见图2-11。图2-11 串行方式1发送接收时序(a方式1发送时序b方式1接收时序)(3)方式2,3 11位异步通信方式。其中,1个起始位(0),8个数据位(由低位到高位),1个附加的第9位和1个停止住(1)。方式2和方式3除波特率不同外,其它性能完全相同。方式2,3的发送、接收时序见下图2-12。图2-12 串行方式2、3发送接收时序周期图a方式2、3发送时序,图b方式2、3接收时序由图可见,方式2和方式3与方式l的操作过程基本相同,主要差别在于方式2,3有第9位数据。发送时,发送机的这第9位数据来自该机SCON中的TB8,而接收机将接收到的这第9位数据送入本机SCON中的RB8。这个第9位数据通常用作数据的奇偶检验位,或在多机通信中作为地址数据的特征位。 方式2和方式3的波特率计算式如下:方式2的波特率2SMOD/64fosc方式3的波特率2SMOD/32定时器T1的溢出率由此可见,在晶振时钟频率一定的条件下,方式2只有两种波特率,而方式3可通过编程设置成多种波特率,这正是这两种方式的差别所在。2.5.8 串行端口的控制寄存器 串行端口共有2个控制寄存器SCON和PCON,用以设置串行端口的工作方式、接收发送的运行状态、接收发送数据的特征、波特率的大小,以及作为运行的中断标志等。2.6定时器/计数器51系列单片机有两个16位定时器/计数器:定时器/计数器0、定时器/计数器1,它们均可用作定时控制、延时以及对外部事件的计数和检测。2.6.1定时器/计数器结构51单片机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式以及4种工作模式。其状态字均在相应的特殊功能寄存器中,通过对控制寄存器的编程,用户可以方便地选择适当的工作模式。对每个定时器/计数器(T0和T1),在特殊功能寄存器TMOD中都有一个控制位,它选择T0和T1为定时器还是计数器。51单片机的微处理器与T0及T1的关系如图3-1所示,定时/计数器T0由TL0、TH0构成,T1由TL1、TH1构成。图2-13 微处理与T0及T1的关系其中,TMOD用于控制和确定各定时/计数器的功能和工作模式;TCON用于控制定时器/计数器T0、T1的启动和停止计数,同时包含定时器/计数器的状态。它们属于特殊功能寄存器,其内容靠软件设置。系统复位时,寄存器的所有位都被清零。当设置为定时工作方式时,定时器对单片机片内振荡器输出经过12分频的脉冲计数,每个机器周期使定时器的数值加1直到溢出。当设置为计数器工作方式时,通过引脚P3.4和P3.5对外部脉冲计数。当输入脉冲信号产生下降沿时,计数器的值加1,直到计数器溢出。同时硬件置中断标志位TFX为零,产生出中断。由于检测脉冲1到0的跳变消耗了两个机器周期,前一个机器周期检测“1”,后一个机器周期检测“0”,所以输入脉冲的最高频率不能高于系统晶振频率的1/24。无论是计数工作方式还是定时工作方式,都不占用CPU的时间。只有当定时器/计数器溢出时,才可能引起CPU中断,转入中断服务程序,对中断进行处理。图3-2所示为T1的工作原理图。图2-14 T1工作原理图2.6.2定时器/计数器控制寄存器控制寄存器TCON可按字节寻址,也可按位寻址,机构如下:图2-15 TCONTF1(TCON.7):定时器/计数器1溢出标志。当定时器/计数器溢出时,由内部硬件置位,申请中断;进入中断服务程序后由内部硬件电路自动清除。TR1(TCON.6):定时器/计数器1运行控制位。靠软件置位或清除,置位时定时器/计数器可以开始工作;清除时停止工作。TF0(TCON.5):定时器/计数器0溢出标志位。其功能和操作情况同TF1。TR0(TCON.4):定时器/计数器0运行控制位。其功能和操作情况同TR1。IE1(TCON.3):外部中断1(INT1引脚)请求标志。检测到在INT1引脚上出现的外部中断信号的下降沿时,由硬件置位,请求中断,进入中断服务程序后被硬件自动清除。IT1(TCON.2):外部中断1触发中断类型控制位。靠软件置位或清除。IT1=1时是下降沿触发中断;IT1=0时是低电平触发中断。IE0(TCON.1):外部中断0(INT1引脚)请求标志。其功能和操作情况同IE1。IT0(TCON.0):外部中断0触发中断类型控制位。其功能和操作情况同IT1。2.6.3定时器/计数器工作模式TMOD为8位寄存器,用于控制T0和T1的工作方式和工作模式。低4位用于T0,高4位用于T1。GATEC/M1M0GATEC/M1M0定时器/计数器1定时器/计数器0注:TMOD只能按字节寻址。1.工作方式若C/=0,则定时器/计数器工作在定时器方式。若C/=1,则定时器/计数器工作在计数器方式,被计数脉冲送入(TLx+THx),(TLx+THx)溢出时,把TF1置1,向CPU申请定时器/计数器溢出中断(x为0、1)。2.定时器的4种操作模式表2-3 操作模式M1M0操作模式00操作模式001操作模式110操作模式211操作模式3 (1)模式0本来THx+TLx构成16位计数器,但模式0只用到13位。当TLx中的5位寄存器加1进位时,使THx增1,同时低5位清0;当THx溢出时把TFx置位,申请中断,同时THx清0。使用定时器/计数器时一般使GATE=0,GATE的用途是可以测量某个正脉冲的宽度。当(TR1=1)AND(GATE=1)时,设INT1引脚上的信号是某个脉冲。所以,根据TH1、TL1的值可以确定正脉冲的宽度。注意:被计数的信号可以是内部信号,也可以是T1引脚上的信号。(2)模式1与模式0相似,差别是THx+TLx共16位全部参加计数。(3)模式2(8位自动重装载模式)与模式0或模式1类似,区别是仅TLx(8bit)进行计数,THx在赋初值后保持不变,当TLx溢出时,THx自动把初值再次赋给TLx。当TLx有FFH再加1溢出时,一方面使TFx=1,向CPU申请中断;另一方面,把THx中的值自动重新装载到TLx中。说明:模式0或模式1中,THx+TLx溢出时,THx=TLx=0,如不赋值,则从0开始计数;在模式2中,由于具有自动重装载功能,所以可以从特定值开始计数。典型应用是作串行口波特率发生器(定时器/计数器0不能作为串行波特率发生器)。(4)模式3定时器/计数器1设置为模式3时,将使TH1和TL1中的值保持不变,即使有输入脉冲,TH1和TL1也不会计数(相当于TR1=0的情况,或者说定时器/计数器1失去了作用);定时器/计数器0设置为模式3时,TH0与TL0分成两部分使用。TL0:8位计数器,同模式0类似,涉及到T0引脚、T0的C/T、GATE、TRO、INT0引脚等,由TF0申请中断;TH0:8位计数器,只可以作内部时钟,占用定时器T1的控制位,由TR1控制开关,由TF1申请中断。2.6.4定时器/计数器的初始化初始化过程如下:根据

温馨提示

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

评论

0/150

提交评论