《基于单片机的功放毕业设计》由会员分享,可在线阅读,更多相关《基于单片机的功放毕业设计(23页珍藏版)》请在金锄头文库上搜索。
1、目 录1 绪论21.1 当前功放发展状况21.2 设计要求21.3 本人的主要工作32 系统总体方案设计与论证42.1 系统总体方案设计42.2 电压放大电路4 2.3 功率放大电路42.4 控制芯片的选择42.5 显示装置的选择42.6 功率检测电路52.7 AD 的选择63 系统具体电路设计73.1 电压放大电路的设计73.2 带阻滤波电路的设计73.3 输出级电路设计83.4 电源功率检测电路的设计93.5 单片机最小系统113.6 系统软件流程图134 测试结果14参考文献15致谢16附录1721 绪 论1.1 当前功放发展状况音响技术的发展历史可以分为电子管、晶体管、集成电路、场效应
2、管四个阶段。 1906 年美国人德福雷斯特发明了真空三极管,开创了人类电声技术的先河。1927 年贝尔实验室发明了负反馈技术后,使音响技术的发展进入了一个崭新的时代,比较有代表性的如威廉逊放大器,较成功地运用了负反馈技术,使放大器的失真度大大降低,至 50 年代电子管放大器的发展达到了一个高潮时期,各种电子管放大器层出不穷。由于电子管放大器音色甜美、圆润,至今仍为发烧友所偏爱。 70 年代的中期,日本生产出第一只场效应功率管。由于场效应功率管同时具有电子管纯厚、甜美的音色,以及动态范围达 90dB、THD#include #includeLCD12864P.C#includeKEY.H/* *
3、 端口定义声明专区 * */#define ADCOM XBYTE0xFF7C /使 A0=0,RC=0,CS=0;#define ADLO XBYTE0xFF7F /使 A0=1,RC=1,CS=0;#define ADHI XBYTE0xFF7D /使 A0=0,RC=1,CS=0;sbit r=P30; /读sbit w=P31; /写sbit adbusy=P27; /忙sbit AA = P26; /测量切换控制端 Asbit BB = P24; /测量切换控制端 B/* * 函数声明专区 * */uint ad574( void ); /AD574 采样子程序void CSCGL(
4、 void ); /测量负载输出功率void CGJGL( void ); /测量电源供给功率void CZJXL( void ); /测量整机效率void jiemian( void ); /界面子程序/* * 数据定义专区 * */uchar SCGL = 0.0000W; /负载输出功率缓存区uchar GJGL = 0.0000W; /电源供给功率缓存区uchar ZJXL = 0.0000 ; /整机效率数据缓存区float SCP; /负载输出功率float GJP; /电源供给功率uchar count; /void main( void )uchar workcode; /键盘
5、扫描码TMOD|=0X01; /选择定时器 0 工作在模式 1,即 16 位定时器TH0=(65536-49000)/256; /装 49ms 的初值TL0=(65536-49000)%256;ET0=1; /开定时器 0 中断EA=1; /开总中断19init_12864(); /液晶初始化Clean_12864_GDRAM(); /先清完所有显示photodisplay(Photo); /显示界面 TR0 = 1 ;while(1)workcode = jianmazhi(); /判键if( workcode = 13 ) /测量 显示 TR0 = 1 ;count = 0 ;AA = 1
6、 ;BB = 1 ;delayms(10);CSCGL();AA = 1 ;BB = 1 ;delayms(10);CGJGL();AA = 1 ;BB = 1 ;delayms(10);CZJXL();AA = 1 ;BB = 1 ;delayms(10);r = 1 ;w = 1 ;jiemian();if( workcode = 15 ) /返回 主界面 TR0 = 1 ;count = 0 ;Clean_12864_GDRAM(); /先清完所有显示。Clean_12864(); /清屏photodisplay(Photo); /显示主界面 /*if( workcode = 0 ) A
7、A = 0 ;BB = 0 ;if ( workcode = 1 ) AA = 1 ;BB = 0 ;20if( workcode = 2 ) AA = 0 ;BB = 1 ;/*if( workcode = 3 ) r = 1 ;w = 1 ;write_12864_cmd(0x34);write_12864_cmd(0x08);if( workcode = 4 ) r = 1 ;w = 1 ;write_12864_cmd(0x34);write_12864_cmd(0x0c);/*if( workcode != 14 & workcode != 15 ) TR0 = 1 ;*/* * 函
8、数名称: uint ad574( void )* 功能描述: AD574 转换函数* 输入: 无* 输出 : * 全局变量: 无* 调用模块: 无* 说明:* 注意:*/uint ad574( void ) r = 0 ; /产生 CE=1w = 0 ;ADCOM = 0 ; /启动转换while(adbusy = 1); /等待转换结束return(uint)(ADHI Z ;delayms(10);result = ad574();U = 0.002442 * result - 4.955 ; /负载电压值得测量U = U * 7.65 ;P = U * U / 8 ; /P = U2 /
9、 R ;衰减了 6 倍;SCP = P ;P = P + 0.00005 ;if( P Z ;delayms(10);result = ad574();U = 0.002442 * result - 4.955 ; /电压值的测量delayms(10);for(i=0;i Z ;delayms(100);result = ad574();I = 0.002442 * result - 5 ; /电流值的测量I0 = I0 + I ;I = I0 / 10 ;P = 3 * U * I / 0.9 ; /P = U * I ; 衰减了 3 倍;if( SCP = 5 & SCP 250) /计到 10 次时count=0; /计数清 0r = 1 ;w = 1 ;write_12864_cmd(0x08);TR0 = 0 ;