116页。
8、利用定时器/计数器t0从p1.0输出周期为1s,脉宽为20ms的正脉冲信号,晶振频率为12mhz。试设计程序。
解:波形如图所示。
从图中可知,高电平持续时间是20ms,低电平持续时间是980ms,低电平为高电平持续时间的49倍。
用t0的方式1定时20ms,采取中断方式,在中断服务程序中,利用r7作为计数的寄存器,赋值50,每次20ms中断之后将r7内容减一,当r7是50时也就是第一次20ms将p1.0置高电平,当r7小于等于49时将p1.0清零,r7减到0了则赋回初值50,而时间常数计算如下式:
其中,定时长度为20ms,并由于晶振频率为12mhz,所以机器周期长度为1微秒。
程序如下:org 0
sjmp main
org 0bh
sjmp int0
org 30h
main: mov tmod, #
mov th0, #0b1h
mov tl0, #0e0h
setb et0
setb ea
mov r7, #
setb p1.0
setb tr0
sjmp $
int0: mov th0, #0b1h
mov tl0, #0e0h
djnz r7, exit
mov r7, #
setb p1.0
simp back
exit: clr p1.0
back: reti
end9、要求从p1.1引脚输出1000hz的方波,晶振频率为12mhz。试设计程序。
解:1000hz的方波的周期是1ms,则每隔0.5ms对p1.1取反一次则成为一个方波信号。
用t0的方式1定时0.5ms,采取中断方式,初值计算如下式:
其中,定时长度为0.5ms,并由于晶振频率为12mhz,所以机器周期长度为1微秒。
程序如下:org 0
sjmp main
org 0bh
sjmp int0
org 30h
main: mov tmod, #
mov th0, #0feh
mov tl0, #0ch
setb et0
setb ea
setb p1.1
setb tr0
sjmp $
int0: mov th0, #0feh
mov tl0, #0ch
cpl 1.1
retiend
10、试用定时器/计数器t1对外部事件计数。要求每计数100,就将t1改成定时方式,控制p1.7输出一个脉宽为10ms的正脉冲,然后又转为计数方式,如此反复循环。
设晶振频率为12mhz。
解:首先将t1设成方式1的计数模式,所以(tmod)= #50h, 而计数初值=65536-100=65436=0ff9ch
所以此时,(th1)= #0ffh, (tl1)= #9ch
而当计够100次之后产生中断,将t1设成方式1的定时模式,所以(tmod)= #10h,其中,定时长度为10ms,并由于晶振频率为12mhz,所以机器周期长度为1微秒,定时初值计算如下:
所以此时,(th1)= #0d8h, (tl1)= #0f0h
程序采用中断方式,则计数中断和定时中断都会进入该中断服务程序,由于计数中断和定时中断是交替进行的,所以用一个软件标志位表示进入中断服务程序时的奇偶次,在此选取psw的一个用户自定义位psw.5,该位的位名称是f0,预先清零,而在每次进入中断服务程序时都将它取反,则在f0清零的时候标志着计数功能,f0置位的时候标志着定时功能,程序如下所示:
org 0sjmp main
org 1bh
sjmp int1
org 30h
main: mov tmod, #50h
mov th1, #0ffh
mov tl1, #9ch
clr f0
setb et1
setb ea
clr p1.7
setb tr1
sjmp $
int1: cpl f0每次进入中断服务程序,都改变f0的奇偶性。
jnb f0, posi
setb p1.7定时方式期间,p1.7高电平。
mov tmod, #10h定时10ms,高电平会持续10ms,也就是正脉冲。
mov th1, #0d8h
mov tl1, #0f0h
sjmp exit
posi: clr p1.7计数方式期间,p1.7低电平。
mov tmod, #50h
mov th1, #0ffh
mov tl1, #9ch
exit: reti
end11、利用定时器/计数器t0产生定时时钟,由p1口控制8个指示灯。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为20次/秒(8个灯依次亮一遍为一个周期)。
解:假设晶振频率为12mhz,所以机器周期长度为1微秒,再假设指示灯是用高电平点亮,p1口引脚上的信号如下图所示:
从图中可知,1秒钟之内总共有20次高电平时间片段在p1.0~p1.7引脚上依次出现并循环反复,所以每一次高电平持续时间是1/20秒,即0.
05秒,所以定时时间选择0.05秒。而引脚上的指示灯依次点亮采用将一个初始的二进制**:
00000001b先存入累加器a,然后送出p1口点亮最边上的一个指示灯,并定时0.05秒之后将a中的内容左移位之后,再次送出p1口点亮下一个指示灯的方法来实现。选用t0的方式1的定时模式,时间常数计算如下:
所以此时,(th10)= #03ch, (tl0)= #0b0h
程序采用中断方式,如下所示:
org 0sjmp main
org 0bh
sjmp int0
org 30h
main: mov tmod, #1h
mov th0, #3ch
mov tl0, #0b0h
mov a1初始**是00000001b,中断程序中将该值左移之后送p1口。
mov p1, a
setb et0
setb ea
setb tr0
sjmp $
int0: mov th0, #0feh
mov tl0, #0ch
rl amov p1, a
retiend
12、晶振频率为12mhz,如何用t0来测量20~1s之间的方波周期?又如何测量频率为0.5mhz左右的脉冲频率?
答:第一个问题的解答如下:
1)、将tomd的位3,即t0的gate位设为1,并将20~1s周期的方波信号接到引脚,用定时方式就可测量该信号的正脉冲的宽度,也就是高电平持续时间;
2)、而方波是高低电平时间相等的信号,所以该方波的周期就是高电平持续时间的两倍;
3)、当晶振频率为12mhz时,机器周期是1微秒,定时方式下就是每隔1微秒对加1寄存器th0、tl0进行加1操作,若将t0设置成16位的定时方式,所能测正脉冲的最大宽度也只能达到65536微秒也就是65.536毫秒,则此时能测量的方波的最大周期只能达到约131毫秒,不符合题目要求;
4)、为此不能单纯用原先的加1寄存器th0、tl0单独完成题目要求,而必须结合采用一个寄存器或者寄存单元来计,在此假设使用r7作为计数用的寄存器,若将t0设置成定时50毫秒中断,则在中断服务程序中r7只要计够10次的50毫秒时间段就是0.5秒的高电平持续时间,乘以2就是周期为1秒的方波的周期值,计够200次的50毫秒时间段就是10秒的高电平持续时间,乘以2就是周期为20秒的方波的周期值;
5)、在测量精度方面再进一步考虑,若把重装时间常数的指令作为中断服务程序的第一和第二条来执行,那么从t0的溢出标志被置位到进入到相应的中断服务程序需要至少3个机器周期,执行两条重装时间常数的指令共要2个机器周期,总共5个机器周期才能进行下一次50毫秒的定时,5个机器周期是5微秒,每50毫秒就会产生5微妙的误差,测量0.5秒的高电平,要进入中断服务程序10次,累积的误差就是50微秒,于是要测出周期为1秒(高电平持续0.5秒)的方波,相对误差等于:
,测量10秒的高电平,要进入中断服务程序200次,累积的误差就是1000微秒,于是要测出周期为20秒(高电平持续10秒)的方波,相对误差也是等于:,误差都很小;
6)、如果确实想测量得更精准,那么在算出50毫秒对应该装入的时间常数x之上再加上5,也就是把(x+5)填入,就可抵消5微秒的误差了。
第二个问题的解答如下:
.5mhz左右的脉冲也就是1秒钟出现脉冲的个数是个,也就是50万个,所以用t0的计数方式;
2)、t0的方式1设成计数方式,最大只能计65536次,所以可以考虑两种方法:第一种方法是定时20个50毫秒也就是1秒钟,在一秒钟里,数t1计数引脚出现的脉冲个数,并把计数的数值用1个寄存单元或者寄存器比如用r7,存储计满65536次脉冲后溢出的次数,那么就可以计到次,也就是1677.7215万次,满足量程要求;另一种方法是:
定时50毫秒时间段,在50毫秒时间段里数t1引脚出现的脉冲个数,这个50毫秒时间段是1秒钟时间段的二十分之一,所以数出的脉冲个数要乘以20,就是该信号的频率。
第三次作业讲评
同学们好,作业都做完了吗?是不是很想知道做的对错?下面是第三次作业的参 一定做完作业再看啊。一 作业参 一 名词解释 略 配送配送中心仓库立体仓库蜂窝损失。二 填空题。1 物料搬运的基本内容 阶段性构成 程序模式 图例符号 2 物料搬运系统分析的四个阶段 外部衔接 编织总体运送方案 编制详细搬运方案...
第三次作业讲评
周奉璇4 21 2013 第七章。单选题。1 信托的本质是 a与利益相分离。评析 信托财产所有权的性质极为特殊,表现为财产所有权与利益相分离,这也是信托区别于其他财产管理制度的本质特征。2 信托的最基本职能是 c 评析 财产管理职能,资金融通职能,投资职能,公益服务职能为信托的基本职能。其中,财产管...
第三次作业讲评 14春
同学们好 我将批改作业情况反馈给您,请阅读。本次作业的知识点见于教材的中编实践操作篇的第五至十二章,主要考察大家对思想政治素质教育 道德素质教育 科学文化素质教育 身心素质教育 审美素质教育 劳动素质教育 思维素质教育和创新素质教育部分掌握的情况,下面我逐一地讲评作业中的一些问题,如学习之后,大家还...