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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3063|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STC12C5A60S2單片機(jī)輸出spwm源碼 實(shí)測(cè)可行

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:226033 發(fā)表于 2017-8-9 11:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
實(shí)測(cè)可行,stc12,13,14輸出。
所有資料51hei提供下載:
swpm輸出.docx (12.19 KB, 下載次數(shù): 35)


單片機(jī)源程序如下:
  1. #include<STC12C5A60S2.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code pwm[54]={255,240,226,211,196,182,168,154,141,128,115,103,91
  5. ,80,69,59,50,42,34,27,20,15,10,6,3,1,0,
  6.      0,1,3,6,10,15,20,27,34,42,50,59,69,80,91,103,115,128,141,154,168,
  7. 182,196,211,226,240,255
  8.      }; // 反正弦變化
  9. int index=0;
  10. sbit P13=P1^3;        //PCA模塊0輸出
  11. sbit P14=P1^4;        //PCA模塊1輸出

  12. bit zf=0;           //前后半周期標(biāo)志
  13. void init_pca(void)//pca計(jì)數(shù)器初始化函數(shù)
  14. {
  15. CMOD=0x02;//計(jì)數(shù)器0的溢出為PCA計(jì)數(shù)器的時(shí)鐘源,允許pca中斷使能
  16. CCON=0x00;
  17. CCAPM0=0x42;//8位PWM輸出,無(wú)中斷
  18. CCAPM1=0x42;//8位PWM輸出,無(wú)中斷
  19. CL=0x00;//清零pca計(jì)數(shù)器
  20. CH=0x00;
  21. CCAP0L=pwm[50];    //初始化spwm輸出的占空比!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  22. CCAP0H=pwm[0];
  23. CCAP1L=pwm[0];    //初始化spwm輸出的占空比
  24. CCAP1H=pwm[0];
  25. CR=1;//運(yùn)行pca計(jì)數(shù)器
  26. }
  27. void init_timer(void)//計(jì)數(shù)器初始化函數(shù)
  28. {
  29. TMOD= 0x01; //計(jì)數(shù)器0工作在方式模式1
  30. TH0 = 0XF7;//T1的計(jì)數(shù)值為2048,若是11.0592M晶振,則中斷頻率為11.0592M/2048=5.4K
  31. TL0 = 0xFF;    //T1的計(jì)數(shù)值低位
  32. AUXR=0xC0;//計(jì)數(shù)器均工作在1T模式。計(jì)數(shù)頻率11.0592M
  33. ET0 = 1; //開(kāi)中計(jì)數(shù)器0斷
  34. TR0 = 1; //開(kāi)啟計(jì)數(shù)器0
  35. }
  36. void int_timer0(void) interrupt 1//計(jì)數(shù)器1中斷函數(shù)
  37. {
  38. TH0=0xF7; //重裝計(jì)數(shù)值
  39. TL0=0xFF;
  40. index++; //查表索引
  41.   
  42. if(index==54) //半周期轉(zhuǎn)換,每半周期分為60份
  43.   {
  44.      CR=0;    //關(guān)PCA計(jì)數(shù)
  45.      index=0;
  46.      zf=~zf;  //半周期標(biāo)志,zf=0,前半周期,zf=1,后半周期  
  47.         if(zf)   //設(shè)置后半周期
  48.         {
  49.            P13=0;                    
  50.         CCAPM0=0X00;   //關(guān)閉模塊0
  51.         CCAPM1=0X42;   //設(shè)置模塊1工作方式
  52.          }
  53.         else               //設(shè)置前半周期
  54.          {
  55.            P14=0;
  56.         CCAPM1=0X00;   //關(guān)閉模塊1
  57.         CCAPM0=0X42;   //設(shè)置模塊0工作方式
  58.          }
  59.       CR=1;           //開(kāi)PCA計(jì)數(shù)               
  60.   }
  61.   
  62. if(zf==0)          //將下一小格的占空比賦給相應(yīng)值
  63.   {
  64. CCAP0H=pwm[index];
  65.   }
  66. else
  67.   {
  68.     CCAP1H=pwm[index];
  69. }
  70. }
  71. void main(void)
  72. {
  73. P14=0;
  74. P13=0;
  75. EA=1;//開(kāi)總中斷
  76. init_pca();
  77. init_timer();
  78. while(1)//主循環(huán)
  79. {//彩燈程序  和1602顯示程序
  80. }
  81. }
復(fù)制代碼




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

使用道具 舉報(bào)

沙發(fā)
ID:360137 發(fā)表于 2019-4-14 22:30 | 只看該作者
樓主在嗎?問(wèn)個(gè)問(wèn)題
計(jì)數(shù)器0的溢出為PCA計(jì)數(shù)器的時(shí)鐘源,8位PWM的周期則為256*時(shí)鐘源周期,也就是說(shuō)PWM的周期大小是計(jì)數(shù)器0的計(jì)數(shù)周期的256倍,那豈不是和注釋的相矛盾?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品三级在线观看 | 久草久| 日操操 | 亚洲日产精品 | 国产香蕉视频 | 亚洲精品成人av | 亚洲一区自拍 | 午夜久久久 | 日韩欧美精品 | 嫩草影院网址 | 情侣av| 国产一区二区三区视频 | 日韩手机在线视频 | 国产精品美女一区二区 | 一级黄色片网站 | 亚洲一区 | 日韩精品一区二区三区老鸭窝 | 天天插天天干 | 国产精品区二区三区日本 | 日韩精品视频中文字幕 | 日韩视频在线观看中文字幕 | 日韩视频一区 | 亚洲狠狠 | 国产视频精品区 | 国产精品久久久久久久久久久免费看 | 日韩欧美视频在线 | 亚洲成人网在线播放 | 九九热在线精品视频 | 99精品欧美一区二区三区综合在线 | 在线视频一区二区三区 | 青青草精品视频 | 一级午夜aaa免费看三区 | 国产成人精品免费视频大全最热 | 成人黄色av| 久久99这里只有精品 | 在线一区视频 | 青青草华人在线视频 | 黄色av一区 | 国产精品久久久久久久久久 | 精品国产乱码久久久久久88av | 四虎影视免费在线 |