⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 av_n5088.c

📁 完整功放的控制程序
💻 C
📖 第 1 页 / 共 2 页
字号:

/***************************** 第二片VFD(6311) 显示部分 ******************************/
#define	TDIG1	0xc0 		/*OK DIG14 address */
#define	TDIG2	0xc3 		/*OK DIG13 address */
#define	TDIG3	0xc6 		/*OK DIG12 address */
#define	TDIG4	0xc9 		/*OK DIG11 address */
#define	TDIG5	0xcc 		/* DIG10 address */
#define	TDIG6	0xcf 		/* DIG9 address */
#define	TDIG7	0xd2 		/* DIG8 address */
#define	TDIG8	0xd5 		/* DIG7 address */
#define	TDIG9	0xd8 		/* DIG6 address */
#define	TDIG10  0xdb 		/* DIG5 address */
#define	TDIG11	0xde 		/* DIG4 address */
#define	TDIG12	0xe1		/* DIG3 address */

/*uchar dig_offset[4];        	 DIG2-DIG6 的显示字符串寄存数组 */

uchar idata tdig_offset[50];    	/* DIG2-DIG6 的显示字符串寄存数组 */

void  input_data_scroll(void);
uchar  screen_num;              /* 不同的走屏设置*/

  
void display_do(void);
  /* VFD的总显示输出函数,主程序每次循环就刷新一个栅格, 共11个(G1-G11) */
void display_stronly_do(void);  /*用于开机走屏*/
  /* VFD的字符显示输出函数(G4-G11), 仅显示字符串, 其它显示关闭 */

uchar string_att;		/***** 各字符串显示方式寄存 *****/
#define	STRING_MACH	0	/* 机器方式(固定) */
#define	STRING_PROMPT	1	/* 提示方式 */
#define	STRING_ADJ	2	/* 调节方式 */
#define	STRING_SCROLL	3	/* 滚屏方式 */

uint string_num;		/* 各显示状态下要显示的字符串在表中的编号,也用于区分状态下
				   的子状态, 或存滚屏时的每步移动到滚屏字表中的字节数组号 */
void string_refdo(void);	/* 各种字符串显示方式的执行 */
void string_snext(void);	/* 现在的字符显示方式结束, 设置下一显示方式, 准备进入 */

				/***** 该计时数用于屏幕暂留、走屏速度控制 *****/
uchar string_del;		/* 显示部分的计时器计数数 */
#define	STRDEL_MACH	0xff	/*0x80 机器方式的停留时间 25S */
#define	STRDEL_PA3	12	/* 提示方式、调节方式的停留时间  --1.5S */
#define	STRDEL_PA	8	/* 提示方式、调节方式的停留时间  --1.5S */
#define	STRDEL_PA2	14	/* 提示方式、调节方式的停留时间2 --0.5S */
#define	STRDEL_SCR	3	/* 滚屏速度 0.3S */

uchar string_scr_step;		/* 滚屏步计数数 */
bit string_scr_do(void);	/* 滚屏处理, 每次移动一步, 如果走到最后一步时, 返回位值=1 */

void dis_seterr( void);		/* 设显示为E R R O R的提示显示 */

void start_dis(void);		/* 开机走屏显示程序 */

void dig_bin2bcd1(uchar);
/*8位二进制数-- 转BCD码及输出显示字符寄存数组,dig_offset[10],dig_offset[11]*/

void copy_string(uchar code *);
  /* 复制--表字符串到DIG4-DIG11 的显示字符串寄存数组 */
  /*基于程序存贮器的指针(CODE *)*/    

uchar code *tab_string1_p(uchar);   /*指针函数*/
  /* 查tab_string1表, 输入字串号, 返回表中字串头CODE地址 */
void tab_ascii_do(uchar);
  /* 查tab_ascii表
     参数:表中字串号
     返回:par[2] -- 高8位数
          par[1] -- 低8位数 */

void tab_bar_do2(uchar);

void tab_bar_do(uchar);  /*处理DIG4,为单一的中置频谱,不需要合成,C*/
  /* 查表得--该频谱的6311显示实数
     参数: 格数
     返回:par[1] -- 低位数
          par[2] -- 中位数 */
          
