如何用计数器程序将符合不同区间的数据个数统计出来MATLAB

如何用计数器程序将符合不同区间的数据个数统计出来MATLAB,第1张

利用hist函数可以方便实现分区间统计的功能

具体语法

n = hist(Y)

将数据Y,分区间统计

函数默认会根据数据Y的范围分成10个区间

返回的n是一个长度为10的数列,表示每个区间数据的统计数量

n = hist(Y,x)

可以指定一个数列x,函数会以数列x中的每个数为中心,分区间统计

n = hist(Y,nbins)

可以指定一个整数nbins,指定要分区间的个数

[n,xout] = hist()

可以多返回一个数列xout,返回每个区间中点的数值

如果过不要返回值,直接

hist(Y)

函数还会直接画出分区间统计的柱状图

1

程序逻辑上貌似有点问题,

因为如果当前输入的字符为空字符(空格,回车,制表符)state就改称out

大体是说else if

当前state指示说明上回输入的字符为空字符

那么先改变state的状态到 IN 就是告诉系统这个空字符我计算过了,过时了

然后空字符计数器加一

2

=是赋值符号! a=b就是将b的值赋给a

==是逻辑运算符 用来比较a b相等与否,相等true否则false

如果用state=out那么else if等同于先执行state= out,然后esle if(out),就是永远为假,可以直接去掉其子句。

x0为启动按钮,x1为停止按钮。y0~y7为8盏灯。程序在按下启动按钮后,灯1先亮,1秒(T0延时)后灭,1秒后(T1延时)灯2亮,依次循环。当按下x1后,循环结束。

按下x0后,m0得电为1并自保持,此时1秒计时器T0计时,1秒后T0常开点闭合1秒计时器T1计时,再过1秒T1计时结束常闭点断开T0线圈,

T0失电复位并断开T0常开点,此时T1线圈也失电复位,T1常闭点又闭合,T0得电重复上述计时过程。

第二个程序块:

当M0为1时,在T0触点的上升沿来时k3M10这个二进制数乘以2再写入k3M10中。

K3M10代表M10~M21共12个辅助继电器的组合,那么可以将K3M10看作是一个二进制数。程序未启动时,M10~M21均为0,那么这个二进制数为0;当程序启动时,在下一个程序块中利用了M0的上升沿置位M10,此时M10~M21为1,当T0触点的上升沿来时k3M10(此时为1)这个二进制数乘以2再写入k3M10中(写入后为2),2在二进制数中为10,此时M10失电,M11得电,可以认为M10把"1"交给了M11,以此类推。当第8个M17得电时,完成了一次循环。下一个T0上升沿来到时,M18得电,M17失电。此时下面的程序块利用了M18的上升沿重新置位M10并且将M18复位。这样程序又从M10得电开始循环下去了。

这个程序块的作用就是每次T0的上升沿来到时,“1”在M10~M17之间转移。

这个要求不过分,发段现成的小注释下给你吧:

没注释的就是和计数无关的。

#include <reg52h>

#define uchar unsigned char

#define uint unsigned int

uchar DSY_CODE[]=

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

};

uchar Count = 0;

void main()

{

P0 = 0x00;

P2 = 0x00;

TMOD = 0x06;//这个是定时器的初始化 TMOD= 0000 0110 ,指定T0作为八位的计数器

TH0=255;

TL0=255; //这两个是计数初值。

ET0=1;

EX0=1;

EA =1;//这三行是开中断

IP =0x02;

IT0=1;

TR0=1;//这一行,是启动T0

while(1)

{

P0 = DSY_CODE[Count/10];

P2 = DSY_CODE[Count%10];

}

}

void Clear_Counter() interrupt 0

{

Count = 0;

}

void Key_Counter() interrupt 1

{

Count = (Count + 1) %100;//这个地方,是1号中断,也就是T0的中断,每当次数到了,就会执

//行这里

}

你先看看,不懂就追问,我会回答你的

计数、清零,都是经常用且常见的功能,不难编写程序。

检查两次按键之间的间隔,没有见过。

两次按键间隔小于5分钟视为无效,还可以理解。

就在加一后,延时5分钟,再去检测按键即可办到。

但是,大于6分钟,视为无效,就不好理解了。

如果6分钟没有按键,就是要单片机休眠或死机了吗?

永远也不理会按键了吗?

以上就是关于如何用计数器程序将符合不同区间的数据个数统计出来MATLAB全部的内容,包括:如何用计数器程序将符合不同区间的数据个数统计出来MATLAB、C语言 单词计数程序求教~、如何用单片机编写一个八位循环计数器程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9680433.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存