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

📄 按键12864显示.lst

📁 51实例大全
💻 LST
字号:
C51 COMPILER V7.06   __键12864_允_                                                         06/14/2010 17:16:33 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE __键12864_允_
OBJECT MODULE PLACED IN .\obj\按键12864显示.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 按键12864显示.c BROWSE DEBUG OBJECTEXTEND PRINT(.\obj\按键12864显示.lst) OB
                    -JECT(.\obj\按键12864显示.obj)

stmt level    source

   1          /*-----------------------------------------------
   2            名称:按键测试单个菜单显示
   3            论坛:www.doflye.net
   4            编写:shifang
   5            日期:2009.5
   6            修改:无
   7            内容:单个菜单,多页显示,不带子菜单
   8          ------------------------------------------------*/
   9          #include <reg52.h>
  10          #include <intrins.h>
  11          #include "delay.h"
  12          
  13          sbit RS = P2^4;
  14          sbit RW = P2^5;
  15          sbit E  = P2^6;
  16          sbit RES = P2^3;
  17          sbit PSB = P2^1;
  18          sbit PAUSE = P3^0;
  19          
  20          #define DataPort P0        //单片机 P0<------> 液晶DB0-DB7
  21          
  22          sbit KEY_ADD=P3^3;         //定义按键输入端口
  23          sbit KEY_DEC=P3^4;
  24          
  25          unsigned char curr,currold;//全局变量,当前箭头位置
  26          
  27          unsigned char code user16x16[]={ //箭头图片
  28          0x00,0x00,0x20,0x00,0x30,0x00,0x38,0x00,0x3C,0x00,0x3E,0x00,0x3F,0x00,0x3F,0x80,
  29          0x3F,0xC0,0x3F,0x80,0x3F,0x00,0x3E,0x00,0x3C,0x00,0x38,0x00,0x30,0x00,0x20,0x00,
  30          
  31          };
  32          unsigned char code *MainMenu[]=
  33          {
  34          {"  1.设置1"},
  35          {"  2.设置2"},
  36          {"  3.设置3"},
  37          {"  4.设置4"},
  38          {"  5.设置5"},
  39          {"  6.设置6"},
  40          {"  7.设置7"},
  41          {"  8.设置8"},
  42          {"  9.设置9"},
  43          {"  10. 设置10"},
  44          };
  45          /*------------------------------------------------
  46                              检测忙位
  47          ------------------------------------------------*/
  48          void Check_Busy()
  49          {  
  50   1          RS=0;
  51   1          RW=1;
  52   1          E=1;
  53   1          DataPort=0xff;
  54   1          while((DataPort&0x80)==0x80);//忙则等待
C51 COMPILER V7.06   __键12864_允_                                                         06/14/2010 17:16:33 PAGE 2   

  55   1          E=0;
  56   1      }
  57          /*------------------------------------------------
  58                             写命令
  59          ------------------------------------------------*/
  60          void Write_Cmd(unsigned char Cmd)
  61          {
  62   1              Check_Busy();
  63   1              RS=0;
  64   1              RW=0;
  65   1              E=1;
  66   1              DataPort=Cmd;
  67   1              DelayUs2x(5);
  68   1              E=0;
  69   1              DelayUs2x(5);
  70   1      }
  71          /*------------------------------------------------
  72                              写数据
  73          ------------------------------------------------*/
  74          void Write_Data(unsigned char Data)
  75          {
  76   1              Check_Busy();
  77   1              RS=1;
  78   1              RW=0;
  79   1              E=1;
  80   1              DataPort=Data;
  81   1              DelayUs2x(5);
  82   1              E=0;
  83   1              DelayUs2x(5);
  84   1      }
  85          /*------------------------------------------------
  86                             液晶屏初始化
  87          ------------------------------------------------*/
  88          void Init_ST7920()
  89          {  
  90   1         DelayMs(40);           //大于40MS的延时程序
  91   1         PSB=1;                 //设置为8BIT并口工作模式
  92   1         DelayMs(1);            //延时
  93   1         RES=0;                 //复位
  94   1         DelayMs(1);            //延时
  95   1         RES=1;                 //复位置高
  96   1         DelayMs(10);
  97   1         Write_Cmd(0x30);       //选择基本指令集
  98   1         DelayUs2x(50);         //延时大于100us
  99   1         Write_Cmd(0x30);       //选择8bit数据流
 100   1         DelayUs2x(20);         //延时大于37us
 101   1         Write_Cmd(0x0c);       //开显示(无游标、不反白)
 102   1         DelayUs2x(50);         //延时大于100us
 103   1         Write_Cmd(0x01);       //清除显示,并且设定地址指针为00H
 104   1         DelayMs(15);           //延时大于10ms
 105   1         Write_Cmd(0x06);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位,光标从右向左加1

⌨️ 快捷键说明

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