




已阅读5页,还剩112页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程总结,考试范围题型,考试范围,微型计算机的运算基础(1.4)引脚功能(2.2)与组成(2.3)指令系统与汇编语言程序设计(4.2.5散转与4.2.6子程序不考)输入/输出方式与中断定时器/计数器(t0/t1)+8253串行接口存储器扩展,题型,运算基础(20分,4分/小题)简答题(30分,6分/小题)程序设计(24分,12分/小题)存储器扩展(12分)接口应用(14分),第一部分运算基础,不同进制数之间的转换带符号数的原码、反码和补码算术运算和逻辑运算定时器/计数器初值波特率,不同进制数之间的转换,不同进制数转换成十进制数按权展开法表示不同进制数的尾部字母:二(b),十六(h),八(q),十(d)(可略)例:10101010b=127125123121=128+32+8+2=170,十二整数部分:除2取余,直到商为0小数部分:乘2取整,直到积为0或达到精度要求为止例:100=b=h=q例:0.625=b=h=q,二进制、八进制与十六进制之间的转换二八三合一八二一分三二十六四合一十六二一分四例:1110110b=76h9bh=10011011b0.101011b=0.ach问:01110110b=?q0.1010110b=?q,带符号数的原码、反码、补码,原码定义:在表示带符号数时,正数的符号位为“0”,负数的符号位为“1”,数值位表示数的绝对值,这样就得到了数的原码。,对于字长为n位的机器数,当真值x0时,x可表示为xn-2xn-3x0;当真值x0时,x可表示为xn-2xn-3x0;则x的原码可定义为:,原码的缺点:l“0”的原码有两种形式,这在运算中非常不方便。0原00000000b0原10000000bl原码在进行两个异符号数相加或两个同符号数相减时,需做减法运算。由于微机中一般只有加法器而无减法器,所以,为了把减法运算转变为加法运算就引入了反码和补码。,原码的用途:原码做乘除法运算方便,两数的符号和数值分别处理:积的符号为两数符号位的异或运算结果积的数值部分为两数绝对值相乘的结果,反码定义:正数的反码与原码相同;负数的反码可将负数原码的符号位保持不变、数值位按位取反得到,或者将负数看作正数求原码,再将所有位按位取反得到。,在n位机器数的计算机中,数x的反码定义为:,例如八位微机中:,缺点:“0”的反码也有两种表示法,即0和0。0反00000000b0反11111111b,补码(难点)定义:正数的补码与原码相同;负数的补码等于它的反码末位加1,即x补x反1,优点:0的补码为00000000b,只有这一种形式。,128补10000000b,补码的含义:以时钟对时为例来说明,现由7点钟调到4点钟。,顺时针调:794(mod12),逆时针调:734(mod12),由于时钟上超过12点时就会自动丢失一个数12(这个自动丢失的数叫做“模”)73=7+-3补=7+12+(-3)=7+9=12+4=4,已知补码求真值:已知正数的补码求真值与原码相同,只要将符号位的0变为(正号),即得到它的真值。已知负数的补码求真值方法1:将负数补码的数值位按位取反再加1,将符号位的1变为(负号),即得到它的真值。方法2:用公式:x=-(2n-x补),已知补码为01111111b,其真值为+1111111b=+7fh已知补码为11111111b,其真值为:10000000b+1=10000001b,其真值为01h或:x=(2811111111b)=(256255)=1,小结:已知带符号数的机器数求真值,已知正数的原码、反码、补码求真值,只需将符号位的“0”改为正号“+”即可。已知负数的原码求真值,只需将原码的符号位的“1”改为负号“-”即可。已知负数的反码求真值,数值位取反,符号为改为“-”;或用公式计算:x=-(2n-1-x反)已知负数的补码求真值,数值位取反加1,符号为改为“-”;或用公式计算:x=-(2n-x补),例:已知带符号数的机器数为0d6h,求其真值。若0d6h是原码,则真值为:若0d6h是反码,则真值为:若0d6h是补码,则真值为:,11010110b,-1010110b,-56h,11010110b,-0101001b,-(0ffh-0d6h),11010110b,-0101010b,-(00h-0d6h),例:已知带符号数的机器数为56h,求其真值。真值=+56h,-29h,-2ah,当n=8时,几种码的表示范围,当n=16时,几种码的表示范围,带符号数定点补码运算及判ov,定点补码运算定律:当x,y,x+y,x-y均在2n1(2n11)范围内时,则:补补补补补补如果xy,x-y的值不在2n1(2n11)范围内(n=8时-128,127),则机器就产生了溢出错误,上式不成立,运算结果无意义。,溢出判别(overflow),若xy2n11,为正溢出;若xy2n1,为负溢出。判溢出的方法:1、双进位位法(本书主要用此法判溢出)ov=c8c7c8、c7相同不溢出,不同溢出。2、双符号位法-变形码0v=sfsfsf、sf相同不溢出,不同溢出。,(1)定点补码加法步骤:、将、(或)转换为补码。、进行加法运算,符号位参与运算。,编写出程序片段:mova,#76;(a)=4ch=01001100badda,#23;(a)=4ch+17h=63h或:mova,#4ch;(a)=4ch=01001100badda,#17h;(a)=63h,补码,真值,两个正数的和为负数,两个负数的和为正数,(2)定点补码减法运算xy补x(y)补x补y补步骤:、将、(或)转换为补码。、进行减法运算,符号位参与运算。判溢出的方法与加法相同,例1-9已知x76,y23,求xy,编写出程序片段:mova,#76;(a)=4ch=01001100bmovb,#-23;(b)=0e9hclrcsubba,b;(a)=4ch-0e9h=63h,4ch,0e9h,(1)逻辑与运算逻辑与的运算符为“”,其运算规则为:00001l00111,逻辑运算计算机由专门的逻辑电路完成一些逻辑运算。逻辑运算都是位对位运算,即运算中位与位之间互不相关,不存在进位或借位,比算术运算简单。,逻辑与运算的真值表,逻辑“与”的作用:1、将一个字的一部分析取出来,与12、将一个字的一部分清0,又称屏蔽与03、可用于“拆字”4、自身相与,不变,析取,清零,例:将56h拆成05h和06hmova,#56h;(a)=01010110b=56hanla,#0fh;(a)=00000110b=06hmov30h,a;(30h)=06hmova,#56h;(a)=56hanla,#0f0h;(a)=01010000b=50hswapa;(a)=00000101b=05h,析取低四位屏蔽高四位,逻辑或运算的真值表,逻辑“或”的用途1、某位置12、自身相或,不变3、拼字,或0,不变,或1,置1,例:求9的ascii码mova,#30h;(a)=00110000borla,#09h;(a)=00111001b=39h,(2)逻辑或运算逻辑或的运算符为“”,其运算规则为:00001101111,例:求-5的补码mova,#5;(a)=00000101bcpla;(a)=11111010binca;(a)=11111011b=0fbh,-5的补码,微型机中通常有“求反”(cpl)指令。在机器中求一个数的补码,就是先求该数的“反”,再在末位加1得到的。,例:将68h的低四位求反mova,#68h;(a)=01101000bxrla,#0fh;(a)=01100111b,高四位不变低四位变反,计数器初值的计算t/c在计数模式下,计数之前必须给它的计数器th0、tl0或th1、tl1选送计数初值。t/c的计数器是在计数初值的基础上加1计数的,当计数器回“0”时自动产生溢出,置位tfx中断标志,向cpu提出中断请求。设需要计数器计数的个数为x,计数初值为c,由此可得出如下计算计数初值的通式:计数初值:cm-x(6-1)式中,m为计数器的模值,该值和计数器的工作方式有关。当方式0时m当方式1时(6-2)当方式2、3时,定时器初值计算在定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数,用x表示计数个数,m表示模,c表示定时初值,tcy表示机器周期,则1tcy12/fosc,因此,定时时间t的计算公式为:txtcy(m-c)tcy定时初值公式为:cm-t/tcy定时器的溢出率1/tfosc/(12x)fosc/(12(m-c),例:设单片机晶振频率fosc=12mhz,利用t/c0产生10ms的定时,试计算定时初值。,波特率表示每秒钟传送二进制数码的位数(亦称比特数),单位是bps。比如1秒钟传送1位,就是1波特,即1波特1bps。波特率是串行通信的重要指标,用于表征数据传送的速率。波特率越高,数据传送速度越快。,波特率(baudrate),假若数据传送速率为120字符/秒,而每一个字符帧已规定为10个数据位,则传输速率为120101200位/秒,即波特率为1200。,【例】已知单片机串行口工作在方式3,采用奇校验,若要求每分钟传送52363个字符,则波特率是多少?b=5236311/60=9600波特,第二部分基本概念,单片机内部结构和功能(cpu、存储器)单片机的引脚功能寻址方式输入/输出接口的作用和常用的输入输出方式中断的基本概念定时器/计数器的基本概念串行通信的基本概念,2.3at89c52单片机的主要组成部分,cpu是单片机内部的核心部件,由运算器和控制器两大部分组成。1.运算器运算器是计算机的运算部件,用于实现算术逻辑运算、位变量处理、移位和数据传送等操作。它以算术逻辑单元(alu)为核心,加上累加器acc、寄存器b、暂存器tmp1和tmp2、程序状态字(psw)以及十进制调整电路和布尔处理器组成。,2.3.1cpu,程序状态字psw,psw.7psw.6psw.5psw.4psw.3psw.2psw.1psw.0,cy(psw.7)进位标志位ac(psw.6)辅助进位(或称半进位)标志f0(psw.5)用户标志位rs1和rs0(psw.4,psw.3)工作寄存器组选择位ov(psw.2)溢出标志位psw.1未定义位p(psw.0)奇偶标志位,cy是psw中最常用的标志位。由硬件或软件置位和清零。,cy,字节运算中(alu):它表示运算结果是否有进位(或借位)。cy=subc8加法时(sub=0):有进位cy由硬件置“1”即cy=1;无进位cy被硬件清“0”即cy=0。减法时(sub=1):有借位cy由硬件置“1”即cy=1;无借位cy被硬件清“0”即cy=0。,位操作(布尔操作)时,cy作为累加器使用,其作用相当于字节操作的累加器acc。,在指令中可作为转移的条件jcrel;cy=1转移jncrel;cy=0转移位操作指令中做累加器anlc,bitanlc,/bitorlc,bitorlc,/bitsetbcclrccplcmovc,bitmovbit,c,cy,c,ac(psw.6)辅助进位(或称半进位)标志。当执行加减运算时,其运算结果产生低四位向高四位进位或借位时,ac由硬件置“1”;否则ac位被自动清“0”。ac=subc4一般在bcd码运算时,系统用于进行十进制调整。,ac,ov,ov(psw.2)溢出标志位它反映运算结果是否溢出,溢出时则由硬件将ov位置“1”;否则置“0”。只有在补码运算时起作用。双进位位法判溢出:ov=c8c7,溢出和进位是两种不同性质的概念。溢出是指有正负号的两个数运算时,运算结果超出了累加器以补码所能表示一个有符号数的范围。补码运算是闭运算。而进位则表示两数运算最高位(d7)相加(或相减)有无进位(或借位)。无符号运算是开运算。因此使用时应加以注意。,ov与cy,f0(psw.5)用户标志位。用户可根据自己的需要对f0位赋予一定的含义,由用户置位或复位,作为软件标志。setbf0;置位clrf0;复位相当于高级语言中的逻辑变量,f0,p(psw.0)奇偶标志位p标志表明累加器acc中1的个数的奇偶性。在每条指令执行完后,单片机根据acc的内容对p自动置位或复位。若累加器acc中有奇数个“1”,则p=1;若累加器acc中有偶数个“1”,则p=0。,p,专门用来存放指令代码的专用寄存器,对指令进行译码,即把指令转变成所需的电平信号。cpu根据id输出的电平信号使定时控制电路定时地产生执行该指令所需的各种控制信号,以使计算机能正确执行程序所要求的各种操作。,控制器是计算机的指挥控制部件,对来自存储器中的指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需要的控制信号。包括程序计数器pc、指令寄存器ir、指令译码器id、数据指针dptr、堆栈指针sp以及定时控制与条件转移逻辑电路等。,2.控制器,pc是程序的字节地址计数器,其内容是将要执行的下一条指令的地址,寻址范围达64kb。pc有自动加1功能,从而实现程序的顺序执行。可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。,程序计数器(pc)16位,数据指针dptr为16位寄存器。它的功能是存放16位的地址,作为访问外部程序存储器和外部数据存储器时的地址。编程时,dptr既可按16位寄存器使用,也可以按两个8位寄存器分开使用。即:dphdptr的高8位dpldptr的低8位,数据指针dptr,堆栈是一种数据结构,是内部ram的一段区域。堆栈存取数据的原则是“后进先出”。堆栈指针sp是一个8位寄存器,用于指示堆栈的栈顶,它决定了堆栈在内部ram中的物理位置。at89c52单片机的堆栈地址向大的方向变化(与微机堆栈地址向小的方向变化相反)。系统复位后,sp初值为07h,实际应用中通常根据需要在主程序开始处对堆栈指针sp进行初始化,一般设置sp为307fh。设立堆栈的目的是用于数据的暂存,中断、子程序调用时断点和现场的保护与恢复。,堆栈指针sp8位,2.3.2at89c52单片机的存储器,单片机在系统结构上采用了哈佛型,其存储器在物理结构上分程序存储器(rom)和数据存储器(ram)。有四个物理上相互独立的存储空间,其配置如图2-6所示:,片内rom,片外rom,片内ram,片外ram/i/o口,8kb,用户使用的角度上看,存储空间分为三类:片内外统一编址的64k字节的rom;256字节片内ram;64k字节片外ram或i/o口地址空间四个空间地址的重叠rom中片内外低8k字节:控制信号/earam中片内外低256个字节:mov与movxram与rom64k地址:控制信号/psensfr和高128b的ram:直接寻址和间接寻址,说明,0000h-0002h(开机复位单元)3个0003h-000ah(int0中断地址区)8个000bh-0012h(t/c0中断地址区)8个0013h-001ah(int1中断地址区)8个001bh-0022h(t/c1中断地址区)8个0023h-002ah(串行口中断地址区)8个002bh-0032h(t/c2中断地址区)8个,2.2.2.1程序存储器,特殊单元,当cpu的引脚/ea接高电平时,pc在0000h1fffh范围内,cpu从片内rom取指令;而当pc1fffh后,则自动转向片外rom去取指令。当引脚/ea接低电平时,89c52片内rom不起作用,cpu只能从片外rom取指令,地址可以从0000h开始编址89c52从片内rom和片外rom取指时执行速度相同。,数据存储器用来存放运算的中间结果、标志位及数据的暂存和缓冲等。分为片内ram和片外ram。89c52单片机片内数据存储器最大可寻址256个单元,片外可寻址16位(64kb)的地址空间。片内数据存储器和片外数据存储器是单独编址的。,数据存储器,片内数据存储器(ram),与t2相关的6个sfr没有列出,00h,ffh,r0r7,4个,(1)工作寄存器(00h1fh),这16个单元(共计128位)的每一位都有一个8位表示的位地址,位寻址范围为00h7fh。,(2)可位寻址区(20h2fh),28h字节地址,mov28h,#56h,setb43h,clr42h,1,0,字节操作,位操作,30hffh是供用户使用的一般ram区,也是数据缓冲区,共208个单元。对用户ram区的使用没有任何规定或限制,一般用于存放用户数据及作堆栈区使用。,(3)用户ram区(30hffh),当一条指令访问7fh以上的内部地址单元时,寻址方式决定是访问高128b的ram单元还是访问特殊功能寄存器。,80h-ffh单元高128个字节与特殊功能器地址是重叠的,但物理上分开。,直接寻址方式,访问sfrmov0a0h,#data;p2口字节地址为0a0h间接寻址方式,访问高128b的ram单元movr0,#0a0hmovr0,#data,89c52片内有27个特殊功能寄存器,又称为专用寄存器。它们离散地分布在80h0ffhram空间中。在27个特殊功能寄存器中,有12个寄存器可位寻址。它们的字节地址正好能被8整除,而且字节地址与该字节最低位的位地址相同。,特殊功能寄存器sfr的名称及地址(与t2相关的6个sfr没有列出),特殊功能寄存器地址分布图,1、电源引脚gnd和vccvcc为+5v电源端,2、时钟电路引脚xtal1和xtal2xtal1和xtal2是外接晶体引线端。当芯片使用内部时钟时,用于外接石英晶体和电容;当用外部时钟时,用于接外部时钟脉冲信号。,2.2.1单片机引脚功能介绍,4、端口线p0p3,p0口(p0.0p0.7)可作为外部扩展时的数据总线/低8位地址总线的分时复用口,又可作为通用i/o口。每个引脚可驱动8个ttl负载。对flash进行编程和校验时,p0口用于输入/输出数据。p1口(p1.0p1.7)可作为通用i/o口。每个引脚可驱动4个ttl负载。对flash进行编程和校验时,用来接收低8位地址。此外,p1.0和p1.1还可分别作为外部计数输入和输入。,p2口(p2.0p2.7)可作为外部扩展时的高8位地址总线,又可作为通用i/o口。每个引脚可驱动4个ttl负载。对flash进行编程和校验时,用来接收高位地址。p3口(p3.0p3.7)是双功能复用口,作为通用i/o口时,功能与p1口相同,常用第二功能。每个引脚可驱动4个ttl负载。,3输入/输出接口的作用,接口电路的作用锁存作用防止由于cpu速度快,外设慢而产生的丢数现象隔离作用防止db上的信息重叠变换作用在cpu与外设之间进行信息类型、电平、传送接收方式变换联络作用在cpu与外设之间进行联络,ready,busy,无条件传送方式(又称同步传送)查询式传送方式(又称条件传送异步传送)中断传送方式dma传送方式,4输入/输出数据的传送方式,at89c52中断响应的基本条件,cpu中断受阻的条件:cpu正在处理相同或更高级中断现行的机器周期不是所执行指令的最后一个机器周期正在执行的指令是访问ie、ip或reti指令。在执行上述指令后至少再执行一条指令,才可能响应中断。,中断响应的基本条件:首先要有中断源发出中断申请;中断总允许位ea=1,即cpu允许所有中断源申请中断;在中断源寄存器tcon和scon中,申请中断的中断允许位为1,即此中断源可以向cpu申请中断。,acpu自动完成:cpu先在每个机器周期的s5p2期间,对各中断源重复进行查询,并设置相应的中断标志位。然后在下一个机器周期s6期间按照ip和自然优先级顺序查询各中断如果中断响应条件满足,且不存在中断阻断的情况,则cpu就响应中断。硬件生成长调用指令自动地把断点地址压入堆栈保护,并随之将对应的中断入口装入程序计数器pc,使程序转向该入口地址,以执行中断服务程序。a用户必须完成:在这些入口地址存放一条无条件跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去。,中断响应过程,低级中断源的中断服务程序,clrea,setbea,共同点:都是通过计数器计脉冲的个数来实现的,定时方式与计数方式,1、定时方式t/c计数8051内部机器周期的个数,由计数个数可以计算出定时时间。每个机器周期使t/c的计数器增加1,直至计满回零后自动产生溢出中断请求,表示定时时间到。fosc=12mhz时,tcy=1us,2、计数方式t/c计数来自引脚t0(p3.4)和t1(p3.5)的外部脉冲信号的个数。输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。最高计数频率为振荡频率的1/24。即计数周期=2机器周期。,不同点:,并行通信与串行通信串行通信的制式异步通信与同步通信,7.1串行通信概述,并行通信与串行通信,传送速度快,但有多少数据位就需多少根数据线,因此传送成本高。在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间的数据传送都是并行的距离通常小于30m,并行通信数据的各位同时传送,最少只需一根数据线即可完成,成本低但速度慢,且数据的传送控制比并行通信复杂。计算机与远程终端或终端与终端之间的数据传送通常都是串行的距离可以从几米到几千公里,串行通信数据一位一位顺序传送,单工方式信号(不包括联络信号)在信道中只能沿一个方向传送,而不能沿相反方向传送的工作方式称为单工方式。半双工方式通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。这样的传送方式称为半双工方式。全双工方式若信号在通信双方之间沿两个方向同时传送,任何一方在同一时刻既能发送又能接收信息,这样的方式称为全双工方式。,串行通信的制式,异步通信和同步通信,在数据通信中,要保证发送的信号在接收端能被正确地接收,必须采用同步技术。常用的同步技术有两种方式,一种称为异步通信也称起止同步方式,另一种称为同步通信也称同步字符同步方式。异步通信异步通信以字符为单位进行数据传输,每个字符都用起始位、停止位包装起来,在字符间允许有长短不一的间隙。在单片机中使用的串行通信都是异步方式。同步通信同步通信用来对数据块进行传输,一个数据块中包含着许多连续的字符,在字符之间没有空闲。同步通信可以方便地实现某一通信协议要求的帧格式。,数据位可取5位、6位、7位或8位,有三种选择:奇、偶或无校验,可以是1、1.5或2位,波特率表示每秒钟传送二进制数码的位数(亦称比特数),单位是bps。比如1秒钟传送1位,就是1波特,即1波特1bps。波特率是串行通信的重要指标,用于表征数据传送的速率。波特率越高,数据传送速度越快。串行通信常用的标准波特率在rs-232c标准中已有规定,如波特率为600、1200、2400、4800、9600、19200等等。假若数据传送速率为120字符/秒,而每一个字符帧已规定为10个数据位,则传输速率为120101200位/秒,即波特率为1200,每一位数据传送的时间为波特率的倒数:t112000.833ms,波特率(baudrate),第三部分程序设计,数码转换程序设计数据块传送多字节的加减法,第四部分存储器扩展,单片机对外扩展三总线地址锁存器eprom扩展ram扩展程序存储器和数据存储器的同时扩展,单片机对外扩展三总线,地址锁存器,单片机的p0口是分时复用的地址/数据总线,因此在进行存储器扩展时,必须利用地址锁存器将地址信号锁存起来。,外部程序存储器的扩展原理,硬件电路如图7-1所示。单片机访问外部程序存储器所使用的控制信号有:ale:低8位地址锁存控制信号/psen:外部程序存储器“读取”控制信号,eprom扩展电路,1常用eprom芯片介绍(名称/8),2扩展电路实例,p2.7=00000h7fffhp2.7=18000hffffh,线选,27648kb,地址空间地址段不唯一,外部数据存储器的扩展方法,静态ram扩展,线选法,译码法,线选,62648kb,地址空间地址段不唯一,片外剩2根线,每片有4段地址段,全译码,片内13根片外3根,3-8译码器的其它输出端代表的地址是什么?,程序存储器和数据存储器的同时扩展方法,eprom与sram扩展,全译码,第五部分接口应用,at89c52单片机的定时器/计数器定时/计数器芯片8253,6.1定时器/计数器的结构6.2定时器/计数器t0和t1的控制6.3定时器/计数器的工作方式及应用,第6章at89c52单片机的定时器/计数器,6.2定时器/计数器的控制,定时器/计数器的工作由tcon和tmod控制。由软件把控制字写入tcon和tmod,用来设置t/c0和t/c1的工作方式和控制功能。当8051系统复位时,tcon和tmod所有位都被清0。,一、工作模式寄存器tmod(89h)tmod用于控制t/c0和t/c1的工作模式,其各位的定义格式如下:,3gate门控位(控制启动方式)gate0时,t/c的启动只要用软件使tr0(或tr1)置1即可,而不管/int0(或/int1)的电平是高还是低。gate1时,只有/int0(或/int1)引脚为高电平且由软件使tr0(或tr1)置1时,才启动t/c工作。也就是t/c的启动受双重控制。注意:tmod不能位寻址,只能由字节设置t/c的工作方式,低半字节设定t/c0,高半字节设定t/c1。,二、控制寄存器tcon(88h)控制寄存器tcon除可字节寻址外,各位还可位寻址。各位定义及格式如下:,1)tf1(tcon.7)t/c1的溢出标志位。当t/c1被允许计数后,t/c1从初值开始加1计数,回零时由高位产生溢出,由硬件自动置tf1为“1”,并向cpu请求中断,当cpu响应并进入中断服务程序后,tf1又被硬件自动清0。tf1也可以由程序查询和清0。2)tf0(tcon.5)t/c0溢出标志位。其功能同tf1。,3)tr1(tcon.6)t/c1运行控制位。由软件置位或复位。当gate(tmod.7)为0时,tr1为1时,启动t/c1计数;tr1为0时,停止t/c1计数。4)tr0(tcon.4)t/c0运行控制位。其功能同tr1,只是gate为tmod.3。5)ie1、it1、ie0、it0(tcon.3tcon.0)外部中断int1、int0的中断标志位和申请信号的触发方式控制位。,1.初始化的步骤at89c52内部的t/c是可编程的,其工作方式和模式通过程序进行设定和控制,称为对t/c的初始化。初始化的步骤是:确定工作方式,即根据要求先给tmod送一个方式控制字;计算计数初值/定时初值,并写入th0、tl0或th1、tl1中;根据需要,置位ea使cpu开放中断,同时置位etx允许t/c中断。ip设定中断优先级;给tcon送命令控制字,即置位trx启动t/c计数。,t/c的初始化,2计数器初值的计算t/c在计数模式下,计数之前必须给它的计数器th0、tl0或th1、tl1选送计数初值。t/c的计数器是在计数初值的基础上加1计数的,当计数器回“0”时自动产生溢出,置位tfx中断标志,向cpu提出中断请求。设需要计数器计数的个数为x,计数初值为c,由此可得出如下计算计数初值的通式:计数初值:cm-x(6-1)式中m为计数器的模值,该值和计数器的工作方式有关。213方式0m216方式1(6-2)28方式2、3,3定时器初值计算在定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数,用x表示计数个数,m表示模,c表示定时初值,tcy表示机器周期,则1tcy12/fosc,因此,定时时间t的计算公式为:txtcy(m-c)tcy定时初值公式cm-t/tcy定时器的溢出率1/tfosc/(12x)fosc/(12(m-c),解:(1)确定t/c0的工作方式要在p1.0输出周期为2ms的方波,只要使p1.0每隔1ms取反一次即可。(2)送t/c0的方式控制字(tmod)00h,即t/c0定时,方式0,只由tr0启动,因为t/c1不用,高4位取0。即:,t/c1不用,高4位取0,只由tr0启动,定时,方式,例1利用t/c0方式0产生1ms的定时,在p1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc12mhz。,应用举例,(3)计算定时初值tcy12/fosc12/(12106)s1us计数个数:x1ms/1us1000定时初值:c(213x)819210007192d1c18h1110000011000b高8位0e0h低5位18hth0初值为0e0h,tl0初值为18h。若采用方式1,16位,则定时初值:c65536-100064536fc18hth0初值为0fch,tl0初值为18h,(4)编程可以采用中断或查询两种方式编写程序。1)中断方式当t/c0定时溢出时,tf0被置1,申请中断。编程使cpu以响应中断方式输出方波,效率比较高。,org0000hajmpmain;转到主程序mainorg000bhajmptc0s;转到t/c0的中断服务程序tc0s主程序:org1000hmain:movsp,#6fhmovtmod,#00h;置t/c0为方式0,定时movth0,#0e0h;送计数初值movtl0,#18hsetbet0;t/c0允许中断setbea;cpu开中断setbtr0;启动t/c0定时here:sjmphere;等待中断中断服务程序:org1200htc0s:movth0,#0e0h;重新装入计数初值movtl0,#18hcplp1.0;输出方波reti;中断返回end,org0000hmovtmod,#00hmovth0,#0e0hmovtl0,#18hsetbtr0loop:jbctf0,do1sjmploopdo1:movth0,#0e0hmov
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论