extern void wvfd_6311(void);	/*汇编子程序*/
  /* 写6311显示内存
     参数1: PAR	要写的显存地址(MSB: 1 1 B5,B4,B3,B2,B1,B0 :LSB)(B5-B0 MEM START ADDRESS)
     参数2: PAR+02H	写的高8位数据
     参数3: PAR+01H	写的低8位数据 (先送出, 且从bit0位开始)
     参数4: B_P17       写最高1位*/

extern void setup_6311(void);	/*汇编子程序*/
  /* 初始化6311 --段数格数 11 digits,17 segments*/

extern void dim_vfd(void);	/*汇编子程序*/
  /* 打开荧光显示 */

extern void wled_6311(void);	/*汇编子程序*/
  /* 打开荧光显示 */

//tmp extern void input_det(void);    /*汇编子程序,主音量控制*/

/**************第二片PT6311**************/          
extern void twvfd_6311(void);	/*汇编子程序*/
  /* 写6311显示内存
     参数1: PAR	要写的显存地址(MSB: 1 1 B5,B4,B3,B2,B1,B0 :LSB)(B5-B0 MEM START ADDRESS)
     参数2: PAR+02H	写的高8位数据
     参数3: PAR+01H	写的低8位数据 (先送出, 且从bit0位开始)
     参数4: B_P17       写最高1位*/
   /* 送数据到6311的LED口
      参数: PAR		要送入的数据 */

extern void tsetup_6311(void);	/*汇编子程序*/
  /* 初始化6311 --段数格数 11 digits,17 segments*/

extern void tdim_vfd(void);	/*汇编子程序*/
  /* 打开荧光显示 */
extern void twled_6311(void);	/*汇编子程序*/


/************** 咪侦察处理 ******************/
void dsp_display(void);

/********************************** 按键部分 *********************************/
void key_jmp(void);             /*按键散转*/
bit bkey_bnce;

uchar old_key;			/* 键盘旧按键键值寄存器 */
uchar pwr_key_del;			/* 键盘旧按键键值寄存器 */

uchar kdel;			/* 连续按同一个键计数器 */
#define KTIME1	1		/* 按键自动连动间隔时间 0.3 */
#define KTIME2	2		/* 按键自动连动间隔时间 0.6 */
#define KTIME3	3		/* 按键自动连动间隔时间 1S  */
#define KTIME4	0xff		/* 按键自动连动间隔时间,最慢 */

extern void getkey_6311(void);	/*汇编子程序*/
   /* 读键盘按键子程序
      返回: PAR	键值,0=无按键 */

/******** 高低音恢复子程序 ********/
void tre_bass_restore(void);
/******** 存贮高低音子程序 ********/
void tre_bass_save(void);

void key_do (void);
  /*主按键调用程序,由主函数调用*/

  /*........ 按键子程序 ...........*/
void key_dsp(bit lr_flag);
void key_stereo(void);    void key_surround(void);  
void key_3_stereo(void);  void key_mode(void);
void key_dim(void);	  void key_ch_mode(bit lr_flag);
void key_night(void);     void key_dim_sub(void);


void mic_delay_add(void);
void mic_delay_sub(void);

void mic1_vol_add(void);
void mic1_vol_sub(void);
void mic2_vol_add(void);
void mic2_vol_sub(void);
void mic_tre_add(void);
void mic_tre_sub(void);
void mic_bass_add(void);
void mic_bass_sub(void);
void mic_echo_add(void);
void mic_echo_sub(void);
void cen_vol_add(void);
void cen_vol_sub(void);
void sl_vol_add(void);
void sl_vol_sub(void);
void sr_vol_add(void);
void sr_vol_sub(void);
void bass_add(void);
void bass_sub(void);
void treble_add(void);
void treble_sub(void);
void disp_add(void);
void disp_sub(void);

/********************************** 遥控键部分 *********************************/
bit b_rkey;			/* 有remote key时被置1, 注:主程序检测该位后清0 */
uchar rkey_num;			/* 现遥控键值寄存 */
uchar rkey_keep;		/* 连发的监控计时数 */

uchar rkey_speed;		/* 连发灵敏度计数, 开机时初始化 */
#define	RKEY_SP1	1	/* 连发速度1 */
#define	RKEY_SP2	2	/* 连发速度2 */
#define	RKEY_SP3	4	/* 连发速度3 */
#define	RKEY_SP4	0xff	/* 连发速度4 */

