导航:首页 > 操作系统 > 单片机脉冲计数实验

单片机脉冲计数实验

发布时间:2023-06-06 17:19:06

㈠ 用C51单片机统计脉冲次数

举例解答如下:
利用定时器T1,对外部脉冲(P3.5引脚输入)计数,
每输入200次脉冲产生一次中断,累加器+1,
选用T1,计数器模式,方式2(自动重装初值8位计数器),
TMOD
=0110
0000B
=60H
计数初值
=2^8
-200
=256
-200
=56d
=38H,
编程序如下:
;
;
主程序:
MAIN:
CLR
A
;
;
累加器清零
MOV
TMOD,
#60H
;
;置T1计数模式、方式2
MOV
TL1,
#38H
;
;
写入计数初值
MOV
TH1,
#38H
;
;
写入留待自动重装的初值
SETB
TR1
;
;
启动T1计数
SETB
ET1
;
;
允许T1中断
SETB
EB
;
;
CPU开中断
SJMP
$
;
;
等待一轮对外部脉冲计数溢出中断
;
;
以下是T1中断处理子程序:
T1_INT:
INC
A
;
;
累加器加1
RETI
;
;
中断返回

㈡ 51单片机怎么实现外部脉冲计数

#include<reg51.h>
#define uint unsigned int
uint dat=0,time=0;
bit flag=0;
sbit key=P1^0;
void int00() interrupt 0
{
dat++;
}
void t0isr() interrupt 1
{
time++;
if(time>=400)flag=1;
}
main()
{
TMOD=0x22;
TH0=6;
TL0=6;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x40;
ET0=1;
EX0=1;
IT0=1;
PX0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
TR0=1;
while(flag==0);
TR0=0;
flag=0;
SBUF=dat;
while(TI==0);
TI=0;
SBUF=dat>>8;
while(TI==0);
TI=0;
}
}
}

㈢ 如何用单片机记脉冲数

1、用单片机产生200ms,占空比为50%的周期信号,即高低电平各100ms;
2、将该200ms信号接到INT0或INT1上,将外部脉冲信号接到T0或T1上,注意要对应接,即INT0与TO一起用或INT1和T1一起用。
3、设置定时器/计数器工作方式控制寄存器TMOD的GATE = 1(门控方式) ,C/T = 1 (计数方式)。
这样,就可以用100ms作为一个控制门,在这个门有效(相应外部中断)时,外部计数脉冲就可以进入这个门,定时器/计数器计数初值设为加1就溢出,中断服务程序中计数就可以了。

㈣ 单片机脉冲计数

将定时器设置为外部输入下降沿触发,开中断
在中断程序里做一个变量寄存器如TOCNT
每进一次中断t0cnt++;
if(t0cnt>10)
P1.1=~P1.1

㈤ 51单片机如何用计数器检测脉冲信号(高低电平),程序怎么做!没有思路!

可以利用51单片机的计数器T0、T1,例如用计数器0的外部计数脉冲输入端T0计数,当计满100个脉冲数量后,触发中断。进入计数服务中断程序。

如果有脉冲信号,经过电容微分后,在下降沿会产生一个向下的尖端脉冲,电阻R2是作为一个偏置,当有向下的尖端脉冲来后,反相端的电压会低于同向端的电压。

从而比较器输出高电平,这个电路图要注意的两个参数是,1,比较器的选择,你可以选LM339,要加上拉电阻。

(5)单片机脉冲计数实验扩展阅读:

通向输入端的那两个电阻是用来产生一个参考电压的,电容用来微分你的PWM波,你可以用示波器在反向输入端观察微分信号。

主程序中可根据不同运行状态调用部分子函数。需要开机按键设置时,优先执行按键程序,其它需要设置以后才能运行的子函数暂时不调用,减少单片机被占用过多。

设置后,不需要按键了,就不调用按键程序了。如果需要随时按键都要反应,可以把按键接到外部中断上,以中断方式响应按键,不受其他子函数影响。

㈥ 51单片机脉冲计数

你好!

那就用外部中断来检测吧,速度快精度高

void outside() interrupt 0
{
T0count++;
}
然后将计数,通过液晶显示出来就可

㈦ 单片机定时/计数器实验--脉冲计数器

这是个简易频率计,程序如下:

;---------------------------------

ORG0000H

JMPSTART

ORG000BH

JMPT0_INT

;---------------------------------

START:

MOVTMOD,#51H;/*01010001T1计数,T0定时*/

MOVTH0,#HIGH(65536-50000);50ms@12MHz

MOVTL0,#LOW(65536-50000)

MOVTH1,#0

MOVTL1,#0

SETBTR0

SETBTR1

SETBET0

SETBEA

MOVR7,#20

SJMP$

;---------------------------------

T0_INT:;50ms执行一次

MOVTL0,#LOW(65536-50000);重新写入初始值

MOVTH0,#HIGH(65536-50000);50ms@12MHz

DJNZR7,T0_END

MOVR7,#20

MOVP1,TL1

MOVP2,TH1

MOVTL1,#0

MOVTH1,#0

T0_END:

RETI

;---------------------------------

用PROTEUS仿真如下图。

图中信号的频率是5000Hz,显示的是16进制,这是题目中要求的形式。

阅读全文

与单片机脉冲计数实验相关的资料

热点内容
二战中的加密技术 浏览:514
美逛app如何建群 浏览:818
iphone用什么app3d扫描 浏览:288
冠生园葱油压缩饼干 浏览:502
Linux库文件安装 浏览:224
解压玩具黑猩猩 浏览:966
单片机中断实验程序注释 浏览:694
安卓手机下什么软件连电脑 浏览:724
最新小电影网站 浏览:784
穿越张学铭系统小说 浏览:268
陈龙跟外国孩子演过的电影 浏览:887
韩国唯美爱情电影 女主角绝症 浏览:415
python经典库 浏览:840
善良小夷子女演员 浏览:973
大奶女电影版 浏览:653
汽车遥控编程器 浏览:784
方舟在服务器如何发全体文字 浏览:346
一部很多女子格斗的电影 浏览:770
外国大胸美女电影推荐 浏览:208
大尺很色床戏电影 浏览:432