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

📄 cunchu.lst

📁 ad准确采集
💻 LST
字号:
C51 COMPILER V7.06   CUNCHU                                                                03/23/2005 22:21:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CUNCHU
OBJECT MODULE PLACED IN cunchu.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe cunchu.c DB OE

stmt level    source

   1          
   2          #include<main.H>
   3          //#include <stdio.h>
   4          #include <intrins.h>
   5          //#include <string.h>
   6          //#include <stdarg.h>
   7          void PORT_Init (void)
   8          {
   9   1         SFRPAGE=0x0F;
  10   1         XBR0 = 0x05; //UART0,SMbus0接到端口引脚
  11   1         XBR1 = 0x04; //外部中断0接到端口引脚(P0.4)
  12   1         //XBR0 = 0x04; //使能UART0
  13   1         //XBR1 = 0x00;
  14   1         XBR2 = 0x40; // 使能交叉开关和弱上拉
  15   1         //P0MDOUT |=0x0D;
  16   1        
  17   1      }
  18          
  19           void cunchu_Init()
  20           {
  21   1         SFRPAGE=0x0F;
  22   1                        // Enable crossbar and weak pull-ups
  23   1                        
  24   1         P7MDOUT =0xFF;
  25   1         P6MDOUT =0xFF;
  26   1         P5MDOUT =0xFF;
  27   1         P4MDOUT |=0xCF;
  28   1         P1MDOUT|= 0x80;//P1.7为160D的片选端 
  29   1         P3MDOUT|= 0x01;//P3.0为160D的RESET端
  30   1         P3MDOUT&= 0xFD;//P3.1为160D的BUSY端
  31   1         P3|=0x02;
  32   1         SFRPAGE=0x00;
  33   1         EMI0TC  = 0x21;   
  34   1         EMI0CN  = 0xFF;
  35   1         EMI0CF  = 0x34;   //EMIF0CF=00110100 使用P4到P7口 非复用方式 不带块选择的分片方式   
  36   1       }
  37          
  38          
  39          //-----------------------------------------------------------------------
  40          //        读写子程序
  41          //-----------------------------------------------------------------------
  42          
  43          unsigned char flash_readchar(unsigned int addrh,unsigned int ADDR)      //读SRAM子程序
  44            {   
  45   1            unsigned char ch;
  46   1           SFRPAGE=0x0F;
  47   1             RDY_BUSY
  48   1            chip_select  //enable DataFlash
  49   1                P4=(P4&0xF0)|(addrh&0x0F);     //定义地址A16--A19
  50   1               ADDRHL = ADDR>>8;           //输出要读数据的地址高8位
  51   1           ADDRL = ADDR;               //输出要读数据的地址低8位
  52   1           P7MDOUT=0x00;   //使能P7数据口为输入状态,先将P7口设置为漏极开路,
  53   1           DATA = 0xFF ;               //再向P7口写入‘1’
  54   1               NOWR 
  55   1                RD;
C51 COMPILER V7.06   CUNCHU                                                                03/23/2005 22:21:02 PAGE 2   

  56   1                 _nop_();                    //使能读信号
  57   1            ch = DATA;                //读入数据
  58   1             NORD;                 //使读信号无效
  59   1            chip_noselect
  60   1          return ch;
  61   1         }
  62          //----------------------------------------------------------
  63            void flash_writechar(unsigned long addr,unsigned char ch)
  64            {  
  65   1           SFRPAGE=0x0F;
  66   1            RDY_BUSY 
  67   1            chip_select              //enable DataFlash
  68   1                P4=(P4&0xF0)|((addr>>16)&0x0F);     //定义地址A16--A19
  69   1                ADDRHL = addr>>8;  //输出要读数据的地址高8位
  70   1            ADDRL = addr;         //输出要读数据的地址低8位
  71   1             P7MDOUT=0xFF;         //使能P7数据口为推挽输出状态
  72   1                 DATA = ch;                //输出数据
  73   1                 
  74   1              NORD
  75   1                  WR      //使能写入信号
  76   1               
  77   1                  _nop_();
  78   1                                           
  79   1              NOWR                   //是写入信号无效
  80   1             chip_noselect
  81   1         }
  82             void flash_writecom(unsigned int ADDR,unsigned char ch)
  83            {
  84   1           SFRPAGE=0x0F;
  85   1            RDY_BUSY 
  86   1            chip_select              //enable DataFlash
  87   1                ADDRHL = ADDR>>8;  //输出要读数据的地址高8位
  88   1            ADDRL = ADDR;         //输出要读数据的地址低8位
  89   1            P7MDOUT=0xFF;         //使能P7数据口为推挽输出状态
  90   1                 DATA = ch;                //输出数据
  91   1                 
  92   1              NORD
  93   1                  WR      //使能写入信号
  94   1               
  95   1                  _nop_();
  96   1                                           
  97   1              NOWR                   //是写入信号无效
  98   1             chip_noselect
  99   1         }
 100          /*void sram_write ( unsigned int addh ,unsigned int addr,unsigned int in )
 101          {  unsigned char ch11,ch22;
 102             
 103             ch11=in&0x00FF;
 104             ch22=in>>8;
 105             sram_writechar(addh,addr,ch11);
 106             addr++;
 107             sram_writechar(addh,addr,ch22);
 108          
 109          }*/
 110          //-------------------------------------------------------------
 111          //参数addr是起始地址,Inarry是数组名,arry是传送数据的长度
 112          void flash_write( unsigned long addr,unsigned int *Inarry,unsigned int arry)
 113          { 
 114   1         unsigned char ch11,ch22;
 115   1         unsigned int i;
 116   1         flash_writecom(0xAAA,0xAA); //write program command
 117   1         flash_writecom(0x555,0x55);
C51 COMPILER V7.06   CUNCHU                                                                03/23/2005 22:21:02 PAGE 3   

 118   1         flash_writecom(0xAAA,0xA0);
 119   1         
 120   1         for(i=0;i<arry;i++)
 121   1         {ch11=Inarry[i]&0x00FF;
 122   2         ch22=Inarry[i]>>8;
 123   2         flash_writechar(addr+i,ch11);
 124   2         addr++;
 125   2         flash_writechar(addr+i,ch22);
 126   2         }
 127   1      }
 128          /*void flash_writesample ( unsigned long addr,unsigned int number,unsigned int *Inarry,unsigned int arry)
 129          { 
 130             
 131             flash_writeyizhu (addr+number*arry,Inarry, arry);
 132               
 133          }*/
 134          unsigned int flash_read(unsigned int addh,unsigned int addr)
 135          { volatile unsigned  char ch1=0,ch2=0;
 136   1        volatile unsigned int ch=0,ch3=0,ch4=0;
 137   1        ch1=flash_readchar(addh,addr);
 138   1        addr++;
 139   1        ch2=flash_readchar(addh,addr);
 140   1        ch3=ch2;
 141   1        ch4=ch1;
 142   1        ch=((ch3<<8)|ch4);
 143   1        
 144   1        return ch;
 145   1      
 146   1      
 147   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    458    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      25
   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 + -