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

📄 t1main.lst

📁 基于FPGA 的直接数字频率合成信号发生器(DDS)设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  T1MAIN                                                                 09/11/2005 06:36:51 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE T1MAIN
OBJECT MODULE PLACED IN .\T1main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\T1main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "AT51S_89C52.h"
   2          #include "hd7279.h"
   3          #include "DisplayControl.h"
   4          #include "SPICommunication.h"
   5          extern void KeilWordToBcd(unsigned char idata *pWord,unsigned char idata *pBcd);
   6          extern void KeilLongToBcd(unsigned char idata *pLong,unsigned char idata *pBcd);
   7          
   8          //Dog Line is for reset Watchdog chip.
   9          sbit	DogLine = P1^7;
  10          // define fsselct,psel0,psel1
  11          sbit fselect = P3^6;
  12          sbit PSEL0 = P2^3;
  13          sbit PSEL1 = P2^4;
  14          
  15          //-------------------------Use for keyboard and display----------------------------------------
  16          unsigned char idata KeyCode;
  17          bit       KeyMark;
  18          bit       PSKKey=0;
  19          bit       ASKKey=0;
  20          bit 	  PSKFreflags=0;
  21          bit 	  ASKFreflags=0;
  22          
  23          unsigned char KeyTimer;
  24          unsigned char idata BcdBuf[7];
  25          
  26          
  27          unsigned char idata DisStatus;
  28          //Macro Define for DisStatus
  29          
  30          
  31          #define Working_DS  		0
  32          #define SetupFrequency		1
  33          #define PSKFrequency		2
  34          #define ASKFrequency		3
  35          #define DisStatusNUMs       4
  36          
  37          //Macro Define for KeyCode
  38          #define Status_KEYCODE   7
  39          #define Shiftleft_KEYCODE  21
  40          #define Shiftright_KEYCODE  14
  41          #define Up_KEYCODE       28
  42          #define Down_KEYCODE     35
  43          #define Yes_KEYCODE     56
  44          
  45          
  46          //-----------------------useful for Frequency --------------------------------
  47          unsigned long frequency_AD9835;
  48          unsigned char shiftBit; //0~7
  49          unsigned char idata frequencyBCDCode[8];
  50          unsigned long int fre;
  51          
  52          //----------------------------------------------------------------------------
  53          //----------------------------------------------------------------------------
  54          void ExInt0Rsp(void) interrupt 0 using 0 //INTO
  55          {     
C51 COMPILER V6.02  T1MAIN                                                                 09/11/2005 06:36:51 PAGE 2   

  56   1      	EX0 = 0;           
  57   1      }
  58          
  59          void Timer0IntRsp(void) interrupt 1   using 1//T0
  60          {   
  61   1      //	ET0 = 0;
  62   1      	if ((PSKFreflags==1))
  63   1      		PSEL1 = ! PSEL1;
  64   1      	else if((ASKFreflags==1))
  65   1      		fselect = ! fselect;
  66   1      }
  67          
  68          void ExInt1Rsp(void) interrupt 2   using 2  
  69          {   
  70   1          KeyMark = 1;
  71   1          EX1 = 0;
  72   1      }
  73          void Timer1IntRsp(void)  interrupt 3   using 2 
  74          {
  75   1          TR1 = 0;
  76   1      	TH1 = 0xDF;
  77   1      	TL1 = 0x73;
  78   1      	TR1 = 1;
  79   1      
  80   1      	if( KeyTimer<100 )
  81   1      	  KeyTimer++;
  82   1      }
  83          void SerialPortIntRsp(void) interrupt 4   using 2
  84          {
  85   1      	ES=0;
  86   1      }
  87          void Timer2IntRsp(void) interrupt 5   using 2
  88          {
  89   1      	ET2 = 0;
  90   1      }
  91          
  92          
  93          void updateFrequency(void)
  94          {
  95   1      	unsigned char i;
  96   1      	unsigned long temFrequ = 0;
  97   1      	for( i=0; i<8; i++ ){
  98   2      		temFrequ = temFrequ*10 + frequencyBCDCode[i];
  99   2      	}
 100   1      	frequency_AD9835 = temFrequ;
 101   1      	DisStatus = Working_DS;
 102   1      
 103   1      	if( frequency_AD9835 >= 10000000 )
 104   1      	 	frequency_AD9835 = 10000000;
 105   1      	if( frequency_AD9835<= 1000)
 106   1      	 	frequency_AD9835 = 1000;
 107   1      
 108   1      	testAD9875(frequency_AD9835);
 109   1      }
 110          //喂狗函数
 111          void FeedDog(void)
 112          {
 113   1      	DogLine=0;
 114   1      	_nop_();
 115   1      	_nop_();
 116   1      	DogLine=1;
 117   1      }
