欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機PWM調試LED呼吸燈程序-經典例程 [打印本頁]

作者: 18340317392    時間: 2017-9-16 16:04
標題: 51單片機PWM調試LED呼吸燈程序-經典例程
51單片機利用PWM調試LED顯示經典例程

單片機源程序如下:
  1. /*********************************************************************************
  2. * 【編寫時間】: 12月2日
  3. * 【作    者】: 清翔電子:03
  4. * 【版    本】: 1.0
  5. * 【實驗平臺】: QX-MCS51 單片機開發板 & QX-A51智能小車
  6. * 【外部晶振】: 11.0592mhz       
  7. * 【主控芯片】: STC89C52
  8. * 【編譯環境】: Keil μVisio4
  9. * ********************************【接線說明】********************************
  10.              以下"A_"表示智能小車底板~~~"B_"表示開發板     
  11. *開發板供電線  :A_J5-VCC~~~B_VCC或5V0    A_J6-GND~~~B_GND (一共使用2根杜邦線)
  12. *電機控制線    :A_J10-P1.2至P1.7 對應接到B_P1.2至P1.7 (一共使用6根杜邦線)
  13. *避障尋跡反饋線:A_J11-P3.2至P3.5 對應接到B_P3.2至P3.5 (一共使用4根杜邦線)
  14. ******************************************************************************
  15. * 【程序功能】:QX-A51智能小車紅外避障(跟隨障礙物)                                                                                   
  16. * 【使用說明】:接線無誤后,燒寫程序打開電源開、按下S2按鍵后蜂鳴器發出提示音1秒后啟動小車
  17. * 【注意事項】:避免小車撞向障礙物或小車輪子堵轉,小車電壓不能低于6V
  18.                                 1、不能在自然光強烈的條件下進行試驗
  19.                                 2、進行試驗前必須調節好避障探頭
  20.                                 3、必須先搭建好實驗環境(參考相關視頻教程)
  21.                                 4、此程序只做參考,實際運行效果需根據不同實驗場地進行不同調試
  22. **********************************************************************************/
  23. #include <reg52.h> //51頭文件
  24. #include <..\CONFIG\QXA51.h>//QX-A51智能小車配置文件
  25. unsigned char pwm_left_val = 160;//左電機占空比值 取值范圍0-170,0最快
  26. unsigned char pwm_right_val = 160;//右電機占空比值取值范圍0-170 ,0最快
  27. unsigned char pwm_t;//周期

  28. void delay(unsigned int z)//毫秒級延時
  29. {
  30.         unsigned int x,y;
  31.         for(x = z; x > 0; x--)
  32.                 for(y = 114; y > 0 ; y--);
  33. }       
  34. /*小車前進*/
  35. void forward()
  36. {
  37.         left_motor_go; //左電機前進
  38.         right_motor_go; //右電機前進
  39. }
  40. /*小車左轉*/
  41. void left_run()
  42. {
  43.         left_motor_stops; //左電機停止
  44.         right_motor_go; //右電機前進       
  45. }
  46. /*小車右轉*/
  47. void right_run()
  48. {
  49.         right_motor_stops;//右電機停止
  50.         left_motor_go;    //左電機前進
  51. }

  52. //定時器0中斷
  53. void timer0() interrupt 1
  54. {
  55.         pwm_t++;//周期計時加
  56.         if(pwm_t == 255)
  57.                 pwm_t = EN1 = EN2 = 0;
  58.         if(pwm_left_val == pwm_t)//左電機占空比       
  59.                 EN1 = 1;               
  60.         if(pwm_right_val == pwm_t)//右電機占空比
  61.                 EN2 = 1;                         
  62. }
  63. void main()
  64. {
  65.         for(;;)        //死循環
  66.         {
  67.                 if(key_s2 == 0)// 實時檢測S2按鍵是否被按下
  68.                 {
  69.                         delay(5); //軟件消抖
  70.                         if(key_s2 == 0)//再檢測S2是否被按下
  71.                         {
  72.                                 while(!key_s2);//松手檢測
  73.                                 beep = 0;        //使能有源蜂鳴器
  74.                                 delay(200);//200毫秒延時
  75.                                 beep = 1;        //關閉有源蜂鳴器
  76.                                 break;                //退出FOR死循環
  77.                         }
  78.                 }
  79.         }
  80.         delay(1000);//延時1秒
  81.         TMOD |= 0x02;//8位自動重裝模塊
  82.         TH0 = 220;
  83.         TL0 = 220;//11.0592M晶振下占空比最大比值是256,輸出100HZ
  84.         TR0 = 1;//啟動定時器0
  85.         ET0 = 1;//允許定時器0中斷
  86.         EA        = 1;//總中斷允許
  87.         while(1)
  88.         {
  89.                 //為0 識別障礙物 為1沒有識別到障礙物
  90.                 if(left_led2 == 0 && right_led2 == 0)//左右識別到障礙物,前進跟隨
  91.                 {
  92.                         forward();//前進
  93.                 }
  94.                 if(left_led2 == 1 && right_led2 == 0)//小車右側識別到障礙物,右轉跟隨
  95.                 {
  96.                         right_run();//右轉
  97.                 }
  98.                 if(left_led2 == 0 && right_led2 == 1)//小車左側識別到障礙物,左轉跟隨
  99.                 {
  100.                         left_run();//左轉

  101.                 …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
PWM調試LED燈顯示.zip (808.25 KB, 下載次數: 147)



作者: 51shshshsh    時間: 2018-6-11 16:59
沒有Proteus仿真圖,建議附件上以源程序+原理圖+Proteus仿真圖的形式發表會讓此帖子更有實用性
作者: cqcgb    時間: 2018-6-12 16:31
看看,學習學習
作者: embrace_guo    時間: 2018-6-12 17:21
不建議完全變暗的呼吸,
作者: embrace_guo    時間: 2018-6-12 17:22
完全變暗的呼吸燈不好看,保留一點亮燈,效果更好看
作者: hhh77    時間: 2018-11-13 10:44

完全變暗的呼吸燈不好看,保留一點亮燈,效果更好看
作者: xuanjj    時間: 2018-11-13 16:04
謝謝分享
作者: zsttom    時間: 2018-11-23 08:13
謝謝樓主分享
作者: 大頭怪1號    時間: 2020-2-8 21:39
你這個附件中的程序不是呼吸燈的
作者: yechuan220    時間: 2020-2-10 09:58
樓主好厲害是怎么實現的?
作者: 125844584    時間: 2020-4-8 16:03
有仿真工程或電路嗎




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1