导航:首页 > 操作系统 > 51单片机外部计数

51单片机外部计数

发布时间:2022-06-12 06:57:07

1. 51单片机使用T0和T1外部脉冲计数,C语言如何编程

1、使用T0和T1外部脉冲计数,控制两个电机,到1700个脉冲电机停止,
--统计脉冲个数,用外部中断更好。
--T0和T1,留着定时用。
用四个按键控制,按键1控制电机正转,按键2控制电机反转,按键3控制电机1正转,按键4控制电机2正转。


2、例程:

#include<reg51.h>
sbitk1=?;//自己定义
sbitk2=?
sbitk3=?
sbitk4=?
sbitDIAN1=?
sbitDIAN2=?
sbitDIAN3=?
sbitDIAN4=?
sbitSEN1=?
sbitSEN2=?
voiddelay(unsignedintx)
{
unsignedintm,n;
for(m=x;m>0;m--)for(n=115;n>0;n--);
}
voidmain(void)
{
TMOD=0x55;
IE=0x8a;
while(1){
if(!k1){
delay(10);
if(!k1){
while(!k1);
TH0=(65536-1700)/256;
TL0=(65536-1700)%256;
SEN1=0;
DIAN1=0;DIAN2=1;
SEN1=1;
TR0=1;
}
}
if(!k2){
delay(10);
if(!k2){
while(!k2);
TH0=(65536-1700)/256;
TL0=(65536-1700)%256;
SEN1=0;
DIAN1=1;DIAN2=0;
SEN1=1;
TR0=1;
}
}
if(!k3){
delay(10);
if(!k3){
while(!k3);
TH1=(65536-1700)/256;
TL1=(65536-1700)%256;
SEN2=0;
DIAN3=0;DIAN4=1;
SEN2=1;
TR1=1;
}
}
if(!k4){
delay(10);
if(!k4){
while(!k4);
TH1=(65536-1700)/256;
TL1=(65536-1700)%256;
SEN2=0;
DIAN3=1;DIAN4=0;
SEN2=1;
TR1=1;
}
}
}
}

2. 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;
}
}
}

3. 51单片机 对外部脉冲计数是用中断口INT0还是定时计数器T0实现它们有什么区别吗

INT0中断可以计数,但每来一个计数脉冲,程序都需要进中断处理程序,软件处理计数。T0计数则是每来一个计数脉冲,硬件自动计数,只有在计数器溢出时才触发中断处理。
所以,要计数肯定是用T0更好一些,但前提是T0没有做别的功能用。有时用INT0计数,不是INT0好不好用的问题,是51的计数器都被占用了,没办法只好用INT0加软件计数凑合了。

4. 怎么实现mcs-51单片机对外部脉冲的计数功能

外部脉冲接单片机的外部中断或2
个定时/计数器都可以计数的。

5. 51单片机如何采用外部计数器进行多路舵机

现在单片机一个定时器可以产生4路同频率PWM信号,刚好舵机的频率又是固定的,一个定时器可以控制4个舵机,2个定时器控制8个舵机没有压力。高级的单片机有如STM32F4有多达14个定时器,大部分定时器都可产生4路PWM信号,控制舵机的数量更多。

6. 80C51单片机外部脉冲计数怎么设置

把TMOD C/T设置为1就可以了

TMOD 示意表格
下面的表格列出了TMOD各个位的名字,点击下面的1和0就可以给各个位置1或者置0,控制两个定时器/计数器的工作方式。
7 6 5 4 3 2 1 0
GATE C/T M1 M0 GATE C/T M1 M0

然后在对应的T0,T1输入脉冲就可以计数了
还可以通过M0,M1设置工作在什么方式,方式同定时器。

7. 51单片机定时/计数器的定时功能和计数功能有何不同

1、产生的脉冲不同

计数功能:单片机外部触发的脉冲。

定时功能:单片机内部在晶振的触发下产生的脉冲。



2、工作方式不同

计数功能:当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数,检测一个由1到0的负跳变需要两个机器周期。

定时功能:计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。

3、应用范围不同

计数功能:对一些外部事件计数时则采用。

定时功能:需要准确计算时间时采用。

8. 我想用51单片机做一个外部计数的程序,每当高电平到来计数一次,记满5次由单片机控制另一个引脚输出。

利用 T1 / P3.5 输入(下降沿计数)
初始化:

TMOD = 0x60; //计数,自装载模式
TH1=256-5;
TL1=256-5;
TR1=1;
ET1 = 1;
EA = 1;
......
void timer1() interrupt 3 //溢出一回就把端口电平翻转一下
{
P1 = ~P1;
}

9. 关于51单片机的计数器

首先将定时器设置为计数器模式。
其次,将外部脉冲接入到相应定时器的输入端。
这样就可以使用计数器了。

10. 51单片机计数器怎么用

51单片机是基础入门的一个单片机,还是应用最广泛的。

51单片机的定时/计数器的概念

单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,只要相邻两个计数脉冲之间的时间间隔相等,则计数值就代表了时间的流逝,因此,单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件;MCS-51单片机的晶振经过12分频之后提供给单片机稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的。
51单片机的定时/计数器的工作原理
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。
作为定时器使用时,定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12;
作为计数器使用时,通过引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2微秒。;计数器的最高频率一般是时钟振荡频率的1/24;
由此可知,不论是定时器还是计数器工作方式,定时器T0和T1均不占用CPU的时间,除非定时器/计数器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序。所以说,定时器/计数器是单片机中效率高而工作灵活的部件。

阅读全文

与51单片机外部计数相关的资料

热点内容
php取出字符串 浏览:80
aspnet压缩zip 浏览:636
如何制作php网站 浏览:333
怎么换冰箱压缩机 浏览:288
柴火是着火源码 浏览:503
股票带指标源码 浏览:727
linux下怎么退出python 浏览:255
40wjava程序员必知技术 浏览:536
oa4a服务器内部错误怎么办 浏览:429
androidapp自动退出 浏览:842
辽宁服务器系统租用云空间 浏览:691
名片app哪个好用 浏览:662
filedialog获取文件夹 浏览:166
扫描图片转换成pdf 浏览:52
sas高级程序员 浏览:399
什么情况下不能静态编译 浏览:58
对外接口加密软件 浏览:121
程序员在奥克兰能找工作吗 浏览:805
在线pdf转换成word免费版 浏览:339
idc服务器托管什么意思 浏览:918