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

📄 olcd.lst

📁 无线单片机CC1110的一些使用源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.08   OLCD                                                                  01/08/2008 15:04:07 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE OLCD
OBJECT MODULE PLACED IN OLCD.obj
COMPILER INVOKED BY: d:\program files\Keil\C51\BIN\C51.EXE source\OLCD.c BROWSE INCDIR(.\source;D:\Program Files\Keil\C5
                    -1\INC) DEFINE(CC1110) DEBUG OBJECTEXTEND PRINT(.\OLCD.lst) OBJECT(OLCD.obj)

line level    source

   1          #include <chipcon/ioCC1110.h>
   2          #include <INTRINS.H> 
   3          #include <olcd.h>
   4          
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          
   8          
   9          #define RECALIB_TIMEOUT     12000 // Every 2 minutes
  10          #define MSG_PING           0x00
  11          #define MSG_SEND           0x10
  12          #define MSG_RECIVE         0x20
  13          #define MSG_NEEDSEND       0x30
  14          
  15          #define LCD_PWR_CRTL    0
  16          
  17          //SPI1 at2
  18          sbit LCD_RST            = P1^4;
  19          sbit LCD_RS                     = P0^0;
  20          sbit LCD_CS         = P0^2;
  21          sbit LCD_CLK            = P1^5;
  22          sbit LCD_SDO            = P1^6;
  23          sbit LCD_PWR            = P0^1;
  24          
  25          
  26                   
  27          #define LCD_CS_0        LCD_CS          = 0
  28          #define LCD_CS_1        LCD_CS          = 1
  29          #define LCD_CLK_0       LCD_CLK         = 0
  30          #define LCD_CLK_1       LCD_CLK         = 1
  31          #define LCD_SDO_0       LCD_SDO         = 0
  32          #define LCD_SDO_1       LCD_SDO         = 1
  33          #define LCD_RST_0       LCD_RST         = 0
  34          #define LCD_RST_1       LCD_RST         = 1
  35          #define LCD_RS_0        LCD_RS          = 0     
  36          #define LCD_RS_1        LCD_RS          = 1
  37          
  38          uchar ContrastValue = 0x38;
  39          uchar BT_State;
  40          
  41          void ClearScreen(void);
  42          void Print(uchar y, uchar x, uchar ch[], uint yn);
  43          void Print6(uchar xx,uchar  yy,uchar ch1[],uchar yn);
  44          //void LoadICO(uchar y , uchar x , uchar n);
  45          
  46          
  47          /*******************************************************************************
  48          //函数名:void delaylcd (uint x)
  49          //功能:廷时
  50          //输入:时间
  51          //输出:无
  52          ********************************************************************************/
  53          void delaylcd (uint x)
  54          {
C51 COMPILER V8.08   OLCD                                                                  01/08/2008 15:04:07 PAGE 2   

  55   1              uchar j;
  56   1              while (x--)
  57   1              {
  58   2                      for (j=0;j<115;j++);
  59   2              }
  60   1      }
  61          /*******************************************************************************
  62          //函数名:void fdelay(unsigned int n)
  63          //功能:廷时
  64          //输入:时间
  65          //输出:无
  66          ********************************************************************************/
  67          void fdelay(unsigned int n) /* wait n seconds*/
  68          {
  69   1              uint i;
  70   1              uint j;
  71   1              for (i=0;i<5;i++)
  72   1              for (j=0;j<n*2;j++) ;
  73   1      }
  74          
  75          
  76          /*******************************************************************************
  77          //函数名:void Lcdwritecom(uchar com)
  78          //功能:lcd写指令
  79          //输入:com指令
  80          //输出:无
  81          ********************************************************************************/
  82          void Lcdwritecom(uchar com)
  83          {
  84   1              uchar i, temp;
  85   1              LCD_CLK = 0;
  86   1              LCD_CS = 0;
  87   1              LCD_RS = 0;
  88   1              temp = com;
  89   1      
  90   1              for(i=0; i<8; i++)
  91   1              {
  92   2                      if(temp & 0x80)
  93   2                      {
  94   3                              LCD_SDO = 1;
  95   3                      }
  96   2                      else LCD_SDO = 0;
  97   2                      temp <<= 1;
  98   2                      LCD_CLK = 1;
  99   2                      _nop_();
 100   2                      _nop_();
 101   2                      LCD_CLK = 0;
 102   2              }
 103   1              LCD_CS = 1;
 104   1      }
 105          
 106          /*******************************************************************************
 107          //函数名:void Lcdwritedata(uchar dat)
 108          //功能:lcd写数据
 109          //输入:dat数据
 110          //输出:无
 111          ********************************************************************************/
 112          void Lcdwritedata(uchar dat)
 113          {
 114   1              uchar i, temp;
 115   1              LCD_CS = 0;
 116   1              LCD_RS = 1;
C51 COMPILER V8.08   OLCD                                                                  01/08/2008 15:04:07 PAGE 3   

 117   1              temp = dat;
 118   1      
 119   1              for(i=0; i<8; i++)
 120   1              {
 121   2                      if(temp & 0x80)
 122   2                      {
 123   3                              LCD_SDO = 1;
 124   3                      }
 125   2                      else LCD_SDO = 0;
 126   2                      temp <<= 1;
 127   2                      LCD_CLK = 1;
 128   2                      _nop_();
 129   2                      _nop_();
 130   2                      LCD_CLK = 0;
 131   2              }
 132   1              LCD_CS = 1;
 133   1      }
 134          
 135          /*******************************************************************************
 136          //函数名:void Prog_Reset(void)
 137          //功能:lcd复位
 138          //输入:无
 139          //输出:无
 140          ********************************************************************************/
 141          void Prog_Reset(void)
 142          {
 143   1              LCD_RST = 0;
 144   1              delaylcd(100);
 145   1              LCD_RST = 1;
 146   1      }
 147          /*******************************************************************************
 148          //函数名:void Resetchip(void)
 149          //功能:lcd软件复位
 150          //输入:无
 151          //输出:无
 152          ********************************************************************************/
 153          void Resetchip(void)
 154          {
 155   1              Prog_Reset();
 156   1      }
 157          
 158          /*******************************************************************************
 159          //函数名:void SetRamAddr (uchar Page, uchar Col)
 160          //功能:lcd位置选择
 161          //输入:Page-页,Col-列
 162          //输出:无
 163          ********************************************************************************/
 164          void SetRamAddr (uchar Page, uchar Col)
 165          {
 166   1              Lcdwritecom(0xB0 + Page);
 167   1              Lcdwritecom(Col & 0x0f); //Set lower column address
 168   1              Lcdwritecom(0x10 | ((Col & 0xf0) >> 4)); //Set higher column address
 169   1      }
 170          /*******************************************************************************
 171          //函数名:void SetContrast(uchar Gain, uchar Step)
 172          //功能:lcd对比度设定
 173          //输入:Page-页,Col-列
 174          //输出:无
 175          ********************************************************************************/
 176          void SetContrast(uchar Gain, uchar Step)
 177          {
 178   1              Lcdwritecom(0x81);
C51 COMPILER V8.08   OLCD                                                                  01/08/2008 15:04:07 PAGE 4   

 179   1              Lcdwritecom(Step);
 180   1      }
