基于單片機(jī)的數(shù)控穩(wěn)壓電源的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的數(shù)控穩(wěn)壓電源的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的數(shù)控穩(wěn)壓電源的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的數(shù)控穩(wěn)壓電源的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的數(shù)控穩(wěn)壓電源的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.2主要功能模塊程序設(shè)計(jì)4.2.1按鍵及數(shù)碼管掃描子程序設(shè)計(jì)3個(gè)按鍵的定義分別是:加1、減1、功能切換控制。鍵盤(pán)和數(shù)碼管掃描流程如圖4-2所示。圖4-2鍵盤(pán)和數(shù)碼管掃描流程圖當(dāng)系統(tǒng)接通電源后,首先需要等待鍵盤(pán)輸入預(yù)設(shè)的電壓數(shù)值,然后輸入這些數(shù)值并將其顯示在數(shù)碼管上。系統(tǒng)會(huì)在確認(rèn)信息后自動(dòng)進(jìn)行數(shù)字處理,并將其發(fā)送到數(shù)碼管進(jìn)行顯示,與此同時(shí),程序會(huì)從中斷狀態(tài)返回。關(guān)鍵代碼如下:#include"stm32f1xx_hal.h"GPIO_TypeDef*GPIO_PORT[4]={GPIOA,GPIOB,GPIOC,GPIOD};constuint16_tGPIO_PIN[4]={GPIO_PIN_0,GPIO_PIN_1,GPIO_PIN_2,GPIO_PIN_3};constuint8_tnum[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};voidGPIO_Init(void){GPIO_InitTypeDefGPIO_InitStruct={0};/*GPIOPortsClockEnable*/__HAL_RCC_GPIOA_CLK_ENABLE();__HAL_RCC_GPIOB_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOD_CLK_ENABLE();/*ConfigureGPIOpins:PA0PA1PA2PA3*/GPIO_InitStruct.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3;GPIO_InitStruct.Mode=GPIO_MODE_INPUT;GPIO_InitStruct.Pull=GPIO_PULLUP;HAL_GPIO_Init(GPIOA,&GPIO_InitStruct);}voidscan_key(void){uint8_ti;staticuint8_tkey_state[4]={0};for(i=0;i<4;i++){HAL_GPIO_WritePin(GPIO_PORT[i],GPIO_PIN[i],GPIO_PIN_RESET);GPIOA->ODR=display_data[i];HAL_GPIO_WritePin(GPIO_PORT[i],GPIO_PIN[i],GPIO_PIN_SET);}}intmain(void){HAL_Init();GPIO_Init();while(1){scan_key();//進(jìn)行按鍵處理display(1234);//顯示1234HAL_Delay(10);//可以適當(dāng)調(diào)整掃描間隔}}4.2.2A/D轉(zhuǎn)換子程序設(shè)計(jì)ADC0809這款芯片專為八位A/D轉(zhuǎn)換設(shè)計(jì),由于其輸出的最大電壓為9.9V,因此可以通過(guò)公式(4-1)來(lái)計(jì)算出可以獲取的最小電壓幅度。幅值÷精確度=9.99V÷28=0.04V(4-1)由于ADC0809僅能采集0-5V的電壓,一旦超出,芯片可能會(huì)受損。因此,在輸出端,通過(guò)電阻進(jìn)行分壓,確保采樣電壓始終低于5V。為了展示輸出電壓,程序中將采樣電壓與一個(gè)分壓系數(shù)相乘后進(jìn)行顯示,這樣得到的顯示值就代表了輸出電壓。A/D轉(zhuǎn)換的具體流程圖如圖4-3所示。圖4-3A/D轉(zhuǎn)化流程圖關(guān)鍵代碼如下:#include"stm32f1xx_hal.h"ADC_HandleTypeDefhadc1;voidSystemClock_Config(void);staticvoidMX_ADC1_Init(void);intmain(void){HAL_Init();SystemClock_Config();MX_ADC1_Init();uint32_tadc_value;while(1){HAL_ADC_Start(&hadc1);HAL_ADC_PollForConversion(&hadc1,HAL_MAX_DELAY);adc_value=HAL_ADC_GetValue(&hadc1);HAL_ADC_Stop(&hadc1);}}voidSystemClock_Config(void){Error_Handler();}}staticvoidMX_ADC1_Init(void){hadc1.Init.DataAlign=ADC_DATAALIGN_RIGHT;hadc1.Init.NbrOfConversion=1;if(HAL_ADC_Init(&hadc1)!=HAL_OK){Error_Handler();}sConfig.Channel=ADC_CHANNEL_0;//選擇ADC通道,可以根據(jù)實(shí)際連接的引腳選擇sConfig.Rank=1;sConfig.SamplingTime=ADC_SAMPLETIME_13CYCLES_5;if(HAL_ADC_ConfigChannel(&hadc1,&sConfig)!=HAL_OK){Error_Handler();}}voidError_Handler(void){while(1)}4.2.3D/A轉(zhuǎn)化子程序設(shè)計(jì)DAC0832的轉(zhuǎn)換精度計(jì)算方法與ADC0809保持一致,其輸出的最小電壓范圍是0.04V。該轉(zhuǎn)換過(guò)程與A/D轉(zhuǎn)換流程有許多相似之處,當(dāng)選通信號(hào)被激活時(shí),預(yù)設(shè)的數(shù)字會(huì)被輸入到DAC0832進(jìn)行D/A轉(zhuǎn)換,轉(zhuǎn)換完成后會(huì)返回到程序中,具體流程如圖4-4所示。圖4-4D/A轉(zhuǎn)換流程圖關(guān)鍵代碼如下:#include"stm32f1xx_hal.h"DAC_HandleTypeDefhdac;voidSystemClock_Config(void);staticvoidMX_DAC_Init(void);intmain(void){HAL_Init();SystemClock_Config();MX_DAC_Init();while(1){//設(shè)置DAC輸出值HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_12B_R,2048);//可以根據(jù)需要設(shè)置不同的輸出值}}voidSystemClock_Config(void)Error_Handler();}RCC_ClkInitStruct.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider=RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider=RCC_HCLK_DIV2;RCC_ClkInitStruct.APB2CLKDivider=RCC_HCLK_DIV1;if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_2)!=HAL_OK){Error_Handler();}}staticvoidMX_DAC_Init(void){DAC_ChannelConfTypeDefsConfig={0};__HAL_RCC_DAC_CLK_ENABLE();hdac.Instance=DAC;if(HAL_DAC_Init(&hdac)!=HAL_OK){Error_Handler();}4.2.4PID算法編程程序設(shè)計(jì)電流的設(shè)置這里使用位置式PID算法進(jìn)行調(diào)節(jié),需要設(shè)定Kp,Ki,Kd三個(gè)參數(shù)。其中Kp比例系數(shù)的作用是對(duì)偏差瞬間作出反應(yīng),可以改變數(shù)值減小誤差,但無(wú)法把穩(wěn)態(tài)誤差完全消除,Kp必須選擇恰當(dāng),才能有過(guò)渡時(shí)間少,靜差小而又穩(wěn)定的效果;Ki積分系數(shù)只要存在偏差,則它的控制作用就不斷的增加,它的調(diào)節(jié)作用雖然會(huì)消除靜態(tài)誤差,但也會(huì)降低系統(tǒng)的響應(yīng)速度,增加系統(tǒng)的超調(diào)量,甚至出現(xiàn)振蕩;Kd微分系數(shù)是根據(jù)偏差的變化趨勢(shì)(變化速度)進(jìn)行控制。偏差變化的越快,微分控制器的輸出就越大,并能在偏差值變大之前進(jìn)行修正,但微分的作用對(duì)輸入信號(hào)的噪聲很敏感,對(duì)那些噪聲較大的系統(tǒng)一般不用微分,或在微分起作用之前先對(duì)輸入信號(hào)進(jìn)行濾波。程序具體流程如圖4-5所示。圖4-5PID算法程序流程圖根據(jù)查閱相關(guān)文獻(xiàn)資料和經(jīng)驗(yàn),最后設(shè)定PID值為比例系數(shù)5,積分系數(shù)1,微分系數(shù)0。如以下程序所表示的,采用當(dāng)前位置式輸出,即根據(jù)公式4-1編寫(xiě)對(duì)應(yīng)的代碼(4-1)這種方法控制的是輸出和整個(gè)過(guò)去狀態(tài)的關(guān)系,用到了誤差的累加值,不過(guò)其直接對(duì)應(yīng)對(duì)象的輸出,對(duì)系統(tǒng)影響較大。關(guān)鍵代碼如下:voidPID_Init(){pid.SetSpeed=0;pid.ActualSpeed=0;pid.err=0;pid.err_last=0;pid.voltage=0;egral=0;pid.Kp=5;//5pid.Ki=1;//1pid.Kd=0;}/*PID控制算法*/ u16PID_realize(u16current){intindex=0;pid.SetSpeed=current;pid.err=pid.SetSpeed-pid.ActualSpeed;index=1;egral+=pid.err;pid.voltage=pid.Kp*pid.err+index*pid.Ki*egral; printf("pid.err=%d-%d=%d\r\n",pid.SetSpeed,pid.ActualSpeed,pid.err); printf("egral=%d\r\n",egral); printf("pid.voltage=%d\r\n",pid.voltage); if(pid.voltage<0) pid.voltage=0;pid.ActualSpeed=pid.voltage>>6; printf("pid.ActualSpeed=%d\r\n",pid.ActualSpeed);returnpid.ActualSpeed;}4.2.5模式切換編程程序設(shè)計(jì)程序設(shè)置了恒壓和恒流輸出兩種模式,通過(guò)變量標(biāo)志位Model告訴單片機(jī)進(jìn)入的模式,當(dāng)為電流模式時(shí),采用位置式PID進(jìn)行調(diào)節(jié),所以需要將設(shè)定值和輸出值進(jìn)行比較,通過(guò)將設(shè)定要輸出的電流傳入算法函數(shù)后賦值給Volue,重復(fù)循環(huán),和900進(jìn)行比對(duì),每次循環(huán)重新傳回DA_Current給tlc_5615()函數(shù)進(jìn)行處理,只要系統(tǒng)運(yùn)行,就一直調(diào)節(jié)在這個(gè)范圍并可以在顯示屏上看到對(duì)應(yīng)的輸出。程序流程圖如圖4-6所示。圖4-6模式切換流程圖關(guān)鍵代碼如下:While(1){if(Model==1) //電流模式{tlc_5615(DA_Current); //設(shè)置電流時(shí),傳入DA值if(Out_Current>Set_Current) //判斷輸出和設(shè)定的值 { if(Out_Current-Set_Current>2) { Volue=PID_realize(Set_Current); //將設(shè)定的值傳入算法函數(shù)進(jìn)行調(diào)節(jié) pid.ActualSpeed=Out_Current; //將輸出作為實(shí)際值 if(Volue>900) //判斷所調(diào)節(jié)的值與900的比較 Volue=900; DA_Current=Volue; //傳入5615 } }elseif(Set_Current>Out_Current) {if(Set_Current-Out_Current>2) { Volue=PID_realize(Set_Current); pid.ActualSpeed=Out_Current; if(Volue>900) Volue=900; DA_Current=Volue; } } }else //電壓模式{tlc_5615(DA_Date); //通過(guò)按鍵函數(shù)傳值給5615進(jìn)行調(diào)節(jié) }}4.3電源數(shù)據(jù)上位機(jī)軟件設(shè)計(jì)為了設(shè)備能更加貼近實(shí)際需求,在這里增加電源上位機(jī)進(jìn)行數(shù)據(jù)采集如圖4-4所示,用戶能夠在上位機(jī)上直觀得到輸出電壓和電流,輸入電壓以及實(shí)時(shí)溫度。下面是下位機(jī)數(shù)據(jù)處理關(guān)鍵子函數(shù)。包括SendData()和USART1_IRQHandler()。這里將數(shù)據(jù)緩存在data[]數(shù)組,再發(fā)送給串口1,然后通過(guò)串口1的中斷功能進(jìn)行數(shù)據(jù)接收,最后在主函數(shù)設(shè)置相關(guān)邏輯,在上位機(jī)上顯示相關(guān)數(shù)據(jù)。關(guān)鍵代碼如下:voidSendData() //串口發(fā)送參數(shù)數(shù)據(jù){ u8data[11]; u8buf=0,i=0; data[0]=0xaa; //數(shù)據(jù)頭 data[1]=Out_Current>>8;//高位,負(fù)載輸出電流 data[2]=Out_Current; data[3]=Out_Voltage>>8;//高位,負(fù)載輸出電壓 data[4]=Out_Voltage; data[5]=In_Voltage>>8;//高位,電源輸入電壓 data[6]=In_Voltage; data[7]=Board_Temp>>8; //高位,溫度 data[8]=Board_Temp; for(i=0;i<9;i++) //檢驗(yàn)把前面所有數(shù)據(jù)異或 { buf^=data[i]; //避免數(shù)據(jù)出錯(cuò) } data[9]=buf; //校驗(yàn)字節(jié)data[10]=0xbb; //數(shù)據(jù)尾 for(i=0;i<11;i++) USART1_Send_Char(data[i]); //把整個(gè)數(shù)組發(fā)送給串口1}voidUSART1_IRQHandler(void) //串口1中斷服務(wù)程序 { u8res_data; if(USART_GetITStatus(USART1,USART_IT_RXNE)!=res_dataET) {res_data=USART_ReceiveData(USART1); //返回USART1接收到的數(shù)據(jù)USART1_RX_BUF[USART1_REC_LEN]=res_data; //將數(shù)據(jù)放入數(shù)組if(USART1_RX_BUF[0]==0xaa) //檢驗(yàn)數(shù)據(jù)頭 {RecFlag=1;//開(kāi)始接收數(shù)據(jù)標(biāo)識(shí) }if(RecFlag==1) {if(USART1_REC_LEN==8) //一直接收到溫度這個(gè)數(shù)組元素 { USART1_REC_LEN=0; RecFlag=0; RecFinishFlag=1;//接收完成 } else USART1_REC_LEN++; //沒(méi)接收完成數(shù)組長(zhǎng)度自加 } } }為了滿足用戶可以較為簡(jiǎn)單的控制電源輸出輸入數(shù)值以及查看實(shí)時(shí)運(yùn)行狀況,利用C#語(yǔ)言開(kāi)發(fā)了基于STM32的數(shù)控穩(wěn)壓電源上位機(jī)軟件。該軟件通過(guò)USB轉(zhuǎn)TTL建立連接。下位機(jī)界面如圖4-7所示,包含下機(jī)位連接窗口、監(jiān)控信息和故障信息窗口。圖4-7上位機(jī)界面

