51 单片机计数器T1计数外部脉冲

发布者:丹青妙手最新更新时间:2020-07-06 来源: eefocus关键字:单片机  计数器  外部脉冲 手机看文章 扫描二维码
随时随地手机看文章

/**********************************************

方法1:延时法

硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1 T1 P3.5

波特率:9600

描述:T0用于定时,方式1,定时时间50ms,中断方式;T1用于计数,10s定时时间到后,将计数的脉冲利用模拟串口发送出去外部的脉冲是用STM8L101产生的频率为1Hz的方波。1s 来1个下降沿

**********************************************/

#include "reg52.h"

#define uchar unsigned char

 

sbit P1_0 = 0x90;

sbit P1_1 = 0x91;

sbit P1_2 = 0x92;

 

#define RXD P1_0

#define TXD P1_1

#define WRDYN 44 //写延时

#define RDDYN 43 //读延时

 

void Delay2cp(unsigned char i);

 

unsigned char num=0;

 

//往串口写一个字节

void WByte(uchar input)

{

uchar i=8;

TXD=(bit)0; //发送启始位

Delay2cp(39);

 

//发送8位数据位

while(i--)

{

TXD=(bit)(input&0x01);      //先传低位

Delay2cp(36);

input=input>>1;

}

 

//发送校验位(无)

TXD=(bit)1; //发送结束位

Delay2cp(46);

}

 

//从串口读一个字节

uchar RByte(void)

{

uchar Output=0;

uchar i=8;

uchar temp=RDDYN;

 

//发送8位数据位

Delay2cp(RDDYN*1.5); //此处注意,等过起始位

while(i--)

{

Output >>=1;

if(RXD) Output   |=0x80; //先收低位

Delay2cp(35); //(96-26)/2,循环共占用26个指令周

}

 

while(--temp) //在指定的时间内搜寻结束位。

{

Delay2cp(1);

if(RXD)break; //收到结束位便退

}

 

return Output;

}

 

//延时程序*

void Delay2cp(unsigned char i)

{

     while(--i); //刚好两个指令周期

}

 

void TimerInit()

{

TMOD=0x41; //T1,计数模式,T0,定时模式,方式1

TH0=0x4C; //T0,50ms定时初值

TL0=0x00; //T0,50ms定时初值

TH1=0x00; //计数初值清0

TL1=0x00; //计数初值清0

 

TR0=1; //开定时器T0

TR1=1; //开计数器T1

ET0=1; //开定时器T0中断

EA=1; //开总中断

}

 

void main()

{

uchar ccc;

TimerInit();

while(1){}

}

 

void timer0(void) interrupt 1

{

TH0=0x4C; //重新设置定时初值

TL0=0x00; //重新设置定时初值

 

num++;

 

if(num==200) //数10s内数到的脉冲

{

WByte(TH1);

WByte(TL1);

 

num=0; //清0

TH1=0;

TL1=0;

}

 

TF0=0; //软件清中断标志位

}


10秒钟数到10个脉冲,1秒1个下降沿。

关键字:单片机  计数器  外部脉冲 引用地址:51 单片机计数器T1计数外部脉冲

上一篇:用51汇编完整写一个函数
下一篇:51单片机定时器T0的使用1-中断法

小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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