tft每日頭條

 > 圖文

 > 大功率pfc充電器電路原理

大功率pfc充電器電路原理

圖文 更新时间:2024-07-25 01:17:31

大功率pfc充電器電路原理?(本文需要3分鐘時間閱讀)1.采用一元硬币專用投币器或自制投币器;2、頭一枚硬币數碼管計數一次;3、一枚硬币計時充電20分鐘,采用倒計時顯示 4、用兩位數碼管顯示(投币數和倒計時均用這兩位數碼管);5、當按下确認健時,硬币不能投入,數碼管不計數;6、充電電壓為5v,采用多種接口以下是我的程序#include <STC12C5A60S2.h>#define coin_maxnum 20 //設置投币數最多為20#define time_1 5 //設置一枚硬币可充電時間為5分鐘void delay_ms(unsigned char x) //時延函數{inti,j;for(i=0;i<x;i )for(j=0;j<125;j );}void Time_Init(void); //定時器初始化函數{TMOD = 0x01; //選擇工作方式1TH0 = 0x3C; //設置初始值,定時50MSTL0 = 0xB0;EA = 1; //打開總中斷ET0 = 1; //打開定時器0中斷TR0 = 1; //啟動定時器0}void display(int date); //數碼管顯示函數char time_second_test_1; //第一路計時char time_second_1;char time_minute_1;char coin_num_1;char flagyes_1;char flagcoin_1;sbit CE_1=P3^6; //控制CN3052使能端sbit key1=P2^0; //按鍵1投币sbit key2=P2^1; //按鍵2确認unsigned charreg[]={0xFA,0x82,0xB9,0xAB,0xC3,0x6B,0x7B,0xA2,0xFB,0xEB}; //0-9void main(void){char i,j,flagcoin_1, flagyes_1, coin_num_1;intshow, display_1; //顯示i=0;j=0;flagcoin_1=0; //投币标記flagyes_1 =0; //确認标記Time_Init(); //定時器初始化函數CE_1=0;P2=0xff; //數碼管全部關斷P0=0x00;key1=1;while(1){if((key1==0)&&(flagyes_1==0)) //key1被按下且未确認開始充電{delay_ms(100); //延時去抖if(key1==0){ coin_num_1 ; //投币數增加if(coin_num_1==coin_maxnum 1) //限制投币數{coin_num_1 =1;}while(key1==0); //等待按鍵松開}flagcoin_1=1; //投币标記display_1=coin_num_1;//顯示投币數P0=0x00;}if((key2==0)&&(flagcoin_1==1)) //已投币且key2确認鍵被按下{ flagyes_1=1;}if(flagyes_1==1){ TR1 = 1; //啟動T1定時器CE_1 =1; //開始充電if(time_second_test_1==20) //定時1s{ P0 =0x00; //消隐time_second_1 ;time_second_test_1=0;if(time_second_1==60){ time_second_1=0;time_minute_1 ;if(time_minute_1==time_1*coin_num_1) //充電時間結束{time_minute_1=0;CE_1=0; //使CN3052充電使能端置低TR1=0; //關閉定時器flagyes_1=0; //确認标記取消coin_num_1=0; //投币标記取消display_1=0; //顯示清空}}}if((time_1*coin_num_1-time_minute_1)==1){display_1=60-time_second_1;} //時間剩最後一分鐘時顯示秒else{display_1=time_1*coin_num_1-time_minute_1;//顯示分鐘}}show=display_1;display(show); //數碼管顯示}},今天小編就來說說關于大功率pfc充電器電路原理?下面更多詳細答案一起來看看吧!

大功率pfc充電器電路原理(投币式多功能充電器控制電路的設計)1

大功率pfc充電器電路原理

投币式多功能充電器控制電路的設計來來來

(本文需要3分鐘時間閱讀)

1.采用一元硬币專用投币器或自制投币器;2、頭一枚硬币數碼管計數一次;3、一枚硬币計時充電20分鐘,采用倒計時顯示 4、用兩位數碼管顯示(投币數和倒計時均用這兩位數碼管);5、當按下确認健時,硬币不能投入,數碼管不計數;6、充電電壓為5v,采用多種接口。以下是我的程序#include <STC12C5A60S2.h>#define coin_maxnum 20 //設置投币數最多為20#define time_1 5 //設置一枚硬币可充電時間為5分鐘void delay_ms(unsigned char x) //時延函數{inti,j;for(i=0;i<x;i )for(j=0;j<125;j );}void Time_Init(void); //定時器初始化函數{TMOD = 0x01; //選擇工作方式1TH0 = 0x3C; //設置初始值,定時50MSTL0 = 0xB0;EA = 1; //打開總中斷ET0 = 1; //打開定時器0中斷TR0 = 1; //啟動定時器0}void display(int date); //數碼管顯示函數char time_second_test_1; //第一路計時char time_second_1;char time_minute_1;char coin_num_1;char flagyes_1;char flagcoin_1;sbit CE_1=P3^6; //控制CN3052使能端sbit key1=P2^0; //按鍵1投币sbit key2=P2^1; //按鍵2确認unsigned charreg[]={0xFA,0x82,0xB9,0xAB,0xC3,0x6B,0x7B,0xA2,0xFB,0xEB}; //0-9void main(void){char i,j,flagcoin_1, flagyes_1, coin_num_1;intshow, display_1; //顯示i=0;j=0;flagcoin_1=0; //投币标記flagyes_1 =0; //确認标記Time_Init(); //定時器初始化函數CE_1=0;P2=0xff; //數碼管全部關斷P0=0x00;key1=1;while(1){if((key1==0)&&(flagyes_1==0)) //key1被按下且未确認開始充電{delay_ms(100); //延時去抖if(key1==0){ coin_num_1 ; //投币數增加if(coin_num_1==coin_maxnum 1) //限制投币數{coin_num_1 =1;}while(key1==0); //等待按鍵松開}flagcoin_1=1; //投币标記display_1=coin_num_1;//顯示投币數P0=0x00;}if((key2==0)&&(flagcoin_1==1)) //已投币且key2确認鍵被按下{ flagyes_1=1;}if(flagyes_1==1){ TR1 = 1; //啟動T1定時器CE_1 =1; //開始充電if(time_second_test_1==20) //定時1s{ P0 =0x00; //消隐time_second_1 ;time_second_test_1=0;if(time_second_1==60){ time_second_1=0;time_minute_1 ;if(time_minute_1==time_1*coin_num_1) //充電時間結束{time_minute_1=0;CE_1=0; //使CN3052充電使能端置低TR1=0; //關閉定時器flagyes_1=0; //确認标記取消coin_num_1=0; //投币标記取消display_1=0; //顯示清空}}}if((time_1*coin_num_1-time_minute_1)==1){display_1=60-time_second_1;} //時間剩最後一分鐘時顯示秒else{display_1=time_1*coin_num_1-time_minute_1;//顯示分鐘}}show=display_1;display(show); //數碼管顯示}}

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved