标题:
单片机LED灯闪亮问题
[打印本页]
作者:
molo
时间:
2019-9-21 10:41
标题:
单片机LED灯闪亮问题
大家好!请教各位大侠一下:
在STC单片机上,原来控制LED打开用以下语句:
case 0x01: OUT1=0;break;
想把这个修改成亮1秒灭1秒,怎么修改呢?加延时还是加定时器?
给个参考示例,谢谢!
作者:
来51学习的
时间:
2019-9-21 12:33
如果没有别的控制,加延时的方式最方便
作者:
166864646883
时间:
2019-9-21 12:57
延时定时器都可以,延时的话只能大概,不是很准确,定时器的话比较准确
作者:
166864646883
时间:
2019-9-21 12:58
比如延时的:
OUT1=0;
for(i=0;i<30000;i++);
OUT1=1;
for(i=0;i<30000;i++);
作者:
devcang
时间:
2019-9-21 13:30
定时器、延时,都可以做到的。
~~~~~~~~
作者:
angmall
时间:
2019-9-21 13:52
你这个程序不完整
问题描述太少,不好贸然回答
作者:
molo
时间:
2019-9-21 16:01
我是想让LED一直闪着,用延时好像一段时间就会停下来。
作者:
molo
时间:
2019-9-21 16:11
不好意思,没说清楚,是想修改成亮1秒灭1秒,一直循环。
作者:
海里蛐蛐
时间:
2019-9-21 16:26
估计楼主是想通过 switch判断变量 来控制led。这个开个定时中断每隔1s改变判断变量就可以了。
作者:
qq603599910
时间:
2019-9-21 16:39
没有相关任务,软件延时最直接也最简单易懂.
void Delay1000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 43;
j = 6;
k = 203;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
作者:
文凤轩
时间:
2019-9-21 17:09
加延时就行了
作者:
molo
时间:
2019-9-21 17:25
谢谢各位,我再琢磨琢磨!
作者:
qq603599910
时间:
2019-9-21 21:22
定义LED变量,然后默认LED=1,main函数里加while循环,启动延时后加一行 LED=!LED ,每次取反,这样就能循环亮灭闪动了.从基本的教程开始学习一下,最初步的教程就是LED的亮和闪亮开始.
作者:
hantu
时间:
2019-9-21 21:58
用中断吧,一开中断就让它亮灭不停,关中断它才停下。
作者:
weijoyer
时间:
2019-9-22 00:23
简单的直接加软件延时,如果有控制用定时器提高效率
作者:
你是我爸爸
时间:
2019-9-22 19:50
定时器吧,用定时器限时一秒,再在主函数判定循环取反就OK啦
作者:
molo
时间:
2019-9-22 21:15
谢谢各位答复,看来用定时器比较好。
作者:
spendell
时间:
2019-9-22 22:23
延时不准,定时器准一些。
作者:
1539905269
时间:
2019-9-23 11:38
加延迟会造成程序堵塞 建议开启定时器 每次取反输出
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1