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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5523|回復(fù): 1
收起左側(cè)

STC單片機(jī)的PWM,AD采集測試程序

[復(fù)制鏈接]
ID:103513 發(fā)表于 2016-1-17 04:00 | 顯示全部樓層 |閱讀模式

  1. /*******************************************************************
  2. *工程名稱: STC的PWM,AD采集測試
  3. *創(chuàng)建人:  張大偉
  4. *創(chuàng)建時(shí)間: 2012年5月19號
  5. *隸屬模塊: STC.C
  6. *產(chǎn)考資料:STC手冊
  7. *模塊說明: STC8位PWM測試,上電以后LED出現(xiàn)呼吸燈效應(yīng)。 采集一路電壓,設(shè)定3個(gè)穩(wěn)壓值分別是1V,3.3V ,4.2V,讓單片機(jī)通過AD采集后
  8. 驅(qū)動(dòng)PWM0控制穩(wěn)壓電路出現(xiàn)一個(gè)設(shè)定值。穩(wěn)壓電路用一個(gè)采樣電阻連接到AD的采樣端這樣形成一個(gè)閉環(huán)系統(tǒng)、!
  9. ********************************************************************/
  10. #include <STC12C52.H>
  11. /*******************************************************************
  12. *函數(shù)名稱:
  13. *入口參數(shù):
  14. *出口參數(shù):
  15. *函數(shù)說明: 全局變量和位定義     
  16. ********************************************************************/
  17. #define unchar unsigned char
  18. #define unint unsigned int
  19. #define DUTYCYCLE(x)   (256-(128*x/50))//占空比計(jì)算公式256-(80/x=50/128)=XX,  ** 占空比**
  20. #define PDXBIT(x)           (0x01<<x)
  21. #define REGBIT(x)           (0x01<<x)
  22. unchar  yi=1;
  23. unchar  er=0;

  24. sbit KEY1=P3^4;
  25. unint CYCLE;
  26. /*******************************************************************
  27. *函數(shù)名稱: void Delay(unint x)
  28. *入口參數(shù): x:延時(shí)長度
  29. *出口參數(shù):
  30. *函數(shù)說明: 不精確的延時(shí)
  31. ********************************************************************/
  32. void Delay(unint x)    //延時(shí)子函數(shù)      
  33. {
  34.    unint y;      //定義一個(gè)Y變量
  35.    for(;x>0;x--)    //如果X大于0,那么X就減1.
  36.     for(y=500;y>0;y--);//給Y賦值為500,當(dāng)Y大于0那么Y就減1.  *******注意前面的for的語句后面沒有引號,那么會(huì)把后面的FOR語句
  37. //也認(rèn)為是他的內(nèi)部語句。也就是說X執(zhí)行一次那么Y就得執(zhí)行500次。
  38. }
  39. /*******************************************************************
  40. *函數(shù)名稱: void MainInt()      
  41. *入口參數(shù):
  42. *出口參數(shù):
  43. *函數(shù)說明: 主函數(shù)初始化
  44. ****************************** **************************************/
  45. void MainInt()        //
  46. {      
  47.     //P4SW|==REGBIT(4);//將P4口設(shè)置為輸出
  48.         //AUXR1|=REGBIT(6);//將PWM0和PWM1從P1.3/P1.4移到P4.2/P4.3
  49.         P1M1=0x00;
  50.         P1M0|=REGBIT(4)|REGBIT(3);//設(shè)置P1.4,3口為強(qiáng)推挽輸出
  51.         CMOD|=REGBIT(1);//選擇SYSCLK為PWM的時(shí)鐘源//控制PWM波的頻率
  52.         CCAPM0|=REGBIT(1)|REGBIT(6);//允許比較器功能,開啟PWM0
  53.         CCAPM1|=REGBIT(1)|REGBIT(6);//允許比較器功能,開啟PWM1
  54.         CL=0x00;//計(jì)數(shù)器清零
  55.         CH=0x00;
  56.         CCAP0L=0x00;//自動(dòng)裝入初始值,控制PWM占空比靠著兩個(gè),大于這個(gè)數(shù)輸出1,反之。。
  57.         CCAP0H=0x00; //   CCAPOL  CCAPOH  為PWM0的最高占空比和最低占空比。
  58.         CCAP1L=0x00; //猜也猜到了這個(gè)是PWM1的低占空比。
  59.         CCAP1H=0x00; //這個(gè)也是我猜的哈哈PWM1的高占空比。
  60.         CCON|=REGBIT(6);//啟動(dòng)PWM
  61. }
  62. /*******************************************************************
  63. *函數(shù)名稱: void KeyScan(void)      
  64. *入口參數(shù):
  65. *出口參數(shù):
  66. *函數(shù)說明: 按鍵檢查函數(shù),用來調(diào)節(jié)PWM的占空比0%-100%
  67. ********************************************************************/
  68. void KeyScan(void)
  69. {
  70.    if(KEY1==0)
  71.     {
  72.           Delay(500);
  73.           if(KEY1==0);   
  74.           CYCLE+=1;
  75.           if(CYCLE>100)
  76.            CYCLE=0;
  77.       CCAP0L=DUTYCYCLE(CYCLE);//自動(dòng)裝入初始值,控制PWM占空比靠著兩個(gè),大于這個(gè)數(shù)輸出1,反之。。
  78.       CCAP0H=DUTYCYCLE(CYCLE);//占空比計(jì)算公式256-(80/x=50/128)=XX,
  79.       CCAP1L=DUTYCYCLE(CYCLE);
  80.       CCAP1H=DUTYCYCLE(CYCLE);
  81.         }
  82. }
  83. /*******************************************************************
  84. *函數(shù)名稱: void main(void)
  85. *入口參數(shù):
  86. *出口參數(shù):
  87. *函數(shù)說明: 主函數(shù)
  88. ********************************************************************/
  89. void main(void)
  90. {
  91.    MainInt();
  92.     CYCLE=100;
  93.    while(1)
  94.     {
  95. //****************下面語句是不斷加減CYCLE的數(shù)值來調(diào)節(jié)占空比輸出的。
  96.            if(yi==1)
  97.      {
  98.       Delay(30);
  99.    CYCLE--;
  100.    if(CYCLE==1)
  101.    er=1,yi=0;
  102.      }
  103.      if(er==1)
  104.      {
  105.       Delay(50);
  106.    CYCLE++;
  107.    if(CYCLE==100)
  108.    er=0,yi=1;
  109.      }
  110.    
  111.      
  112.          
  113.    CCAP0L=DUTYCYCLE(CYCLE);//自動(dòng)裝入初始值,控制PWM占空比靠著兩個(gè),大于這個(gè)數(shù)輸出1,反之。。
  114.       CCAP0H=DUTYCYCLE(CYCLE);//占空比計(jì)算公式256-(80/x=50/128)=XX,
  115.       CCAP1L=DUTYCYCLE(CYCLE);
  116.       CCAP1H=DUTYCYCLE(CYCLE);
  117.    
  118.         }
  119. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:65237 發(fā)表于 2021-10-4 15:29 | 顯示全部樓層
樓主謝謝你的分享最近在學(xué)這個(gè) 主要是AD部分能發(fā)過完整的嗎
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区四区毛片 | 日韩免费网站 | 国产日韩一区二区三区 | a在线免费观看 | 国产精品自产拍 | 久草视频在 | 国产精品视频网站 | 天天干干 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 日本又色又爽又黄的大片 | 亚洲成人一区二区三区 | 精品欧美一区二区在线观看视频 | 淫片一级国产 | a在线视频 | av无遮挡 | 精品久久久久久久久久久久 | 日韩精品国产精品 | 超碰成人在线观看 | 伊人网影院| 4hu最新网址 | 久久久蜜臀国产一区二区 | 青青青伊人 | 国产精品久久久久久久久久久久午夜片 | 久久精品手机视频 | 欧美日韩久久精品 | 成人午夜影院 | 日本天天操| 国产精品日韩高清伦字幕搜索 | 99久久中文字幕三级久久日本 | 亚洲精品日本 | 日本欧美视频 | 成人精品久久 | 911网站大全在线观看 | 在线成人 | 国产四区 | 精品视频一区二区三区在线观看 | 久久专区| 九九久久久 | a毛片| 欧美日韩精品一区二区三区四区 | 国产欧美一区二区三区在线看 |