投稿指南
来稿应自觉遵守国家有关著作权法律法规,不得侵犯他人版权或其他权利,如果出现问题作者文责自负,而且本刊将依法追究侵权行为给本刊造成的损失责任。本刊对录用稿有修改、删节权。经本刊通知进行修改的稿件或被采用的稿件,作者必须保证本刊的独立发表权。 一、投稿方式: 1、 请从 我刊官网 直接投稿 。 2、 请 从我编辑部编辑的推广链接进入我刊投审稿系统进行投稿。 二、稿件著作权: 1、 投稿人保证其向我刊所投之作品是其本人或与他人合作创作之成果,或对所投作品拥有合法的著作权,无第三人对其作品提出可成立之权利主张。 2、 投稿人保证向我刊所投之稿件,尚未在任何媒体上发表。 3、 投稿人保证其作品不含有违反宪法、法律及损害社会公共利益之内容。 4、 投稿人向我刊所投之作品不得同时向第三方投送,即不允许一稿多投。 5、 投稿人授予我刊享有作品专有使用权的方式包括但不限于:通过网络向公众传播、复制、摘编、表演、播放、展览、发行、摄制电影、电视、录像制品、录制录音制品、制作数字化制品、改编、翻译、注释、编辑,以及出版、许可其他媒体、网站及单位转载、摘编、播放、录制、翻译、注释、编辑、改编、摄制。 6、 第5条所述之网络是指通过我刊官网。 7、 投稿人委托我刊声明,未经我方许可,任何网站、媒体、组织不得转载、摘编其作品。
期刊导读

单片机原理及应用第三版1-6章全(7)

来源:微计算机信息 【在线投稿】 栏目:综合新闻 时间:2020-11-03
作者:网站采编
关键词:
摘要:方法2,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由P1.0接INT0产生),另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定

方法2,一个作为定时器,在定时中断后产生一个外部计数脉冲(比如由P1.0接INT0产生),另一个定时器工作在计数方式。这样两个定时器的定时时间为一个定时器的定时时间乘以另一个定时器的计数值。

6.当定时器T0用于方式3时,应该如何控制定时器T1的启动和关闭?

答:由TMOD寄存器的D6位“C/T*”来控制定时器T1的启动和关闭。

7.TH x与TL x(x=0,1)是普通寄存器还是计数器?其内容可以随时用指令更改吗?更改后的新值是立即刷新还是等当前计数器计满后才能刷新?

答:THx与TLx (x=0,1)是由特殊功能寄存器构成的计数器,其内容可以随时用指令更改,更改后的新值是立即刷新。但在读THx、TLx的值时,应该先读THx值,后读TLx,再读THx。若两次读得THx相同,则可确定读得的内容正确。若前后两次读得的THx有变化,再重复上述过程。

五、编程

1.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数工作方式,如此循环不止。假定AT89S51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写程序。

答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。参考程序如下:

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP IT0P

MAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2

MOV TL0,#156 ;计数100个脉冲的初值赋值

MOV TH0,#156

SETB GATE ;打开计数门

SETB TR0 ;启动T0,开始计数

SETB ET0 ;允许T0中断

SETB EA ;CPU开中断

CLR F0 ;设置下一轮为定时方式的标志位

WAIT: AJMP WAIT

IT0P: CLR EA ;CPU关中断

JB F0,COUNT ;F0=1,转计数方式设置

MOV TMOD,#00H ;定时器/计数器T0为定时方式0

MOV TH0,#0FEH ;定时1ms初值赋值

MOV TL0,#0CH

SETB EA

RETI

COUNT: MOV TMOD,#06H

MOV TL0,#156

SETB EA

RETI

2.编写程序,要求使用T0,采用方式2定时,在P1.0输出周期为400μs,占空比为10:1的矩形脉冲。

答:据题意,从P1.0输出的矩形脉冲的高低电平的时间为10:1,则高低电平的时间分别为363.63μs和36.37μs。如果系统采用6MHz晶振的话,Tcy=2μs,因此高低电平输出取整,则约为364μs和36μs。参考程序如下:

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP IT0P

MAIN: MOV TMOD,#02H ;定时器/计数器T0为定时方式2

MOV TL0,#4AH ;定时364μs初值赋值

SETB TR0 ;启动T0,开始计数

SETB ET0 ;允许T0中断

SETB EA ;CPU开中断

SETB P1.0

WAIT:AJMP WAIT

IT0P:CLR EA

CLR P1.0 ;关中断

MOV R0,#9

DLY:DJNZ R0,DLY ;延时36μs

MOV TL0,#4AH ;定时364μs初值赋值

SETB P1.0

SETB EA

RETI

3.编写程序要求:当P1.0引脚的电平正跳变时,对P1.1的输入脉冲进行计数;当P1.2引脚的电平负跳变时,停止计数,并将计数值写入R0、R1(高位存R1,低位存R0)。

答:将P1.1的输入脉冲接入INT0,即使用T0计数器完成对P1.1口的脉冲计数。参考程序如下:

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP IT0P

MAIN: JNB P1.0,MAIN

MOV TMOD,#05H ;定时器/计数器T0为计数方式1

SETB TR0 ;启动T0,开始计数

SETB ET0 ;允许T0中断

SETB EA ;CPU开中断

WAIT: JB P1.2,WAIT

CLR EA

CLR TR0

MOV R1,TH0

MOV R0,TL0

AJMP $

IT0P: INC R2

RETI

文章来源:《微计算机信息》 网址: http://www.wjsjxx.cn/zonghexinwen/2020/1103/336.html



上一篇:不拆封也能开箱?英国科学家不拆绷带,照样让
下一篇:【历史】传感器发展通史简述

微计算机信息投稿 | 微计算机信息编辑部| 微计算机信息版面费 | 微计算机信息论文发表 | 微计算机信息最新目录
Copyright © 2019 《微计算机信息》杂志社 版权所有
投稿电话: 投稿邮箱: