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

📄 sy8.lst

📁 12864液晶屏的使用 基于c8051f005单片机 在液晶屏上显示"中国石油大学"
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   SY8                                                                   08/10/2008 08:47:17 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE SY8
OBJECT MODULE PLACED IN sy8.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE sy8.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <c8051f000.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          
   5          sbit LCD_CS=P3^0;                       //片选接口 低电平有效
   6          sbit LCD_RES=P3^1;                      //单片机复位接口 低电平有效
   7          sbit LCD_A0=P3^2;                       //数据/命令选择位 低电平命令 高电平数据
   8          sbit LCD_SCK=P3^3;                      //时钟信号口  上升沿触发
   9          sbit LCD_DA=P3^4;                       //数据信号口
  10          
  11          void delay(uint i);
  12          void sysclk_init();
  13          void port_init();
  14          
  15          float flash_re(uchar x);
  16          void flash_wr(uchar x,float dat);
  17          
  18          
  19          
  20          void lcd_send_data(uchar dat);
  21          void lcd_send_cmd(uchar dat);
  22          void lcd_init();
  23          void lcd_set_page(uchar dat);
  24          void lcd_set_colume(uchar dat);
  25          void lcd_clr();
  26          void lcd_point(uchar x,uchar y);
  27          void lcd_display_one_num(uchar wordx,uchar wordy,uchar *n);
  28          void lcd_word(uchar wordx,uchar wordy,uchar *word);
  29          void lcd_display_num(uchar x,uchar y,float num);
  30          
  31          
  32          //-------------------------------------------------------
  33          //汉字字模
  34          //每个汉字16X16 x+16 page+1 y+16
  35          //-------------------------------------------------------
  36          uchar code jia[]={0x02,0x02,0x3A,0xAA,0xAA,0xBE,0xAA,0xAA,0xAA,0xBE,0xAA,0xAA,0x3A,0x02,0x02,0x00,
  37          0x00,0x80,0x80,0x5F,0x40,0x20,0x10,0x0E,0x10,0x20,0x60,0xDF,0x40,0x00,0x00,0x00};
  38          uchar code zhi[]={0x00,0x08,0x08,0x08,0x08,0x08,0x09,0x0A,0x0C,0x88,0x48,0x28,0x1C,0x08,0x00,0x00,
  39          0x20,0x60,0x30,0x08,0x18,0x24,0x24,0x22,0x41,0x40,0x40,0x40,0x40,0x40,0x40,0x00};
  40          uchar code ye[]={0x10,0x61,0x06,0xE0,0x18,0x84,0xE4,0x1C,0x84,0x65,0xBE,0x24,0xA4,0x64,0x04,0x00,
  41          0x04,0x04,0xFF,0x00,0x01,0x00,0xFF,0x41,0x21,0x12,0x0C,0x1B,0x61,0xC0,0x40,0x00};
  42          uchar code jing[]={0x00,0x00,0x00,0x00,0x7E,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x7E,0x00,0x00,0x00,0x00,
  43          0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00,0x00,0x7F,0x25,0x25,0x25,0x25,0x7F,0x00};
  44          uchar code shi[]={0x00,0x10,0x0C,0x04,0x4C,0xB4,0x94,0x05,0xF6,0x04,0x04,0x04,0x14,0x0C,0x04,0x00,
  45          0x00,0x82,0x82,0x42,0x42,0x23,0x12,0x0A,0x07,0x0A,0x12,0xE2,0x42,0x02,0x02,0x00};
  46          uchar code yan[]={0x02,0xFA,0x82,0x82,0xFE,0x80,0x40,0x60,0x58,0x46,0x48,0x50,0x20,0x20,0x20,0x00,
  47          0x08,0x08,0x04,0x24,0x40,0x3F,0x22,0x2C,0x21,0x2E,0x20,0x30,0x2C,0x23,0x20,0x00};
  48          uchar code meng[]={0x40,0x44,0x24,0x14,0xFF,0x94,0x64,0x40,0x24,0x14,0xFF,0x0C,0x34,0x64,0x24,0x00,
  49          0x00,0x80,0x88,0x88,0x46,0x45,0x29,0x31,0x11,0x09,0x05,0x03,0x01,0x00,0x00,0x00};
  50          uchar code face[]={0xE0,0x10,0x0C,0x24,0x22,0x21,0x21,0x81,0x01,0x21,0x21,0x22,0x24,0x0C,0x10,0xE0,
  51          0x07,0x08,0x30,0x20,0x40,0x88,0x90,0x97,0x94,0x90,0x88,0x40,0x20,0x30,0x08,0x07};
  52          
  53          uchar * code zichuan[]={jia,meng,zhi,ye,jing,shi,yan,face};
  54          
  55          //--------------------------------------------------------
