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

📄 lcd.lst

📁 液晶屏的单片机demo程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V4.01,  LCD                                                                   10/11/03  19:44:11  PAGE 1   


DOS C51 COMPILER V4.01, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN C:\WINDOWS\DESKTOP\YEJING\LCD.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE C:\WINDOWS\DESKTOP\YEJING\LCD.C DB SB OE

stmt level    source

   1          #include<reg51.h>
   2          
   3          sbit cs1=P3^0;
   4          sbit cs2=P3^1;
   5          sbit rst=P3^2;
   6          sbit rw=P3^3;
   7          sbit di=P3^4;
   8          sbit e=P3^5;
   9          unsigned char x,y,kkk;
  10          unsigned char *p[];
  11          void lw(unsigned char ,unsigned char ,unsigned char );
  12          unsigned char code xie[32]={
  13          0x40,0x42,0xCC,0x04,0x00,0xFC,0x56,0x55,0xFC,0x50,0x90,0x10,0xFF,0x10,0x10,0x00,
  14          0x00,0x00,0x3F,0x50,0x29,0x11,0x4D,0x83,0x7F,0x00,0x41,0x80,0x7F,0x00,0x00,0x00};
  15          unsigned char code nin[32]={
  16          0x80,0x40,0x30,0xFC,0x03,0x90,0x68,0x06,0x04,0xF4,0x04,0x24,0x44,0x8C,0x04,0x00,
  17          0x00,0x20,0x38,0x03,0x38,0x40,0x40,0x49,0x52,0x41,0x40,0x70,0x00,0x09,0x30,0x00};
  18          unsigned char code hao[32]={
  19          0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,0x82,0x82,0xF2,0x8A,0x86,0x82,0x80,0x00,
  20          0x80,0x43,0x22,0x14,0x0C,0x73,0x20,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00};
  21          unsigned char code gantanhao[16]={
  22          0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00};
  23          
  24          unsigned char code pin[32]={
  25          0x20,0x3C,0x20,0x20,0xBF,0x24,0x24,0x00,0xF2,0x1A,0xD6,0x12,0x12,0xF2,0x02,0x00,
  26          0x44,0x43,0x20,0x10,0x0B,0x04,0x43,0x40,0x27,0x18,0x07,0x08,0x10,0x27,0x60,0x00};
  27          unsigned char code lv[32]={
  28          0x00,0x0C,0x14,0xA4,0x04,0x64,0x35,0xAE,0x64,0x24,0x14,0xA4,0x14,0x04,0x04,0x00,
  29          0x08,0x0A,0x09,0x08,0x08,0x0A,0x0B,0xFE,0x0A,0x0B,0x0C,0x08,0x09,0x0A,0x08,0x00};
  30          unsigned char code dian[32]={
  31          0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
  32          0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00};
  33          unsigned char code ya[32]={
  34          0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
  35          0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00};
  36          unsigned char code liu[32]={
  37          0x10,0x60,0x01,0x86,0x60,0x04,0x44,0x64,0x55,0x4E,0x44,0x64,0xC4,0x04,0x04,0x00,
  38          0x04,0x04,0xFC,0x03,0x40,0x30,0x0F,0x00,0x00,0x7F,0x00,0x3F,0x40,0x40,0x70,0x00};
  39          unsigned char code rong[32]={
  40          0x10,0x0C,0x44,0x24,0x34,0x9C,0x45,0x36,0x44,0x8C,0x14,0x74,0x24,0x0C,0x04,0x00,
  41          0x04,0x04,0x02,0x02,0xFD,0x44,0x44,0x44,0x44,0x44,0xFD,0x01,0x02,0x06,0x02,0x00};
  42          unsigned char code H[16]={
  43          0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20};
  44          unsigned char code z[16]={
  45          0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00};
  46          unsigned char code V[16]={
  47          0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00};
  48          unsigned char code F[16]={
  49          0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00};
  50          unsigned char code A[16]={
  51          0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};
  52          unsigned char code u[16]={
  53          0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20};
  54          unsigned char code m[16]={
  55          0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F};
  56          unsigned char code num0[16]={
  57          0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
  58          unsigned char code num1[16]={
  59          0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
C51 COMPILER V4.01,  LCD                                                                   10/11/03  19:44:11  PAGE 2   

  60          unsigned char code num2[16]={
  61          0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
  62          unsigned char code num3[16]={
  63          0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
  64          unsigned char code num4[16]={
  65          0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
  66          unsigned char code num5[16]={
  67          0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
  68          unsigned char code num6[16]={
  69          0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
  70          unsigned char code num7[16]={
  71          0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
  72          unsigned char code num8[16]={
  73          0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
  74          unsigned char code num9[16]={
  75          0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
  76          unsigned char code dot[16]={
  77          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
  78          unsigned char code colon[16]={
  79          0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};
  80          void delay(int num)
  81          {
  82   1      	while(num--) ;
  83   1      }
  84          void write_chinese(x,y,width,array)
  85          unsigned char x;  /* horizontal  x==[0,127] */
  86          unsigned char y;  /* vertical    y==[0,7]   */
  87          unsigned char width;
  88          unsigned char array[];
  89          {
  90   1      	unsigned char j,dd;
  91   1             	for(j=0;j<width*2;j++)
  92   1      	{
  93   2      		dd=array[j];
  94   2      		if(j<width) lw(x+j,y,dd);
  95   2      		else     lw(x+j-width,y+1,dd);
  96   2      	}
  97   1      }
  98          unsigned char read_status(void)
  99          {
 100   1         unsigned char status;
 101   1         di=0;rw=0;e=0;rw=1;e=1;delay(2);e=0;e=1;
 102   1         status = P1;
 103   1         return(status);
 104   1      }
 105          void clear_screen(void)
 106          {
 107   1              unsigned char x,y;
 108   1              for (y=0;y<8;y++)
 109   1              {
 110   2      		for (x=0;x<128;x++)
 111   2                      lw(x,y,0x00);
 112   2      	}
 113   1      }
 114          void fillbyte(unsigned char byte)
 115          {
 116   1              unsigned char x,y;
 117   1              for (y=0;y<8;y++)
 118   1              {
 119   2      		for (x=0;x<128;x++)
 120   2                      lw(x,y,byte);
 121   2      	}
 122   1      }
 123          void fill(void)
 124          {
 125   1              unsigned char x,y;
C51 COMPILER V4.01,  LCD                                                                   10/11/03  19:44:11  PAGE 3   

 126   1              for (y=0;y<8;y++)
 127   1              {
 128   2      		for (x=0;x<128;x=x+2)
 129   2                      {lw(x,y,0xaa);lw(x+1,y,0x55);}
 130   2      	}
 131   1      }
 132          void lcd_init(void)
 133          {
 134   1      	
 135   1              rst=0; delay(3);   rst=1;/*  Reset  */
 136   1              di=0;
 137   1      /* Initial CS1 module */
 138   1              cs1=1;cs2=0;
 139   1              e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
 140   1              e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
 141   1      /* Initial CS2 module */
 142   1              cs2=1;cs1=0;
 143   1              e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
 144   1              e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
 145   1      /* Clear screen  */
 146   1              clear_screen();
 147   1              fillbyte(0xff);
 148   1       
 149   1      }
 150          
 151          
 152          
 153          void lw(unsigned char x,unsigned char y,unsigned char dd)
 154          {
 155   1      		if (x<64)
 156   1      		{
 157   2      			cs1=1;cs2=0;
 158   2      			di=rw=0;cs1=1;cs2=0;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
 159   2      			di=rw=0;cs1=1;cs2=0;P1=0x40|x;e=1;delay(0);e=0;delay(0);
 160   2      			di=1;rw=0;cs1=1;cs2=0;P1=dd;e=1;delay(0);e=0;delay(0);
 161   2      			cs1=cs2=1;
 162   2      
 163   2      		}
 164   1      		else
 165   1      		{
 166   2      			cs1=0;cs2=1;x=x-64;
 167   2      			di=rw=0;cs1=0;cs2=1;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
 168   2      			di=rw=0;cs1=0;cs2=1;P1=0x40|x;e=1;delay(0);e=0;delay(0);
 169   2      			di=1;rw=0;cs1=0;cs2=1;P1=dd;e=1;delay(0);e=0;delay(0);
 170   2      			cs1=cs2=1;
 171   2      		}
 172   1      		P1=0xff;
 173   1      }
 174          
 175          
 176          
 177          void main()
 178          {
 179   1      	unsigned char i,dd;
 180   1      loop:	lcd_init();
 181   1              delay(30000);
 182   1              clear_screen();
 183   1              fill();
 184   1              delay(30000);
 185   1              
 186   1              write_chinese(0x20,3,0x10,nin);
 187   1              write_chinese(0x30,3,0x10,hao);
 188   1              write_chinese(0x40,3,0x08,gantanhao);
 189   1              write_chinese(0x48,3,0x08,gantanhao);
 190   1              delay(50000);

⌨️ 快捷键说明

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