285制作與測(cè)試5.1硬件電路的布線與焊接利用AD15軟件繪制電路的基本原理圖,并據(jù)此生成PCB圖,然后進(jìn)行手工布線。在首次對(duì)元件進(jìn)行布局的過(guò)程中,由于沒(méi)有充分考慮,芯片的布局似乎并不理想,這導(dǎo)致了在布線過(guò)程中出現(xiàn)了交叉線的難題。為了克服這個(gè)難題,對(duì)幾塊芯片和電容器的位置進(jìn)行了微調(diào)。這項(xiàng)措施顯著地優(yōu)化了布線的狀況。在確保電源線等設(shè)備沒(méi)有錯(cuò)誤之后,將PCB文件制作電路板。在此之后,需要對(duì)元器件進(jìn)行焊接。首先要明確,焊接的順序是非常關(guān)鍵的。按照“先小后大”的策略,依次進(jìn)行電阻、電容、穩(wěn)壓管、集成芯片和MOS管的焊接,最終對(duì)如端子排針這樣的大型元器件進(jìn)行處理。其次,應(yīng)特別留意各個(gè)元器件的放置方向。比如說(shuō),LM358、穩(wěn)壓管以及電位器等設(shè)備都具有明確的方向性,因此必須進(jìn)行準(zhǔn)確的安裝操作。5.2系統(tǒng)測(cè)試單片機(jī)焊接測(cè)試沒(méi)問(wèn)題后,進(jìn)行功能測(cè)試,測(cè)試軟件是否正確。首先給單片機(jī)輸入12V電源,然后數(shù)碼管默認(rèn)顯示A12,表示輸入電壓為12V,如圖5-1所示。圖5-1電路圖測(cè)試圖通過(guò)USB轉(zhuǎn)串口模塊,鏈接電腦上位機(jī)后,打開(kāi)軟件,連接串口,檢查數(shù)據(jù)是否正常,提示框顯示信息是否準(zhǔn)確。設(shè)置輸出電壓或者輸出電流,用萬(wàn)用表測(cè)試輸入電壓29及電流。如果誤差小于0.1V或者10mA,則功能正常。短接輸出端,造成短路,看上位機(jī)是否出現(xiàn)輸出短路提示,以及主板上短路燈是否亮起,萬(wàn)用表測(cè)量輸出端是否歸零,如圖5-2所示。5-2上位機(jī)測(cè)試圖5.3測(cè)試結(jié)果分析與改進(jìn)方法5.3.1測(cè)試結(jié)果電壓輸出范圍測(cè)試結(jié)果如表5-1所示。表5-1電壓輸出測(cè)試結(jié)果輸入電壓(V)設(shè)定輸出電壓(V)實(shí)際輸出電壓(V)12.5V15V15.1V12.5V20V19.8V12.5V25V25.1V15V35V34.8V20V55V55.2V結(jié)果分析:經(jīng)測(cè)試,輸出電壓可以穩(wěn)定在12-60V之間。輸出存在較小誤差值,考慮基準(zhǔn)電壓的穩(wěn)定性、電源線路的噪聲和紋波、反饋回路的穩(wěn)定性、元件參數(shù)的誤差以及負(fù)載變化等。最大輸出電流測(cè)試結(jié)果如表5-2所示。30表5-2最大輸出電流測(cè)試結(jié)果輸入電壓(V)散熱風(fēng)扇個(gè)數(shù)(個(gè))設(shè)置輸出電流(A)實(shí)際輸出電流(A)12.5V01.5A1.51A12.5V11.5A1.51A12.5V03A2.1-3.1A波動(dòng)12.5V13A3.1A12.5V06A3.5A12.5V16A5.98A結(jié)果分析:經(jīng)測(cè)試,輸出電流的調(diào)整精度在±1mA內(nèi),符合設(shè)計(jì)要求。存在輸出電流較小誤差考慮溫度散熱變化。功率和效率測(cè)試結(jié)果如表5-3所示。表5-3功率與效率測(cè)試結(jié)果輸出電壓(V)輸出電流(A)輸出功率(W)輸出效率(%)12V1A12W91%24V3A72W92%36V5A180W95%48V6A288W94%60V6A360W90%結(jié)果分析:隨著輸出電壓和電流的增加,輸出功率也隨之增加。效率隨著輸出電壓和電流的增加而提高,但在較高輸出電壓或電流時(shí)可能略有下降。在整個(gè)測(cè)試范圍內(nèi),輸出功率和效率都能滿足設(shè)計(jì)要求,并且在優(yōu)良的散熱環(huán)境中表現(xiàn)良好。5.3.2誤差分析與改進(jìn)方法電壓輸出誤差:誤差分析:在一些情況下,輸出電壓可能會(huì)存在一定的誤差,導(dǎo)致超出規(guī)定范圍。改進(jìn)方法:優(yōu)化反饋回路和控制算法,提高穩(wěn)壓精度,減小誤差。電流調(diào)整誤差:誤差分析:可能由于控制電路的精度限制,導(dǎo)致電流調(diào)整精度不夠高。改進(jìn)方法:優(yōu)化電流調(diào)節(jié)電路,增加控制精度,減小誤差。316結(jié)論6.1總結(jié)單片機(jī)在數(shù)控穩(wěn)壓電源中的應(yīng)用,為電源系統(tǒng)帶來(lái)了更高的智能化和穩(wěn)定性。通過(guò)單片機(jī)的控制,可以實(shí)現(xiàn)對(duì)電源輸出的精確控制、監(jiān)測(cè)和保護(hù),提高了電源系統(tǒng)的性能和可靠性。數(shù)控穩(wěn)壓電源的設(shè)計(jì)中,單片機(jī)扮演著關(guān)鍵角色。它可以監(jiān)測(cè)輸入電壓、輸出電壓和電流,并根據(jù)設(shè)定的參數(shù)進(jìn)行調(diào)節(jié),以確保輸出電壓穩(wěn)定在所需的水平。此外,單片機(jī)還可以實(shí)現(xiàn)多種保護(hù)功能,如過(guò)載保護(hù)、過(guò)溫保護(hù)和短路保護(hù),保障電源系統(tǒng)和負(fù)載的安全運(yùn)行。在過(guò)去的發(fā)展中,單片機(jī)的應(yīng)用使得數(shù)控穩(wěn)壓電源逐漸普及,并在各個(gè)領(lǐng)域得到廣泛應(yīng)用。從工業(yè)控制到醫(yī)療設(shè)備,從通信系統(tǒng)到消費(fèi)電子,數(shù)控穩(wěn)壓電源都發(fā)揮著重要作用。而隨著單片機(jī)技術(shù)的不斷發(fā)展,我們可以期待數(shù)控穩(wěn)壓電源在未來(lái)發(fā)展出更多功能和性能,以滿足不斷增長(zhǎng)的應(yīng)用需求。6.2展望未來(lái),隨著智能化、高效化和節(jié)能化的需求不斷增長(zhǎng),數(shù)控穩(wěn)壓電源將面臨更多的挑戰(zhàn)和機(jī)遇。在展望未來(lái)發(fā)展趨勢(shì)時(shí),我們可以關(guān)注以下幾個(gè)方面:(1)高效能源管理:隨著能源資源的日益緊張和環(huán)境問(wèn)題的加劇,對(duì)能源的高效利用成為必然趨勢(shì)。未來(lái)的數(shù)控穩(wěn)壓電源將更加注重能源管理和節(jié)能技術(shù)的應(yīng)用,通過(guò)優(yōu)化控制算法和硬件設(shè)計(jì),實(shí)現(xiàn)電能的有效利用和節(jié)約。(2)智能化控制:隨著人工智能和物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,未來(lái)的數(shù)控穩(wěn)壓電源將更加智能化和自適應(yīng)。通過(guò)引入機(jī)器學(xué)習(xí)和深度學(xué)習(xí)技術(shù),電源系統(tǒng)可以實(shí)現(xiàn)更加智能的控制和優(yōu)化,適應(yīng)不同的工作場(chǎng)景和負(fù)載需求。(3)多功能集成:未來(lái)的數(shù)控穩(wěn)壓電源將趨向于多功能集成,將更多的功能集成到單個(gè)芯片或模塊中,以實(shí)現(xiàn)更高的性能和更小的體積。同時(shí),也將注重通用性和可擴(kuò)展性,以滿足不同應(yīng)用場(chǎng)景的需求。(4)可靠性和安全性:數(shù)控穩(wěn)壓電源作為電子系統(tǒng)的關(guān)鍵部件,其可靠性和安全性至關(guān)重要。未來(lái)的發(fā)展將繼續(xù)注重提高電源系統(tǒng)的可靠性和安全性,通過(guò)先進(jìn)的故障檢測(cè)和保護(hù)技術(shù),確保系統(tǒng)在各種工作環(huán)境下的穩(wěn)定運(yùn)行。

