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

📄 超声波.lst

📁 超声波的发射和接收
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   __声瞋                                                                12/20/2007 18:29:07 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE __声瞋
OBJECT MODULE PLACED IN 超声波.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 超声波.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /***********************************************************************************/
   2          /*  LCD(HS12864图形点阵液晶KS0108B控制器)底层驱动程序                              */
   3          /*  LCD接线见LCD.H定义,                                                           */                     
             -          
   4          /*  版本:V 1.0                                                                    */
   5          /*  浙江天煌科技实业有限公司                                                       */
   6          /***********************************************************************************/
   7          
   8          #include <At89x52.h>
   9          #include <stdio.h>
  10          #include <string.h>
  11          #include "lcd.h"
  12          
  13           typedef struct typFNT_Char     //------字符字模显示数据结构------
  14          {
  15             char Index_Char[1];
  16             char Msk_Char[16];
  17          };
  18          struct typFNT_Char code ASC_16[] = {//-----显示为8*16-----
  19             // MingLiu体
  20             "0",0x00,0xF0,0x08,0x04,0xC4,0x28,0xF0,0x00,0x00,0x0F,0x14,0x23,0x20,0x10,0x0F,0x00,
  21             "1",0x00,0x00,0x00,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,
  22             "2",0x00,0x18,0x04,0x04,0x04,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
  23             "3",0x00,0x08,0x04,0x84,0xC4,0x38,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x11,0x0E,0x00,
  24             "4",0x00,0x00,0x80,0x60,0x18,0xFC,0x00,0x00,0x00,0x06,0x05,0x04,0x04,0x3F,0x04,0x00,
  25             "5",0x00,0x00,0x7C,0x44,0x44,0x84,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x10,0x0F,0x00,
  26             "6",0x00,0xE0,0x90,0x48,0x44,0x84,0x04,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
  27             "7",0x00,0x1C,0x04,0x04,0x04,0xE4,0x1C,0x00,0x00,0x00,0x00,0x38,0x07,0x00,0x00,0x00,
  28             "8",0x00,0x30,0x48,0x84,0x84,0x48,0x30,0x00,0x00,0x0E,0x11,0x20,0x20,0x11,0x0E,0x00,
  29             "9",0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,0x00,0x20,0x21,0x22,0x12,0x09,0x07,0x00,
  30             ".",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
  31             ":",0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
  32             "N",0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,
  33             "o",0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,
  34          
  35          
  36          
  37           }; 
  38           
  39           typedef struct typFNT_GB16     //------字符字模显示数据结构------
  40          {
  41             char Index_GB16[2];
  42             char Msk_GB16[32];
  43          };
  44          struct typFNT_GB16 code GB_16[] = { // 显示16*16
  45          // 楷体_GB2312
  46          "经",0x00,0x60,0x50,0xC8,0x46,0x30,0x80,0x88,0x48,0x24,0x14,0x4C,0x80,0x00,0x00,0x00,0x00,0x12,0x13,0x0A,0
             -x09,0x24,0x20,0x22,0x22,0x1E,0x11,0x11,0x10,0x10,0x00,0x00,
  47          "纬",0x00,0x30,0xA8,0x66,0xB0,0x88,0x00,0x48,0xFF,0xA4,0xA4,0xA4,0x80,0x00,0x00,0x00,0x00,0x09,0x05,0x05,0
             -x02,0x00,0x01,0x01,0x7F,0x00,0x04,0x08,0x07,0x00,0x00,0x00,
  48          "度",0x00,0x00,0x00,0xF8,0x08,0x28,0xF8,0xA9,0xA6,0x7C,0x14,0x14,0x00,0x00,0x00,0x00,0x20,0x18,0x06,0x21,0
             -x20,0x22,0x16,0x0A,0x09,0x17,0x30,0x20,0x20,0x20,0x20,0x00,
  49          "速",0x80,0x80,0x44,0xC8,0x00,0xC0,0x48,0x48,0xFF,0xA4,0xA4,0x60,0x00,0x00,0x00,0x00,0x10,0x10,0x13,0x1C,0
             -x10,0x18,0x15,0x23,0x3F,0x20,0x62,0x64,0x20,0x20,0x20,0x00,
  50          "时",0x00,0xF8,0x48,0x44,0xFC,0x00,0xA0,0x20,0x20,0x20,0xFE,0x10,0x10,0x10,0x00,0x00,0x00,0x0F,0x04,0x04,0
C51 COMPILER V7.06   __声瞋                                                                12/20/2007 18:29:07 PAGE 2   

             -x0F,0x00,0x00,0x01,0x10,0x20,0x3F,0x00,0x00,0x00,0x00,0x00,
  51          "间",0x00,0x00,0xF8,0x02,0x04,0xE0,0xA4,0x14,0xF4,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0
             -x00,0x07,0x02,0x02,0x07,0x00,0x10,0x20,0x1F,0x00,0x00,0x00,
  52          ":",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x33,0
             -x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  53          };
  54          
  55          
  56          /*--------函数列表-------*/
  57          /*-----状态检查-----*/
  58          void Check_Busy(void)
  59          {
  60   1         uchar dat;
  61   1         DI=0;
  62   1         RW=1;
  63   1         do{
  64   2            DataPort=0x00;
  65   2            EN=1; 
  66   2            dat=DataPort;
  67   2            EN=0;
  68   2            dat=0x80 & dat;       //仅当第7位为0时才可操作(判别busy信号)
  69   2            }while(!(dat==0x00));
  70   1      }
  71          
  72          /*-----向LCD发送命令------*/
  73          void Writ_Comd(uchar command)
  74          {
  75   1         Check_Busy();
  76   1         RW=0;DI=0;
  77   1         DataPort=command;
  78   1         EN=1; EN=0;
  79   1      }
  80          
  81          /*-----写显示数据------*/
  82          void Write_Dat(uchar dat)
  83          {
  84   1         Check_Busy();
  85   1         RW=0;DI=1;
  86   1         DataPort=dat;
  87   1         EN=1; EN=0;
  88   1        }
  89          
  90          /*------设定行地址(页)--X 0-7------*/
  91          void Set_Line(uchar line)
  92          {
  93   1        line=line & 0x07;    // 0<=line<=7
  94   1        line=line|0xb8;      //1011 1xxx
  95   1        Writ_Comd(line);
  96   1      }
  97          
  98          /*------设定列地址--Y 0-63-----*/
  99          void Set_Column(uchar column)
 100          {
 101   1        column=column & 0x3f;    // 0=<column<=63
 102   1        column=column | 0x40;    // 01xx xxxx
 103   1        Writ_Comd(column);
 104   1      }
 105          
 106          /*-----设定显示开始行--XX-----*/
 107          void Set_StartLine(uchar startline) //0--63
 108          {
 109   1        startline=startline & 0x07;
C51 COMPILER V7.06   __声瞋                                                                12/20/2007 18:29:07 PAGE 3   

 110   1        startline=startline | 0xc0;     //1100 0000
 111   1        Writ_Comd(startline);
 112   1       }
 113          
 114          /*-----开关显示-----ONOFF=1:ON;ONOFF=0:OFF-----*/
 115          void Set_OnOff(uchar onoff)
 116          {
 117   1      onoff=0x3e | onoff; //0011 111x
 118   1      Writ_Comd(onoff);
 119   1      }
 120          
 121          /*------选择屏幕:screen: 0-全屏,1-左屏,2-右屏-----*/
 122          void Select_Screen(uchar screen)
 123          { 
 124   1         switch(screen)
 125   1         { case 0: cs1=1;
 126   2                   cs2=1; 
 127   2                   break; 
 128   2           case 1: cs1=1;
 129   2                   cs2=0;
 130   2                   break;
 131   2           case 2: cs1=0;
 132   2                   cs2=1;
 133   2                   break;
 134   2         }
 135   1      }
 136          
 137          /*-----清屏:screen: 0-全屏,1-左屏,2-右-----*/
 138          void LCD_Clr(uchar screen)
 139          { unsigned char i,j;
 140   1        Select_Screen(screen);
 141   1        for(i=0;i<8;i++)
 142   1            {Set_Line(i);
 143   2                for(j=0;j<128;j++)
 144   2                   { Write_Dat(0x00); }
 145   2            }                                  
 146   1      }
 147          
 148          /*-----初始化LCD------*/

⌨️ 快捷键说明

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