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

📄 main.lst

📁 st7565P,nt7534液晶控制芯片在128X64点阵下的51环境液晶驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.20   MAIN                                                                  09/04/2008 13:22:12 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg931.h>
   2          #include <intrins.h>
   3          
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          #define FALSE 0
   7          //-------------------------------------------------------------------------------------------------------
   8          typedef unsigned char       BOOL;
   9          
  10          // Data
  11          typedef unsigned char       BYTE;
  12          typedef unsigned short      WORD;
  13          typedef unsigned long       DWORD;
  14          /*******************************************************************************************/
  15          /*////////////////////  LCD12864        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*\
  16          /********************************************************************************************/
  17          //LCD 引脚定义
  18          sbit SCLK       = P0^1;
  19          sbit SID        = P2^0;
  20          sbit A0         = P0^0;
  21          sbit CS1        = P1^7;
  22          sbit RES        = P2^1;
  23          
  24          uchar code ComTable[]={3,2,1,0,7,6,5,4,};
  25          
  26          #define DISPLAY_ON()           Write_Instruction(0xaf)   // Display on
  27          #define DISPLAY_OFF()          Write_Instruction(0xae)   // Display off
  28          #define SET_ADC()              Write_Instruction(0xa1)   // Reverse disrect (SEG131-SEG0)
  29          #define CLEAR_ADC()            Write_Instruction(0xa0)   // Normal disrect (SEG0-SEG131)
  30          #define REVERSE_DISPLAY_ON()   Write_Instruction(0xa7)   // Reverse display : 0 illuminated
  31          #define REVERSE_DISPLAY_OFF()  Write_Instruction(0xa6)   // Normal display : 1 illuminated
  32          #define ENTIRE_DISPLAY_ON()    Write_Instruction(0xa5)   // Entire dislay   Force whole LCD point
  33          #define ENTIRE_DISPLAY_OFF()   Write_Instruction(0xa4)   // Normal display
  34          #define SET_BIAS()             Write_Instruction(0xa3)   // bias 1
  35          #define CLEAR_BIAS()           Write_Instruction(0xa2)   // bias 0
  36          #define SET_MODIFY_READ()      Write_Instruction(0xe0)   // Stop automatic increment of the column address
             - by the read instruction 
  37          #define RESET_MODIFY_READ()    Write_Instruction(0xee)   // Cancel Modify_read, column address return to i
             -ts initial value just before the Set Modify Read instruction is started
  38          #define RESET()                Write_Instruction(0xe2)
  39          #define SET_SHL()              Write_Instruction(0xc8)   // SHL 1,COM63-COM0
  40          #define CLEAR_SHL()            Write_Instruction(0xc0)   // SHL 0,COM0-COM63
  41          
  42          /*******************************************************************************************/
  43          /*////////////////////  CC2500  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*\
  44          /********************************************************************************************/
  45          sbit SPI_CS     = P0^2;
  46          sbit SPI_SI     = P0^5;
  47          sbit SPI_SO     = P0^3;
  48          sbit SPI_SCK    = P0^4;
  49          //sbit SPI_GDO0 = P1^6;
  50          
  51          //#define REPORT_LEN            8
  52          #define PACKAGE_LEN             64
  53          