32參考文獻(xiàn)[1]崔海安.電流型控制技術(shù)在開(kāi)關(guān)電源中的應(yīng)用[M].電子工業(yè)出版社,2019,36-56.[2]趙德安.單片機(jī)原理與應(yīng)用[M].機(jī)械工業(yè)出版社,2019,112-115.[3]清源計(jì)算機(jī)工作室.Protel99SE原理圖與PCB及仿真[M].機(jī)械工業(yè)出版社,2021,12-15.[4]李廣第.單片機(jī)基礎(chǔ)[M].北京航空航天大學(xué)出版社,2019,33-64.[5]徐恕宏.傳感器原理及其設(shè)計(jì)基礎(chǔ)[M].機(jī)械工業(yè)出版社,2020,30-45.[6]彭軍.傳感器與檢測(cè)技術(shù)[M].西安電子科技大學(xué)出版社,2022,31-42.[7]周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京航空航天大學(xué)出版社,2021,18-27.[8]任向民,盧惠林.匯編語(yǔ)言程序設(shè)計(jì)使用教程[M].清華大學(xué)出版社,2019,24-32.[9]王曉音,聶裕平,龐偉正.DDS輸出頻譜雜散的抑制[J].電子對(duì)抗技術(shù),2021,47-59.[10]楊揚(yáng).基于TC35i的智能傳輸系統(tǒng)[J].電子測(cè)試,2019,56-59.[11]趙欣.基于SIM300/TC35i無(wú)線GSM芯片實(shí)現(xiàn)短信遠(yuǎn)程控制TRT的研究[J].消費(fèi)導(dǎo)刊,2021.30-41.[12]錢(qián)鈞,惠王偉,高瑩等.RC濾波電路實(shí)驗(yàn)設(shè)計(jì)與研究[J].大學(xué)物理實(shí)驗(yàn),2019,58-62.[13]劉文楷,蘇寧寧,戴瀾.霍爾傳感器讀出電路的低噪聲運(yùn)算放大器設(shè)計(jì)[J].電子世界,2019,79-80.[14]許瑞慶.脈搏檢測(cè)系統(tǒng)設(shè)計(jì)及其信號(hào)處理算法研究[D].南京信息工程大學(xué),2020,112-119.[15]仝兆景,時(shí)俊嶺,李月等.基于無(wú)線通訊技術(shù)脈搏檢測(cè)儀的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2019,242-244.[16]JianWU,HouW,ZhengB.ATemperatureControlSystemBasedonSTM32F103MCU[J].ComputerKnowledge&Technology,2019,05(1),9-13.[17]XiaoQingYU,ZhangZL.RemoteMonitoringSystemforIrrigationBasedonSTM32F103andGSM[J].WaterSavingIrrigation,2020,02(1),29-33.[18]YangY.IntelligenttransmissionsystembasedonTC35i[J].ElectronicTest,2021,04(8),119-133.[19]GanY,WangH,ShanZ,etal.USERDATAPROCESSINGMETHODANDDEVICE,WO[P],2021,12(4),110-114.[20]YuanShengL.AnalysisofCerebrovascularFunctioninPatientswithChronicCerebralCirculationInsufficiency[J].2019,04(6):17-23.34附錄附錄一:電路原理圖

