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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6083|回復: 7
打印 上一主題 下一主題
收起左側

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)

評分

參與人數 2黑幣 +60 收起 理由
jialishoushi + 10 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:402026 發表于 2021-4-15 10:44 | 只看該作者
真好,真好,寫的真好!
回復

使用道具 舉報

板凳
ID:815949 發表于 2021-4-26 22:48 | 只看該作者
樓主,看你的PCB板圖,感覺沒有考慮散熱問題,畫板的水平還有提升的空間
回復

使用道具 舉報

地板
ID:899772 發表于 2021-4-30 18:45 | 只看該作者
STC12單片機的圖不等于89c51
回復

使用道具 舉報

5#
ID:507641 發表于 2022-12-29 08:44 | 只看該作者
william_wangxb 發表于 2021-4-26 22:48
樓主,看你的PCB板圖,感覺沒有考慮散熱問題,畫板的水平還有提升的空間

實驗性的沒問題.想后面會化
回復

使用道具 舉報

6#
ID:1060196 發表于 2023-1-3 21:28 | 只看該作者
大佬真棒,寫的真好
回復

使用道具 舉報

7#
ID:163950 發表于 2023-1-10 15:44 | 只看該作者
PCB中 ,C1電解畫反了吧
回復

使用道具 舉報

8#
ID:462629 發表于 2024-3-1 13:43 | 只看該作者
這個電路可實際使用嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 噜噜噜噜狠狠狠7777视频 | 国产99久久 | 久久久天堂| 激情黄色在线观看 | 中文字幕在线一区二区三区 | 亚洲精品成人网 | 国产精久久久久久久 | 国产高清精品在线 | 日韩成人免费视频 | 日韩精品一区二区三区 | 国产精品久久国产精品99 gif | 91精品国产综合久久久久久丝袜 | 久久av网| 亚洲激情综合网 | 久久影音先锋 | 久久久国产精品视频 | 中文天堂在线观看 | 日日摸夜夜爽人人添av | 中文字幕亚洲一区二区va在线 | 亚洲午夜av久久乱码 | 一区二区精品 | 天天看天天爽 | 一级做a爰片性色毛片16美国 | 成人国产免费视频 | 亚洲国产免费 | 成人欧美一区二区 | 国产精品久久久久久久免费大片 | 国产欧美精品一区二区色综合朱莉 | 中文字幕一区二区三区不卡 | 一区二区三区在线观看免费视频 | 不卡一区二区三区四区 | 亚洲一区二区三区在线视频 | 99久久99 | 一区中文字幕 | 日日夜夜天天 | 黄色片视频免费 | 超碰在线免费公开 | 国产乱码精品一区二区三区忘忧草 | 久久久久久毛片免费观看 | 国产伊人精品 | 免费在线视频一区二区 |