uchar rmbyte_in[4];		/* 遥控完整读入的4个字节存放数组###
				   第1字节 -- 用户码1存放 	,RMBYTE_IN
				   第2字节 -- 用户码2存放	,RMBYTE_IN+01H
				   第3字节 -- 键码存放		,RMBYTE_IN+02H
				   第4字节 -- 键码的反码存放	,RMBYTE_IN+03H	*/

void remote_do(void);
/* 遥控键主调用程序 */
  
/*........ 部分遥控键子程序 ...........*/
void rkey_balan_l(void);
void rkey_balan_r(void);
void key_mute(void);
/******************上电恢复原先的数据*************/
void  restore(void);
/*************** 编码电位器2变量 ********************/
bit icw1_flg;			/* 正转起始标志位, 		    开机时清0 !!! */
//bit icw2_flg;			/* 正转到位标志位(*作为函数返回值), 开机时清0 !!! */
bit iccw1_flg;			/* 反转起始标志位, 		    开机时清0 !!! */
//bit iccw2_flg;			/* 反转到位标志位(*作为函数返回值), 开机时清0 !!! */
uchar lrk_del;		/* 1=为正向,2=为反向, 方向暂存 		  */

bit blrk_process;		//lr_key process flag 
bit blrk_direct;		//lr_key direct flag

void read_lr_key(void);
void china_scroll(void);
/***************************** ac3输入 ***************************************/
sbit  bc_4051a=P1^5;		/*  */
sbit  bc_4051b=P1^4;
sbit  bc_4051c=P1^3;

sbit  bc_inputa=P2^4;        /*=1高电平为全机(包括KALA OK)静音*/
sbit  bc_inputb=P2^5;        /*=1高电平为全机(包括KALA OK)静音*/

sbit  bc_jin=P3^2;
sbit  bc_jout=P2^3;

sbit  bc_mic=P1^7;	     /*KALA OK检测*/     
sbit  bc_okmute=P1^6;	     /*KALA OK静音控制*/
bit   b_mic;		     /*kala ok检测标志*/	
void mic_det(void);

void adpro_add_display(void);
uchar adpro_num;      /*频谱增益自动调节0,7*/


uchar wath_dog_num;
void  clear_wathdog(void);    /*经过一定的时间重新设置看门狗*/	
bit   get_peng_flg;
bit   auto_select_flg;	     /*自动音源选择标志*/	
uchar auto_cout;	     /*经过一定时间进入音源自动选择*/	
#define AUTO_COUNT1   25      
void  auto_source_select(void);  /*自动音源选择*/
void  clear_adin(void);          /*过程静音清除频谱采样数据*/
bit   peng_flg;

/**************************** 24c01--外存储器部分定义 ****************************/
/************* 各种音量调节值 *****************/
uchar a24_start;		

bit b_ack_24c01;		/* 24C01的应答位值寄存 */
uchar err_24c01;		/* 24C01的错误码寄存,!!!!!! 开机时清0 !!! */

extern void read_abyte(void);	/*汇编子程序*/
  /* 24c01,在约定地址读出一数据
     参数: PAR	读出数在24c01中的地址 
     返回: PAR	读出数 */

extern void write_abyte(void);	/*汇编子程序*/
  /* 24c01,在约定地址写一数据, 占用20ms
     参数1: PAR 	24c01中的地址
     参数2: PAR+01H	写入数 */
/**************做出厂设置*******************************/
void setmach(void);
void setup_use(void);	  		/*** 开机的用户状态初始化 ***/
void save_program(void);

uchar add_delay;

uchar idata adpro_delay;	 /*多长时间没有频谱,则显示音源输入*/

uchar adpro_screen_delay; /*没有音源输入,显示音源输入次数大于3则走屏显示*/

void clear_tdig_offset(void);
void  china_disp(void);

void led_control(void);

uchar idata singal_time;  /*2002-07-31 01:11PM*/

void fresh_input(void);

/*================================ 外部程序 ====================================*/
#include <table.c>		/* 表文件 			*/
#include <main.c>		/* 主函数公共程序文件		*/
#include <control.c>		/* 各内部控制处理程序文件 	*/
#include <display.c>		/* 显示部分程序 		*/
#include <remkey.c>		/* 按键及遥控程序 		*/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -