完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
29个回答
|
|
中断你得看你设置的是边沿触发还是电平触发的方式。
|
|
|
|
这个和你设计的触发方式有关吧
|
|
|
|
设置的边沿触发。把中断io口放在5v电压用反应,但是在传感器io口就没有反应。而且我也加了上拉电阻 |
|
|
|
是下降沿触发。我接5v电压就会有反应,开始接传感器输出就是检测不到。用电压表测输出电压是3v左右 |
|
|
|
这个去掉传感器 直接用5v输入试试看如何 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
不行。没有反应。而且用电压测量输出端电压是将近0v好像是被51单片机io口把电压拉低了 |
|
|
|
|
|
|
|
最简单的方法,加个三极管做个反向器,直接接到5V呗,TTL电平的逻辑高在3.6-5v,你这个3v低于这个,估计是识别不了啊。
|
|
|
|
io口的输出电压会不会把电压拉低? |
|
|
|
用两个三极管npn、pnp做一个互补电路会不会好点? |
|
|
|
|
|
|
|
|
|
|
|
void main() { unsigned char e=0,f=0,tmp,i; //IE = 0x81; //允许总中断中断,使能 INT0 外部中断 // TCON = 0x03; //触发方式为脉冲负边沿触发 //开中断0 IT0=1; //下降沿触发 EX0=1; //开中断1 // IT1=1; // EX1=1; EA=1; //开中断 IRIN=1; //红外输入IO口初始化 IROT=1; //红外输出IO口初始化 } //外部中断0 进入中断 void Int0() interrupt 0 { DelayM(20); if(IE0==0) //(IE0==0) 产生中断IE会置0 { renshu++; HC_RS=1; DelayM(200);//延时2s发声 HC_RS=0; lcm_clr2(); // 清除 数字 write_com(0x96); lcm_w_test(1,(renshu/1000+0x30));// 1128/1000=1 lcm_w_test(1,(renshu-renshu/1000*1000)/100+0x30);// 1128-1128/1000*1000=1128-1000=128 lcm_w_test(1,(renshu-renshu/1000*1000-(renshu-renshu/1000*1000)/100*100)/10+0x30); // (1128-1128/1000*1000-(1128-1128/1000*1000)/100*100)/10 // (1128-1000-100)/10=2 lcm_w_test(1,(renshu%10+0x30)); DelayM(5000); //IRIN=1; } } 这是主函数中断定义,和中断函数 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1958 浏览 1 评论
3787 浏览 1 评论
8178 浏览 0 评论
1984 浏览 0 评论
VL53L5CX #高达 8x8 多区域测距和 63°对角线宽视场 飞行时间多区域测距传感器
17390 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 16:44 , Processed in 0.790344 second(s), Total 77, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号