久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
單相逆變串口控制EG8010源碼 顯示屏輸出25V,50hz,頻率可調(diào)
[打印本頁(yè)]
作者:
teleboy
時(shí)間:
2018-7-24 14:06
標(biāo)題:
單相逆變串口控制EG8010源碼 顯示屏輸出25V,50hz,頻率可調(diào)
單相正弦逆變輸出25V 50Hz
單片機(jī)源程序如下:
/**************************************************************/
/*英特靈思科技技術(shù)支持
*/
/****************************************************************/
#include "stm32f10x.h"
#include "pcb_config.h"
#include "jlx.h"
#include "bsp_usart1.h"
/****************************************************************/
static int freq = 0x7f; //頻率初值
int volat = 10; //電壓初值
int num = 0; //鍵值
int volatflag=1,freqflag=1,times=0,flag=0;//標(biāo)志位
int buff[2]; //任意鍵值緩沖
int start=1,close=1; //開(kāi)關(guān)變量
int sum=0; //任意鍵值的和
int n=0,k=0; //任意鍵取值變量
int Press_Second1=0,Press_Second2=0; //13鍵功能復(fù)用標(biāo)志位
int local=0; //輸入數(shù)字位置排布
u8 numstr[3]; //輸入數(shù)字位置排布
int freq1;
/****************************************************************/
int main(void)
{
unsigned char i,j;
unsigned char u[17]={1,5,9,13, 2,6,10,14, 3,7,11,15, 4,8,12,16};
/*********************初始化程序段******************************/
System_Start();
while (1)
{
i=Read_KeyValue();
j = u[i-1];
/************************鍵控程序段*****************************/
switch(j)
{
case 1: //開(kāi)機(jī)按鍵
//SendforGet_Data();
flag=1;num = 1;
/********************測(cè)試顯示程********************************/
if(start==1)
{
clear_screen();
display_GB2312_string(1,0, "電壓");
display_GB2312_string(1,65, "電流");
display_GB2312_string(5,0, "頻率");
display_GB2312_string(5,65, "溫度");
display_GB2312_string(3,0, "25V" ) ;
display_GB2312_string(7,0, "50Hz" );
display_GB2312_string(3,65, "2A");
display_GB2312_string(7,65 ,"27C" );
start=0;
close=1;
local=1;
}
break;
case 2: flag=1;num = 2;break;
case 3: flag=1;num = 3; break;
case 4: flag=1;num = 4; break;
case 5: flag=1;num = 5; break;
case 6: flag=1;num = 6; break;
case 7: flag=1;num = 7; break;
case 8: flag=1;num = 8; break;
case 9: flag=1;num = 9; break;
case 16: flag=1;num=0; break;
case 10: //頻率調(diào)節(jié)功能
freqflag=1-freqflag; //取反標(biāo)志位
/**********************電壓調(diào)節(jié)程序段********************************************/
if(freqflag==0) //調(diào)壓顯示界面
{
clear_screen();
display_GB2312_string(1,30, "調(diào)頻模式");
display_GB2312_string(5,30, "頻率");
sum=0;
}
if(freqflag==1)
{
clear_screen();
display_GB2312_string(1,0, "電壓");
display_GB2312_string(1,65, "電流");
display_GB2312_string(5,0, "頻率");
display_GB2312_string(5,65, "溫度");
display_GB2312_string(3,65, "2A");
display_GB2312_string(7,65, "27C" );
display_GB2312_string(3,0, "25V" ) ;
Press_Second2=1;
}
break;
case 11: //步進(jìn)減頻 不用立即顯示
if(freq<=0x33) freq=0x33;
else if (freq>=0xff) freq==0xff; //freq=sum;
//freq=sum;
freq=freq-0x02;
USART_SendData(USART1,0x84);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART1,freq);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET); //發(fā)送完成發(fā)送完成
freq1=freq+0x01;
freq1=freq/2.5;
sprintf(numstr,"%dHz",freq1);
display_GB2312_string(7,0, numstr);
break;
case 12: //步進(jìn)增頻
if(freq<=0x33) freq=0x33;
else if (freq>=0xff) freq=0xff; //freq=sum;
freq=freq+0x02;
USART_SendData(USART1,0x84);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART1,freq);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET); //發(fā)送完成發(fā)送完成
freq1=freq-0x01;
freq1=freq/2.5;
sprintf(numstr,"%dHz",freq1);
display_GB2312_string(7,0, numstr);
break;
case 13: //電壓調(diào)節(jié)功能鍵
volatflag=1-volatflag; //取反標(biāo)志位
/**********************電壓調(diào)節(jié)程序段**************************/
if(volatflag==0) //調(diào)壓顯示界面
{
clear_screen();
display_GB2312_string(1,30, "調(diào)壓模式");
display_GB2312_string(5,30, "電壓");
sum=0;
}
if(volatflag==1)
{
clear_screen();
display_GB2312_string(1,0, "電壓");
display_GB2312_string(1,65, "電流");
display_GB2312_string(5,0, "頻率");
display_GB2312_string(5,65, "溫度");
display_GB2312_string(3,65, "2A");
display_GB2312_string(7,65 ,"27C" );
display_GB2312_string(7,0, "50Hz" );
Press_Second1=1;
}
break;
/***************************************************************/
case 14: //步進(jìn)減壓
//volat=sum;
volat=volat+1;
// if(volat==0xff) volat=0x01;
// if(volat==0x00) volat=0xfb;
USART_SendData(USART3,volat);
while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==Bit_RESET);
// USART_SendData(USART1,volat);
// while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET); //發(fā)送完成
//
sprintf(numstr,"%dV",volat);
display_GB2312_string(3,0, numstr);
// Delay_us(20000);
// SendforGet_Data();
break;
case 15: //步進(jìn)增壓
//volat=sum;
volat=volat-1;
// if(volat==0xff) volat=0x01;
// if(volat==0x00) volat=0xfb;
USART_SendData(USART3,volat);
while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==Bit_RESET);
// USART_SendData(USART1,0x83);
// while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
// USART_SendData(USART1,volat);
// while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET); //發(fā)送完成
sprintf(numstr,"%dV",volat);
display_GB2312_string(3,0, numstr);
// Delay_us(20000);
// SendforGet_Data();
break;
} //switch結(jié)束
/**************************************************************/
if(flag==1)
{
buff[times++]=num;
flag=0;
}
/***************************************************************/
if(volatflag==0&&freqflag==1&&flag==0)
{
for(n=0;n<times;n++)
{
sum=sum*10+buff[n]*pow(10,(times-1-n));
Delay_us(1000);
if(local==1)
{sum=0;local=0;}
sprintf(numstr,"%dV",sum);
display_GB2312_string(5,60, numstr);
}
times =0;
}
/**********************算法有誤*********************************/
if(freqflag==0&&volatflag==1&&flag==0)
{
for(n=0;n<times;n++)
{
sum=sum*10+buff[n]*pow(10,(times-1-n));
Delay_us(1000);
if(local==1)
{sum=0;local=0;}
sprintf(numstr,"%dHz",sum);
display_GB2312_string(5,60, numstr);
}
times=0;
}
/**********************電壓值轉(zhuǎn)換成16進(jìn)制************************/
if(Press_Second1==1) //電壓
{
sum =sum;
volat=sum;
// USART_SendData(USART1,0x83);
//
// while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART3,volat);
while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==Bit_RESET); //發(fā)送完成
Press_Second1=0;
sprintf(numstr,"%dV",volat);
display_GB2312_string(3,0, numstr);
// Delay_us(20000);
// SendforGet_Data();
}
if(Press_Second2==1) //頻率
{
if(sum<20)
{sum=20*2.5;}
else if(sum>100)
{
sum=100*2.5;
}
else
sum =sum*2.5;
freq=sum/2.5;
sum=sum+0x01;
sprintf(numstr,"%dHz",freq);
display_GB2312_string(7,0, numstr);
USART_SendData(USART1,0x84);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET);
USART_SendData(USART1,sum);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==Bit_RESET); //發(fā)送完成
freq=sum;
// Delay_us(20000);
// SendforGet_Data();
Press_Second2=0;
}
}
}
/****************************************************************/
復(fù)制代碼
所有資料51hei提供下載:
單相逆變串口控制EG8010+顯示屏輸出25V,50hz,頻率可調(diào).rar
(383.41 KB, 下載次數(shù): 88)
2018-7-24 17:42 上傳
點(diǎn)擊文件名下載附件
單相正弦逆變輸出25V 50Hz
下載積分: 黑幣 -5
作者:
admin
時(shí)間:
2018-7-24 17:42
此貼需要補(bǔ)全原理圖等資料后可獲得大量積分
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲一区二区
|
精品一二三区
|
9999精品视频
|
国产精品一级二级三级
|
久草福利视频
|
国产成人综合在线
|
精品成人av
|
午夜激情网站
|
在线午夜视频
|
国产精品成人一区二区
|
久久视频这里只有精品
|
亚洲成人av在线
|
亚洲永久免费视频
|
在线欧美日韩
|
日本理伦片午夜理伦片
|
毛片在线观看网站
|
欧美久久网
|
日韩有码在线观看
|
日本成人黄色
|
亚洲一区二区在线
|
色在线视频
|
国产精品一区av
|
亚洲精品www久久久久久广东
|
国产欧美激情
|
精品视频国产
|
亚洲免费在线观看
|
欧美啪啪网
|
欧美亚洲国产日韩
|
精品一区二区三区在线观看
|
午夜爽爽影院
|
对白刺激国产子与伦
|
亚洲成人免费在线
|
亚洲伊人影院
|
精品国产99
|
人人插人人爱
|
伊人亚洲
|
欧美日韩成人在线
|
成人免费网站黄
|
国产蜜臀av
|
中文字幕永久在线
|
亚洲视频不卡
|