C51 COMPILER V6.02  T1MAIN                                                                 09/11/2005 06:36:51 PAGE 3   

 118          //Status键处理函数
 119          void StatusKeyProc(void)
 120          {
 121   1          DisStatus++;
 122   1          if( DisStatus>=DisStatusNUMs )
 123   1      		DisStatus = 0;
 124   1      	if( DisStatus==SetupFrequency )
 125   1      	{   fre=frequency_AD9835;  
 126   2      	  	KeilLongToBcd((unsigned char *)&frequency_AD9835, &(BcdBuf[0]));
 127   2      		frequencyBCDCode[0] = BcdBuf[1]>>4;
 128   2      		frequencyBCDCode[1] = BcdBuf[1]&0x0f;
 129   2      		frequencyBCDCode[2] = BcdBuf[2]>>4;
 130   2      		frequencyBCDCode[3] = BcdBuf[2]&0x0f;
 131   2      		frequencyBCDCode[4] = BcdBuf[3]>>4;
 132   2      		frequencyBCDCode[5] = BcdBuf[3]&0x0f;
 133   2      		frequencyBCDCode[6] = BcdBuf[4]>>4;
 134   2      		frequencyBCDCode[7] = BcdBuf[4]&0x0f;
 135   2      		shiftBit = 0;
 136   2      	}
 137   1             
 138   1      	if(DisStatus==PSKFrequency)
 139   1      	{ PSKKey=1;
 140   2      	testAD9875(100000);
 141   2         	TR0 = 1;
 142   2          ET0 = 1;
 143   2      	PSKFreflags=1;
 144   2      	ASKFreflags=0;
 145   2           }
 146   1      	else if(DisStatus==ASKFrequency)
 147   1      	{ //PSKKey=1;
 148   2      	testAD9875(100000);
 149   2         	TR0 = 1;
 150   2          ET0 = 1;
 151   2      	PSKFreflags=0;
 152   2      	ASKFreflags=1;
 153   2           }
 154   1      	else
 155   1      	{   testAD9875(fre) ;
 156   2      		fselect = 0;
 157   2      		PSEL0 = 0;
 158   2      		PSEL1 = 0;
 159   2      		PSKFreflags=0;
 160   2      		ASKFreflags=0;
 161   2      		ET0=0;
 162   2      		TR0=0;
 163   2                    
 164   2      	 }
 165   1      		
 166   1      	 
 167   1               
 168   1         /* if(DisStatus==ASKFrequency)
 169   1      	{;}*/
 170   1      }
 171          
 172          
 173          	   
 174          //---------------------------------------------
 175          //Shift键处理函数
 176          void ShiftKeyleftProc(void)
 177          {
 178   1      	switch(DisStatus){
 179   2      		case Working_DS:
C51 COMPILER V6.02  T1MAIN                                                                 09/11/2005 06:36:51 PAGE 4   

 180   2      			break;
 181   2      		case SetupFrequency:
 182   2      			shiftBit++;
 183   2      			if( shiftBit >5 )
 184   2      				shiftBit = 0;
 185   2      			break;
 186   2      		case PSKFrequency:
 187   2       	        break;
 188   2      		case ASKFrequency:
 189   2       	        break;
 190   2      		default:
 191   2      			break;
 192   2      	}
 193   1      }
 194          //----------------------------------------
 195          void ShiftKeyrightProc(void)
 196          {
 197   1      	switch(DisStatus){
 198   2      		case Working_DS:
 199   2      			break;
 200   2      		case SetupFrequency:
 201   2      			
 202   2      			if( shiftBit >0 )
 203   2      			   shiftBit--;
 204   2      			else
 205   2      			   shiftBit = 5;
 206   2      			  
 207   2      			break;
 208   2      		case PSKFrequency:
 209   2       	        break;
 210   2      		case ASKFrequency:
 211   2       	        break;
 212   2      		default:
 213   2      			break;
 214   2      	}
 215   1      }
 216          //----------------------------------------
 217          void UpKeyProc(void)
 218          {
 219   1      	switch(DisStatus){
 220   2      		case Working_DS:
 221   2      		 	frequency_AD9835 += 100;
 222   2      			if( frequency_AD9835 >= 10000000 )
 223   2      			 	frequency_AD9835 = 10000000;
 224   2      			testAD9875(frequency_AD9835);
 225   2      			break;
 226   2      		case SetupFrequency:
 227   2      			frequencyBCDCode[shiftBit]++;
 228   2      			if( frequencyBCDCode[shiftBit]>9 )
 229   2      				frequencyBCDCode[shiftBit]=0;
 230   2      			break;
 231   2      		case PSKFrequency:
 232   2       	        break;
 233   2      		case ASKFrequency:
 234   2       	        break;
 235   2      		default:

⌨️ 快捷键说明

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