/*************************************************** *标题:单片机控制T 类功放 实现功能:1:通过单片机控制X9241 数字电位器四个电位器的阻值大小, 从而调节功放前级处理芯片LM4610 的音量、低音、高间、平衡音。 2:通过扫描功放芯处TA2020 过载标志位,自动减少放大倍数, 从而减少因输入信号过大而导致的失真。 3:通过控制功放TA2020 的SLEEP 和 MUTE,消除功放在开机、关机 时的冲击噪声。 4:通过控制继电器,从而控制环形变压器,保护芯片,减少待机功耗。 5:显示设备为 12864 液晶显示器。可显示当前音量、低音、高音、 平衡音的相对值, 6:输入设备有按键(采用行列式键盘:分 8 个:低音+、-,音量+-, 平衡音+-,高音+-. 7;可设置 3D、金属音音效(通过短路帽连接) 编写人:涂俊华 2010 年 11 月 10 日 于湖南工学院 ***************************************************/ /*****************************************/// #include #include #include #define uchar unsigned char #define uint unsigned int #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; #define OP_READ 0xa1 // 器件地址以及读取操作 #define OP_WRITE 0xa0 // 器件型号及地址 1010 A2 A1 A0 读/写控制 #define MAX_ADDR 0x7f // AT24C02 最大地址 uchar code yejingtable[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 0x38,0x39,0x20,0x2e,0x0f};//0--9 灭 小数点 星号 sbit OVERLOAD = P2^2; sbit SCL = P2^3; sbit SDA = P2^4; void start(); void stop(); uchar shin(); bit shout(uchar write_data); uchar read_random(uchar random_addr); void write_byte( uchar addr, uchar write_data); void fill_byte(uchar fill_data); void delayms(uchar ms); void delay(uint m); uchar table[10]; uchar keyscan(); uchar bass,volume,balance,treble,time;//即四个电位器的相对值 VR0,VR1,VR2,VR3 void lcd_set(); void write_cmd(uchar command); void write_data(uchar data0); void lcd_clear(); void readall(); void c_bass(uchar bass); void c_volume(uchar volume); void c_balance(uchar balance); void c_treble(uchar treble)...