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

📄 ts12864a.lst

📁 此程序是GPS导航程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   TS12864A                                                              05/21/2008 10:52:26 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TS12864A
OBJECT MODULE PLACED IN TS12864A.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TS12864A.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************************/
   2          /*****************************************************************/
   3          /*函数名称: TS12864A.c                                          */
   4          /*函数功能: 液晶显示启动                                        */ 
   5          /*入口参数: P6---------------------------------------液晶数据传输
   6                       P3----------------------------------------液晶控制脚*/       
   7          /*有无返回: 无                                                  */
   8          /*修改记录: 无修改记录                                          */
   9          /*编写作者: t483-4-19chenyong                                   */
  10          /*编写日期: 2007-4-06                                           */
  11          /*****************************************************************/
  12          
  13          #include  "common.h"
  14          #include  "TS12864A.h"
  15          #include  "ziku.h"
  16          #include  "delay.h"
  17          unsigned char temp;
  18          
  19          /*****************************************************************/
  20          /*判断状态                                                       */
  21          /*****************************************************************/                              
  22          void LCD_Busy(void)     
  23          {
  24   1          SFRPAGE=0x0f;
  25   1              LCD_RS=0;                         // 状态标志位和地址计数读入DB7和DB6-DB0   
  26   1              delay_17us();                   
  27   1              LCD_RW=1;       
  28   1              delay_17us();                                    
  29   1              LCD_DATA=0xff;                    //初始化
  30   1              while (1) 
  31   1              {
  32   2                LCD_EN=1;
  33   2                delay_17us();
  34   2                if (LCD_DATA<0x80)break;//判断是否忙
  35   2                LCD_EN=0;
  36   2                delay_17us();
  37   2              } 
  38   1              LCD_EN=0;
  39   1              delay_17us();
  40   1      }
  41          
  42          /*****************************************************************/
  43          /*写数据                                                         */
  44          /*****************************************************************/
  45          void LCD_Write_Data(uchar ddata)
  46          {
  47   1              LCD_Busy();                   //检测是否处于忙的状态
  48   1              LCD_RS = 1;
  49   1              delay_17us();
  50   1              LCD_RW = 0;
  51   1              delay_17us();
  52   1              temp=ddata;
  53   1              SFRPAGE=0x0f; 
  54   1              LCD_DATA=temp;
  55   1              LCD_EN = 1;
C51 COMPILER V8.02   TS12864A                                                              05/21/2008 10:52:26 PAGE 2   

  56   1              delay_17us();
  57   1              LCD_EN = 0;
  58   1              delay_17us();
  59   1      }
  60          /*****************************************************************/
  61          /*写命令                                                         */
  62          /*****************************************************************/
  63          
  64          void LCD_Write_Command(uchar command)
  65          {
  66   1              LCD_Busy();                   //检测是否处于忙的状态
  67   1              LCD_RS = 0;
  68   1              delay_17us();
  69   1              LCD_RW = 0;
  70   1              delay_17us();
  71   1              temp=command;
  72   1              SFRPAGE=0x0f; 
  73   1              LCD_DATA=temp;
  74   1              LCD_EN = 1;
  75   1              delay_17us();
  76   1              LCD_EN = 0;
  77   1              delay_17us();
  78   1      }
  79          
  80          void CleanScreen(void)
  81          {
  82   1              uchar i, j, k;
  83   1      
  84   1              for (i=0;i<8;i++)                       
  85   1              {
  86   2                      LCD_CSA = 1;
  87   2                      delay_17us();
  88   2                      LCD_CSB = 1;
  89   2                      delay_17us();
  90   2                      LCD_Write_Command(0x40);                  //设置列地址
  91   2                      delay_17us();
  92   2                      LCD_Write_Command(0xb8+i);        //设置页地址
  93   2                      delay_17us();
  94   2                      LCD_CSA = 1;
  95   2                  delay_17us();
  96   2                      LCD_CSB = 0;
  97   2                      delay_17us();
  98   2                      for(j=0;j<128;j++) 
  99   2                              LCD_Write_Data(0x00);
 100   2                      delay_17us();
 101   2                  LCD_CSA = 0;
 102   2                      delay_17us();
 103   2                      LCD_CSB = 1;
 104   2                      delay_17us();
 105   2                      for(k=64;k<128;k++) 
 106   2                              LCD_Write_Data(0x00);
 107   2                      delay_17us();
 108   2        }
 109   1      }  
 110          
 111          /*****************************************************************/
 112          /*设置x,y位置                                                   */
 113          /*****************************************************************/
 114          void LCD_Set_xy(unsigned char x,unsigned char y)
 115          {
 116   1      
 117   1        LCD_CSA = 1;
C51 COMPILER V8.02   TS12864A                                                              05/21/2008 10:52:26 PAGE 3   

 118   1        delay_17us();
 119   1        LCD_CSB = 1;
 120   1        delay_17us();
 121   1      
 122   1        LCD_Write_Command(0x40|x);
 123   1        delay_17us();
 124   1        LCD_Write_Command(0xb8|y);
 125   1        delay_17us();
 126   1      
 127   1        if (x>=64)                //判断是否显示半面,如果大于64则全屏显示
 128   1          {
 129   2                LCD_CSA=0;
 130   2                delay_17us();
 131   2                LCD_CSB=1;
 132   2                delay_17us();
 133   2              } 
 134   1              else                       //小于64则半屏显示
 135   1              {
 136   2                LCD_CSA=1;
 137   2                delay_17us();
 138   2                LCD_CSB=0;
 139   2                delay_17us();   
 140   2              }
 141   1              LCD_DATA=0xff;     //IO口将电平拉高
 142   1              delay_17us();
 143   1      }
 144          /*****************************************************************/
 145          /*函数名称: Dis_Play.c                                          */
 146          /*函数功能: 显示汉字,fb==1:反白显示                            */
 147          /*函数说明: 具体说明如下:
 148                       x---------------------------------------------横轴位置                                                                                       
 149                       y---------------------------------------------纵轴位置
 150                                   n-------------------------------------数据在表中的位置 
 151                                   dis_value-----------------------------待显示汉字的代码
 152                                                                           */
 153          /*修改记录: 无修改记录                                          */
 154          /*编写日期: 2007-3-17                                           */
 155          /*****************************************************************/
 156          void Dis_Play(unsigned char x,unsigned char y,unsigned char dis_value)

⌨️ 快捷键说明

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