当前位置:首页 » 编程语言 » c语言编写判断上升沿程序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编写判断上升沿程序

发布时间: 2023-04-02 00:12:59

① 怎么用检测stm32引脚输入信号的上升沿,不用中断,我是菜鸟,最好给出C程序

#define PB8 GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) //读取PB8键渣庆

//初始化
GPIO_InitTypeDef GPIO_InitStructure;
//PB8按键,下拉输入
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN; //模式为输入
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_DOWN; //下拉
GPIO_Init(GPIOB, &GPIO_InitStructure);//

//按冲渗键扫描
//PB8键
if(PB8==1)
{
Delay_nms(10);
if(PB8==1)
while(PB8==1);
return '散梁脊1';
}

② 51单片机中,测两个上升沿(外部信号)之间的时间差c程序应该则样写。

看您的问题好像是硬件已经设计好了,而且待测I/O不是接在尘唤同一个口上而且不是外部中断口?那就只能用查询方式了,不断的查询口状态,只要有变化(上升穗罩沿是0变1,反之下降沿)就打开定时器,再次变化关闭定时器,读数据就行了,这样应该会有误差,但是比较小而且固定,看你的需要自己处理。 比如你要查询P10和P11两个脚上的上升沿时间差,假设P10先来,且猜兄闹正常情况下都是低电平。
void main()
{
unsigned int a;
init();//各种初始化,自己写。P10 P11要SBIT下。
while(!P10);//低电平的时候死循环,变高就说明上升沿来到,接着往下运行
startTimer0();//打开定时器,初始化和子函数自己写。
while(!P11);//如法炮制
stopTimer0();//停止定时器。
a=getTimer0();//读数,自己写。
.......//其他代码。
}

我就是这么写写,给你提供参考,具体我肯定没试过,而且这程序也不是特别实用。有错误自己改一下吧。这东西你要想学好就自己想。

c语言做上升沿怎么做

这有何难:
int f(int t) { return t>0?1:0; }
就形成一个阶梯函数,0时刻开始为1,之前为0;

int p(int t) { return t==0?1:0; }
就形成一个脉冲函数,0时刻为1,其他时刻为0;

④ 上升沿和下降沿结合c语言怎么编写程序呀!随便举个例子就可以的!

设置一个变量为标志
比如flag=0
当flag=1的时候就是上升沿了

⑤ 请按照如下下降沿/上升沿触发时序图写一段C语言程序

电子的课程我几乎全忘了,我翻了翻书,我当初学51单片机串口通信,用的是汇编。
我当初用C语言写51单片机代码的时候,编译变成机器代码,但是keil编辑器可以把机器代码转成助记符,就是汇编。我看了之后发现一条C语言代码会翻译成多条汇编,如果是循环,翻译成汇编就会更复杂,所以用C语言写51单片机代码,代码运行时间会更长,时间不能自己掌握,因为我不知道翻译成多少条汇编了。所以51单片机还是要用汇编写比较好。
我也不知道为什么你会直接用C语言写时序图,我只是觉得用汇编会简单点。

⑥ 求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。

这里只讲原理,不关注速度。实际设计工作中,已经有很多单片机能够识别io端口上升沿和下降沿中断,且方式不止一种。
sbit io_inp=P2^1;输入端
bit old_bit;输入端电平记忆
unsigned char low_high;上升下降沿标志,0=无变化,1=上升沿,2、下降沿
void io_rest(void)
{
if(old_bit=!io_inp)
{
old_bit=io_inp;
if(io_inp=1)
low_high=1;
else
low_high=2;
}
}

void main(void)
{
old_bit=io_inp=P2^1;
while(1)
{
low_high=0;
io_rest(void);
//在此应用
}
}

⑦ 单片机C语言怎么判断上升沿触发

用一个外部中断,把B=B+1写在中断处理函数中就行了。

⑧ 单片机中一个I/O信号的上升沿或下降沿在单片机中C语言怎么写,不用中断

不用中断只能用查询了。
你只能写一个while循环,然后时刻判断IO电平。
上一次循环是低电平,下次变成高电平了,就可以判断来了一个上升沿。
注意信号上升时间和你的单片机时钟周期的关系,也就是说,信号上升沿要小于你查询两次所用的时间。如果信号你不能改变,那么你就需要纪录多次查询的结果,这样能识别比较慢的沿。

⑨ c语言怎么判断一个数由0变成1

就是判断变量出现上升沿的变化。
变量是a,a可以是0x00,也可以是0x01.a.Lst是a原来的值,a.Now是现在的值,那么春春怎猜森肢么判断他上生沿了呢?result=((-a.Lst)&a.Now)。如果result=1,则可以判断a是从0变成了1。你可以看,如果a原来是1,则result肯定是0。
C语言是一门穗世面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

⑩ 如何写一个单片机输入上升沿和下降沿的脉冲输出信号的c语言程序

这个简单,从低到高就是上升输出,重高到低就是下降输出
#include<reg51.h>
sbit pluse=P1^0;
main()
{
int i;
while(1)
{
pluse=0; //此时为下降输出
i=100;
while(i--);
pluse=1; //此时为上升输出
i=100;
while(i--);
}
}