单片机应用技术 试卷
一、填空题(每空2分,共40分)1、8051单片机外部中断请求信号有( )方式和( )方式 ,在电平方式下,当采集到INT0、INT1的有效信号为( )时,激活外部中断。
2、在定时器工作方式 0 下,计数器的宽度为( )位,如果系统晶振频率为 12MHZ ,则最大定时时间为( )。
3、外部中断0的入口地址为( ),定时器T0的入口地址为( ),外部中断1的入口地址为( ),定时器T1的入口地址为( )。
4、进行字节操作时,中断允许控制寄存器的地址为( )。
5、一般的计算机系统都是由( )、( )、( )三总线结构组成。
6、89C51片内RAM有( )字节,其中包含( )字节用户数据存储单元和( )字节的特殊功能寄存器单元,片内ROM有( )字节。
7、89C51具备完善的中断功能,有( )个中断源,其中( )个外部中断源,( )个定时/计数器中断和一个( )中断。
二
、选择题(每题3分,共30分)1、用8051的定时器,若用软启动,应使TOMD中的 。
A.GATE位置1 B.C/T位置1 C.GATE位置0 D.C/T位置0
2、用8051的定时器T1作定时方式,用模式1,则工作方式控制字TMOD为 。
A.01H B.05H C.10H D.50H
3、用8051的定时器T1作定时方式,用模式2,则初始化编程为 。
A.MOV TMOD,#06H B.MOV TMOD,#20H
C.MOV TMOD,#10H D.MOV TMOD,#60H
4、启动定时器1开始计数的指令是使TCON的 。
A.TR0位置1 B.TR0位置0
C.TR1位置1 D.TR1位置0
5、当CPU响应定时器T1的中断请求后,程序计数器PC的内容是 。
A.0003H B.000BH
C.00013H D.001BH
6、当定时器T0发出中断请求后,中断响应的条件是 。
A.SETB ET0 B.SETB EX0
C.MOV IE,#82H D.MOV IE,#61H
7、8051的定时器T0作计数方式,用模式1(16位计数器)则应用指令 初始化编程。
A.MOV TMOD ,#01H B.MOV TMOD ,10H
C.MOV TMOD ,#05H D.MOV TCON ,#05H
8、单片机外部中断0开中断的指令是 。
A.SETB ETO B.SETB EXO
C.CLR EX0 D.SETB ET1
9、MCS—51单片机的TMOD模式控制寄存器是一个专用寄存器,用于控制T1和T0的操作模式及工作方式,其中C/
表示的是 。
A.门控位 B.操作模式控制位
C.功能选择位 D.启动位
10、8051单片机计数初值的计算中,若设最大计数值为M,对于模式0下的M值为 。
A.M=
=8192 B.M=
=256
C.M=
=16 D.M=
=65536
。
三、综合题(共30分)
1、请写出为低电平触发的中断系统初始化程序。(共5分)
2、CPU响应中断的条件有哪些?(共10分)
3、定时/计数器T0工作方式1,定时1ms,采用中断方式进行溢出处理。写出初始化程序。设单片机晶振频率为6MHz。(共15分)
单片机中各种周期的关系与定时器原理
时钟周期:
时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。通常也叫做系统时钟周期。是计算机中最基本的、最小的时间单位。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,也就是机器周期=12*时钟周期,(上面讲到的原因)如果是12MHZ,那么机器周期=1微秒。单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。
机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一个单片机选择了12MHZ晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。
但是在8051F310中,CIP-51 微控制器内核采用流水线结构,与标准的 8051 结构相比指令执行速度有很大的提高。在一个标准的 8051 中,除 MUL和 DIV以外所有指令都需要 12 或 24 个系统时钟周期,最大系统时钟频率为 12-24MHz。而对于 CIP-51 内核,70%的指令的执行时间为 1或2个系统时钟周期,只有 4 条指令的执行时间大于 4 个系统时钟周期。 所以在计算定时器的值时要注意这里的变化。
指令周期:
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
系统时钟:
系统时钟:系统时钟就是CPU指令运行的频率,这个才是CPU真正的频率。
单片机内部所有工作,都是基于由晶振产生的同一个触发信号源,由这个信号来同步协调工作步骤,我们把这个信号称为系统时钟,系统时钟一般由晶振产生,但在单片机内部系统时钟不一定等于晶振频率,有可能小于晶振频率,也有可能大于晶振频率,具体是多少由单片机内部结构决定,正常情况和晶振频率会存在一个整数倍关系。系统时种是整个单片机工作节奏的基准,它每振荡一次,单片机就被触发执行一次操作。
一般来说,单片机只有一个时钟源.用了外部晶振,就不用内部RC,用了内部RC,就不用外部晶振.振荡器振荡,产生周期波.单片机在这样的周期波的作用一下有规律的一拍一拍的工作,波的频率越高,单片工作得就越快,波的频率越低,单片机工作得就越慢。
有了以上的概念以后,就可以正确的理解定时器的工作原理了,在8051F310单片机中,有3个定时器,如果定时器1工作在模式1下,如工作模式1下,是16位的计时器,最大数值是65535,当再加1时(=65536),就会发生溢出,产生中断,所以如果我们要它计1000个数, 那么定时初值就是65536-1000,结果就是64536,这个值送给TH、TL,因为是16进制的,所以高位是64536/256取商,低位是64536%6取余。
再者,就是每一计数的时间是多久?一般我们取12M晶振时,一个周期刚好是1us,计数1000个就是1ms,这是因为标准的51单片机是12时钟周期的(STC有6时钟和1时钟方式)。那么,如果我们晶振是12M,就比较好算,如果是其它的,就用12去除好了。比如是6M的,那么就是12/6=2,每个计数是2us,那么你要定时1ms就只要计数500个即可以。
定时器的初值跟定时器的工作方式,跟晶振频率都有关系。一个机器周期Tcy=晶振频率X12,计数次数N=定时时间t/机器周期Tcy,那么初值就X=65536-N,得出的数化成十六进制就行了。这里是用定时器O工作方式1做例子,如果是其它工作方式,就不能是65535了。工作方式0是8192,方式2,3是256。这里有一个公式:
TH=(65536-time/(12/ft))/256
其中,time就是要延时的100ms(要取100000us),ft是晶振频率。这个式子又可以简化成TH=(65536-time*ft/12)/256
TL=(65536-time*ft/12)%6
在一本书上还看到了这样计算定时初值的:
TH0=-(50235/256); //重装100ms定时初值
TL0=-(50235%6); ///这里使用的6M晶体,
这里是6M晶体,延时100ms,那么按上面讲的原理,6M是每个计数为2us,100ms定时就是计数50000个。
那么,定时器初值要 65536-50000=15536,转成16进是3CB0。这就是要送给TH(=3C) 和TL(=B0)的值。
程序中写 TH0=-(50235/256);其实它是这样的TH0=0x100-(50235/256); 在51中,取负数,其结果就是它的值取反+1,也可以用0x100(十进制的256)去减,结果是多少呢?结果就是3C
相关问答
51单片机的晶振频率为6MHZ,定时器/计】作业帮
[最佳回答]CDACBBBCC
单片机时钟频率为6MHZ,机器周期为多少是51单片机_作业帮
[最佳回答]■\x09(1)振荡周期:也称时钟周期,是指为单片机提供时钟信号的振荡源的周期,一般实验板上为11.0592MHZ,12MHZ和24MHZ用的也比较多.■\x09(2)状态周期...
51单片机编写一个10s的延时程序,晶振频率为6MHZ?
6M晶振,一个机器周期2us方式0最多计数65536也就是13072.us无法满足10s因此可以用定时器计数50000也就是0.1s计10个这样的数就能满足要求,也就是一开始给...
单片机,当定时器/计数器工作方式于1下,晶振频率为6M,请计算最短定时时间和最长定时时间。各是多少?
定时器是通过计数溢出来计时的,工作方式1是16位计数方式。晶振频率为6M,那么计数器加1需要一个机器周期2us。机器周期=12/fosc,fosc为晶振频率。计数初值为1...
...的晶振频率提高2倍,则机器周期变为原来的:()A、1/2】作业帮
[最佳回答]BABDC你究竟想问哪个问题?51单片机中断入口地址的含义是产生相应中断的时候程序跳转到哪个地址执行代码,更具体点说就是PC的值压栈之后放入的新的值...
6m晶振介绍?
6M晶振,也称为6MHz晶振,是一种常用的晶体振荡器。其工作原理基于石英晶体的压电效应,通过一定的电路设计,使其产生6MHz的振荡频率。这种晶振广泛应用于各种电...
单片机中晶振频率为12MHZ的机器周期怎么算?_作业帮
[最佳回答]1、机器周期=晶振周期*12.2、所以单片机中晶振频率为12MHZ的机器周期=12*1/12M=1微秒.
单片机的时钟电路所采用的晶振频率为24MHz,那么单片机的时钟...
[最佳回答]LZ确定问的是时钟周期?时钟周期就是晶振提供的震荡频率的倒数.如果你的意思是单片机的机器周期的话就不是这样了,晶振给单片机提供一个震荡频率之后...
单片机基础与应用题求解已知晶振频率为12mhz,在P1.7引脚上输...
[最佳回答]1)确定定时器/计数器的工作方式.用定时方式2,能够自动重装初始值的2)计算定时常数没有必要,现在都是由编译软件自己算3)写出完整程序如下:;------...
为什么单片机晶振实际是11.0592MHz,而不是12MHz?
标准的51单片机晶振是1.2M-12M,一般由于一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好计算,而且速度相对是最高的(当然现在也有更高频率的...