C51 COMPILER V7.20   SY8                                                                   08/10/2008 08:47:17 PAGE 2   

  56          //数字字模
  57          //每个数字8X16 x+8 page+2 y+16
  58          //--------------------------------------------------------
  59          uchar code num0[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
  60          uchar code num1[]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
  61          uchar code num2[]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
  62          uchar code num3[]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
  63          uchar code num4[]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
  64          uchar code num5[]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
  65          uchar code num6[]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
  66          uchar code num7[]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
  67          uchar code num8[]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
  68          uchar code num9[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
  69          uchar code dian[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
  70          
  71          uchar * code albnum[]={num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,dian};
  72          
  73          
  74          
  75          void main()
  76          {       
  77   1              uchar i;
  78   1              sysclk_init();
  79   1              port_init();
  80   1              lcd_init();
  81   1              lcd_clr();                                              //清屏
  82   1              lcd_display_num(0,0,flash_re(0));//显示 读取FLASH中的数据
  83   1              for(i=0;i<8;i++)                                //显示  贾梦之液晶实验 和一个 笑脸 
  84   1              {
  85   2                      lcd_word(16*i,2,zichuan[i]);
  86   2              }
  87   1              for(i=0;i<11;i++)
  88   1              {
  89   2                      lcd_display_one_num(8*i,4,albnum[i]);
  90   2              }
  91   1              lcd_display_num(0,6,3.657);
  92   1              flash_wr(0,8.14);                                       //向flash中写数据
  93   1      
  94   1              for(;;);
  95   1      }
  96          
  97          
  98          //--------------------------------------------
  99          //显示10-0之间的小数 有效数字4位
 100          //每个数字宽8 高16   带小数点共宽5位 40列
 101          //x:数字列位置(0-87) y:数组行(页)(1-8)  num:显示的数字(10-0之间的浮点数)
 102          //--------------------------------------------
 103          void lcd_display_num(uchar x,uchar y,float num)
 104          {
 105   1              lcd_display_one_num(x,y,albnum[(uchar)(num)]);
 106   1              x+=8;
 107   1              lcd_display_one_num(x,y,albnum[10]);                    //显示小数点
 108   1              x+=8;
 109   1              lcd_display_one_num(x,y,albnum[((uint)(num*=10))%10]);
 110   1              x+=8;
 111   1              lcd_display_one_num(x,y,albnum[((uint)(num*=10))%10]);
 112   1              x+=8;
 113   1              lcd_display_one_num(x,y,albnum[((uint)(num*=10))%10]);
 114   1      }
 115          
 116          //--------------------------------------------
 117          //显示1个阿拉伯数字
C51 COMPILER V7.20   SY8                                                                   08/10/2008 08:47:17 PAGE 3   

 118          //每个数字宽8 高16
 119          //wordx:数字列位置(0-119) wordy:数组行(页)(1-8)  num:显示的数字(10-0之间的浮点数)
 120          //--------------------------------------------
 121          
 122          void lcd_display_one_num(uchar wordx,uchar wordy,uchar *n)
 123          {
 124   1              uchar i;
 125   1              lcd_set_page(wordy);
 126   1              lcd_set_colume(wordx);
 127   1              for(i=0;i<8;i++)
 128   1                      lcd_send_data(*(n+i));
 129   1              lcd_set_page(wordy+1);
 130   1              lcd_set_colume(wordx);
 131   1              for(i=0;i<8;i++)
 132   1                      lcd_send_data(*(n+i+8));
 133   1      }
 134          void delay(uint i)
 135          {
 136   1              for(;i>0;i--);
 137   1      }
 138          void lcd_send_data(uchar dat)
 139          {
 140   1              uchar i;
 141   1              LCD_CS=0;                               //片选选通
 142   1              LCD_A0=1;                               //选择发送数据
 143   1              LCD_SCK=1;
 144   1              for(i=0;i<8;i++)
 145   1              {

⌨️ 快捷键说明

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