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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

不用PWM的單片機呼吸燈程序(視覺暫留)

[復制鏈接]
跳轉到指定樓層
樓主
ID:500421 發表于 2019-5-2 08:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
此呼吸燈不用PWM也能呼吸!!
原理是由于人眼的視覺殘留特性:人眼在觀察景物時,光信號傳入大腦神經,需經過一段短暫的時間,光的作用結束后,視覺形象并不立即消失,這種殘留的視覺稱“后像”,視覺的這一現象則被稱為“視覺暫留”。
舉一個簡單的例子,我們家里使用的燈是50Hz,一秒鐘會亮滅50次,但是我們覺得燈是一直亮著的。

單片機源程序如下:
  1. #include<reg52.h>
  2. void delay(int x)
  3. {
  4. int i;
  5. for (i=x;i>0;i--);
  6. }
  7. void main ()
  8. {
  9. int ledlx,cycle=400;
  10. while(1)
  11. {
  12. for(ledlx=0;ledlx<cycle;ledlx++)                /////////呼吸燈
  13. {
  14. P1=0;
  15. delay(ledlx);
  16. P1=0xff;
  17. delay(cycle-ledlx);
  18. }
  19. for(ledlx=cycle;ledlx>0;ledlx--)

  20. {
  21. P1=0;
  22. delay(ledlx);
  23. P1=0xff;
  24. delay(cycle-ledlx);
  25. }
  26. }
  27. }
復制代碼

所有資料51hei提供下載:
呼吸燈.rar (279 Bytes, 下載次數: 13)




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:500421 發表于 2019-5-2 08:45 | 只看該作者
大家有問題可以問哈!!
回復

使用道具 舉報

板凳
ID:257098 發表于 2019-5-2 22:12 | 只看該作者
這個for寫的巧妙.可以用定時.細分也可以嗎?
回復

使用道具 舉報

地板
ID:500421 發表于 2019-5-3 09:16 | 只看該作者
曾先生 發表于 2019-5-2 22:12
這個for寫的巧妙.可以用定時.細分也可以嗎?

emmm啥叫定時細分,我是小白,不太懂,不好意思哈。。如果您用定時器的話,每次進中斷的時間不是一樣的么?好像達不到要求吧……
回復

使用道具 舉報

5#
ID:47286 發表于 2019-5-3 11:12 | 只看該作者
先感謝樓主分享

說說我自己的想法

首先這個程序的意思和PWM一樣啊 不也是逐步改變亮滅時間的占空比調整亮和滅時間 其次 用for語句寫拋物面在51上對系統占用太大了 基本上干不了別的事 除非一個片子只做呼吸燈 但如果只做呼吸燈用個51片子又太浪費 用555做也是一樣的

我給家里的夜燈做了個控制板 沒人活動的時候就是呼吸狀態 開始也是用和你一樣的for寫 但要同時通訊 和多個模塊同步狀態以及檢測電流 判斷是否有故障等等事以后就出問題了 總有某個事件做不好 后來還是用中斷的方式寫
回復

使用道具 舉報

6#
ID:500421 發表于 2019-5-3 14:08 | 只看該作者
dzbj 發表于 2019-5-3 11:12
先感謝樓主分享

說說我自己的想法

確實,您說的沒錯,原理是和PWM一樣,不同僅在于這個不用中斷。可能也就在定時器用完的情況下用用吧……(就是定時器不夠用的時候)但是在定時器用完的情況下,程序一般都挺大的,加了這個可能會像您說的那樣出問題(您是用什么芯片的,是不是芯片的問題),所以吧……好像確實沒什么用。我是個小白,非常感謝您的回復!!
回復

使用道具 舉報

7#
ID:47286 發表于 2019-5-3 21:53 | 只看該作者
323 發表于 2019-5-3 14:08
確實,您說的沒錯,原理是和PWM一樣,不同僅在于這個不用中斷。可能也就在定時器用完的情況下用用吧…… ...

我用的是STC片子 通常底層控制我覺得8位足夠了 相比之下51內核的簡單 涉及圖像處理或者中央控制才會用到STM32之類的

小白也沒關系 都從小白到大白的 哈哈

我覺得在程序里 除了非常短暫和必須的情況 盡量不用Delay或while(--t)之類的死延時 這種程序工作時cpu就在那空轉 除了中斷什么事都干不了 比如所有任務循環一次不到1ms Delay在應用中最小的等待時間是5ms 就意味著有5次不能執行其它事 還有 for語句對運算時間的消耗比較大 我一般不會用for去寫主程序 多數用在單一的功能模塊里 更多用判斷標記 if執行時間小于for不少呢 另外51的硬件自資源太少了 中斷實在要慎用 能不用的盡量不用 即便STC8系有更多定時器和中斷 其實放開了用也是不夠的 自己寫功能的一點點感受 僅供參考
回復

使用道具 舉報

8#
ID:500421 發表于 2019-5-4 09:42 | 只看該作者
dzbj 發表于 2019-5-3 21:53
我用的是STC片子 通常底層控制我覺得8位足夠了 相比之下51內核的簡單 涉及圖像處理或者中央控制才會用到S ...

嗯嗯,學到了,謝謝大佬哈!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲aⅴ| 99精品一区二区三区 | 在线免费观看毛片 | 亚洲一区二区三区免费观看 | 精品视频一区二区 | 伊人色综合久久久天天蜜桃 | 欧美一级大片 | 中文精品一区二区 | 国产精品久久777777 | 91麻豆精品一区二区三区 | 国产成人精品免费视频大全最热 | 中文字幕一区二区不卡 | 97精品国产97久久久久久免费 | 久久久久一区二区三区 | 欧美视频精品 | 综合久久综合久久 | 国产午夜精品一区二区三区嫩草 | 99pao成人国产永久免费视频 | 99精品在线观看 | 欧美激情精品久久久久久 | 欧美一区二区三区在线观看 | 国产传媒在线播放 | 粉嫩av久久一区二区三区 | 国产黄色在线观看 | 有码在线 | 97精品超碰一区二区三区 | 免费1区2区3区 | 国产精品高清一区二区三区 | 天天躁日日躁狠狠很躁 | 中文字幕免费中文 | 91p在线观看 | 日韩视频91 | 免费一区二区三区在线视频 | 亚洲国产高清在线观看 | h在线| 亚洲午夜三级 | 国产精品久久久久久亚洲调教 | 中文字幕av中文字幕 | 欧洲精品久久久久毛片完整版 | 亚洲欧美另类在线 | 免费看a |