单片机利用keil和protues联合仿真—单稳态声控延迟电路

已有单片机开发版和待测电路图
keil程序仿真,利用AT89C51芯片,外接LCD或OLED屏来测量如图LED灯的延迟时间。
问:如何在单片机开发版上面实现对如图电路中LED灯亮时间的测量。(如何keil程序编写)

img

这个问题本质就是测量一个高电平的持续时间。
考虑到这种电路的实际延时时间都是几秒以上的,所以像上面那样直接用计数器并不是合适的方式,建议用定时器中断,周期1毫秒, 检测到高电平后开启定时器,在中断里用个变量累加计数,检测到恢复为低电平后停止计数,次数累加的变量里的值就是延迟的毫秒数,再通过LCD或OLED输出即可

引用chatgpt:
首先,将待测电路图连接到单片机开发版上,使用LCD或OLED屏来显示LED灯的亮灭状态,并使用单片机开发版上的定时器来测量LED灯的亮灭时间。具体keil程序编写步骤如下:

定义LED灯对应的IO口,并配置为输出模式;
定义LCD或OLED屏对应的IO口,并配置为输出模式;
初始化定时器,使其工作在需要的时钟频率下;
在主循环中,首先将LED灯置亮,然后启动定时器开始计时,同时将LCD或OLED屏对应的IO口置亮,等待一段时间后停止定时器,将LED灯置灭,同时将LCD或OLED屏对应的IO口置灭,最后读取定时器的计数值,并计算出LED灯的亮灭时间。
综上所述,通过上述步骤即可在单片机开发版上面实现对如图电路中LED灯亮时间的测量

Proteus与keil联合仿真

可以借鉴下
https://blog.csdn.net/Jayuee/article/details/106258587