C51 COMPILER V7.20   MAIN                                                                  09/04/2008 13:22:12 PAGE 2   

  54          xdata uchar rxBuffer[PACKAGE_LEN];
  55          // CC2500 状态
  56          //#define CCxxx0_Ready()                SO
  57          #define CRC_OK              0x80  
  58          #define BYTES_IN_RXFIFO     0x7F        //突发访问TX FIFO
  59          #define STATE_IDLE                      0x01
  60          #define RSSI                0
  61          #define LQI                 1
  62          
  63          // Definitions to support burst/single access:
  64          #define WRITE_BURST     0x40
  65          #define READ_SINGLE     0x80
  66          #define READ_BURST      0xC0
  67          
  68          //CC2500配置寄存器位于SPI地址从0x00到0x2F之间
  69          #define CCxxx0_IOCFG2       0x00        // GDO2 输出脚配置
  70          #define CCxxx0_IOCFG1       0x01        // GDO1 输出脚配置
  71          #define CCxxx0_IOCFG0       0x02        // GDO0 输出脚配置
  72          #define CCxxx0_FIFOTHR      0x03        // RX FIFO and TX FIFO 门限
  73          #define CCxxx0_SYNC1        0x04        // 同步词汇,高字节
  74          #define CCxxx0_SYNC0        0x05        // 同步词汇,低字节
  75          #define CCxxx0_PKTLEN       0x06        // 数据包长度
  76          #define CCxxx0_PKTCTRL1     0x07        // 数据包自动控制
  77          #define CCxxx0_PKTCTRL0     0x08        // 数据包自动控制
  78          #define CCxxx0_ADDR         0x09        // 设备地址
  79          #define CCxxx0_CHANNR       0x0A        // 信道数
  80          #define CCxxx0_FSCTRL1      0x0B        // 频率合成器控制
  81          #define CCxxx0_FSCTRL0      0x0C        // 频率合成器控制
  82          #define CCxxx0_FREQ2        0x0D        // 频率控制词汇,高字节
  83          #define CCxxx0_FREQ1        0x0E        // 频率控制词汇,中间字节
  84          #define CCxxx0_FREQ0        0x0F        // 频率控制词汇,低字节
  85          #define CCxxx0_MDMCFG4      0x10        // 调制器配置
  86          #define CCxxx0_MDMCFG3      0x11        // 调制器配置
  87          #define CCxxx0_MDMCFG2      0x12        // 调制器配置
  88          #define CCxxx0_MDMCFG1      0x13        // 调制器配置
  89          #define CCxxx0_MDMCFG0      0x14        // 调制器配置
  90          #define CCxxx0_DEVIATN      0x15        // 调制器背离设置
  91          #define CCxxx0_MCSM2        0x16        // 主通信控制状态机配置
  92          #define CCxxx0_MCSM1        0x17        // 主通信控制状态机配置
  93          #define CCxxx0_MCSM0        0x18        // 主通信控制状态机配置
  94          #define CCxxx0_FOCCFG       0x19        // 频率偏移补偿配置
  95          #define CCxxx0_BSCFG        0x1A        // 位同步配置
  96          #define CCxxx0_AGCCTRL2     0x1B        // AGC控制
  97          #define CCxxx0_AGCCTRL1     0x1C        // AGC控制
  98          #define CCxxx0_AGCCTRL0     0x1D        // AGC控制
  99          #define CCxxx0_WOREVT1      0x1E        // 高字节时间0暂停
 100          #define CCxxx0_WOREVT0      0x1F        // 低字节时间0暂停
 101          #define CCxxx0_WORCTRL      0x20        // 电磁波激活控制
 102          #define CCxxx0_FREND1       0x21        // 前末端RX配置
 103          #define CCxxx0_FREND0       0x22        // 前末端TX配置
 104          #define CCxxx0_FSCAL3       0x23        // 频率合成器校准
 105          #define CCxxx0_FSCAL2       0x24        // 频率合成器校准
 106          #define CCxxx0_FSCAL1       0x25        // 频率合成器校准
 107          #define CCxxx0_FSCAL0       0x26        // 频率合成器校准
 108          #define CCxxx0_RCCTRL1      0x27        // RC振荡器配置
 109          #define CCxxx0_RCCTRL0      0x28        // RC振荡器配置
 110          #define CCxxx0_FSTEST       0x29        // 频率合成器校准控制
 111          #define CCxxx0_PTEST        0x2A        // 产品测试
 112          #define CCxxx0_AGCTEST      0x2B        // AGC 测试
 113          #define CCxxx0_TEST2        0x2C        // 不同的测试设置
 114          #define CCxxx0_TEST1        0x2D        // 不同的测试设置
 115          #define CCxxx0_TEST0        0x2E        // 不同的测试设置
