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

📄 ml-330.lst

📁 c8051f330系统
💻 LST
字号:
C51 COMPILER V7.50   ML_330                                                                12/11/2007 10:19:45 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE ML_330
OBJECT MODULE PLACED IN ML-330.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE ML-330.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include "c8051f330.h"
   3          #include "uart.h"
   4          //#include "ml-330.h"
   5          
   6          
   7          char ch,rxch;
   8          
   9          unsigned Count1,Count2; 
  10          char Bufferdata[50];
  11          
  12          void DelayMs(unsigned int n)//延时(n)MS
  13          {
  14   1              unsigned int i;
  15   1              for(;n>0;n--)
  16   1              {
  17   2                      for(i=2211;i>0;i--);
  18   2              }
  19   1      }
  20          
  21          void SysClkInit(void)//配置系统时钟
  22          {
  23   1         OSCICN |= 0x83;
  24   1         OSCICL = 0x00;//设置片内振荡器为22.1184MHZ
  25   1      }
  26          
  27          void WatchDogInit(void)//系统配置
  28          {
  29   1              PCA0MD&=~0x40;//禁止看门狗定时器
  30   1              EA=0;
  31   1      }
  32          //SPIO增强型串行外设
  33          void Spio(void)
  34          {
  35   1        //从配置
  36   1        
  37   1        SPI0CFG  =  0x10;
  38   1        SPIEN    =  0x01;//Enable the SPIO
  39   1        NSSMD0   =  0x00;
  40   1        NSSMD1   =  0x00; // 选择4线主方式
  41   1           
  42   1        //主配置
  43   1       /* SPI0CFG  =  0x70;
  44   1        SPIEN    =  0x01;//Enable the SPIO
  45   1        NSSMD0   =  0x01;
  46   1        NSSMD1   =  0x01; // 选择传输方式为3线主方式
  47   1       // SPI0CFG &=~ 0x20;
  48   1        SPI0CKR  =  0x31;//Fck = SYSCL*/
  49   1      
  50   1      }
  51          
  52          void PortInit(void)//端口配置
  53          {
  54   1         
  55   1              //P0MDIN = 0x05;//配置输出方式
C51 COMPILER V7.50   ML_330                                                                12/11/2007 10:19:45 PAGE 2   

  56   1            //P0 =   0xFF;
  57   1              P0MDOUT= 0xFA;
  58   1          //P0SKIP = 0x00; 
  59   1           
  60   1          XBR0 = 0x03;//设置交叉开关 打开spio和uart0端口引脚
  61   1          XBR1 = 0x40;
  62   1         
  63   1         
  64   1      }
  65          
  66          
  67          
  68          void SystemInit(void)
  69          {   
  70   1          
  71   1          
  72   1              WatchDogInit();//系统配置
  73   1              SysClkInit();//配置系统时钟 
  74   1              PortInit();//端口配置
  75   1              Uart0_Init(115200);//串口配置
  76   1          Spio();
  77   1      
  78   1          
  79   1      }       //Count1 = 0;
  80          void main ()
  81          {  
  82   1        unsigned char BufLen;
  83   1        unsigned char buf[20];   
  84   1        SystemInit();
  85   1        IE = 0xD0; //打开中断uart和spi0中断
  86   1        while(1)
  87   1        {                        
  88   2               /*if(0)
  89   2             { 
  90   2                  DelayMs(2);
  91   2                    SPI0DAT = 0x05;
  92   2                SPIEN    =  0x00;
  93   2                       SPIEN    =  0x01;
  94   2             } */
  95   2                
  96   2               BufLen = UART_Read(0,buf);
  97   2           if (BufLen > 0)
  98   2                      {       
  99   3               UART_Send(0,buf,BufLen);
 100   3              } 
 101   2        }
 102   1      }
 103          
 104          void SPI0_ISR (void) interrupt 6 using 1
 105          {
 106   1         if(SPIF == 0x01)        // 数据传输完毕
 107   1        { 
 108   2           SPIF =0x00;
 109   2           rxch = SPI0DAT;
 110   2            SPI0DAT = 0x00;
 111   2               if (Count1 == 50)
 112   2               {
 113   3                 Count1 = 0;
 114   3               }
 115   2           Bufferdata[Count1] =  rxch;
 116   2             Count1 ++;
 117   2              // SPI0DAT = 0x05;
C51 COMPILER V7.50   ML_330                                                                12/11/2007 10:19:45 PAGE 3   

 118   2        }
 119   1        if(WCOL == 0x01) //数据传输期间执行写操作 将被忽略
 120   1        { 
 121   2          //SPIEN = 0x00;
 122   2          WCOL =0x00; 
 123   2          //SPIEN = 0x00;
 124   2        }
 125   1        if(MODF == 0x01)//方式错误标志
 126   1        {
 127   2          MODF  = 0x00;
 128   2          //SPI0CFG |= 0x40;//MSTEN = 0x00;
 129   2          //SPIEN  = 0X00;
 130   2        }
 131   1        if(RXOVRN == 0x01) //接受溢出标志
 132   1        {
 133   2          RXOVRN = 0x00;
 134   2          
 135   2        }
 136   1        
 137   1      }
 138          


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