发现这个升压过程是很快的,如果截止速度不够快的话,那输出可能在一瞬间烧坏某些器件。
6,降压部分测试时遇到一个问题,就是电压怎么也降不下来永远是12V,心里也是塞塞的尤其是再找了很久都不知道问题出在哪里,后来老师就说了句,加负载没?没有负载,能量会一直持续在电路上。于是我加了1K的发现电压降得不是很明显,但是换成27Ω的却可以降到3V。
7,我遇到过一个很心塞的问题,三极管器件管件属性是错的,三极管E,B, C对应是1,2,3而李军学长的器件库E, B,C对应的却是2,1,3。其结果是可想而知,所以在用别人东西的时候还是得考虑有没有错误。
8,所有流过大电流的线路都要加锡,必须覆盖整个窄的线段已达到加大电路流通最大电流的目的,电源输入也要用粗线引入。 9,双路电源并联输出为了使电源输入电流达到6A。
八、 参考文献:
[1] 康华光.电子技术基础模拟部分[M].北京:高等教育出版社,2006. [2] 康华光.电子技术基础数字部分[M].北京:高等教育出版社,2006. [3] 恰汗.合孜尔.C语言程序设计[M].北京:中国铁道出版社,2006. [4] 沈建华.MSP430系列16位超低功耗单片机原理与应用[M].清华大学出版社,2006. [5](美国)科特尔(Bruce Carter).运算放大器权威指南.人民邮电出版社,2010.
九、 附录
附录一:元器件清单
附录三:电路图
附录二:仪器设备
功率电阻 100W10Ω 80uH铁硅铝磁环电感 N-MOSFET IRF640 P-MOSFET IRF5210 电压比较器LM393 三极管8050、8550 二极管SR5100
示波器
函数信号发生器 数字万用表
双路30V,3A直流稳压电源
附录四:部分程序
/****************************************************************************** * 描述 : 电压采集与显示 * 参数 : 无 * 返回 : 无 * 注意 : 无
******************************************************************************/ static double U_Show() {
uint8_ti;
double M=0;double U=0;
for(i=0;i
M+=(double)ADC10_Mem[i]*2.5/1023; }
M=M/ADC10_Data_Num; U=M*23;
LCD_Display_FloatNum(2,3,U,6); return U; }
/****************************************************************************** * 描述 : 延时插入按键扫描 * 参数 : 无 * 返回 : 无 * 注意 : 无
******************************************************************************/ static void delay_Key(uint8_t T) {
uint8_ti;
for(i=0;i delay_ms(50); Key_Process(); } } /****************************************************************************** * 描述 : 按键中断电压设置 * 参数 : 无 * 返回 : 无 * 注意 : 无 ******************************************************************************/ static void Key_Process(void) { if(KEY.Key_Flag) { KEY.Key_Flag=0;//按键清除 __bic_SR_register(GIE);//关总中断 switch(KEY.Keynum) { case 0x00: //电压++ { S_PID.SetPoint++; LCD_Display_FloatNum(1,3,S_PID.SetPoint,6); break; } case 0x01: //电压-- { S_PID.SetPoint--; LCD_Display_FloatNum(1,3,S_PID.SetPoint,6); break; } case 0x02: //电压+=10 { S_PID.SetPoint+=10; LCD_Display_FloatNum(1,3,S_PID.SetPoint,6); break; } case 0x03: //电压-=10 { S_PID.SetPoint-=10; LCD_Display_FloatNum(1,3,S_PID.SetPoint,6); break; } case 0x04: //电压+=0.5 { S_PID.SetPoint+=0.5; LCD_Display_FloatNum(1,3,S_PID.SetPoint,6); break; } case 0x05: //电压-=0.5 { S_PID.SetPoint-=0.5; LCD_Display_FloatNum(1,3,S_PID.SetPoint,6); break; } default: break; } __bis_SR_register(GIE); //开总中断 } } /****************************************************************************** * 描述 : 压控系统界面 * 参数 : 无 * 返回 : 无 * 注意 : 无 ******************************************************************************/ static void VC_Interface(void) { LCD_Clear(); Display_Str(0,2,\压控界面\Display_Str(1,0,\设定V:\Display_Str(1,7,\ Display_Str(2,0,\实际V:\Display_Str(2,7,\} /****************************************************************************** * 描述 : 压控系统初始化 * 参数 : 无 * 返回 : 无 * 注意 : 无 ******************************************************************************/ static void VC_Init(void) { ADC10_Config(); ADC10_Convert(INCH_0,BIT0); } /****************************************************************************** * 描述 : 100KHzPWM产生 I/O: P2.1 * 参数 : 无 * 返回 : 无 * 注意 : 无 ******************************************************************************/ void PWM100KHz(unsigned intA,unsignedintB,unsignedint c)