C51 COMPILER V7.20   MAIN                                                                  09/04/2008 13:22:12 PAGE 3   

 116          
 117          
 118          //对0x30-0x3D间的地址来说,突发位用以在状态寄存器和命令滤波之间选择(如下)。
 119          //状态寄存器只读。突发读取对状态寄存器是不可取的,故它们每次只能被读一个。
 120          
 121          //命令滤波  这些命令用来关闭晶体振荡器,开启传输模式和电磁波激活等
 122          #define CCxxx0_SRES         0x30        // 重启芯片
 123          #define CCxxx0_SFSTXON      0x31        // 开启和校准频率合成器(若MCSM0.FS_AUTOCAL=1)
 124          #define CCxxx0_SXOFF        0x32        // 关闭晶体振荡器
 125          #define CCxxx0_SCAL         0x33        // 校准频率合成器并关断(开启快速启动)
 126          #define CCxxx0_SRX          0x34        // 启用RX。若上一状态为空闲且MCSM0.FS_AUTOCAL=1则首先运行校准。
 127          #define CCxxx0_STX          0x35        // 空闲状态:启用TX。若MCSM0.FS_AUTOCAL=1首先运行校准。
 128                                                                                          // 在RX状态且CCA启用:若信道为空则进入TX
 129          #define CCxxx0_SIDLE        0x36        // 离开RX/TX,关断频率合成器并离开电磁波激活模式若可用
 130          #define CCxxx0_SAFC         0x37        // 运行频率合成器的AFC调节
 131          #define CCxxx0_SWOR         0x38        // 运行自动RX选举序列(电磁波激活)
 132          #define CCxxx0_SPWD         0x39        // 当CSn为高时进入功率降低模式。
 133          #define CCxxx0_SFRX         0x3A        // 冲洗RX FIFO缓冲
 134          #define CCxxx0_SFTX         0x3B        // 冲洗TX FIFO缓冲
 135          #define CCxxx0_SWORRST      0x3C        // 重新设置真实时间时钟
 136          #define CCxxx0_SNOP         0x3D        // 无操作. 可能用来为更简单的软件将滤波命令变为2字节。
 137          
 138          //状态寄存器
 139          #define CCxxx0_PARTNUM          0x30    //CC2550的组成部分数目
 140          #define CCxxx0_VERSION          0x31    //当前版本数
 141          #define CCxxx0_FREQEST          0x32    //频率偏移估计
 142          #define CCxxx0_LQI              0x33    //连接质量的解调器估计
 143          #define CCxxx0_RSSI             0x34    //接收信号强度指示
 144          #define CCxxx0_MARCSTATE        0x35    //控制状态机状态
 145          #define CCxxx0_WORTIME1         0x36    //WOR计时器高字节
 146          #define CCxxx0_WORTIME0         0x37    //WOR计时器低字节
 147          #define CCxxx0_PKTSTATUS        0x38    //当前GDOx状态和数据包状态
 148          #define CCxxx0_VCO_VC_DAC       0x39    //PLL校准模块的当前设定
 149          #define CCxxx0_TXBYTES          0x3A    //TX FIFO中的下溢和比特数
 150          #define CCxxx0_RXBYTES          0x3B    //RX FIFO中的下溢和比特数
 151          #define CCxxx0_RCCTRL1_STATUS   0x3C    //RC振荡器状态
 152          #define CCxxx0_RCCTRL0_STATUS   0x3D
 153          
 154          #define CCxxx0_PATABLE          0x3E    //用来选择PA能量控制设置
 155          #define CCxxx0_TXFIFO           0x3F    //单字节访问TX FIFO
 156          #define CCxxx0_RXFIFO           0x3F
 157          
 158          uchar package[64];
 159          void SPI_WAIT() 
 160          {       
 161   1              uchar i;
 162   1              for (i=0; i<10; i++);
 163   1      }
 164          void halWait(uint timeout) 
 165          { 
 166   1          do { 
 167   2                      _nop_(); 
 168   2                      _nop_(); 
 169   2                      _nop_(); 
 170   2                      _nop_(); 
 171   2                      _nop_(); 
 172   2                      _nop_(); 
 173   2                      _nop_(); 
 174   2                      _nop_(); 
 175   2                      _nop_(); 
 176   2                      _nop_(); 
 177   2                      _nop_(); 
C51 COMPILER V7.20   MAIN                                                                  09/04/2008 13:22:12 PAGE 4   

 178   2                      _nop_(); 
 179   2                      _nop_(); 
 180   2                      _nop_();  
 181   2          } while (--timeout); 
 182   1      }
 183          void    OpenSpi()
 184          {
 185   1              SPI_SCK =0;
 186   1              SPI_SI  =0;
 187   1              SPI_CS  =0;
 188   1              while (SPI_SO);
 189   1      }
 190          
 191          void    CloseSpi()
 192          {
 193   1              SPI_CS  =1;
 194   1      }
 195          void WriteByte(uchar Data)
 196          {
 197   1              uchar i;//,temp_si;
 198   1              for (i=0; i<8; i++)
 199   1              {
 200   2                      if (Data&0x80)
 201   2                              SPI_SI=1;
 202   2                      else
 203   2                              SPI_SI=0;
 204   2              _nop_();
 205   2              _nop_();
 206   2              _nop_();
 207   2                      
 208   2                      SPI_SCK=1;
 209   2              _nop_();
 210   2              _nop_();
 211   2              _nop_();
 212   2              _nop_();
 213   2                      SPI_SCK=0;
 214   2      
 215   2                      Data<<=1;
 216   2              }
 217   1      }
 218          uchar   ReadByte()
 219          {
 220   1              uchar i;
 221   1              uchar Data;
 222   1      
 223   1              for (i=0; i<8; i++)
 224   1              {
 225   2      
 226   2                      Data<<=1;
 227   2              _nop_();
 228   2              _nop_();
 229   2      
 230   2                      SPI_SCK=0;
 231   2      

⌨️ 快捷键说明

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