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

📄 nbctft.lst

📁 51单片机2.8寸26万像素LED显示
💻 LST
字号:
C51 COMPILER V7.06   NBCTFT                                                                12/13/2012 09:58:43 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE NBCTFT
OBJECT MODULE PLACED IN NBCTFT.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE NBCTFT.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //公司:北方蓝芯科技开发有限公司
   2          //网址:www.hrbnbc.com
   3          /*===================================================================================================  
   4          文件功能描述:320x240TFT驱动程序,控制TFT实现汉字,字符显示,画点功能。
   5          ====================================================================================================*/
   6          //******************包含头文件***************************
   7          #include"NBCTFT.h"
   8          #include"reg52.h"
   9          
  10          //**************控制端口定义********************
  11          #define DataPort P0     //数据口使用DataPort
  12          
  13          sbit RS    =P2^5;               //数据/命令选择
  14          sbit RW    =P2^4;       //写数据/命令
  15          sbit nRD   =P2^3;       //读控制
  16          sbit CS    =P2^2;               //片选
  17          sbit RES   =P2^1;               //复位
  18          
  19          sbit LE    =P2^0;       //74HC573锁存控制
  20          //**************声明外部函数和变量**************
  21          
  22          extern unsigned int Device_code;
  23          
  24          //================================================================================================
  25          //      实现功能:      延时
  26          //      输入参数:      count 设置延时时间
  27          //================================================================================================
  28          void delayms(unsigned int count)
  29          {
  30   1          int i,j;                                                                                
  31   1          for(i=0;i<count;i++)                                                                    
  32   1             {
  33   2                   for(j=0;j<255;j++);
  34   2             }                                                                                     
  35   1      }
  36          
  37          //================================================================================================
  38          //      实现功能:      写命令
  39          //      输入参数:  DH 需要输入16bits命令的高8位
  40          //              DL 需要输入16bits命令的低8位
  41          //================================================================================================
  42          void Write_Cmd(unsigned char DH,unsigned char DL)
  43          {
  44   1              CS=0;
  45   1              RS=0;
  46   1          nRD=1;
  47   1          RW=0;
  48   1      
  49   1          //注意:当使用8位数据口驱动16位数据模式时,使用74HC573作为IO扩展,程序如下
  50   1          DataPort=DL;            //送低8位命令给573待锁存
  51   1          LE=1;                   //锁存位
  52   1          LE=0;                   //断开锁存,位选573的Q7~Q0仍保持 
  53   1      
  54   1              DataPort=DH;            //送高8位命令给TFT
  55   1      
C51 COMPILER V7.06   NBCTFT                                                                12/13/2012 09:58:43 PAGE 2   

  56   1              /*
  57   1          //如果使用16位数据口驱动16位数据模式,则无需IO扩展,直接将数据送到数据口即可
  58   1          DataPort_L=DL; 
  59   1          DataPort_H=DH;
  60   1              */
  61   1      
  62   1              RW=1;
  63   1              CS=1;
  64   1      }
  65          
  66          //================================================================================================
  67          //      实现功能:      写数据(2*8bits)
  68          //      输入参数:  DH 需要输入16bits数据的高8位
  69          //              DL 需要输入16bits数据的低8位
  70          //================================================================================================
  71          void Write_Data(unsigned char DH,unsigned char DL)
  72          {
  73   1              
  74   1              CS=0;
  75   1              RS=1;
  76   1      
  77   1          //注意:当使用8位数据口驱动16位数据模式时,使用74HC573作为IO扩展,程序如下
  78   1              DataPort=DL;            //送低8位数据给573待锁存
  79   1          LE=1;                   //锁存位
  80   1          LE=0;                   //断开锁存,位选573的Q7~Q0仍保持 
  81   1      
  82   1              DataPort=DH;            //送高8位数据给TFT
  83   1      
  84   1              /*
  85   1          //如果使用16位数据口驱动16位数据模式,则无需IO扩展,直接将数据送到数据口即可
  86   1          DataPort_L=DL; 
  87   1          DataPort_H=DH;
  88   1              */
  89   1      
  90   1              RW=0;
  91   1              RW=1;
  92   1              CS=1;
  93   1      }
  94          
  95          //================================================================================================
  96          //      实现功能:      写数据(16位)
  97          //      输入参数:  y 需要输入16bits数据
  98          //================================================================================================
  99          void  Write_Data_U16(unsigned int y)
 100          {
 101   1              unsigned char m,n;
 102   1              m=y>>8;
 103   1              n=y;
 104   1              Write_Data(m,n);
 105   1      }
 106          
 107          //================================================================================================
 108          //      实现功能:      向x寄存器写入y数据
 109          //      输入参数:  x 需要输入的命令 16位
 110          //              y 需要输入的数据 16位
 111          //================================================================================================
 112          void  Write_Cmd_Data (unsigned char x,unsigned int y)
 113          {
 114   1              unsigned char m,n;
 115   1              m=y>>8;
 116   1              n=y;
 117   1              Write_Cmd(0x00,x);
C51 COMPILER V7.06   NBCTFT                                                                12/13/2012 09:58:43 PAGE 3   

 118   1              Write_Data(m,n);
 119   1      }
 120          
 121          //================================================================================================
 122          //      实现功能:      TFT清屏
 123          //      输入参数:      bColor 清屏所使用的背景色
 124          //================================================================================================
 125          void CLR_Screen(unsigned int bColor)
 126          {
 127   1       unsigned int i,j;
 128   1       LCD_SetPos(0,240,0,320);//320x240
 129   1       for (i=0;i<320;i++)
 130   1              {
 131   2                 for (j=0;j<240;j++)
 132   2                     Write_Data_U16(bColor);
 133   2              }
 134   1      }
 135          
 136          //================================================================================================
 137          //      实现功能:      显示Ascii字符
 138          //  输入参数:  x 横坐标
 139          //              y 纵坐标
 140          //                      c 需要显示的字符
 141          //                      fColor 字符颜色
 142          //                      bColor 字符背景颜色
 143          //================================================================================================
 144          #include "Ascii_8x16.h"
 145          void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor)
 146          {
 147   1       unsigned int i,j;
 148   1       LCD_SetPos(x,x+8-1,y,y+16-1);                    //设置字符显示位置
 149   1       for(i=0; i<16;i++) {                             //循环写入16字节,一个字符为16字节
 150   2                      unsigned char m=Font8x16[(c-0x20)*16+i];  //提取c字符的第i个字节以,c减去0x20是由于Ascii码库中的0~1f被去

⌨️ 快捷键说明

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