找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

用红外光发射接收管做输入 单片机输出一个低电平的程序问题

查看数: 1738 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-1-2 08:25

正文摘要:

新手,做了一个用红外光发射接收管做输入,用用STC8G1K08A-8P做控制输出一个低电平的程序,就是发射接收中间有东西,STC8G1K08A-8P的P33就输出低电平。 电路和程序做好之后,实际测试发现STC8G1K08A-8P的P55输入低 ...

回复

ID:1075398 发表于 2024-1-3 10:49
lkc8210 发表于 2024-1-2 15:53
应为那断
                        while(--HVDTcnt)
                        {

确定了,就是延时这里有问题,程序逻辑没有问题,出问题的是赋的初值,3000只有大约1mS左右,而不是我想的3秒,但我一直当是3秒,,学艺不精害人,
再次感谢大佬,
ID:1075398 发表于 2024-1-2 18:25
我这样写,while(--HVDTcnt); 它应该延时才对,好像也没延时,
所以就改成这样了
while(--HVDTcnt)
  {
      HV_OUT = 0;         //输出低
                        }
这 样,好像就是一下子就出去了,问题应该就是出在这儿,明天改成delay1ms()再试
ID:161164 发表于 2024-1-2 15:53
Lthrwy 发表于 2024-1-2 13:46
感谢大佬回复,中断是打开了的,在主程序里面打开的,现在上传的是修改后的,可以有反应了,但是时间很短 ...

应为那断
                        while(--HVDTcnt)
                        {
                                HV_OUT = 0;         //输出低
                        }
没加延时
所以几十毫秒后就会跳出循环
在循环里加个delay1ms()延时就可以了
ID:1075398 发表于 2024-1-2 13:46
lkc8210 发表于 2024-1-2 10:55
你的接收处理代码在中断里运行
但又不开启中断
当然没反应

感谢大佬回复,中断是打开了的,在主程序里面打开的,现在上传的是修改后的,可以有反应了,但是时间很短,但其实程序里写了如果P55低电平,P32就输出低电平3秒时间,就是没找到它为什么不能延时3秒的原因
ID:161164 发表于 2024-1-2 10:55
你的接收处理代码在中断里运行
但又不开启中断
当然没反应



小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表