求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。
2个回答
展开全部
这里备睁森只讲原理,不关仿亩注速度。实际设计工作中,已经早神有很多单片机能够识别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);
//在此应用
}
}
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);
//在此应用
}
}
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
MCS-51串行接口有四种工作方式,分别是:1. 方式0(8位同步移位寄存器方式),一般用于外接移位寄存器芯片扩展I/O接口。2. 方式1(10位异步收发方式),通常常用于双机通信。3. 方式2(11位异步收发方式),通常常用于多机通信。4...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
展开全部
可以利用定时中拿器定时中断检测。每10ms检测一次开关的状态,多设几个状态没败值,最后将开关有效值读出;然后利用if语句检测。
定时中断程序此处省略
void main()
{
bit last_state;上一次开关有效值。
bit Now_state;当前开关有效值,从定时中断中读出。
while(1)
{
if((!last_state&&Now_state)==1)
{}上升沿检测
if((last_state&&!Now_state)==1)
{} 下降沿检测
last_state=Now_state;更新上一次卖察搭开关有效值
}
}
定时中断程序此处省略
void main()
{
bit last_state;上一次开关有效值。
bit Now_state;当前开关有效值,从定时中断中读出。
while(1)
{
if((!last_state&&Now_state)==1)
{}上升沿检测
if((last_state&&!Now_state)==1)
{} 下降沿检测
last_state=Now_state;更新上一次卖察搭开关有效值
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询