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

📄 qin.lst

📁 这是芯片PMC6388的硬件初始化程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V3.96,  SN-83203013  QIN                                                      06/04/06  15:21:01  PAGE 1   


DOS C51 COMPILER V3.96, COMPILATION OF MODULE QIN
OBJECT MODULE PLACED IN QIN.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE QIN.C DB OE SMALL ROM(LARGE) 

stmt level    source

   1          #include <reg51.h>
   2          #include <absacc.h>
   3          #include "intrins.h"
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          #define PM6388 0x8000
   7          #define PM4314 0x8800
   8          #define RAM_ADDR 0x9000
   9          #define LED XBYTE[0x8c03]
  10          #define CSCKS XBYTE[0x8c02]
  11          #define CSCKM XBYTE[0x8c01]
  12          #define CSCRST XBYTE[0x8c00]
  13          #define SS_IDLE 0xb					//示闲
  14          #define SS_HOLD 0x3					//占用
  15          
  16          uchar led_flag ,k,z,h,fsn,ceshi_data[8];
  17          sbit RUN_LED=P1^1; 
  18          void delay (void)
  19          {
  20   1      	xdata unsigned int m,l;  /*delay 1/2ms*/
  21   1         	for(m = 0; m < 500; m++)
  22   1          {
  23   2              l = (m * 2) / 2;
  24   2          }
  25   1      }
  26          
  27          void e1_alarm_led(void) /* 点灯 */
  28          {
  29   1          uint xdata addr_alarm_led;
  30   1          uchar xdata led_new,t,l;
  31   1          led_new = 0;
  32   1          for (t = 8;t > 0;t--)
  33   1          {
  34   2          	addr_alarm_led = PM6388 + (t - 1) * 0x80;
  35   2           	l = (XBYTE[addr_alarm_led + 0x36] & 0x40) ;
  36   2           	l = l >> 6;
  37   2           	led_new = led_new * 2 + l;
  38   2          }
  39   1          LED = led_new;
  40   1      }
  41          
  42          void init_ram (void)
  43          {
  44   1      	uint xdata i;
  45   1      	for(i = 0;i < 2048;i++)
  46   1      	{
  47   2      	  	XBYTE[RAM_ADDR + i] = 0;
  48   2      	} 
  49   1      }
  50          void timer0(void) interrupt 1 using 1
  51          { 
  52   1      	EA = 0;
  53   1      	TH0=-40680/256;
  54   1      	TL0=-40680%256;
  55   1      	TR0 = 1;
C51 COMPILER V3.96,  SN-83203013  QIN                                                      06/04/06  15:21:01  PAGE 2   

  56   1      	led_flag = 1;
  57   1      	RUN_LED =!RUN_LED;
  58   1      	EA = 1; 
  59   1      }
  60          void init_pm4314 (void) /* 初始化PMC4314 */
  61          { 
  62   1          uint  xdata addr_e1_pm4314; /* 每路e1接口的起始地址 */
  63   1          uchar xdata l,k,j;
  64   1          uchar xdata i;
  65   1          for(j = 0;j < 2;j++)
  66   1          {
  67   2              for(i = 0;i < 4;i++)
  68   2              {
  69   3          	   	addr_e1_pm4314 = PM4314 + i * 0x40 + j * 0x200;
  70   3          	   	XBYTE[addr_e1_pm4314+0x00] = 0x09; 
  71   3          	   	XBYTE[addr_e1_pm4314+0x01] = 0x01; 
  72   3          	   	XBYTE[addr_e1_pm4314+0x02] = 0x0f; 
  73   3          	   	XBYTE[addr_e1_pm4314+0x05] = 0x04;    
  74   3          	   	XBYTE[addr_e1_pm4314+0x09] = 0;   
  75   3          	   	XBYTE[addr_e1_pm4314+0x0a] = 0;   
  76   3          	   	XBYTE[addr_e1_pm4314+0x0b] = 0;
  77   3          	   	XBYTE[addr_e1_pm4314+0x10] = 0;
  78   3          	   	XBYTE[addr_e1_pm4314+0x11] = 0;
  79   3          	   	XBYTE[addr_e1_pm4314+0x14] = 0;
  80   3          	   	XBYTE[addr_e1_pm4314+0x1f] = 0x22;  
  81   3          	   	XBYTE[addr_e1_pm4314+0x27] = 0;
  82   3          	   	XBYTE[addr_e1_pm4314+0x29] = 0;
  83   3          	   	XBYTE[addr_e1_pm4314+0x2d] = 0;
  84   3          	   	XBYTE[addr_e1_pm4314+0x2c] = 0x80;
  85   3          	   	for(k = 0;k < 8;k++)
  86   3          	   	{
  87   4          	      	if(k < 4)  l = 8;
  88   4      	      		else  l = 0;
  89   4      	      		XBYTE[addr_e1_pm4314 + 0x2e] = k;
  90   4      	      		XBYTE[addr_e1_pm4314 + 0x2f] = l;
  91   4      	   		}
  92   3      	   		XBYTE[addr_e1_pm4314+0x2c] = 0x80;
  93   3      	   		XBYTE[addr_e1_pm4314+0x30] = 0x01;
  94   3              }
  95   2          }
  96   1      }
  97          
  98          void init_pm6388 (void) /* 初始化PMC6388 */
  99          {
 100   1          uint  xdata addr_e1_pm6388; /* 每路e1接口的起始地址 */
 101   1          uchar xdata i,l,k;
 102   1          for(i = 0; i < 8; i++)
 103   1          {
 104   2          	addr_e1_pm6388 = PM6388 + i * 0x80;
 105   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x01; /* 对寄存器进行复位 */
 106   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x01;
 107   2          	delay();
 108   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
 109   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
 110   2          	XBYTE[addr_e1_pm6388 + 0x00] = 0x00;    /* 默认值 00 */
 111   2          	XBYTE[addr_e1_pm6388 + 0x10] = 0x3b;
 112   2          	//l = XBYTE[addr_e1_pm6388 + 0x10];
 113   2          	XBYTE[addr_e1_pm6388 + 0x18] = 0x3b;
 114   2          	XBYTE[addr_e1_pm6388 + 0x02] = 0x00;
 115   2          	XBYTE[addr_e1_pm6388 + 0x04] = 0x0c;//0x0c
 116   2          	XBYTE[addr_e1_pm6388 + 0x0c] = 0;
 117   2          	XBYTE[addr_e1_pm6388 + 0x0e] = 0 ;
C51 COMPILER V3.96,  SN-83203013  QIN                                                      06/04/06  15:21:01  PAGE 3   

 118   2          	XBYTE[addr_e1_pm6388 + 0x11] = 0x20 ;
 119   2          	XBYTE[addr_e1_pm6388 + 0x12] = 0x01;
 120   2          	XBYTE[addr_e1_pm6388 + 0x14] = 0;
 121   2          	XBYTE[addr_e1_pm6388 + 0x1c] = 0;
 122   2          	XBYTE[addr_e1_pm6388 + 0x19] = 0x01;//0x03
 123   2          	XBYTE[addr_e1_pm6388 + 0x1a] = 0;
 124   2          	switch (i)
 125   2          	{
 126   3          	    case 0:
 127   3          	    	XBYTE[addr_e1_pm6388 + 0x03] = 0x40; 
 128   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x48; 
 129   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x0;
 130   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x0;
 131   3          	    break;
 132   3          	    case 1:
 133   3                      XBYTE[addr_e1_pm6388 + 0x03] = 0x40;
 134   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x48;	    
 135   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x01;
 136   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x01;
 137   3          	    break;
 138   3          	    case 2:
 139   3          	        XBYTE[addr_e1_pm6388 + 0x03] = 0x40;
 140   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x48;
 141   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x02;
 142   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x02;
 143   3          	    break;
 144   3          	    case 3:
 145   3          	        XBYTE[addr_e1_pm6388 + 0x03] = 0x40;
 146   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x48;
 147   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x03;
 148   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x03;
 149   3          	    break;
 150   3          	    case 4:
 151   3          	        XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
 152   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x58;
 153   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x0;
 154   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x0;
 155   3          	    break;
 156   3          	    case 5:
 157   3                      XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
 158   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x58;	    
 159   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x01;
 160   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x01;
 161   3          	    break;
 162   3          	    case 6:
 163   3          	        XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
 164   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x58;
 165   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x02;
 166   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x02;
 167   3          	    break;
 168   3          	    case 7:
 169   3          	       	XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
 170   3          	        XBYTE[addr_e1_pm6388 + 0x01] = 0x58;
 171   3          	        XBYTE[addr_e1_pm6388 + 0x13] = 0x03;
 172   3          	        XBYTE[addr_e1_pm6388 + 0x1b] = 0x03;
 173   3          	    break;
 174   3              }
 175   2          	XBYTE[addr_e1_pm6388 + 0x23] = 0x23;
 176   2          	
 177   2          	XBYTE[addr_e1_pm6388 + 0x27] = 0x23;
 178   2          	XBYTE[addr_e1_pm6388 + 0x30] = 0x00;
 179   2          	XBYTE[addr_e1_pm6388 + 0x31] = 0x40;
C51 COMPILER V3.96,  SN-83203013  QIN                                                      06/04/06  15:21:01  PAGE 4   

 180   2          	XBYTE[addr_e1_pm6388 + 0x32] = 0;
 181   2          	XBYTE[addr_e1_pm6388 + 0x33] = 0;
 182   2          	XBYTE[addr_e1_pm6388 + 0x3b] = 0;
 183   2          	XBYTE[addr_e1_pm6388 + 0x3e] = 0;
 184   2          	XBYTE[addr_e1_pm6388 + 0x40] = 0x61;
 185   2          	XBYTE[addr_e1_pm6388 + 0x41] = 0x80;  
 186   2          	XBYTE[addr_e1_pm6388 + 0x42] = 0xff;
 187   2          	XBYTE[addr_e1_pm6388 + 0x43] = 0xff;
 188   2          	
 189   2          	XBYTE[addr_e1_pm6388 + 0x44] = 0;
 190   2          	XBYTE[addr_e1_pm6388 + 0x46] = 0;
 191   2          	XBYTE[addr_e1_pm6388 + 0x47] = 0xff;
 192   2          	XBYTE[addr_e1_pm6388 + 0x07] = 0x00;//*******************//0x0c
 193   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
 194   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
 195   2          	XBYTE[addr_e1_pm6388 + 0x49] = 0x05;
 196   2          	//l = XBYTE[addr_e1_pm6388 + 0x49];
 197   2          	XBYTE[addr_e1_pm6388 + 0x48] = 0x00;
 198   2          	XBYTE[addr_e1_pm6388 + 0x28] = 0x00;//0x00 ***********
 199   2          	XBYTE[addr_e1_pm6388 + 0x29] = 0xff;//0xff ***********
 200   2          	XBYTE[addr_e1_pm6388 + 0x2a] = 0;
 201   2          	XBYTE[addr_e1_pm6388 + 0x2b] = 0;
 202   2          	XBYTE[addr_e1_pm6388 + 0x2c] = 0;
 203   2          	XBYTE[addr_e1_pm6388 + 0x2d] = 0;
 204   2          	XBYTE[addr_e1_pm6388 + 0x49] = 0x01;
 205   2          	
 206   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x08;
 207   2          	XBYTE[addr_e1_pm6388 + 0x0a] = 0x08;
 208   2          	XBYTE[addr_e1_pm6388 + 0x50] = 0x42;
 209   2          	XBYTE[addr_e1_pm6388 + 0x28] = 0x00;//0x00 ************
 210   2          	XBYTE[addr_e1_pm6388 + 0x29] = 0xff;//0xff ************
 211   2          	XBYTE[addr_e1_pm6388 + 0x2a] = 0;
 212   2          	XBYTE[addr_e1_pm6388 + 0x2b] = 0;

⌨️ 快捷键说明

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