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

📄 main.lst

📁 此程序是及iic、rs485、rs232于一身的单片机c语言编写
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  MAIN                                                                   04/20/2006 17:34:59 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\c51\BIN\C51.EXE main.c DB OE SMALL ROM(LARGE) 

stmt level    source

   1          #include <main.h>
   2          
   3          byte vlm_main; //= 0x28; //0x3f-0x17=0x28 为最大的音量0db
   4          byte bass_main; //= 0x10;// = 0x10;
   5          byte treble_main;// = 0x10; //= 0x10;
   6          byte gain_front; // = 0x31 | 0x80;
   7          byte mute=MUTE;
   8          byte openedsource = 0x00;  //用于判断已经打开的信源
   9          sbit CS_PA = P1^5;
  10          sbit CS_LED = P1^6;
  11          bit set = 0;
  12          
  13          byte bdata pa_state = 0xff;
  14          sbit RADIO_C = pa_state^0;
  15          sbit MIC_C = pa_state^2;
  16          sbit MP3_C = pa_state^4;
  17          sbit MS = pa_state^6;
  18          
  19          byte flag_prior;// = 0x01;  //当前广播优先级标志,0x01默认为LCD
  20          byte prior_radio;//= 0x04;
  21          byte prior_mic;//= 0x03;
  22          byte prior_mp3;//= 0x02;
  23          byte prior_lcd;//= 0x01;  //定义各个信源的优先级别,数大的为高优先级
  24          
  25          
  26          byte flag_radio = 0x00;
  27          byte flag_mic = 0x00;
  28          byte flag_mp3 = 0x00;
  29          byte flag_lcd = 0x00;
  30          /*#define RADIO_C 0xBE
  31          #define MIC_C 0xBB
  32          #define MP3_C 0xAF
  33          #define LCD_C 0xBF
  34          #define MS_R 0xBF*/
  35          union BYTE_WORD
  36          {
  37          	word item;
  38          	byte rx_byte[0x02];
  39          }max3100;
  40          void prc_max3100_data();
  41          void prc_ctl();
  42          void delay_50us();
  43          void delay_10ms();
  44          void tea6320A_ini(void)
  45          {      	byte tmp;
  46   1      	//tmp = 0x2b | 0xc0;//MASTER_VLM;
  47   1      	//tmp = 0x37 | 0x80;
  48   1      	tmp = gain_front;
  49   1      	while(set1_master_vlm(&tmp));
  50   1      	//tmp = 0x10;//BASS;
  51   1      	tmp = bass_main;
  52   1      	while(set1_bass(&tmp));
  53   1      	//tmp = 0x10;//TREBLE;
  54   1      	tmp = treble_main;
  55   1      	while(set1_treble(&tmp));
C51 COMPILER V6.12  MAIN                                                                   04/20/2006 17:34:59 PAGE 2   

  56   1      	//tmp = 0x05;//SELECT_CH ;
  57   1      	tmp = SEL_MP3;
  58   1      	while(set1_select_ch(&tmp));
  59   1      	tmp = MUTE;
  60   1      	while(set1_vlm(&tmp, 0));
  61   1      	while(set1_vlm(&tmp, 1));	
  62   1      }
  63          
  64          void mcu_ini(void)
  65          {
  66   1      	P0 = 0xff;
  67   1      	P1 = 0xff;
  68   1      	P2 = 0xff;
  69   1      	P3 = 0xff;
  70   1      	TMOD = 0x21;//设置9600波特率的T1采用方式2,T0采用方式1,为16位定时器//
  71   1         	TL1 = 0xfd;
  72   1      	TH1 = 0xfd;
  73   1      	TL0 = DELAY_10MS_L;
  74   1      	TH0 = DELAY_10MS_H;
  75   1         	EA = 0;	// DISENABLED;
  76   1         	TR0 = 1;
  77   1         	//IT0 = TRUE;      //外部中断0采用边沿触发方式
  78   1         	//IT1 = TRUE;      //外部中断1采用边沿触发方式
  79   1         	IT1 = 0;           //'0'为边沿触发方式,‘1’为电平触发方式
  80   1         	init_com();
  81   1         	EX0 = 0;//DISENABLED;
  82   1         	EX1 = 1;//ENABLED;
  83   1         	ET0 = 1;
  84   1         	EA = 1;//ENABLED;
  85   1       	//WDRE = 0;	     //disable WDT during initialization
  86   1       	//WDTD = 0x00;           //load your interval value to WDTD
  87   1        	//WDRE = 1;	       //enable WDT reset
  88   1         	//SWDT = 1;          //start WDT
  89   1         	//WDT=1;
  90   1      }
  91          void prc_ctl()
  92          {
  93   1      	switch(com_command)
  94   1      	{	 			
  95   2      		
  96   2      		case COM_CMD_FRONTGAIN:    //设置前级增益
  97   2      				gain_front = rx_para[4];
  98   2      				set1_master_vlm(&gain_front);
  99   2      				SaveData_SFR();
 100   2      				break;
 101   2      		case COM_CMD_MAINTREBLE:  //设置总音量的高音
 102   2      				treble_main = rx_para[4];
 103   2      				set1_treble(&treble_main);
 104   2      				SaveData_SFR();			
 105   2      				break;						
 106   2      		case COM_CMD_MAINBASS:   //设置总音量的低音
 107   2      				bass_main = rx_para[4];
 108   2      				set1_bass(&bass_main);
 109   2      				SaveData_SFR();
 110   2      				break;			
 111   2      		case COM_CMD_MAINVOLUME:   //设置总音量
 112   2      				vlm_main = rx_para[4];
 113   2      				set1_vlm(&vlm_main,CH_MAIN);
 114   2      				SaveData_SFR();
 115   2      				break;
 116   2      		case COM_CMD_PRIOR:          //设置信源优先级
 117   2      				prior_radio = rx_para[4];
C51 COMPILER V6.12  MAIN                                                                   04/20/2006 17:34:59 PAGE 3   

 118   2      				prior_mic = rx_para[5];
 119   2      				prior_mp3 = rx_para[6];
 120   2      				prior_lcd = rx_para[7];
 121   2      				SaveData_SFR();
 122   2      				break;
 123   2      		case COM_CMD_READGAIN:
 124   2      				max3100_senddata(0x7e);
 125   2      				max3100_senddata(0x03);
 126   2      				max3100_senddata(0x00);
 127   2      				max3100_senddata(0x0c);
 128   2      				max3100_senddata(gain_front);
 129   2      				max3100_senddata(0x00);
 130   2      				max3100_senddata(0x0d);
 131   2      				delay_50us();
 132   2      				break;
 133   2      		case COM_CMD_READMVOLUME:  //回读音量
 134   2      				max3100_senddata(0x7e);
 135   2      				max3100_senddata(0x03);
 136   2      				max3100_senddata(0x00);
 137   2      				max3100_senddata(0x0d);
 138   2      				max3100_senddata(vlm_main);
 139   2      				max3100_senddata(0x00);
 140   2      				max3100_senddata(0x0d);
 141   2      				delay_50us();
 142   2      				max3100_senddata(0x7e);
 143   2      				max3100_senddata(0x03);
 144   2      				max3100_senddata(0x00);
 145   2      				max3100_senddata(0x0e);
 146   2      				max3100_senddata(treble_main);
 147   2      				max3100_senddata(0x00);
 148   2      				max3100_senddata(0x0d);
 149   2      				delay_50us();
 150   2      				max3100_senddata(0x7e);
 151   2      				max3100_senddata(0x03);
 152   2      				max3100_senddata(0x00);
 153   2      				max3100_senddata(0x0f);
 154   2      				max3100_senddata(bass_main);
 155   2      				max3100_senddata(0x00);
 156   2      				max3100_senddata(0x0d);
 157   2      				break; 
 158   2      		case COM_CMD_READPRIOR:     //回读优先级
 159   2      				max3100_senddata(0x7e);
 160   2      				max3100_senddata(0x06);
 161   2      				max3100_senddata(0x00);
 162   2      				max3100_senddata(0x12);
 163   2      				max3100_senddata(prior_radio);
 164   2      				max3100_senddata(prior_mic);
 165   2      				max3100_senddata(prior_mp3);
 166   2      				max3100_senddata(prior_lcd);
 167   2      				max3100_senddata(0x00);
 168   2      				max3100_senddata(0x0d);
 169   2      				break;
 170   2      		default:
 171   2      				
 172   2      				break;
 173   2      	}	
 174   1      		
 175   1      }
 176          
 177          void delay_50us()
 178          {
 179   1      	byte i;
C51 COMPILER V6.12  MAIN                                                                   04/20/2006 17:34:59 PAGE 4   

 180   1      	for(i=0;i<0x40;i++)
 181   1      	{
 182   2      		_nop_();
 183   2      	}
 184   1      
 185   1      }
 186          
 187          void prc_max3100_data()
 188          {
 189   1      	byte i = 0x00;
 190   1      	for(i=0;i<18;i++)
 191   1      	{
 192   2      		rx_para[i] = 0x00;
 193   2      	}
 194   1      	for(i=0;i<18;i++)
 195   1      	{
 196   2      		max3100.item = MAX3100_Serial_Input(0x00,0x00);
 197   2      		rx_para[i] = max3100.rx_byte[0x01];
 198   2      		delay_50us();
 199   2      	}
 200   1      
 201   1      }
 202          
 203          void delay_10ms()
 204          {
 205   1      	byte i = 0x00;
 206   1      	byte j = 0x00;
 207   1      	for(i=0;i<20;i++)
 208   1      	{
 209   2      		for(j=0;j<125;j++)
 210   2      		{
 211   3      			_nop_();
 212   3      		}
 213   2      	}	
 214   1      	
 215   1      	_nop_();
 216   1      }
 217          
 218          void main(void)
 219          {
 220   1      	byte Nsource = 0x00;		
 221   1      	mcu_ini();
 222   1      	max3100_ini();	
 223   1      	init_flash();
 224   1      	i2cA_ini();
 225   1      	tea6320A_ini();
 226   1      	CS_PA = 0;	        
 227   1              CS_LED = 0;
 228   1              flag_mp3 = 0x00;
 229   1              flag_mic = 0x00;
 230   1              flag_radio = 0x00;
 231   1              flag_lcd = 0x00;
 232   1              flag_prior = prior_lcd;

⌨️ 快捷键说明

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