设8080c51单片机晶振频率的晶振频率为12MHZ,试用查询定时器溢出标志方式编程实现从P1.0引脚输出周期为2ms的方波

 上传我的文档
 下载
 收藏
很高兴能够参加这个网站,通过自己的资料分享赚一点收益,同时和大家分享资料的快乐,谢谢
 下载此文档
51单片机编程题题库
下载积分:1500
内容提示:51单片机编程题题库
文档格式:DOCX|
浏览次数:23|
上传日期: 17:47:13|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1500 积分
下载此文档
该用户还上传了这些文档
51单片机编程题题库
官方公共微信用T1定时,在P1.0和P1.1 引脚分别输出周期为2ms和500微秒的方波
我的图书馆
用T1定时,在P1.0和P1.1 引脚分别输出周期为2ms和500微秒的方波
用T1定时,在P1.0和P1.1 引脚分别输出周期为2ms和500微秒的方波
为51单片机设计程序。已知89C51单片机的晶振频率为12MHz,要求用T1定时,在P1.0和P1.1 引脚分别输出周期为2ms和500微秒的方波。
悬赏分:0 - 解决时间: 13:47
最佳答案:;================================================汇编程序如下:
ORG 0000HSJMP STARTORG 000BHSJMP T0_INT;------------------------------------START: MOV TMOD, #2 ;T0定时方式2MOV TH0, #6 ;能够自动装入初值.MOV TL0, #6 ;定时SETB TR0 ;启动T0MOV IE, #82H ;允许T0中断.SJMP $ ;等待中断.;------------------------------------T0_INT: ;250us执行一次.CPL P1.1 ;输出周期为500us的方波.INC BMOV C, B.2MOV P1.0, C ;输出周期为2000us的方波.RETI;------------------------------------END
上述程序,经过了PROTEUS的验证。 ;================================================回答者: 做而论道 - 十三级
18:46 提问者对于答案的评价:学习了 谢谢原题网址:
馆藏&123502
TA的推荐TA的最新馆藏[转]&
喜欢该文的人也喜欢关于单片机定时器概念和认识 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
关于单片机定时器概念和认识
资深工程师
14:23:19  
49218&查看
本帖最后由 zhihuizhou 于
15:49 编辑
更多51单片机定时器知识请进入专题:
一、MCS-51单片机的定时器/计数器概念
单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件;MCS-51单片机的晶振经过12分频之后提供给单片机的只有1MHZ的稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的,这个准确的时间间隔是1微秒;
MCS-51单片机外接的是12MHZ的晶振(实际上是11.0592MHZ),所以,MCS-51单片机内部的工作频率(时钟脉冲频率)是12MHZ/12=1MHZ=1000000次/秒=1000000条指令/秒=1000000次/1000000微秒=1次/微秒=1条指令/微秒;也就是说,晶振振荡一次,就会给单片机提供一个时钟脉冲,花费的时间是1微秒,此时,CPU会执行一条指令,经历一个机器周期;即:1个时钟脉冲=1个机器周期=1微秒=1条指令;
注:个人PC机上的CPU主频是晶振经过倍频之后的频率,这一点恰好与MCS-51单片机的相反,MCS-51单片机的主频是晶振经过分频之后的频率;
总之:MCS-51单片机中的时间概念就是通过计数脉冲的个数来测量出来的;1个脉冲=1微秒=1条指令=1个机器周期;
MCS-51单片机定时器/计数器的简单结构图:
d5b772ea152dae6ab90e2d48.jpg (12.5 KB, 下载次数: 20)
14:22 上传
8051系列单片机有两个定时器:T0和T1,分别称为定时器和定时器T1,这两个定时器都是16位的定时器/计数器;8052系列单片机增加了第三个定时器/计数器T2;它们都有定时或事件计数功能,常用于时间控制、延时、对外部时间计数和检测等场合;
二、定时器/计数器的结构
8051单片机的两个定时器T0和T1分别都由两个特殊功能寄存器组成;T0由特殊功能寄存器TH0和TL0构成,而T1则是由TH1和TL1构成;
作为定时器使用时,定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12;
作为计数器使用时,通过引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1;计数器的最高频率一般是时钟振荡频率的1/24;
由此可知,不论是定时器还是计数器工作方式,定时器T0和T1均不占用CPU的时间,除非定时器/计数器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序;所以说,定时器/计数器是单片机中效率高而工作灵活的部件;
三、定时器/计数器的工作模式
除了可选择定时器和计数器的这两种工作方式外,每个定时器/计数器都有4种工作模式;
在模式0、1和2时,T0和T1的工作模式相同;在模式3时,两个定时器/计数器的工作模式不同;
工作模式0:
由TL0的低5位和TH0的全部8位共同构成一个13位的定时器/计数器;定时器/计数器启动后,定时或计数脉冲个数加到TL0上,从预先设置的初值(时间常数)开始累加,不断递增1;当 TL0计满后,向TH0进位,直到13位寄存器计满溢出;溢出时,定时器/计数器硬件会自动地把13位的寄存器值清0,中断标记TF0置1;如果需要进一步定时/计数,需要使用相关指令重置时间常数,并把定时器/计数器的中断标记TF0置0;工作模式0的结构如下图:
b859ea26f61cd.jpg (18.43 KB, 下载次数: 21)
14:22 上传
工作模式1:
模式1与模式0几乎完全相同,唯一的区别就是,模式1中的寄存器TH0和TL0共同构成的是一个16位定时器/计数器来参与操作,因此比模式0中的定时/计数范围更大;工作模式1的结构如下图:
fb3c4ceac4af4b.jpg (18.42 KB, 下载次数: 13)
14:22 上传
工作模式2:
这种模式又称为自动再装入预置数模式;当定时器/计数器的寄存器TH0/TL0的值溢出时,定时器/计数器硬件设备会自动把寄存器TH0/TL0的值清0,以重新开始操作;但是有时候,我们的定时/计数操作是需要多次重复定时/计数的,如果溢出时不做任何处理,那么,在第二轮定时/计数时就是从0开始定时/计数了,而这并不是我们想要的;所以,要保证每次溢出之后,在重新开始定时/计数的操作是我们想要的,那就要把预置数(时间常数)重新装入某个地方;而重新装入预置数的操作是硬件设备自动完成的,不需要人工干预所以,这种工作模式就叫自动再装入预置数方式;既然需要重新装入预置数,那么预置数就必须要存放在某个地方,才能保证重装操作成功;在工作模式2中,把自动重装入的预置数存放在定时器/计数器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0参与定时/计数操作;显然,定时/计数的方位小了很多;
注:这个工作模式常用于波特率发生器(串口通讯),T1工作在串口模式2;用于这种方式时,定时器就是为了提供一个时间基准;计数溢出之后,不需要做太多的事情,只做一件事就可以,就是重新装入预置数,再开始重新计数,而且中间不需要任何延时;工作模式2的结构如下图:
b363c446ed860d73cefca354.jpg (19.06 KB, 下载次数: 14)
14:22 上传
工作模式3:
由于定时器/计数器T1没有工作模式3,如果把定时器/计数器T0设置为工作模式3,那么TL0和TH0将被分割成两个相互独立的8位定时器/计数器;工作模式3的结构如下图:
daa529ac053fc4aefaed5054.jpg (31.28 KB, 下载次数: 15)
14:22 上传
四、定时器/计数器的定时/计数范围
工作方式0——13位定时器 / 计数器 工作 模式,最多可计数2的13次方 次,即:8192次,[0,8191];
工作方式1——16位定时器/计数器 工作 模式,最多可计数2的16次方 次,即:65536次,[0,65535];
工作方式2——8位定时器/计数器工作模式,计算次数最多为2^8,即256,,[0,255];
工作方式3——8位定时器/计数器工作模式 ,计算次数最多为2^8,即256,,[0,255];
预置数的计算公式:预置数=最大值-需要计数的次数;
五、定时器/计数器的控制寄存器
8051单片机设计了两个8位的特殊功能寄存器来控制定时器/计数器的工作状态;这两个特殊功能寄存器分别是TMOD和TCON;它俩都在特殊功能寄存器区;
1、工作模式控制寄存器TMOD(89h):
c84805c59bdd414e9c163d56.jpg (27.61 KB, 下载次数: 18)
14:22 上传
2、工作状态控制寄存器TCON(88H):
fb6b0fdaa7248ebc38012f50.jpg (38.08 KB, 下载次数: 18)
14:22 上传
六、定时器/计数器的初始化
注:由于8051单片机的定时器/计数器使用的时钟脉冲是外部晶振(12MHZ)经过12分频(12MHZ/12=1MHZ)之后的频率,所以,一个时钟脉冲就是1微秒;所以,8192个脉冲=8192微秒=8.192毫秒; 65536个脉冲=65536微秒=65.536毫秒; 256个脉冲=256微秒=0.256毫秒;
1、设置定时器/计数器的工作模式TMOD(常用的是模式1:TMOD=0x01);
2、装入预置数到THx和TLx中(THx=TLx=MAX(/256)-计数次数);
3、如果工作在中断方式,则需要开定时器/计数器的中断TCON中的标志位:TF0/TF1=0/1;
4、启动定时器/计数器:TR0/TR1=1;
13:00:43  
概括的非常好
末世盗贼行 /0/267/&
无良师父腹黑魔女&
09:55:11  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
http://doupocangqiong.cc/ 斗破苍穹全文阅读&
11:56:13  
一个机器周期应该是12微妙吧
kanshu.la/book/dazhuzai/大主宰&
01:39:10  
正在学习中。。。
/jue***angmen/ 绝世唐门&
22:09:08  
一份不错的学习资料
epzw.la/files/article/html/57/57599/ 极品修真强少&
18:56:54  
嗯 感谢楼主分享!
22:45:38  
莽荒纪/manghuangji/
对联/duilian/&
08:26:19  
谢谢楼主的分享,学习了!
第三十五章 终于来了个像样的 /xs/0/1/734609.html 妖神小说&
22:45:47  
谢谢楼主了
11:16:35  
21:01:53  
定时/计数器得好好看看。
22:50:21  
10:24:19  
富春山居图 http://www.zzoo.cc&
11:28:59  
绝世唐门 &
11:05:49  
终于找到了这么全的定时器介绍了,诸如此类的文章应该多些才好!谢谢。
09:33:10  
16:22:58  
18:18:02  
19:01:48  
newsky121 发表于
一个机器周期应该是12微妙吧
不是吧!还得看晶振频率啊!11.0592mhz的就不是吧!
Powered by
供应链服务
商务及广告合作
Jeffery Guo
关注我们的微信
供应链服务 PCB/IC/PCBA
版权所有 (C) 深圳华强聚丰电子科技有限公司您的访问出错了(404错误)
很抱歉,您要访问的页面不存在。
1、请检查您输入的地址是否正确。
2、感谢您使用本站,通过
进行查找。
3、使用搜索框直接进行搜索| 522: 链接超时
-- Event ID: 3ab04ed0c7e943a7
如果您是网站管理员,点击查看。如需网站监控,可以使用。
您的浏览器
百度云加速

我要回帖

更多关于 单片机晶振频率 的文章

 

随机推荐