欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于STM32單片機感光萬年歷程序
[打印本頁]
作者:
haiou275
時間:
2020-3-3 08:23
標題:
基于STM32單片機感光萬年歷程序
做了一個stm32的萬年歷,具有溫度顯示,鬧鐘設置,可以通過感光播放音樂。
#include "delay.h"
#include "sys.h"
#include "rtc.h"
#include "oled.h"
#include "bmp.h"
#include "key.h"
#include "adc.h"
#include "ds18b20.h"
u8 timetemp=0;
u8 Naozhonghour=0;
u8 Naozhongminite=0;
u16 MenueSlect = 0;//0正常,1、2、3、4年4位設置,5月設置,
//6日設置, 7時設置, 8分設置, 9秒復位設置
//鬧鐘設置,10時設置, 11分設置, 12鬧鐘開關設置
//感光元件設置:13感光設置
u8 SetFalg = 0; //1為設置狀態
u8 FirstFlag = 0;
u8 NaozhongFlag = 0;//1為開狀態
u8 GanguangFlag = 0;//1為開狀態
u8 NaoxiangFlag = 0;
u8 AllSetNumber = 0;
//u8 Wendu = 0;
short temperature = 0;
u8 Bhour;
u8 Bmin;
u8 Bsec;
//公歷日月年周
u16 Bw_year;
u8 Bw_month;
u8 Bw_date;
u8 Bweek;
u16 Number = 1;
u16 NumberBuf1 = 1;
u16 NumberBuf2 = 10;
u16 ActNumber = 0;
u16 ActNumbertemp = 0;
u16 ActNumber1[3] ;
u8 ActNumberLoop = 0;
u16 ActNumberBuf1;
u16 ADBuf;
u16 ADBuf1;
u16 ADBuf2;
u8 NumberBuff[3];
float Xielv =1;
float B =1;
u8 CheckFalg = 0;//0正常模式,1設置步驟1,2設置步驟2
u8 FaultFalg = 0;
u8 FirstFalg = 0;
u8 OKFalg = 0;
void Set_All(void);
void MokuaiInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能B端口時鐘
GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOD3,6
GPIO_SetBits(GPIOB,GPIO_Pin_9);
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能B端口時鐘
//GPIO_InitStructure.GPIO_Pin |= GPIO_Pin_5;
//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //
//GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化GPIOD3,6
}
void HexToAsc1(uint8_t HexData,uint8_t *p)
{
p[0] = HexData % 10 | 0x30;
}
//數值轉換:3位HEX數(1字節)和ASC碼轉換
void HexToAsc3(uint16_t HexData,uint8_t *p)
{
p[0] = HexData / 100 ;
p[1] = HexData % 100 / 10 ;
p[2] = HexData % 10 ;
}
void KeyLedHandle(void) //鍵盤和LED處理
{
static u8 KeyTemp1; //按鍵值臨時緩存1
static u8 KeyTemp2; //按鍵值臨時緩存2
static u8 KeyCount;
static u8 KeyValue;
u8 tempge =0,tempshi=0,tempbai=0,tempqian=0;
u16 temp;
KeyTemp1 =KEY_Scan(0);
if(KeyTemp1 !=0) //其它按鍵按下,計數為5,執行相應的按鍵操作
{
//Music=!Music;
if(NaoxiangFlag == 1)
{
NaoxiangFlag = 0;
Music_OFF;
}
switch(KeyTemp1)
{
case KEY_UP: //上+
LED0=!LED0;
if(SetFalg == 1)
{
AllSetNumber++;
if(MenueSlect == 1)//年第一位設置
{
if(AllSetNumber >=3)
{
AllSetNumber = 1;
}
}
else if((MenueSlect ==2)||(MenueSlect ==3)||(MenueSlect ==4)) //年第二三四位設置
{
if(AllSetNumber >=10)
{
AllSetNumber = 0;
}
}
else if(MenueSlect == 5)//月設置
{
if(AllSetNumber >=13)
{
AllSetNumber = 1;
}
}
else if(MenueSlect == 6)//日設置
{
if(AllSetNumber >=32)
{
AllSetNumber = 1;
}
}
else if(MenueSlect == 7)//時設置
{
if(AllSetNumber >=24)
{
AllSetNumber = 0;
}
}
else if(MenueSlect == 8)//分設置
{
if(AllSetNumber >=60)
{
AllSetNumber = 0;
}
}
else if(MenueSlect ==9 )//秒復位
{
AllSetNumber = 0;
}
else if(MenueSlect == 10)//鬧鐘時設置
{
if(AllSetNumber >=24)
{
AllSetNumber = 0;
}
}
else if(MenueSlect == 11)//鬧鐘分設置
{
if(AllSetNumber >=60)
{
AllSetNumber = 0;
}
}
else if(MenueSlect == 12)//鬧鐘開關設置
{
if(NaozhongFlag == 0 )
{
NaozhongFlag = 1;//1為開狀態
}
else
{
NaozhongFlag = 0;//1為開狀態
}
}
else if(MenueSlect == 13)//感光元件開關設置
{
if(GanguangFlag == 0)
{
GanguangFlag = 1;//1為開狀態
}
else
{
GanguangFlag = 0;//1為開狀態
}
}
else
{
}
}
break;
case KEY_DOWN: //下-
LED0=!LED0;
if(SetFalg == 1)
{
if(MenueSlect == 1)//年第一位設置
{
if(AllSetNumber ==1)
{
AllSetNumber = 2;
}
else
{
AllSetNumber--;
}
}
else if((MenueSlect ==2)||(MenueSlect ==3)||(MenueSlect ==4)) //年第二三四位設置
{
if(AllSetNumber ==0)
{
AllSetNumber = 9;
}
else
{
AllSetNumber--;
}
}
else if(MenueSlect == 5)//月設置
{
if(AllSetNumber ==1)
{
AllSetNumber = 12;
}
else
{
AllSetNumber--;
}
}
else if(MenueSlect == 6)//日設置
{
if(AllSetNumber ==1)
{
AllSetNumber = 31;
}
else
{
AllSetNumber--;
}
}
else if(MenueSlect == 7)//時設置
{
if(AllSetNumber == 0)
{
AllSetNumber = 23;
}
else
{
AllSetNumber--;
}
}
else if(MenueSlect == 8)//分設置
{
if(AllSetNumber ==0)
{
AllSetNumber = 59;
}
else
{
AllSetNumber--;
}
}
else if(MenueSlect ==9 )//秒復位
{
AllSetNumber = 0;
}
else if(MenueSlect == 10)//鬧鐘時設置
{
if(AllSetNumber ==0)
{
AllSetNumber = 23;
}
else
{
AllSetNumber--;
}
}
else if(MenueSlect == 11)//鬧鐘分設置
{
if(AllSetNumber ==0)
{
AllSetNumber = 59;
}
else
{
AllSetNumber--;
}
}
else if(MenueSlect == 12)//鬧鐘開關設置
{
if(NaozhongFlag == 0 )
{
NaozhongFlag = 1;//1為開狀態
}
else
{
NaozhongFlag = 0;//1為開狀態
}
}
else if(MenueSlect == 13)//感光元件開關設置
{
if(GanguangFlag == 0)
{
GanguangFlag = 1;//1為開狀態
}
else
{
GanguangFlag = 0;//1為開狀態
}
}
else
{
}
}
break;
case KEY_LEFT: //左,菜單切換+
LED0=!LED0;
if(SetFalg == 1)
{
if(MenueSlect == 13)
{
MenueSlect = 1;
}
else
{
MenueSlect++;
}
if(MenueSlect == 1)
{
AllSetNumber = Bw_year/1000;
}
else if(MenueSlect == 2)
{
AllSetNumber = (Bw_year%1000)/100;
}
else if(MenueSlect == 3)
{
AllSetNumber = ((Bw_year%1000)%100)/10;
}
else if(MenueSlect == 4)
{
AllSetNumber = ((Bw_year%1000)%100)%10;
}
else if(MenueSlect == 5)
{
AllSetNumber = Bw_month;
}
else if(MenueSlect == 6)
{
AllSetNumber = Bw_date;
}
else if(MenueSlect == 7)
{
AllSetNumber = Bhour;
}
else if(MenueSlect == 8)
{
AllSetNumber = Bmin;
}
else if(MenueSlect == 9)
{
AllSetNumber = Bsec;
}
else if(MenueSlect == 10)
{
AllSetNumber = Naozhonghour;
}
else if(MenueSlect == 11)
{
AllSetNumber = Naozhongminite;
}
else if(MenueSlect == 12)
{
AllSetNumber = (Bw_year%1000)/100;
}
else if(MenueSlect == 13)
{
AllSetNumber = (Bw_year%1000)/100;
}
}
break;
case KEY_RIGHT: //右,菜單切換-
LED0=!LED0;
if(SetFalg == 1)
{
if(MenueSlect == 1)
{
MenueSlect = 13;
}
else
{
MenueSlect--;
}
if(MenueSlect == 1)
{
AllSetNumber = Bw_year/1000;
}
else if(MenueSlect == 2)
{
AllSetNumber = (Bw_year%1000)/100;
}
else if(MenueSlect == 3)
{
AllSetNumber = ((Bw_year%1000)%100)/10;
}
else if(MenueSlect == 4)
{
AllSetNumber = ((Bw_year%1000)%100)%10;
}
else if(MenueSlect == 5)
{
AllSetNumber = Bw_month;
}
else if(MenueSlect == 6)
{
AllSetNumber = Bw_date;
}
else if(MenueSlect == 7)
{
AllSetNumber = Bhour;
}
else if(MenueSlect == 8)
{
AllSetNumber = Bmin;
}
else if(MenueSlect == 9)
{
AllSetNumber = Bsec;
}
else if(MenueSlect == 10)
{
AllSetNumber = Naozhonghour;
}
else if(MenueSlect == 11)
{
AllSetNumber = Naozhongminite;
}
else if(MenueSlect == 12)
{
AllSetNumber = (Bw_year%1000)/100;
}
else if(MenueSlect == 13)
{
AllSetNumber = (Bw_year%1000)/100;
}
}
break;
case KEY_SURE: //確定
LED0=!LED0;
if(SetFalg ==0)//1為設置狀態
{
SetFalg = 1;
FirstFlag = 1;
MenueSlect = 1;
Bw_year = calendar.w_year;
AllSetNumber = Bw_year/1000;
}
else
{
SetFalg = 0;
MenueSlect = 0;
FirstFlag = 0;
Set_All();
}
break;
//case KEY_MENU: //菜單,設置ok
// break;
default:
break;
}
}
}
void MainDisplay(void)
{
u8 t;
//OLED_ShowPicture(0,0,128,8,BMP1);
//delay_ms(500);
OLED_Clear();
//電(0) 子(1) 萬(2) 年(3) 歷(4) 時(5) 間(6) 鬧(7) 鐘(8) 感(9) 光(10) 狀(11) 態(12) 開(13) 關(14)
if(DS18B20_Init()) //DS18B20初始化
{
OLED_ShowString(16,16,"DS18B20 Error",16);//8*16
//delay_ms(200);
//OLED_Refresh();
}
else
{
OLED_ShowString(16,16,"DS18B20 OK",16);//8*16
}
//OLED_Clear();
OLED_ShowChinese(0,1,0,16);//電
OLED_ShowChinese(18,1,1,16);//子
OLED_ShowChinese(36,1,2,16);//計
OLED_ShowChinese(54,1,3,16);//萬
OLED_ShowChinese(72,1,4,16);//年
//OLED_ShowChinese(90,1,5,16);//歷
OLED_Refresh();
delay_ms(60000);
delay_ms(60000);
delay_ms(60000);
OLED_Clear();
//OLED_ShowChinese(0,16,5,16);//時
//OLED_ShowChinese(18,16,6,16);//間
OLED_ShowChinese(26,16,15,16);//℃
OLED_ShowChinese(0,32,7,16);//鬧
OLED_ShowChinese(18,32,8,16);//鐘
//OLED_ShowChinese(90,32,13,16);// 開
//OLED_ShowChinese(90,32,14,16);//關
OLED_ShowChinese(0,48,9,16);//感
OLED_ShowChinese(18,48,10,16);//光
OLED_ShowChinese(36,48,11,16);//狀
OLED_ShowChinese(54,48,12,16);//態
//OLED_ShowChinese(90,48,13,16);// 開
//OLED_ShowChinese(90,48,14,16);//關
//時間現實
OLED_ShowString(2,0," - - ",12);//6*12
OLED_ShowString(62,0,"Sunday ",12);
OLED_ShowString(42,16," : : ",16);//8*16
//鬧鐘顯示
OLED_ShowString(42,32," : ",16);//8*16
OLED_ShowNum(2,0,calendar.w_year,4,12);
OLED_ShowNum(32,0,calendar.w_month,2,12);
OLED_ShowNum(50,0,calendar.w_date,2,12);
OLED_ShowNum(8,16,temperature/10,2,16); //顯示正數部分
//OLED_ShowNum(0,16,Wendu,2,16); //8*16
OLED_ShowNum(42,16,calendar.hour,2,16); //8*16
OLED_ShowNum(66,16,calendar.min,2,16);
OLED_ShowNum(90,16,calendar.sec,2,16);
OLED_ShowNum(42,32,Naozhonghour,2,16); //8*16
OLED_ShowNum(66,32,Naozhongminite,2,16);
OLED_ShowChar(90,32,'N',16);//關
OLED_ShowChar(90,48,'N',16);//關
//OLED_ShowChar(90,32,"Y",16);//關
//OLED_ShowChar(90,48,"Y",16);//關
//OLED_ShowString(40,16,": 000",12);
//OLED_ShowNum(40,16,Number,3,16);
//OLED_ShowString(40,32,": 000",12);
//OLED_ShowNum(40,32,ActNumber,3,16);
//OLED_ShowString(0,48,"AD:0000",16);
//OLED_ShowNum(24,48,ADBuf,4,16);
/*OLED_ShowChar(48,48,t,16);//顯示ASCII字符
t++;
if(t>'~')t=' ';
OLED_ShowNum(103,48,t,3,16);
OLED_Refresh();
delay_ms(500);
OLED_Clear();
OLED_ShowChinese(0,0,0,16); //16*16 中
OLED_ShowChinese(16,0,0,24); //24*24 中
OLED_ShowChinese(24,20,0,32);//32*32 中
OLED_ShowChinese(64,0,0,64); //64*64 中
OLED_Refresh();
delay_ms(500);
OLED_Clear();
OLED_ShowString(0,0,"ABC",12);//6*12 “ABC”
OLED_ShowString(0,12,"ABC",16);//8*16 “ABC”
OLED_ShowString(0,28,"ABC",24);//12*24 “ABC”
OLED_Refresh();
delay_ms(500);
OLED_ScrollDisplay(11,4);*/
OLED_Refresh();
delay_ms(500);
}
void FunDataRun(void)
{
//PBout(5)=!PBout(5);
//}
if(SetFalg == 1)
{
u8 tempge =0,tempshi=0,tempbai=0,tempqian=0;
u16 temp;
if(FirstFlag == 1)
{
FirstFlag = 0;
Bw_year = calendar.w_year;
Bw_month = calendar.w_month;
Bw_date = calendar.w_date;
Bhour = calendar.hour;
Bmin = calendar.min;
Bsec = calendar.sec;
}
OLED_ShowNum(2,0,Bw_year,4,12);
OLED_ShowNum(32,0,Bw_month,2,12);
OLED_ShowNum(50,0,Bw_date,2,12);
OLED_ShowNum(42,16,Bhour,2,16); //8*16
OLED_ShowNum(66,16,Bmin,2,16);
OLED_ShowNum(90,16,Bsec,2,16);
OLED_ShowNum(42,32,Naozhonghour,2,16); //8*16
OLED_ShowNum(66,32,Naozhongminite,2,16);
if(NaozhongFlag == 1)
{
OLED_ShowChar(90,32,'Y',16);//開
}
else
{
OLED_ShowChar(90,32,'N',16);//關
}
if(GanguangFlag == 1)
{
OLED_ShowChar(90,48,'Y',16);//
}
else
{
OLED_ShowChar(90,48,'N',16);//
}
tempqian = Bw_year/1000;
tempbai = (Bw_year%1000)/100;
tempshi = ((Bw_year%1000)%100)/10;
tempge = ((Bw_year%1000)%100)%10;
if(MenueSlect == 1)//年第一位設置
{
tempqian = AllSetNumber;
OLED_ShowNumKong(2,0,tempqian,1,12);
}
else if(MenueSlect == 2) //年第二三四位設置
{
tempbai = AllSetNumber;
OLED_ShowNumKong(8,0,tempbai,1,12);
}
else if(MenueSlect == 3) //年第二三四位設置
{
tempshi = AllSetNumber;
OLED_ShowNumKong(14,0,tempshi,1,12);
}
else if(MenueSlect == 4) //年第二三四位設置
{
tempge = AllSetNumber;
OLED_ShowNumKong(20,0,tempge,1,12);
}
else if(MenueSlect == 5)//月設置
{
Bw_month = AllSetNumber;
OLED_ShowNumKong(32,0,Bw_month,2,12);
}
else if(MenueSlect == 6)//日設置
{
Bw_date = AllSetNumber;
OLED_ShowNumKong(50,0,Bw_date,2,12);
}
else if(MenueSlect == 7)//時設置
{
Bhour = AllSetNumber;
OLED_ShowNumKong(42,16,Bhour,2,16); //8*16
}
else if(MenueSlect == 8)//分設置
{
Bmin = AllSetNumber;
OLED_ShowNumKong(66,16,Bmin,2,16);
}
else if(MenueSlect ==9 )//秒復位
{
Bsec = AllSetNumber;
OLED_ShowNumKong(90,16,Bsec,2,16);
}
else if(MenueSlect == 10)//鬧鐘時設置
{
Naozhonghour = AllSetNumber;
OLED_ShowNumKong(42,32,Naozhonghour,2,16); //8*16
}
else if(MenueSlect == 11)//鬧鐘分設置
{
Naozhongminite = AllSetNumber;
OLED_ShowNumKong(66,32,Naozhongminite,2,16);
}
else if(MenueSlect == 12)//鬧鐘開關設置
{
if(NaozhongFlag == 1)
{
OLED_ShowCharKong(90,32,'Y',16);//開
}
else
{
OLED_ShowCharKong(90,32,'N',16);//關
}
}
else if(MenueSlect == 13)//感光元件開關設置
{
if(GanguangFlag == 1)
{
OLED_ShowCharKong(90,48,'Y',16);//
}
else
{
OLED_ShowCharKong(90,48,'N',16);//
}
}
else
{
}
Bw_year = (tempqian*1000)+(tempbai*100)+(tempshi*10)+tempge;
//OLED_ShowNum(0,48,AllSetNumber,1,16);
//OLED_ShowNum(32,48,Bw_year,4,16);
//RTC_Set(Bw_year,Bw_month,Bw_date,Bhour,Bmin,Bsec); //設置時間
//RTC_Set(2023,3,3,3,3,3); //設置時間
}
else
{
//if (RTC_GetITStatus(RTC_IT_SEC) != RESET)//秒鐘中斷
//if(SetFalg == 0)
//{
// RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW); //清鬧鐘中斷
RTC_Get();//更新時間
//}
//if(timetemp!=calendar.sec)
//{
//timetemp=calendar.sec;
OLED_ShowNum(2,0,calendar.w_year,4,12);
OLED_ShowNum(32,0,calendar.w_month,2,12);
OLED_ShowNum(50,0,calendar.w_date,2,12);
switch(calendar.week)
{
case 0:
OLED_ShowString(62,0,"Sunday ",12);
break;
case 1:
OLED_ShowString(62,0,"Monday ",12);
break;
case 2:
OLED_ShowString(62,0,"Tuesday ",12);
break;
case 3:
OLED_ShowString(62,0,"Wednesday",12);
break;
case 4:
OLED_ShowString(62,0,"Thursday ",12);
break;
case 5:
OLED_ShowString(62,0,"Friday ",12);
break;
case 6:
OLED_ShowString(62,0,"Saturday ",12);
break;
}
OLED_ShowNum(42,16,calendar.hour,2,16); //8*16
OLED_ShowNum(66,16,calendar.min,2,16);
OLED_ShowNum(90,16,calendar.sec,2,16);
OLED_ShowNum(42,32,Naozhonghour,2,16); //8*16
OLED_ShowNum(66,32,Naozhongminite,2,16);
if(NaozhongFlag == 1)
{
OLED_ShowChar(90,32,'Y',16);//開
if((calendar.hour == Naozhonghour)&&(calendar.min == Naozhongminite)&&(NaoxiangFlag == 0))
{
//if(NaoxiangFlag == 0)
// {
Music_ON;
NaoxiangFlag = 1;
//}
}
//else
//{
// NaoxiangFlag = 0;
//}
}
else
{
OLED_ShowChar(90,32,'N',16);//關
}
if(GanguangFlag == 1)
{
OLED_ShowChar(90,48,'Y',16);//
if(GanGuang == 0)
{
Music_ON;
LED0=!LED0;
}
else if(NaoxiangFlag == 0)
{
Music_OFF;
}
}
else
{
OLED_ShowChar(90,48,'N',16);//
}
}
temperature=DS18B20_Get_Temp();
if(temperature<0)
{
OLED_ShowChar(0,16,'-',16); //顯示負號
temperature=-temperature; //轉為正數
}else OLED_ShowChar(0,16,' ',16); //去掉負號
OLED_ShowNum(8,16,temperature/10,2,16); //顯示正數部分
//OLED_ShowNum(60+40+32,150,temperature%10,1,16); //顯示小數部分
}
void Naozhong_Set(void)
{
}
void Set_All(void)
{
RTC_Set(Bw_year,Bw_month,Bw_date,Bhour,Bmin,Bsec); //設置時間
Naozhong_Set();
}
void FunDataShow(void)
{
OLED_ShowNum(40,16,Number,3,16);
OLED_ShowNum(40,32,ActNumber,3,16);
OLED_ShowNum(24,48,ADBuf,4,16);
}
int main(void)
{
u8 t;
delay_init();
NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
//usmart_dev.init(SystemCoreClock/1000000); //初始化USMART
RTC_Init();
//Adc_Init();
OLED_Init();
KEY_Init();
MokuaiInit();
OLED_ColorTurn(0);//0正常顯示,1 反色顯示
OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉顯示
// OLED_DrawPoint(0,0);
// OLED_DrawLine(20,0,50,60);
// OLED_DrawCircle(64,32,20);
OLED_Refresh();
t=' ';
LED_ON;
//OLED_ShowString(72,0,"Sunday ",12);
//OLED_Refresh();
MainDisplay();
while(1)
{
/*if(KEY_Scan(1) == KEY_UP)
{
OLED_ShowString(96,0,"HHH",16);//6*12
}
else
{
OLED_ShowString(96,0,"RRR",16);//6*12
}
OLED_ShowNum(0,16,KEY_Scan(1),1,16);
OLED_ShowNum(16,16,KEY_Scan(1),1,16);
OLED_ShowNum(32,16,KEY_Scan(1),1,16);
OLED_ShowNum(48,16,KEY_Scan(1),1,16);
OLED_ShowNum(64,16,KEY_Scan(1),1,16);
OLED_ShowNum(80,16,KEY_Scan(1),1,16);*/
/*if(FaultFalg == 0)
{
KeyLedHandle();
}*/
KeyLedHandle();
//LinData();
FunDataRun();
//FunDataShow();
OLED_Refresh();
}
}
復制代碼
軟件.7z
2020-3-3 13:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
223.6 KB, 下載次數: 10, 下載積分: 黑幣 -5
軟件源碼
作者:
admin
時間:
2020-3-4 18:52
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者:
zhuzhuzhuqi
時間:
2020-6-20 18:38
有沒有proteus仿真
作者:
風的等待
時間:
2020-6-22 16:56
感光用的什么傳感器?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1