一、试验现象
在P0.0输出一个周期是500us的方波信号,方波的周期由定时器T0确定。
二、试验目的
掌握内部定时/计数器作定时功能(模式2)的应用
三、试验任务分析
上一个试验我们采用了T0工作于模式1的应用,因为定时时间较长,所以T0应该选择16位的工作方式。但是在这个试验里面,定时时间很短,只有500/2=250us,所以我们可以让T0工作于方式2,即8位计数器(注:8位计数器的最长定时时间是:2^8=256us)。计数初值的计算方法和以前一样,即:
定时器工作于模式2的时候,它还有一个特性-可自动再装入定时常数。我们在上一个试验的时候发现,在每次计数器产生溢出,进入中断服务程序之后,我们都必须在中断程序中重新置入计数初值,以便可以重新开始定时。
而模式2中,这一步就可以省去啦,计数器可以自动把计数初值重新装入。这时,它的低8位TLX作为8位的计数器;高8位THX作为常数缓冲器。当TLX产生计数溢出的时候,在置1溢出标志TFX的时候,还会自动将THX的计数初值重新送到TLX,使得TLX可以重新开始计数,该模式的逻辑图如下所示(以T0为例):
现在看看程序吧,这个程序我们用两种方式实现,查询方式和中断方式。
四、试验程序
1、查询方式
org 0000h
main: clr p1.5
mov tmod,#02h ;设置T0工作于定时方式、模式2
mov tl0,#06h ;设置计数初值
mov th0,#06h ;把计数初值存入常数缓冲器,以便重新装入
setb tr0 ;启动定时器T0
loop: jnb tf0,loop ;计数器没有溢出,继续查询
clr tf0 ;定时时间到,把溢出标志清0
cpl p0.0 ;p0.0取反
ajmp loop ;返回继续查询
end
2、中断方式
org 0000h
ajmp main
org 000bh ;T0溢出中断入口地址
ajmp time0
org 0020h
main: clr p1.5
mov sp,#70h ;设置堆栈
mov tmod,#02h ;设置T0为定时方式,工作于模式2
mov tl0,#06h ;tl0置计数初值
mov th0,#06h ;把计数初值放在常数缓冲器th0中,以便重新装入
setb et0 ;允许T0溢出中断
setb ea ;cpu开中断
setb tr0 ;启动T0计数
ajmp $ ;等待
time0:cpl p0.0 ;每次定时时间到,把P0.0求反,从而产生方波
reti
end
注:在上面的程序中,当产生溢出中断的时候,tf0是被硬件置一的,只有在进入中断服务程序中,才能被硬件置0,所以我们如果用查询方式,就必须采用软件把它清0,而中断方式则不必,特别注意噢。
关键字:单片机 定时器 模式2
引用地址:
单片机学习之十五:定时器应用2(模式2)
推荐阅读最新更新时间:2024-03-16 15:09
单片机学习笔记,三个步骤教你学
作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单片机技术。 因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验,提出笔者的学习方法和步骤。 基础理论知识学习 基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于抽象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。 否则,你的单
[单片机]
第18节:加法运算的溢出
从业十年,教你单片机入门 第18讲: 我前面介绍的三种数据类型unsigned char ,unsigned int ,unsigned long,都是有最大范围限制的,它们最大范围分别是255,65535,4294967295,如果加法运算的结果超过了参与运算的变量本身,会出现什么结果,有什么规律,这就是本节要讲解的溢出问题。 (1)何谓溢出?比如以下例子: unsigned char a; a=0x8536; 分析: 因为a是unsigned char变量,位数是8位,也就是1个字节,而0x8536是16位,2个字节,这种情况下,把0x8536赋值给单字节变量a,变量a只能接收到最低位的一个字节0x36,而高位字节的0
[单片机]
#51单片机#Modbus通信协议的特点及其RTU协议帧数据介绍
Modbus通信协议的特点 Modbus协议是应用于电子控制器上的一种通用语言。 通过此协议,控制器之间,控制器经由网络和其他设备之间可进行通信。不同厂商生产的控制设备可以连成工业网络,进行集中控制,这已成为了一种工业标准。 该协议定义了控制器能够认识和使用的数据结构,描述了控制器请求访问其他设备的过程,回应其他设备的请求的方式,侦测错误记录的方法,同时制定了通信数据的格局和内容的公共格式。 多机通信时,Modbus协议规定每个控制器必须知道自己的设备地址,识别按照地址发来的数据并对其做出反应,包括:决定是否产生动作,产生何种动作,若需回应,反馈消息应按Modbus协议发出。 Modbus协议的整体框架和格式较为复杂庞
[单片机]
AT89C51单片机在电话远程控制器中的应用
随着通讯产业的发展,电话机已经走进了千家万户,利用电话机进行远程控制的技术也日益用于生活中,本文设计了一种电话远程控制系统,该系统主要应用于电话遥控控制的家用电器,用户在户外可通过任意一部双音多频电话(包括手机、电话分机),根据语音提示,可以对各种电器(如电饭锅、微波炉等电器)进行远程控制。 1 系统结构 此系统主要包括电话振铃检测电路,电话自动拾机和挂机电话,DTMF信号解码电路,语音提示电路,以及音频放大电路,系统结构框图如图1所示。 当有电话呼入时,电话振铃检测电路检测到有振铃并等待系统默认的振铃次数后,控制器自动拾机。用户在语音提示下依次输入用户的操作密码和操作指令。DTMF解码电路将接收到的DT
[单片机]
51单片机-软件调试查看运行时间
上一讲我们知道“for(i=0;i 30000;i++);”只是延时了大概的一段时间而已,虽然我们可以把30000改变为其他的数(不能超过65535)来取决他的延时持续时间,但我们想要延时1秒似乎有点难测出来。那么这一节我们来教大家如何查看程序代码的执行时间。 步骤1 首先我们需要修改软件中的晶振值为11.0592M,创建工程时默认是24M,我们修改为开发板上所用的晶振值来达到软件仿真接近实际硬件的实验想象。 步骤2 在上一讲的代码中我们先 编译通过 之后点击“Start/Stop Debug Session” 步骤3 接着光标移到21,22行的阴影处点击出来两个红色断点,在之后点击Reset 步骤4 回
[单片机]
ST收购专注于Arm微控制器集成开发环境的嵌入式公司Atollic
电子网消息,横跨多重电子应用领域、全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST)今天宣布收购软件开发工具专家Atollic公司。 Atollic开发出了业内知名的获得高度好评的TrueSTUDIO®集成开发环境(IDE),专注Arm® Cortex®-M微控制器的嵌入式开发社区,例如,意法半导体的市场领先的STM32系列微控制器(MCU)。 意法半导体是世界顶级的32位微控制器厂商,拥有强大的软硬件开发生态系统,能够帮助开发者加快并简化应用开发设计,而TrueSTUDIO的加入将会进一步强化意法半导体的生态系统。由一支资深、敬业的世界一流软件工具专家设计开发,TrueSTUDIO是业界
[半导体设计/制造]
讲述PIC单片机原理
简介:据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对 于世界市场我国的占有率还不到1%。这说明单片机应用在我国才刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。 当今单片机厂商琳琅满目,产品性能各异。针对具体情况,我们应选何种型号呢?首先,我们来弄清两个概念:集中指令集(CISC)和精简指令集(RISC)。采用CISC结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构。它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高。采用RISC结构的单片机数据线和指令线分离,即所谓哈佛结构。这使得取指令和取数据可同时进行,且由
[单片机]
家电MCU对于低能耗和安全的要求逐渐变高
过去的十年里,洗衣机、冰箱和洗碗机等白色家电的设计已经朝着积极的新方向发展。尽管“How clean? How fast? How cold?”等性能指标仍然重要,但现在家电的设计目标还要加入包括能源效率、安全性,以及在高端模型中,还包括互联网连通性。 欧盟、美国以及许多发达国家已经制定了能效标准,如按标准执行,例如洗衣机的年均能耗降低到约150千瓦时。每个子系统的优化在降低能耗方面都有作用,但MCU执行优化电机能源使用的复杂电机控制算法的任务至关重要。 无刷直流电机(BLDC)控制 对能效的积极目标正在推动电机从内置位置传感器向无传感器的无刷直流电机(BLDC)和永磁同步电机(PMSM)转型。BLDC电机控制涉及一些
[嵌入式]