35附錄二:元器件清單元器件名稱數(shù)量元器件參數(shù)sc060312103/50V,104/50V,105/50V,106/50V,475/50VSC12062106/50VSC08051106/50V1812247uF/100VDO-214AC1M7TO-2525MBR10100CS,MJD148T4G,RU7570LSOD-123FL3DZener,IN4007G06033紅色led直插,藍(lán)色led直插,綠色led直插sot-231TLV431AIDBZR四位數(shù)碼管1四位共陰數(shù)碼管SW-T3key按鍵L-201InductorHDR1X41Header44P1Header4KF301-2P2電源輸入,負(fù)載輸出0603280,1K,2K2,3K,3R3,10K,10K±0.1%,18K±0.1%,20K,30K,68K±0.1%,180K±0.1%,200K,300K±0.1%36附錄三:程序代碼intmain(void){ u8cnt=0; u16adcx;SystemInit();delay_init(72); //延時(shí)初始化userInit();keyInit(); Adc_Init(); //ADC初始化TLC5615_IO_Init();LCD_init(); LCD_write_string(1,1,"In:--.-VT:C"); LCD_write_string(1,2,"Out:--.-VmA"); Beep=0;//默認(rèn)關(guān)閉蜂鳴器 tlc_5615(DA_Date); Exti_init(); //外部中斷初始化 PID_Init();while(1){ if(Board_Temp>60&&Beep_Flag==1)//如果溫度大于60度,則報(bào)警 { cnt++; if(cnt<3)Beep=1;elseif(cnt<6)Beep=0;elsecnt=0; } if(Model==1)//電流模式37 { Out_Voltage=DA_Current/3; tlc_5615(Out_Voltage); if(Out_Current>Set_Current) { if(Out_Current-Set_Current>2) { Volue=PID_realize(Set_Current); pid.ActualSpeed=Out_Current; if(Volue>900) Volue=900; DA_Current=Volue; } }elseif(Set_Current>Out_Current) { if(Set_Current-Out_Current>2) { Volue=PID_realize(Set_Current); pid.ActualSpeed=Out_Current; if(Volue>900) Volue=900; DA_Current=Volue; } } } else { tlc_5615(DA_Date); } if(Short_Flag==1)//過(guò)流 {38 Short_Flag=0; Beep=1; delay_ms(300); Beep=0; } GetTemper(); adcx=Get_Adc_Average(ADC_Channel_9,10); In_Voltage=adcx*8.86; //輸入電壓為所采集電壓的11倍: (AD/4096)*3300*11=AD*8.862 adcx=Get_Adc_Average(ADC_Channel_7,10); Out_Current=adcx*1.413;//1.413 5.7*1000*(AD/4096)約為1.4,這里取1.413 if(!Key3) { while(!Key3); Beep_Flag=!Beep_Flag;//溫度報(bào)警然后按取消鍵取消報(bào)警 } if(!Key1) //切換模式按鍵 { Beep=1; while(!Key1); Model=!Model; if(Model==0) { DA_Current=0; Set_Current=0; tlc_5615(0);Out_Voltage=0;DA_Date=0; LCD_write_string(1,1,"In:--.-VT:C"); LCD_write_string(1,2,"Out:--.-VmA"); }else { DA_Date=0;39Out_Voltage=0;tlc_5615(0);DA_Current=0;Set_Current=0; LCD_write_string(1,1,"S:mAT:C"); LCD_write_string(1,2,"Out:--.-VmA"); } Beep=0; } if(Model==0) { LCD_set_xy(4,1);LCD_write_data(LCD1602_Table[In_Voltage/10000]); LCD_write_data(LCD1602_Table[In_Voltage%10000/1000]); LCD_write_data('.'); LCD_write_data(LCD1602_Table[In_Voltage%1000/100]); LCD_set_xy(12,1);LCD_write_data(LCD1602_Table[Board_Temp/100]); LCD_write_data(LCD1602_Table[Board_Temp%100/10]); LCD_write_data(LCD1602_Table[Board_Temp%10]);LCD

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論