定时计数器T0作定时使用技术

发布者:巳午未最新更新时间:2021-04-21 来源: eefocus关键字:定时计数器  AT89S51 手机看文章 扫描二维码
随时随地手机看文章

1. 电路原理图



图4.16.1


2. 系统板硬件连线


(1. 把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4上


3. 程序设计内容


(1. 由于采用中断方式来完成,因此,对于中断源必须它的中断入口地址,对于定时/计数器T0来说,中断入口地址为000BH,因此在中断入口地方加入长跳转指令来执行中断服务程序。书写汇编源程序格式如下所示:


ORG00H


LJMPSTART


ORG0BH ;定时/计数器T0中断入口地址


LJMP INT_T0


START: NOP ;主程序开始


.


.




INT_T0: PUSH ACC ;定时/计数器T0中断服务程序


PUSH PSW


.


.


POP PSW


POP ACC


RETI ;中断服务程序返回


END


(2. 定时2秒,采用16位定时50ms,共定时40次才可达到2秒,每50ms产生一中断,定时的40次数在中断服务程序中完成,同样0.2秒的定时,需要4次才可达到0.2秒。对于中断程序,在主程序中要对中断开中断。


(3. 由于每次2秒定时到时,L1-L4要交替闪烁。采用ID来号来识别。当ID=0时,L1在闪烁,当ID=1时,L2在闪烁;当ID=2时,L3在闪烁;当ID=3时,L4在闪烁


4. 程序框图


T0中断服务程序框图



  



















主程序框图

 









































图4.16.2


5. 汇编源程序


TCOUNT2S EQU 30H


TCNT02S EQU 31H


ID EQU 32H


ORG 00H


LJMP START


ORG 0BH


LJMP INT_T0


START: MOV TCOUNT2S,#00H


MOV TCNT02S,#00H


MOV ID,#00H


MOV TMOD,#01H


MOV TH0,#(65536-50000) / 256


MOV TL0,#(65536-50000) MOD 256


SETB TR0


SETB ET0


SETB EA


SJMP $


INT_T0: MOV TH0,#(65536-50000) / 256


MOV TL0,#(65536-50000) MOD 256


INC TCOUNT2S


MOV A,TCOUNT2S


CJNE A,#40,NEXT


MOV TCOUNT2S,#00H


INC ID


MOV A,ID


CJNE A,#04H,NEXT


MOV ID,#00H


NEXT: INC TCNT02S


MOV A,TCNT02S


CJNE A,#4,DONE


MOV TCNT02S,#00H


MOV A,ID


CJNE A,#00H,SID1


CPL P1.0


SJMP DONE


SID1: CJNE A,#01H,SID2


CPL P1.1


SJMP DONE


SID2: CJNE A,#02H,SID3


CPL P1.2


SJMP DONE


SID3: CJNE A,#03H,SID4


CPL P1.3


SID4: SJMP DONE


DONE: RETI


END


6. C语言源程序


#include




unsigned char tcount2s;


unsigned char tcount02s;


unsigned char ID;




void main(void)


{


TMOD=0x01;


TH0=(65536-50000)/256;


TL0=(65536-50000)%6;


TR0=1;


ET0=1;


EA=1;




while(1);


}


void t0(void) interrupt 1 using 0


{


tcount2s++;


if(tcount2s==40)


{


tcount2s=0;


ID++;


if(ID==4)


{


ID=0;


}


}


tcount02s++;


if(tcount02s==4)


{


tcount02s=0;


switch(ID)


{


case 0:


P1_0=~P1_0;


break;


case 1:


P1_1=~P1_1;


break;


case 2:


P1_2=~P1_2;


break;


case 3:


P1_3=~P1_3;


break;


}


}


关键字:定时计数器  AT89S51 引用地址:定时计数器T0作定时使用技术

上一篇:基于51单片机的炭黑复合导电材料的电阻一温度测量系统
下一篇:变压器温度智能监控仪电路模块设计

推荐阅读最新更新时间:2024-11-03 11:47

AT89S51/52单片机的最小系统电路原理图
单片机最小系统统是指能让单片机运行起来的所需的最少器件构成的电路系统。如果您构建的最小系统作为研究、学习使用,应该满足以下要求:1.有电源;2.有单片机主芯片;3.有程序下载电路;4.有时钟源电路;5.有复位电路;6.有I/O口的负载电路。这样的系统才能满足您下载程序和调试程序的要求。 下图是AT89S51/52单片机的最小系统电路原理图。 电源部分:从电脑USB接口DC5V取电,C4和C5构成USB接口电源的简单滤波电路。开关电源的输出电压往往波纹较大,不像线性稳压器输出的电压那么稳定,所以进行必要的滤波。如果需要接一个电源开关应接在C4和C5的前面,在您接通开关的瞬间产生的抖动能被这两个电容吸收。 复位电路
[单片机]
<font color='red'>AT89S51</font>/52单片机的最小系统电路原理图
4×4 矩阵式键盘识别电路图
  如图2所示,用AT89S51 的并行口P1 接4×4 矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7 作输出线;在数码管上显示每个按键的“0-F”序号。对应的按键的序号排列如图1所示: 图1   1. 把“单片机系统“区域中的P3.0-P3.7 端口用8 芯排线连接到“4X4 行列式键盘”区域中的C1-C4 R1-R4 端口上;   2. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7 端口用8 芯排线连接到“四路静态数码显示模块”区域中的任一个a-h 端口上;要求:P0.0/AD0对应着a,P0.1/AD1 对应着b,……,P0.7/AD7 对应着h。 图2
[单片机]
4×4 矩阵式键盘识别电路图
AVR单片机定时-计数器的PWM功能设计要点
一、定时/计数器PWM设计要点 根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 2.然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。AVR定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。 3.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式
[单片机]
AT89S51单片机是什么?
AT89S51单片机是什么? AT89S51是什么? 书上和网络教程上可都是8051,89C51等 !没听说过有 89S51 ?! 这里,初学者要澄清单片机实际使用方面的一个产品概念,MCS-51单片机是美国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。 有些文献
[单片机]
基于AT89S51单片机的PWM专用信号发生器的设计
   1 引言   涡流无损检测作为无损检测应用最广泛的方法之一,具有传感器结构简单、灵敏度高、测量范围大、不受油污等介质影响、抗干扰能力强等优点,已被广泛应用于冶金、机械、化工、航空等多个工业部门。然而由于受趋肤效应的影响,常被限制在对导体表面及亚表面层的检测上,这使其检测应用范围受到了很大的限制。但是,若检测线圈在脉冲激励作用下,因脉冲信号中含有丰富、连续的频率成分,所以检测线圈中所得到的信息不仅包含了被检测    试件的表面、亚表面信息,还包含其深度信息,能够对材质以及缺陷进行定量评价。而脉冲信号的波形、频率、幅值、占空比等参数的改变对检测结果有着不同的影响。因此为了获得不同的脉冲激励下的检测结果。特制作了这一专用高精度
[单片机]
基于<font color='red'>AT89S51</font>单片机的PWM专用信号发生器的设计
51单片机定时/计数器C语言应用实例
  /************      设置T0为16位定时器,定时50ms,系统采用12M Hz 晶振 。      ************/      #include reg52.h      voi DMA in()      {      TMOD=0x01;//设定T0的长度和状态:16位定时      TH0=(65536-50000)/256;//50ms定时,计数器的初值高8位      TL0=(65536-50000)%256;//50ms定时,计数器的初值低8位      EA=1;//系统开放中断      ET0=1;//允许T0中断      TR0=1;//启动T0      for(;;);/
[单片机]
AT89S51是怎样出现的它和C51有什么区别
很多初学51单片机的网友会有这样的问题:AT89S51是什么?书上和网络教程上可都是8051,89C51等!没听 说过有89S51 ?! 这里,初学者要澄清单片机实际使用方面的一个产品概念,MCS-51单片机是美国INTEL公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。
[单片机]
AT89S51定时器/计数器的结构
  AT89S51单片机的定时器/计数器结构如下图所示,定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器Tl由特殊功能寄存器TH1、TL1构成。      两个定时器/计数器都具有定时器和计数器两种工作模式,4种工作方式(方式0、方式1、方式2和方式3)。定时器/计数器属于增1计数器。      特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。T0、T1不论是工作在定时器模式还是计数器模式,实质都是对脉冲信号进行计数,只不过是计数信号的来源不同。计数器模式是对加在T0(P3.4)和Tl( P3.5)
[单片机]
<font color='red'>AT89S51</font><font color='red'>定时</font>器/<font color='red'>计数器</font>的结构
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved