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

 我来答
NJGQZF
2015-05-01 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1245万
展开全部
这里只讲原理,不关注速度。实际设计工作中,已经有很多单片机能够识别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);
//在此应用
}
}
浮若心微凉
2019-06-11
知道答主
回答量:26
采纳率:0%
帮助的人:10万
展开全部
可以利用定时器定时中断检测。每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;更新上一次开关有效值
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式