*** WARNING C280 IN LINE 176 OF SOURCE\OLCD.C: 'Gain': unreferenced local variable
 181          
 182          void LcdPortInit(void)
 183          {
 184   1              P0DIR = 0X07;
 185   1              P1DIR = 0X70;
 186   1      }
 187          
 188          
 189          /*******************************************************************************
 190          //函数名:void InitLcd(void)
 191          //功能:lcd初始化
 192          //输入:无
 193          //输出:无
 194          ********************************************************************************/
 195          void InitLcd(void)
 196          {
 197   1              LcdPortInit();
 198   1          LCD_PWR = 0;    //OLED POWER ON
 199   1              LCD_CS = 1;
 200   1              LCD_RS = 1;
 201   1              LCD_RST = 1;
 202   1              LCD_CLK = 1;
 203   1              LCD_SDO = 1;
 204   1      
 205   1              Resetchip();
 206   1              Lcdwritecom(0xAE);
 207   1              Lcdwritecom(0xAD);      //dc-dc off
 208   1              Lcdwritecom(0x8a);
 209   1              halWait(100);
 210   1              Lcdwritecom(0x00);
 211   1              Lcdwritecom(0x10);
 212   1              Lcdwritecom(0x40);
 213   1              Lcdwritecom(0x81);
 214   1              Lcdwritecom(ContrastValue);
 215   1              Lcdwritecom(0xA0);
 216   1              Lcdwritecom(0xA4);
 217   1              Lcdwritecom(0xA6);
 218   1              Lcdwritecom(0xA8);
 219   1              Lcdwritecom(0x3f);
 220   1              Lcdwritecom(0xD3);
 221   1              Lcdwritecom(0x00);
 222   1              Lcdwritecom(0xD5);
 223   1              Lcdwritecom(0x20);
 224   1              Lcdwritecom(0xD8);
 225   1              Lcdwritecom(0x00);
 226   1              Lcdwritecom(0xDA);
 227   1              Lcdwritecom(0x12);
 228   1              Lcdwritecom(0xDB);
 229   1              Lcdwritecom(0x00);
 230   1              Lcdwritecom(0xD9);
 231   1              Lcdwritecom(0x22);
 232   1              Lcdwritecom(0xc8);
 233   1              Lcdwritecom(0xAF);
 234   1              ClearScreen();
 235   1      }
 236          /*******************************************************************************
 237          //函数名:void LoadICO(uchar y , uchar x , uchar Ico[])
 238          //功能:打开一个指定指针的图标
 239          //输入:x,y坐标      Ico[]图片
C51 COMPILER V8.08   OLCD                                                                  01/08/2008 15:04:07 PAGE 5   

 240          //输出:无
 241          ********************************************************************************
 242          void LoadICO(uchar y , uchar x , uchar n)
 243          {
 244          
 245                  uchar adder = 0;
 246                  uchar wm;
 247          
 248                  SetRamAddr(y , x);
 249                  for(wm = 0;wm < 16;wm++)
 250                  {
 251                          Lcdwritedata(ICOBattery[n][adder]);
 252                          adder += 1;
 253                  }
 254          }
 255          */
 256          
 257          /*******************************************************************************
 258          //函数名:void LoadICO(uchar y , uchar x , uchar Ico[])
 259          //功能:打开一个指定指针的图标
 260          //输入:x,y坐标      Ico[]图片
 261          //输出:无
 262          ********************************************************************************/
 263          void LoadICO(void)
 264          {
 265   1      
 266   1              uchar i,j;
 267   1              for(i=0; i<8; i++)
 268   1              {
 269   2                      SetRamAddr(i , 0);
 270   2                      for(j = 0;j < 112;j++)
 271   2                      {
 272   3                              Lcdwritedata(WXL112X64[j+i*112]);
 273   3                      }
 274   2              }
 275   1      }
 276          /*******************************************************************************
 277          //函数名:void ClearScreen(void)
 278          //功能:清屏
 279          //输入:无
 280          //输出:无
 281          ********************************************************************************/
 282          void ClearScreen(void)
 283          {
 284   1              uchar i , j;
 285   1              
 286   1              for (i = 0 ; i < 8 ; i++)
 287   1              {
 288   2                      SetRamAddr(i,0);
 289   2                      for (j=0;j<132; j++) Lcdwritedata(0x00);
 290   2              }
 291   1      }
 292          
 293          
 294          /*******************************************************************************
 295          //函数名:void Printn(uchar xx ,uchar yy , INT32U no,uchar yn,uchar le)
 296          //功能:显示一个6*8无符号数据
 297          //输入:xx , yy屏幕当中位置,no待显示数据 yn=0正常显示 yn=1反黑显示  le有效位
 298          //输出:无
 299          ********************************************************************************/
 300          void Printn(uchar xx ,uchar yy , unsigned long no,uchar yn,uchar le)
 301          {
C51 COMPILER V8.08   OLCD                                                                  01/08/2008 15:04:07 PAGE 6   

 302   1              uchar ch2[6];
 303   1              uchar ii;
 304   1      
 305   1              for(ii = 1 ; ii <= le ;)
 306   1              {
 307   2                      ch2[le - ii] = no % 10 + 0x30;
 308   2                      no /= 10;
 309   2                      ii += 1;
 310   2              }
 311   1              ch2[le] = '\0';
 312   1              Print6(xx ,yy ,ch2 ,yn);

⌨️ 快捷键说明

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