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

標題: STC12單片機+TL494 LED驅動源程序與原理圖PCB文件(數控電源) [打印本頁]

作者: ljl6666    時間: 2021-4-14 22:31
標題: STC12單片機+TL494 LED驅動源程序與原理圖PCB文件(數控電源)
STC12+TL494電路原理圖如下:


Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機數控電源源程序如下:
  1. #include "STC12C5A60S2.h"
  2. #include "lcd.h"
  3. #include "ADC.h"
  4. #include "uart.h"
  5. #include "key.h"
  6. //--定義全局變量--//
  7. unsigned char PuZh[16];

  8. float Vout=0,Iout=0;
  9. /*******************************************************************************
  10. * 函 數 名         : main
  11. * 函數功能                   : 主函數
  12. * 輸    入         : 無
  13. * 輸    出         : 無
  14. *******************************************************************************/
  15. void main(void)
  16. {
  17.         unsigned int temp,i;
  18.         //初始化
  19.         InitADC();
  20.         LcdInit();
  21.         PWM_Init();
  22.         
  23.         while(1)
  24.         {
  25.                 Key_Scan();//按鍵掃描
  26.                 for(temp=0,i=0;i<100;i++)
  27.                 {
  28.                         temp+=GetADCResult(0);//測電壓,取十次平均值
  29.                 }
  30.                 Vout=temp/1241.38;//計算實際電壓
  31.                 for(temp=0,i=0;i<100;i++)
  32.                 {
  33.                         temp+=GetADCResult(1);//測電流,取十次平均值
  34.                 }
  35.                 Iout=temp/597.33;//計算實際電流
  36.                 sprintf(PuZh,"S:V:%.1f",(float)VSet/10);//顯示電壓設定值
  37.                 LcdShowStr(0,0,PuZh);
  38.                 sprintf(PuZh,"M:V:%.1f I:%.1f",Vout,Iout);//顯示測量電壓電流
  39.                 LcdShowStr(0,1,PuZh);
  40.                
  41.         }                                
  42. }
復制代碼
  1. #include "key.h"
  2. #include "delay.h"
  3. unsigned char VSet=120;
  4. void Key_Scan(void)
  5. {
  6.         static unsigned char KEY_Flag=0;
  7.         if(LEFT==0)//左鍵
  8.         {
  9.                 if((KEY_Flag&LEFT_Flag)==0)
  10.                 {
  11.                         delay_ms(5);
  12.                         if(LEFT==0)
  13.                         {
  14.                                 KEY_Flag|=LEFT_Flag;
  15.                                 if(VSet>90)VSet--;
  16.                                 Set_PWM1((unsigned char)VSet*1.24138);
  17.                                
  18.                         }
  19.                 }
  20.         }
  21.         else
  22.         {
  23.                 KEY_Flag&=(~LEFT_Flag);
  24.         }
  25.         if(RIGHT==0)//右鍵
  26.         {
  27.                 if((KEY_Flag&RIGHT_Flag)==0)
  28.                 {
  29.                         KEY_Flag|=RIGHT_Flag;
  30.                         delay_ms(5);
  31.                         if(RIGHT==0)
  32.                         {
  33.                                
  34.                                 if(VSet<120)VSet++;
  35.                                 Set_PWM1((unsigned char)VSet*1.24138);
  36.                         }
  37.                 }
  38.         }
  39.         else
  40.         {
  41.                 KEY_Flag&=(~RIGHT_Flag);
  42.         }
  43. }
  44. void PWM_Init(void)
  45. {
  46. CCON|=0;   
  47. CL=0;      
  48. CH=0;   
  49. CMOD|=0x02;
  50. CCAP1H=0x80;  
  51. CCAP1L=0x80;  
  52. PCA_PWM1=0x00;
  53. CCAPM1=0x42;  
  54. CR=1;
  55. Set_PWM1((unsigned char)VSet*1.24138);  
  56. }
  57. void Set_PWM1(unsigned char duty)
  58. {
  59.         unsigned char temp;
  60.         if (duty == 0)                      //PWM固定輸出低
  61.         {
  62.                 //-       -       -       -       -       -       EPCnH   EPCnL
  63.                 PCA_PWM1 = 0x03;            //PWM模式下,CCAPnL,CCAPnH第九位
  64.                 temp = 0xFF;
  65.         }
  66.         else if (duty == 100)             //PWM固定輸出高
  67.         {
  68.                 //-       -       -       -       -       -       EPCnH   EPCnL
  69.                 PCA_PWM1 = 0x00;            //PWM模式下,CCAPnL,CCAPnH第九位
  70.                 temp = 0;
  71.         }

  72.         else
  73.         {
  74.                 PCA_PWM1 = 0x00;
  75.                 temp = 256 -duty;
  76.         }
  77.         CCAP1L = temp;
  78.         CCAP1H = temp;
  79. }
復制代碼


所有資料51hei提供下載:
BUCK.zip (4.02 MB, 下載次數: 206)
代碼.zip (65.17 KB, 下載次數: 164)

作者: zbfdyw    時間: 2021-4-15 10:44
真好,真好,寫的真好!
作者: william_wangxb    時間: 2021-4-26 22:48
樓主,看你的PCB板圖,感覺沒有考慮散熱問題,畫板的水平還有提升的空間
作者: 塵蕭mrchen    時間: 2021-4-30 18:45
STC12單片機的圖不等于89c51
作者: SURUBU1976    時間: 2022-12-29 08:44
william_wangxb 發表于 2021-4-26 22:48
樓主,看你的PCB板圖,感覺沒有考慮散熱問題,畫板的水平還有提升的空間

實驗性的沒問題.想后面會化
作者: 35456    時間: 2023-1-3 21:28
大佬真棒,寫的真好
作者: c03131401    時間: 2023-1-10 15:44
PCB中 ,C1電解畫反了吧
作者: woyaodwn    時間: 2024-3-1 13:43
這個電路可實際使用嗎?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日本精品网站 | 欧美日韩免费一区二区三区 | 日本在线观看网站 | 在线日韩视频 | 极品新婚夜少妇真紧 | 午夜在线免费视频 | 日韩精品久久久 | 成人免费高清 | 日韩欧美一区二区在线观看 | 成人一级毛片 | 日韩免费在线播放 | 欧美在线视频免费观看 | 一区二区视频在线播放 | 国产免费一区 | 国产又粗又大又爽 | 深夜福利网 | 免费不卡av | 亚洲精品资源 | 日韩欧美一区二区三区 | 99精品久久久久久 | 一区二区日韩 | 国产又猛又黄又爽 | 成年人免费在线视频 | 亚洲一区欧美 | 一级免费毛片 | 色片在线 | 久久精品在线 | 丁香六月婷婷 | 黄色av免费 | 天天干夜夜欢 | 国产成人精品一区二区三区福利 | 亚洲综合激情网 | 日日夜夜精品视频免费 | 欧美激情三区 | 97精品视频| 丰满少妇高潮 | 综合久久久久 | 天堂视频在线观看 | 黄色三级在线观看 | 亚洲男人天堂av | 看片黄全部免费 |