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

📄 display_1602.lst

📁 C语言的模块移植通用很好
💻 LST
字号:
C51 COMPILER V8.05a   DISPLAY_1602                                                         02/13/2009 00:44:25 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE DISPLAY_1602
OBJECT MODULE PLACED IN display_1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE display_1602.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          #define IO P1
   5          sbit rs=P3^6;
   6          sbit en=P3^7;
   7          
   8          void write_cmd(uchar cmd);       //写命令
   9          void write_data(uchar data1);  //写数据
  10          void initial_1602();                              //初始化
  11          void delay(uint z);               //延时
  12          void display_1602(uchar num_char,uchar line,uchar address,uchar data1);
  13          //说明:display_1602(num_char=1显示数字,line=1在第一行显示,address显示地址偏移量,data1显示数字或字符)
  14          //                                       num_char=0显示字符, line=2在第二行显示,
  15          
  16          void main()
  17          {
  18   1              initial_1602();
  19   1              display_1602(1,1,7,156);
  20   1              while(1);
  21   1      }
  22          
  23          void initial_1602()
  24          {
  25   1              en=0;
  26   1              write_cmd(0x38);        // 16X2 5X8显示
  27   1              write_cmd(0x0c);        //开显示 NO光标 NO闪烁
  28   1              write_cmd(0x06);        //地址指针自动加一,不移动
  29   1              write_cmd(0x01);        //清屏
  30   1              write_cmd(0x90);    //数据指针设置
  31   1      }
  32          
  33          void write_cmd(uchar cmd_data)
  34          {
  35   1              rs=0;
  36   1              IO=cmd_data;    delay(1);          //P2为数据口
  37   1              en=1;   delay(1);
  38   1              en=0;
  39   1      }
  40          
  41          void write_data(uchar data1)
  42          {
  43   1              rs=1;
  44   1              IO=data1;       delay(1);         //P2为数据口
  45   1              en=1;   delay(1);
  46   1              en=0;
  47   1      }
  48          void display_1602(uchar num_char,uchar line,uchar address,uchar data1)
  49          {
  50   1          uchar shi,ge,bai;
  51   1              if(line==1)     write_cmd(0x80+address);
  52   1              if(line==2)write_cmd(0x80+0x40+address);   
  53   1              if(num_char==1)            //显示数据
  54   1              {
  55   2                      bai=data1/100;
C51 COMPILER V8.05a   DISPLAY_1602                                                         02/13/2009 00:44:25 PAGE 2   

  56   2                      shi=data1%100/10;
  57   2                      ge=data1%10;
  58   2                      write_data(0x30+bai);
  59   2                      write_data(0x30+shi);           
  60   2                      write_data(0x30+ge);
  61   2              }
  62   1              if(num_char==0) write_data(data1);      
  63   1      }
  64          void delay(uint z)
  65          {
  66   1              uint x,y;
  67   1              for(x=z;x>0;x--)
  68   1                      for(y=50;y>0;y--);
  69   1      }
  70          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    204    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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