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

📄 d51_new.lst

📁 基于ARM编的9850,可以实现多种波形的输出与变换
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE D51_NEW
OBJECT MODULE PLACED IN C:\Aedk\C51\sample_AD9850\D51_new.OBJ
COMPILER INVOKED BY: c:\Aedk\c51\bin\C51.EXE C:\Aedk\C51\sample_AD9850\D51_new.C SMALL DB OE CO OT(SIZE) 

stmt level    source

   1          /*------------------------------------------------------------------------------
   2          D51_new.C  
   3          
   4          Copyright 1995-1999 Keil Software, Inc.
   5          ------------------------------------------------------------------------------*/
   6          //#include <AT89S8252.H>            /* define AT89C51 registers */
   7          //#include <AT89X51.H>            /* define AT89C51 registers */
   8          #include <w77e58.H>            /* define w77e58 registers */
   9          #include "ABSACC.H"
  10          #include "D51_new.h"
  11          
  12          
  13          
  14          
  15          void keyboard_int() interrupt IE0_VECTOR{		/* Keyboard Interrup*/
  16   1      	uchar	s,key;
  17   1      	s=STATUS8279;
  18   1      	if(s & 0x0f){
  19   2      		CTRL8279=0x40;
  20   2      		key=DATA8279;
  21   2      		s=((key & 0x18)>>1) | (key & 0x03);
  22   2      		keyChar=KeyTab[s]; 
  23   2      		keyNum=1;
  24   2      	}
  25   1      }
  26          
  27          void timer0_int() interrupt TF0_VECTOR {
  28   1      	EA=0;
  29   1      	THG0++;
  30   1      	LED_status=1;
  31   1      	EA=1;
  32   1      }
  33          
  34          /*  Delay x ms	MAX 255ms for 11.0592MHz 8051CPU */
  35          void delay(uchar ms){
  36   1      	uchar i,j,k;
  37   1      	for(i=0;i<ms;i++){
  38   2      		for(j=0;j<4;j++){
  39   3      			for(k=0;k<115;k++){}
  40   3      		}
  41   2      	}
  42   1      }
  43          void timer1_int() interrupt TF1_VECTOR {
  44   1      	EA=0;
  45   1      	THG=THG0;
  46   1      	THGL=TH0*256+TL0;
  47   1      	THG0=0;
  48   1      	TH0=0;
  49   1      	TL0=0;
  50   1      	TH1=-NumberC/256;
  51   1      	TL1=-NumberC%256;
  52   1      	TSET=1;
  53   1      	EA=1;
  54   1      }
  55          void clearDispBuf(void) {
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 2   

  56   1      	int i;
  57   1      	for(i=0;i<DISP_BUF_SIZE;i++){
  58   2      		DispBuf[i]=LedTab[22];
  59   2      	}
  60   1      }
  61          void Display(void)
  62          {
  63   1      	int	i;
  64   1      	for(i=0;i<8;i++){
  65   2      		CTRL8279=0x90+i;	
  66   2      		DATA8279=DispBuf[i];
  67   2      		}
  68   1      }
  69          void DispHELLO(void) {
  70   1      	int i;
  71   1      	for(i=0;i<DISP_BUF_SIZE;i++){
  72   2      		DispBuf[i]=LedTab[HELLO[i]];
  73   2      	}
  74   1      	Display();
  75   1      }
  76          void loadDispBuf(uchar *p) {
  77   1      	int i;
  78   1      	for(i=0;i<DISP_BUF_SIZE;i++){
  79   2      		DispBuf[i]=LedTab[*(p+i)];
  80   2      	}
  81   1      }
  82          void DisplayChar(char c)
  83          {
  84   1      		DATA8279=c;
  85   1      }
  86          void DisplayLED(void)
  87          {
  88   1      	unsigned i;
  89   1      	i=LED_DATA;
  90   1      	i<<=8;
  91   1      	i|=LED_DATA;
  92   1      	i>>=7;
  93   1      	LED_DATA=(unsigned char)(i&0xff);
  94   1      }
  95          void encode(unsigned int adr) {
  96   1      	int i;
  97   1      	unsigned int adr1;
  98   1      	uchar c;
  99   1      	adr1=adr;
 100   1      	for(i=0;i<8;i++){
 101   2      		if(adr==0x8000){
 102   3      			DispBuf[i]=LedTab[OKLedChar[i]];
 103   3      		}
 104   2      		else{
 105   3      			c=adr1&0x0f;
 106   3      			adr1>>=4;
 107   3      			if(i>3)c=ERRT[7-i];
 108   3      			DispBuf[7-i]=LedTab[c];
 109   3      		}
 110   2      	}
 111   1      	
 112   1      }
 113          void encode1(void) {//12345678
 114   1      	unsigned char i;
 115   1      	for(i=0;i<8;i++){
 116   2      		DispBuf[i]=LedTab[i+1];
 117   2      	}
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 3   

 118   1      	
 119   1      }
 120          void encode2(void) {//87654321
 121   1      	unsigned char i;
 122   1      	for(i=0;i<8;i++){
 123   2      		DispBuf[i]=LedTab[8-i];
 124   2      	}
 125   1      	
 126   1      }
 127          void encode3(void) {//F3
 128   1      	clearDispBuf();
 129   1      	DispBuf[0]=LedTab[15];
 130   1      	DispBuf[1]=LedTab[3];
 131   1      }
 132          void encode4(void) {//F4
 133   1      	clearDispBuf();
 134   1      	DispBuf[0]=LedTab[15];
 135   1      	DispBuf[1]=LedTab[4];
 136   1      	
 137   1      }
 138          void encode5(unsigned char c) {
 139   1      	unsigned char i;
 140   1      	for(i=0;i<7;i++){
 141   2      		DispBuf[i]=DispBuf[i+1];
 142   2      	}
 143   1      	DispBuf[7]=LedTab[c-0x30];
 144   1      	
 145   1      }
 146          void encode6(unsigned long freq) {
 147   1      	unsigned char i,c[8],j;
 148   1      	unsigned long f;
 149   1      	f=freq>>10;//f=freq/1024
 150   1      	
 151   1      	for(i=0;i<8;i++){
 152   2      		c[i]=0;
 153   2      	}
 154   1      	while(f>=1000000){
 155   2      		f-=1000000;
 156   2      		c[1]++;
 157   2      	}
 158   1      	while(f>=100000){
 159   2      		f-=100000;
 160   2      		c[2]++;
 161   2      	}
 162   1      	while(f>=10000){
 163   2      		f-=10000;
 164   2      		c[3]++;
 165   2      	}
 166   1      	while(f>=1000){
 167   2      		f-=1000;
 168   2      		c[4]++;
 169   2      	}
 170   1      	while(f>=100){
 171   2      		f-=100;
 172   2      		c[5]++;
 173   2      	}
 174   1      	while(f>=10){
 175   2      		f-=10;
 176   2      		c[6]++;
 177   2      	}
 178   1      	c[7]+=f;
 179   1      	j=0;
C51 COMPILER V6.02  D51_NEW                                                                04/03/2007 07:42:10 PAGE 4   

 180   1      	for(i=0;i<8;i++){
 181   2      		if((c[i]==0)&&(j==0))
 182   2      			DispBuf[i]=LedTab[22];
 183   2      		else{
 184   3      			j=1;
 185   3      			DispBuf[i]=LedTab[c[i]];
 186   3      		}
 187   2      	}	
 188   1      	
 189   1      }
 190          void clearDisplay(void) {
 191   1      	CTRL8279=0xd1;					/* clear RAM  */
 192   1      	while (STATUS8279 & 0x80)			/* wait till RAM is clear */
 193   1      	{
 194   2      	}
 195   1      }
 196          void init8279(void) {
 197   1      	clearDisplay();
 198   1      	CTRL8279=0x20 | 20;				/* 11.0592MHz/6/20=92.16kHz  8279 clock */
 199   1      	CTRL8279=(0x10<<3) | 0 ;		/* 8x8字符显示, 右入; 编码扫描键盘,双键锁定  */
 200   1      //	InitDisplay();
 201   1      	keyNum=0;
 202   1      
 203   1      }
 204          //;******** RAM自检子程序*************
 205          unsigned int chkram(void) {  /* RAM Chack */
 206   1      	unsigned int adr;
 207   1      	uchar c,r;
 208   1      	for(adr=0;adr<0x8000;adr++){
 209   2      		c=0xaa;
 210   2      		XBYTE[adr]=c;
 211   2      		r=XBYTE[adr];
 212   2      		if(r!=c)return adr;
 213   2      		c=0x55;
 214   2      		XBYTE[adr]=c;
 215   2      		r=XBYTE[adr];
 216   2      		if(r!=c)return adr;
 217   2      	}
 218   1      	return adr;
 219   1      }
 220          void delay_dds(void)
 221          {
 222   1      	uchar i,j;
 223   1      	for(i=0;i<1;i++){
 224   2      		j=i;
 225   2      	}
 226   1      }
 227          void init_dds(void)
 228          {
 229   1      	uchar i;
 230   1      		WCLK_pin=0;
 231   1      		FQ_UD_pin=0;
 232   1      	delay_dds();

⌨️ 快捷键说明

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