久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2993|回復: 22
打印 上一主題 下一主題
收起左側

關于51單片機 我覺得這個程序的意思應該是亮一陣然后暗,為什么這個循環會有閃爍

  [復制鏈接]
跳轉到指定樓層
樓主
ID:278709 發表于 2018-1-22 19:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
問題:我覺得這個程序的意思應該是亮一陣然后暗,為什么這個循環會有閃爍,這個程序的執行順序是什么?謝謝。
#include"reg52.h"
sbit led1=P2^0;
unsigned int a;
void main()
{
  a=50000;
led1=0;
while(a--);//問題:這里的循環不是起延長時間的作用嗎?使led1一直亮,之后就暗嗎?為什么會閃爍
led1=1;
  a=50000;
while(a--);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:261288 發表于 2018-1-22 21:23 | 只看該作者
因延時比較短,視覺效果是閃爍的。
回復

使用道具 舉報

板凳
ID:7485 發表于 2018-1-22 21:31 | 只看該作者
led1=0(亮),延時(大約是0.5S),然后led1=1(滅)延時(大約是0.5S),不就是閃爍嗎?

你的程序少了一句(紅色的行)

void main()

{
while(1)
{
  a=50000;
led1=0;
while(a--);
  a=50000;
while(a--);
}
}
回復

使用道具 舉報

地板
ID:278299 發表于 2018-1-22 21:38 | 只看該作者
這是用來延時的,也可以用嵌套的for循環,都有延時的作用
回復

使用道具 舉報

5#
ID:247467 發表于 2018-1-23 08:43 | 只看該作者
修改合適的延遲時間,看看咋樣
回復

使用道具 舉報

6#
ID:62355 發表于 2018-1-23 09:04 | 只看該作者
你這里延時做的不太對,就是上面說,時間太短了,建議用定時器做,閃爍問題不太能理解 應該有while(1)的,我沒有看到 但是時間上必須要改動。也可以做一個延時循環 之后調用他。比如delayms(int a)這個函數定義個毫秒級延時,調用它,這樣你能知道你延時的時間。再不懂你就模擬調試 將LED 這個IO接口的邏輯和代碼一起貼出來。
回復

使用道具 舉報

7#
ID:278811 發表于 2018-1-23 09:39 | 只看該作者
延時比較短,所以就變成閃爍啦。樓主可以試試把a的值再調整大一些,就可以看到一陣亮一陣滅的效果啦
回復

使用道具 舉報

8#
ID:278860 發表于 2018-1-23 11:27 | 只看該作者
你的發光二極管的接法是共陰還是共陽的呢?
回復

使用道具 舉報

9#
ID:278709 發表于 2018-1-23 11:45 | 只看該作者
ahshmj 發表于 2018-1-22 21:31
led1=0(亮),延時(大約是0.5S),然后led1=1(滅)延時(大約是0.5S),不就是閃爍嗎?

你的程序少了 ...

很感謝回答,想再問一下為什么不加大循環while(1)也可以閃爍,如果沒有while(1)大循環,這個程序為什么會循環啊,這里的while(a--)不是只起延時的作用嗎,不會讓整個程序再循環啊,怎么會一直閃爍呢
回復

使用道具 舉報

10#
ID:278709 發表于 2018-1-23 11:48 | 只看該作者
流逝記憶 發表于 2018-1-23 09:04
你這里延時做的不太對,就是上面說,時間太短了,建議用定時器做,閃爍問題不太能理解 應該有while(1)的 ...

非常感謝。由于是剛學,今天剛學到延時函數,感謝耐心回答
不過,while(a--)明顯比for循環的嵌套簡單的多啊,為什么調用的延時函數里面寫的都是for循環的嵌套?
回復

使用道具 舉報

11#
ID:278709 發表于 2018-1-23 11:49 | 只看該作者
天下1213 發表于 2018-1-23 08:43
修改合適的延遲時間,看看咋樣

好,我沒注意時間,下次一定注意。感謝耐心回答
回復

使用道具 舉報

12#
ID:278709 發表于 2018-1-23 11:50 | 只看該作者
哦哦哦哦哦 發表于 2018-1-23 09:39
延時比較短,所以就變成閃爍啦。樓主可以試試把a的值再調整大一些,就可以看到一陣亮一陣滅的效果啦

可是我都沒有加while(1)的大循環,他為什么會循環閃爍呢
回復

使用道具 舉報

13#
ID:278709 發表于 2018-1-23 11:52 | 只看該作者
leesin 發表于 2018-1-23 11:27
你的發光二極管的接法是共陰還是共陽的呢?

低電平亮,應該是共陽
回復

使用道具 舉報

14#
ID:276587 發表于 2018-1-23 13:36 來自手機 | 只看該作者
一直再循環里面如果你把后面去掉了,那就是延時了就滅了
回復

使用道具 舉報

15#
ID:278919 發表于 2018-1-23 14:20 | 只看該作者
不是循環執行,while的等待時間太短,需要插入一些語句或延長計數值。
回復

使用道具 舉報

16#
ID:278932 發表于 2018-1-23 14:58 | 只看該作者
while是循環當然是閃爍了。。
回復

使用道具 舉報

17#
ID:278932 發表于 2018-1-23 15:26 | 只看該作者
a--,亮了接著減1,然后暗減1,亮循環進行成閃爍了,要不改成定時才行
回復

使用道具 舉報

18#
ID:278954 發表于 2018-1-23 15:31 | 只看該作者
因延時比較短,視覺效果是閃爍的。
回復

使用道具 舉報

19#
ID:278954 發表于 2018-1-23 15:32 | 只看該作者

因延時比較短,視覺效果是閃爍的。
回復

使用道具 舉報

20#
ID:62355 發表于 2018-1-23 16:14 | 只看該作者
pinenut 發表于 2018-1-23 11:48
非常感謝。由于是剛學,今天剛學到延時函數,感謝耐心回答
不過,while(a--)明顯比for循環的嵌套簡單 ...

現在你用us級延時 ms 級延時 s級延時 你會發現嵌套比while(a--)好用。
回復

使用道具 舉報

21#
ID:278982 發表于 2018-1-23 16:17 | 只看該作者
不能依靠這么高速運行單片機,來做減數運算,得出來的時間,你的肉眼是無法分辨的
回復

使用道具 舉報

22#
ID:278982 發表于 2018-1-23 16:21 | 只看該作者
應該寫延時子程序
回復

使用道具 舉報

23#
ID:278709 發表于 2018-1-24 19:29 | 只看該作者
pinenut 發表于 2018-1-23 11:45
很感謝回答,想再問一下為什么不加大循環while(1)也可以閃爍,如果沒有while(1)大循環,這個程序為什 ...

為什么不加while(1)大循環還是閃爍
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久毛片免费观看 | 日韩一区二区视频 | 日本亚洲精品 | 免费久久久 | 99久久久久国产精品免费 | 国产99久久 | 国产美女自拍视频 | 国产精品九九九 | 国产蜜臀| 丁香色婷婷 | 日操夜操| 欧美v日韩v | 成人午夜黄色 | 九九九视频精品 | 高清人人天天夜夜曰狠狠狠狠 | 日本二区在线观看 | 一级毛片视频在线观看 | 亚洲精品亚洲人成人网 | 97人人干 | 天天插天天操 | www.国产精 | 国产精品久久九九 | 成人免费在线观看 | 日本久久久久久久久 | 成人国产精品久久久 | 欧美一级大片 | a在线视频观看 | 国产成人精品久久 | 欧美爱爱视频网站 | 国产成人麻豆免费观看 | 国产精品一区二区三区在线播放 | 亚洲成年人免费网站 | 国产日韩一区二区三免费 | 中文字字幕一区二区三区四区五区 | 久久精品国产免费 | 国产精品亚洲综合 | 久久精品 | 久久男人 | 美国av毛片 | 欧美伊人| 91欧美|