找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1165|回复: 10
收起左侧

小白求单片机编程思路,怎样实现定时?

[复制链接]
ID:891876 发表于 2023-9-19 09:48 | 显示全部楼层 |阅读模式
用51单片机业余制作:按键加减1-9,代表1-9小时,单只数码管显示数字,到设定数字时间后启动28BYJ-48步进电机输出一定角度,然后停止3sz再转动同样角度,等待下一次定时到,请教怎样实现呢?求程序思路,万分感谢!
回复

使用道具 举报

ID:970079 发表于 2023-9-19 17:25 | 显示全部楼层
要简单点的话,直接死等模式去做
回复

使用道具 举报

ID:970079 发表于 2023-9-19 17:36 | 显示全部楼层
要简单点的话,直接死等模式吧:
while(1)
{
  while(m)
  {
     m --;
     delay_10ms();
     if(detect_keyboad())//有动作
     {
        n = get keyboard set();//获取设定值
        m = n *100;
        break;
      }
      
  }
  motor ctrl//转动电机
}
回复

使用道具 举报

ID:73435 发表于 2023-9-19 17:43 | 显示全部楼层
建议分模块,按键只负责按键处理,比如扫描或者中断,显示负责显示,固定刷新率更新显示,步进电机负责步进电机
回复

使用道具 举报

ID:961839 发表于 2023-9-19 17:47 | 显示全部楼层
294479435 发表于 2023-9-19 17:43
建议分模块,按键只负责按键处理,比如扫描或者中断,显示负责显示,固定刷新率更新显示,步进电机负责步进 ...

初学者还是要有分模块的良好习惯
回复

使用道具 举报

ID:195496 发表于 2023-9-19 17:55 | 显示全部楼层
直接上定时器,产生50ms中断,在中断中累加产生秒中断标志,当你设定定时后,开始计时,时间到,置位定时到标志,然后,输出一串脉冲,脉冲数目对应步进电机转动角度。做后再延时计时3秒,重新输出脉冲转动步进电机。
回复

使用道具 举报

ID:123289 发表于 2023-9-20 09:10 | 显示全部楼层
多读单片机原理的书,而后再行行动。这样靠谱一些。
回复

使用道具 举报

ID:1093026 发表于 2023-9-20 10:48 | 显示全部楼层
使用定时器T1和T2配置系统时间和定时时间,T1运行到T2的时间时,T2触发中断。此时,配置定时器0/1,计数3s的tick数,到了触发中断,中断事件中控制步进电机转动角度。
回复

使用道具 举报

ID:1093723 发表于 2023-10-7 22:45 | 显示全部楼层
1.使用延时函数 可以使用STM32提供的延时函数来实现延时功能,延时函数根据CPU时钟频率和延时时间计算出延时的时间,在延时期间CPU处于忙等待状态。  需要注意的是,延时函数会占用过多的CPU资源,并且在延时期间无法执行其他任务。  这种方式是初学者玩的,如果用到实际项目,除了大聪明,我找不到更好的词夸你。  2.使用定时器和中断 可以使用STM32内置的定时器和中断来实现延时功能。  将定时器配置为2小时的定时周期,并启用定时器中断。  在中断处理函数中设置标志位表示延时结束,并执行相应的操作。  需要注意的是,定时器中断的频率不能太高,否则会占用过多的系统资源,但中断频率也不能太慢,毕竟定时器是稀缺资源,一个定时器可能有很多不同的定时需求。  这个可能是最多人的选择,毕竟省心、省成本。  3.使用RTC实时时钟 可以使用STM32内置的RTC实时时钟模块来实现延时功能。  将RTC设置为2小时的计时周期,并启用RTC中断。  在中断处理函数中设置标志位表示延时结束,并执行相应的操作。  需要注意的是,RTC的精度相对于定时器较高,但配置和使用上相对复杂。  我一般不会用这种,因为配置比较麻烦,我比较懒。  4.使用外部实时时钟模块 可以使用外部的实时时钟模块,如DS1302等,来实现延时功能。  将实时时钟模块连接到STM32的GPIO口,通过SPI或I2C等总线协议与STM32进行通信,获取当前时间并计算出延时结束的时间。  需要注意的是,外部实时时钟模块的精度和配置相对于RTC更加复杂。  这种方式有点脱裤子放屁的感觉,还会增加硬件成本,不过有些场合确实需要这样做,比如你看老板不爽,老板又不懂技术的时候。
回复

使用道具 举报

ID:74687 发表于 2023-10-8 09:32 | 显示全部楼层
定时可以用定时器实现
回复

使用道具 举报

ID:1097455 发表于 2023-10-27 13:40 | 显示全部楼层
学会用定时器很重要的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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