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

標題: 不使用定時器的簡易單片機呼吸燈代碼 [打印本頁]

作者: zhengaohui    時間: 2018-11-27 09:47
標題: 不使用定時器的簡易單片機呼吸燈代碼
沒有用到定時器,代碼簡易,效果也還行。
使用的是atc89c52RC,P1^1口接led,P1^1口位高電平小燈亮起,代碼如下:
  1. #include "reg52.h"
  2. void delay(int t)
  3. {
  4. while(t--);
  5. }
  6. int main(void)
  7. {
  8. int c=400;//定義周期
  9. int h,l;//定義高電平低電平highlow
  10. while(1)
  11. {
  12. for(h=1;h<=c;h++)
  13. {
  14. P1=0x01;
  15. delay(h);
  16. P1=0x00;
  17. l=c-h;
  18. delay(l);
  19. }//高電平逐漸增加
  20. for(l=1;l<=c;l++)
  21. {
  22. P1=0x00;
  23. delay(l);
  24. P1=0x01;
  25. h=c-l;
  26. delay(h);
  27. }//低電平逐漸增加
  28. }
  29. }
復制代碼
我也是偶然看到這個方法的,感覺還行分享出來。
首先我們定義了一個delay,接著是main主函數,在主函數里定義死循環,while里面用了for循環,目的是為了增加占空比,先讓小燈置位高電平,延時h秒,接著低電平,延時L秒,就這樣模擬了PWM的占空比,就有了高電平比例逐漸上升又逐漸下降的效果。
不喜勿噴,還是新手。
管理員求黑幣!!!


作者: 牧阿木    時間: 2018-12-14 11:14
你好,我想問一下這個延時函數為什么這樣寫啊?我有這樣的延時函數void delay (uint ms) {uchar us;  while(ms--)  {for(us=124;us>0;us--);}  }小燈就一直亮不會出現呼吸的效果
作者: 158925    時間: 2019-1-8 16:06
牧阿木 發表于 2018-12-14 11:14
你好,我想問一下這個延時函數為什么這樣寫啊?我有這樣的延時函數void delay (uint ms) {uchar us;  while ...

你的燈不是不呼吸。只是你的延時寫的時間寫的比較長。

作者: 158925    時間: 2019-1-8 16:07
牧阿木 發表于 2018-12-14 11:14
你好,我想問一下這個延時函數為什么這樣寫啊?我有這樣的延時函數void delay (uint ms) {uchar us;  while ...

void delay10us(void)   //誤差 0us
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=2;a>0;a--);
}

作者: 演繹那些年    時間: 2019-1-8 19:12
厲害了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人精品| 日韩成人一区 | 在线国产欧美 | 天天操天天干天天爽 | 日韩免费毛片 | 国产成人综合在线 | 欧美视频在线观看 | 久久久久久av | 亚洲 欧美 另类 综合 偷拍 | 久久大| 国产精品高清一区二区三区 | 999久久| 精品成人在线观看 | 久久国产精品视频免费看 | 黄色免费三级 | 国产精品视频在线免费观看 | 国产中文字幕在线 | 懂色中文一区二区三区在线视频 | 天天玩天天干天天操 | 国产精品7777777| 亚洲第一在线 | 91麻豆精品国产91久久久更新资源速度超快 | 亚洲精品成人 | 中文字幕一区二区三区精彩视频 | 亚洲国产成人久久综合一区,久久久国产99 | 欧美日韩久久精品 | 一区二区三区四区视频 | 国产91在线 | 中日 | 99久久婷婷国产综合精品电影 | 色综合色综合网色综合 | 日韩精品一区二区三区在线播放 | 九九精品在线 | 久久久蜜桃 | 在线免费小视频 | 亚洲网站在线播放 | 国产一区久久 | 久久久久免费精品国产 | 天天夜碰日日摸日日澡 | 999精品在线| 欧美日一区 | 国产成人亚洲精品 |