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

📄 lcd.lst

📁 这个程序用于单片机和无线传输芯片CC2500之间的传送
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.17   LCD                                                                   03/05/2009 21:30:24 PAGE 1   


C51 COMPILER V8.17, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN .\objects\LCD.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE LCD.c OMF2 BROWSE INCDIR(..\..\..\..\..\Inc;..\..\..\..\..\lib) DEFINE(FREQ
                    -_2_4,STAND_ALONE) DEBUG PRINT(.\listings\LCD.lst) OBJECT(.\objects\LCD.obj)

line level    source

   1          #include <Chipcon\srf04\ebsrf04.h>
   2          #include <LCD.h>
   3          
   4          //-----------------------------------------------------------------------------
   5          unsigned char code AC_TABLE[]={
   6                          0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,     //第一行汉字
   7                          0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,     //第二行汉字
   8                          0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,     //第三行汉字
   9                          0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f };   //第四行汉字
  10          
  11          
  12          //unsigned char code str1[]= "Welcome Optics!";
  13                    //------------------------------------------------------------------------
  14          //LCM 液晶CA12864K 串行方式
  15          //------------------------------------------------------------------------
  16          //串口发送一个字节
  17          void SendByte(unsigned char Dbyte)
  18          {
  19   1        unsigned char i;
  20   1        for(i=0;i<8;i++)
  21   1        {
  22   2            SCK = 0;
  23   2            Dbyte = Dbyte<<1;     //左移一位
  24   2            SID = CY;         //移出的位给SID
  25   2                SCK = 1; 
  26   2                SCK = 0;
  27   2        }
  28   1      }
  29          
  30          void WriteCommand( unsigned char Cbyte )
  31          {
  32   1        
  33   1        SendByte(0xf8);         //11111,RW(0),RS(0),0
  34   1        SendByte(0xf0&Cbyte);     //高4位
  35   1        SendByte(0xf0&Cbyte<<4);//低4位(先执行<<)
  36   1        Delay(1);
  37   1      }
  38          
  39          void WriteData( unsigned char Dbyte )
  40          {
  41   1          
  42   1        SendByte(0xfa);         //11111,RW(0),RS(1),0
  43   1        SendByte(0xf0&Dbyte);     //高4位
  44   1        SendByte(0xf0&Dbyte<<4);//低4位(先执行<<)
  45   1        Delay(1);
  46   1      }
  47          
  48          void LcmInit( void )
  49          {
  50   1        WriteCommand(0x30);     //8BitMCU,基本指令集
  51   1        WriteCommand(0x03);     //AC归0,不改变DDRAM内容
  52   1        WriteCommand(0x0C);     //显示ON,游标OFF,游标位置反白OFF
  53   1        WriteCommand(0x01);     //清屏,AC归0
  54   1        WriteCommand(0x06);     //写入时候,游标右移动
C51 COMPILER V8.17   LCD                                                                   03/05/2009 21:30:24 PAGE 2   

  55   1        
  56   1      }
  57          
  58          //图形区和文本区显示在2个不同的RAM区
  59          //文本区清RAM函数
  60          void LcmClearTXT( void )
  61          {
  62   1        unsigned char i;
  63   1        WriteCommand(0x30);     //8BitMCU,基本指令集
  64   1        WriteCommand(0x80);     //AC归起始位
  65   1        for(i=0;i<64;i++)
  66   1          WriteData(0x20);       //0x20相同""
  67   1      }
  68          
  69          //???????????????RAM?
  70          //????RAM??
  71          void LcmClearBMP( void )
  72          {
  73   1        unsigned char i,j;
  74   1        WriteCommand(0x34);     //8Bit?????,???36H?????
  75   1        WriteCommand(0x36);     //??ON,???????36H?????
  76   1        for(i=0;i<32;i++)         //12864???256x32
  77   1        {
  78   2            WriteCommand(0x80|i);     //???
  79   2            WriteCommand(0x80);     //???
  80   2            for(j=0;j<32;j++)         //256/8=32 byte
  81   2                WriteData(0);
  82   2        }
  83   1      }
  84          void PutBMP(unsigned char *puts)
  85          {
  86   1        unsigned int x=0;
  87   1        unsigned char i,j;
  88   1        WriteCommand(0x34);     //8Bit?????,???36H?????
  89   1        WriteCommand(0x36);     //??ON,???????36H?????
  90   1        for(i=0;i<32;i++)         //12864???256x32
  91   1        {
  92   2            WriteCommand(0x80|i);     //???
  93   2            WriteCommand(0x80);     //???
  94   2            for(j=0;j<32;j++)     //256/8=32 byte
  95   2            {         //?????????
  96   3                WriteData(puts[x]);
  97   3                x++;
  98   3            }
  99   2        }
 100   1      }
 101          //写字符串
 102          void PutStr(unsigned char row,unsigned char col,unsigned char *puts)
 103          {
 104   1        WriteCommand(0x30);     //8BitMCU,基本指令集
 105   1        WriteCommand(AC_TABLE[8*row+col]);     //起始位置
 106   1        while(*puts != '\0')     //判断字符串是否显示完毕
 107   1        {
 108   2            if(col==8)         //判断换行
 109   2             {         //若不判断,则自动从第一行到第三行
 110   3                col=0;
 111   3                row++;
 112   3             }
 113   2            if(row==4) row=0;     //一屏幕显示完,回到屏左上角
 114   2            WriteCommand(AC_TABLE[8*row+col]);
 115   2            WriteData(*puts);     //一个汉字要写两次
 116   2            puts++;
C51 COMPILER V8.17   LCD                                                                   03/05/2009 21:30:24 PAGE 3   

 117   2            WriteData(*puts);
 118   2            puts++;
 119   2            col++;
 120   2        }
 121   1      }
 122          
 123          //----------------------------------------------------------------------------
 124          
 125          
 126          void Delay(unsigned int us100)
 127          {
 128   1        unsigned char us,usn;
 129   1        while(us100!=0)         //for 12M
 130   1            { usn = 2;
 131   2                while(usn!=0)
 132   2                    {
 133   3                        us=0xc0;
 134   3                        while (us!=0){us--;};
 135   3                        usn--;
 136   3                    }
 137   2                us100--;
 138   2            }
 139   1      }
 140          
 141          unsigned char code logo[]={
 142          /*--  调入了一幅图像:E:\在研项目\脊柱深度测量\PICs\logo4.bmp  --*/
 143          /*--  宽度x高度=256x32  --*/

⌨️ 快捷键说明

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