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

📄 d51_new.lst

📁 基于ARM编的9850,可以实现多种波形的输出与变换
💻 LST
📖 第 1 页 / 共 2 页
字号:
 233   1      	delay_dds();
 234   1      		WCLK_pin=1;
 235   1      	delay_dds();
 236   1      		WCLK_pin=0;
 237   1      	delay_dds();
 238   1      		FQ_UD_pin=1;
 239   1      	delay_dds();
 240   1      		FQ_UD_pin=0;
 241   1      	delay_dds();
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 5   

 242   1      
 243   1      	for(i=0;i<8;i++){
 244   2      
 245   2      		DATA_pin=0;
 246   2      			
 247   2      		delay_dds();
 248   2      			WCLK_pin=1;
 249   2      		delay_dds();
 250   2      			WCLK_pin=0;
 251   2      	}
 252   1      	delay_dds();
 253   1      		FQ_UD_pin=1;
 254   1      	delay_dds();
 255   1      		FQ_UD_pin=0;
 256   1      
 257   1      }
 258          void update_freq(unsigned long f,uchar c)
 259          {
 260   1      	uchar i,cs;
 261   1      	unsigned long freq_temp;
 262   1      	freq_temp=f;
 263   1      	cs=c;
 264   1      	for(i=0;i<32;i++){
 265   2      		if(freq_temp & 1)
 266   2      			DATA_pin=1;
 267   2      		else
 268   2      			DATA_pin=0;
 269   2      			
 270   2      	delay_dds();
 271   2      		WCLK_pin=1;
 272   2      	delay_dds();
 273   2      		WCLK_pin=0;
 274   2      		freq_temp>>=1;
 275   2      		
 276   2      	}
 277   1      	for(i=0;i<8;i++){
 278   2      		if(cs & 1)
 279   2      			DATA_pin=1;
 280   2      		else
 281   2      			DATA_pin=0;
 282   2      			
 283   2      	delay_dds();
 284   2      		WCLK_pin=1;
 285   2      	delay_dds();
 286   2      		WCLK_pin=0;
 287   2      		cs>>=1;
 288   2      	}
 289   1      	delay_dds();
 290   1      		FQ_UD_pin=1;
 291   1      	delay_dds();
 292   1      		FQ_UD_pin=0;
 293   1      
 294   1      }
 295          void main (void){  /* main program */
 296   1      	unsigned int adr;
 297   1      	unsigned long freq,dfreq,temp_f;
 298   1      	uchar ctrl1;
 299   1      //	int temp,i;
 300   1      	uchar	status;
 301   1      //	char	out_char[5];
 302   1      	EA=0;			 /* 0=Disable all interrupts */
 303   1      	P1=0xff;
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 6   

 304   1       	LED_DATA=0xff;	//off all LEDs
 305   1       	freq=1000<<10;
 306   1       	dfreq=1000<<10;
 307   1       	temp_f=0;
 308   1       	ctrl1=0x00;
 309   1       	DATA_pin=0;
 310   1       	WCLK_pin=0;
 311   1       	FQ_UD_pin=0;
 312   1       	
 313   1      	delay(10);
 314   1        	init8279();
 315   1      //	clearDispBuf();
 316   1      	DispHELLO();
 317   1      	adr=chkram();
 318   1      	encode(adr);
 319   1      	Display();
 320   1      //	adr=chkram();
 321   1      	status=0;
 322   1      //	NumberC=defaultN;
 323   1      	EA=1;
 324   1      	EX0=1;
 325   1      	EX1=0;
 326   1      	ES=0;
 327   1      	ET0=0;
 328   1      	ET1=0;
 329   1      	TMOD=C_T1 |	M0_1 | 	M0_0; 		//0x51;			/* timer1 16位计数器   timer0 16位定时器    */
 330   1      	TH1=-NumberC/256;
 331   1      	TL1=-NumberC%256;				/* timer1 计数  NumberC 中断    timer0定时   */
 332   1      	TH0=0;
 333   1      	TL0=0;
 334   1      	THG0=0;
 335   1      	TSET=0;
 336   1      	ET0=1;
 337   1      	ET1=1;
 338   1      	TR0=1;
 339   1      	TR1=1;
 340   1      	init_dds();		
 341   1      	delay(10);
 342   1      	LED_DATA=0xfc;		//on 2 LEDs
 343   1       /*	for(;;){		//test delay();
 344   1      		delay(10);
 345   1      		P1_0=0;
 346   1      		delay(10);
 347   1      		P1_0=1;
 348   1      	}*/
 349   1      	update_freq(freq,ctrl1);
 350   1       	status=0;
 351   1       //	while (1)  {                                 /* repeat forever */
 352   1       //		}
 353   1       	while (1)  {                                 /* repeat forever */
 354   2        		if(LED_status==1){
 355   3        			LED_status=0;
 356   3      			DisplayLED();
 357   3        			}
 358   2      			
 359   2      		
 360   2      		if(keyNum==1){
 361   3      			
 362   3      			switch(keyChar)
 363   3      			{
 364   4      				case	'A'	:     /*  F1  */
 365   4      					freq=temp_f<<10;
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 7   

 366   4      					update_freq(freq,ctrl1);
 367   4      					temp_f=0;
 368   4      					clearDispBuf();
 369   4      					encode6(freq);
 370   4      					Display();
 371   4      					status=0;
 372   4      					break; 
 373   4      				case	'B'	:      /*  F2  */
 374   4      					dfreq=temp_f<<10;
 375   4      					temp_f=0;
 376   4      					clearDispBuf();
 377   4      					encode6(dfreq);
 378   4      					Display();
 379   4      					status=0;
 380   4      					break;
 381   4      				case	'C'	:      /*  F3  */
 382   4       					freq+=dfreq;
 383   4      					update_freq(freq,ctrl1);
 384   4      					clearDispBuf();
 385   4      					encode6(freq);
 386   4      					Display();				/* */
 387   4      					status=0;
 388   4      					break;
 389   4      				case	'D'	:      /*  F4  */
 390   4       					freq-=dfreq;
 391   4      					update_freq(freq,ctrl1);
 392   4      					clearDispBuf();
 393   4      					encode6(freq);
 394   4      					Display();				/* */
 395   4      					status=1;
 396   4      					break;
 397   4      				case	'1'	: 
 398   4      				case	'2'	: 
 399   4      				case	'3'	: 
 400   4      				case	'4'	: 
 401   4      				case	'5'	: 
 402   4      				case	'6'	: 
 403   4      				case	'7'	: 
 404   4      				case	'8'	: 
 405   4      				case	'9'	: 
 406   4      				case	'0'	: 
 407   4      /*					if((key_num==0) && ((status & 0x80)!=0)){
 408   4      						clearDispBuf();
 409   4      						Display();
 410   4      						key_num=0;
 411   4      					}
 412   4      					if((status & 0x80)!=0){
 413   4      						if(key_num<5){
 414   4      							DisplayChar(LedTab[keyChar-0x30]);
 415   4      							out_char[key_num]=keyChar;
 416   4      							key_num++;
 417   4      						}
 418   4      					}*/
 419   4      					temp_f=10*temp_f;
 420   4      					temp_f+=keyChar&0x0f;
 421   4      					encode5(keyChar);
 422   4      					Display();				/* */
 423   4      					status=0;
 424   4      					break;
 425   4      
 426   4      
 427   4      
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 8   

 428   4      				case	'*'	: 
 429   4      					temp_f=0;
 430   4      					clearDispBuf();
 431   4      					Display();
 432   4      					break;
 433   4      				case	'#'	: 
 434   4      					encode6(freq);
 435   4      					Display();				/* */
 436   4      					status=0;
 437   4      /*					if(status==1){
 438   4      						adr=chkram();
 439   4      						encode(adr);
 440   4      						Display();
 441   4      						status=0;
 442   4      					}
 443   4      					else{
 444   4      						encode5(keyChar);
 445   4      						DispBuf[7]=LedTab[keyChar-'#'+16];	//#(0x23) --> 16 P  *(0x2a) --> 23 -
 446   4      						Display();				
 447   4      					} */
 448   4      					break;
 449   4      				default	:
 450   4      					;
 451   4      			}
 452   3      			keyNum=0;
 453   3      		}
 454   2      	}            /* loop forever */
 455   1      }
 456          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1739    ----
   CONSTANT SIZE    =     90    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18      42
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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