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

📄 test.lst

📁 液晶程序,用汇编语言编写,用于单片机开发中
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   TEST                                                                  01/27/2007 22:14:50 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE test.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REG51.H>
   2          sbit P0_0=P0^0;
   3          sbit rs = P1^0;   //H=data; L=command;
   4          sbit rw = P1^1;   //H=read; L=write;
   5          sbit  e = P1^2;   //input enable;
   6          sbit busy=P2^7;   //lcd busy bit
   7          
   8          
   9          
  10          
  11          #define com_expand_command        0x40
  12          #define base_command          0x34
  13          
  14          #define oppsite_cursor_dec    0x10
  15          #define open_display_oppsite  0x0D
  16          #define clear_screen          0x01
  17           
  18          
  19          /*------下面的这些反白指令没有什么用处!--------*/
  20          #define oppsite_first_line    0x04
  21          #define oppsite_second_line   0x05 
  22          #define oppsite_third_line    0x06
  23          #define oppsite_forth_line    0x07
  24          /*------上面的这些反白指令没有什么用处!--------*/
  25          
  26          /*-----键盘扫描码定义------------------*/
  27          #define key_down_1    14  //第一键
  28          #define key_down_2    13  //第二键
  29          #define key_down_3        11  //
  30          #define key_down_4    7   //
  31          
  32          #define k1            14
  33          #define k2            13
  34          #define K3            11
  35          #define K4             7
  36          
  37          #define OK_Down       14
  38          #define Up_Down       11
  39          #define Down_Down     7     
  40          /*-----键盘扫描码定义------------------*/
  41          
  42          
  43          
  44          /*-------------屏幕代号定义区-----------*/
  45          #define Main_menu                   4
  46          #define Wave_Choose_menu            5
  47          #define Fruequency_Choose_menu  6
  48          #define Wave_range              7
  49          
  50          #define comm  0
  51          #define dat   1
  52          #define uchar unsigned char 
  53          
  54          
  55          
C51 COMPILER V8.02   TEST                                                                  01/27/2007 22:14:50 PAGE 2   

  56          uchar code screen_data[][64]={
  57                            {
  58                             "淮北煤炭师范学院"
  59                                             "03级电子信息 2班"
  60                                             "    石玮松      "
  61                                             "    毕业设计    "},//第一屏
  62                                             ///////////////////////////
  63                                            {"                "
  64                             "                "
  65                                             " DDS信号发生器  "
  66                                             "                "},//第二屏
  67                                             //////////////////////////
  68                                            {"指导老师:  周正"
  69                             "                "
  70                                             "          候俊钦"
  71                                             "                "},//第三屏
  72                                             ////////////////////////
  73                                            {"  系统启动中    "
  74                                             "请您保护国有资产"
  75                                             "您请稍候********"
  76                                             "                "},//第四屏
  77                                             ////////////////////////
  78                                            {"波形  频率  幅度"
  79                                             "  欢迎    使用  "
  80                                             "返回        确认"
  81                                             "煤师院信号发生器"},//第五屏
  82                                             ///////////////////////
  83                                             {"正弦波    三角波"                              
  84                                                  "返回        确认"
  85                                                  "方波            "
  86                                              "煤师院信号发生器"////第六屏
  87                                                  },
  88                                             {"频率:         HZ"
  89                                                  "  欢迎    使用  "
  90                                                  "返回        确认"
  91                                                  "煤师院信号发生器"////第七屏
  92                                                  },
  93                                             {"幅度:         MV"
  94                                                  "  欢迎    使用  "
  95                                                  "返回        确认"
  96                                                  "煤师院信号发生器" ////第八屏
  97                                                  }
  98          
  99                                             };
 100          
 101          //函数声明                      
 102          void chk_busy (void);
 103          void voice_function();
 104          
 105          void Set_Oppsite_Point(uchar posituin);
 106          void Down_Down_function();
 107          void Up_Down_function();
 108          void Ok_Down_function();
 109          void Shown_Main_menu();//显示主菜单
 110          
 111          
 112          
 113          /*-----键盘变量定义--------*/
 114          unsigned char KEY_WORD;
 115          bit   KEY_DOWN;
 116          uchar Current_screen_num;
 117          uchar Currrent_Position;//保存光标所在的位置
C51 COMPILER V8.02   TEST                                                                  01/27/2007 22:14:50 PAGE 3   

 118           
 119          /*------键盘扫描也是中T0中断函数--------*/
 120          void inter_timer0() interrupt 1
 121          {
 122   1         unsigned char        b;
 123   1        TR0=0;
 124   1        P3=0xff;
 125   1        b=P3;
 126   1        b=b&0x0f;
 127   1        if(b!=15)
 128   1          {
 129   2               KEY_DOWN=1;
 130   2               KEY_WORD=b;
 131   2               voice_function();      
 132   2              }
 133   1       while(b!=15)
 134   1       {
 135   2           b=P3;
 136   2        b=b&0x0f;
 137   2       }
 138   1        TR0=1;
 139   1      
 140   1      
 141   1      }
 142          
 143          /*------发音子程序-------*/
 144           void voice_function()
 145          {
 146   1               int c,e,d;
 147   1               for(d=0;d<1;d++)
 148   1               {
 149   2      
 150   2        for (c=0;c<50;c++)
 151   2         for(e=0;e<100;e++)
 152   2          P0_0=0;
 153   2          
 154   2         for (c=0;c<50;c++)
 155   2         for(e=0;e<100;e++)
 156   2          P0_0=1;
 157   2                }
 158   1      }
 159          /*------------写LCD子程序----------*/
 160          void wr_lcd (unsigned char dat_comm,unsigned char content)
 161          {
 162   1         unsigned char i;
 163   1         
 164   1         chk_busy ();
 165   1         
 166   1        if(dat_comm)
 167   1         {
 168   2          rs=1;   //data
 169   2          rw=0;   //write
 170   2         }
 171   1        else
 172   1         {
 173   2          rs=0;   //command
 174   2          rw=0;   //write
 175   2         }
 176   1         P2=content; //本人用的上P2口输出数据
 177   1      
 178   1         e=1;
 179   1         
C51 COMPILER V8.02   TEST                                                                  01/27/2007 22:14:50 PAGE 4   

 180   1        for(i=0;i<5;i++)
 181   1        {
 182   2        ;                //这里是用来迤时间的这是我加的我
 183   2                 //是怕这个家伙太快了不会液晶反应不过来
 184   2        }
 185   1        e=0;
 186   1          
 187   1      
 188   1      }
 189          
 190          void chk_busy (void)
 191          {
 192   1        P2=0xff;
 193   1        rs=0;
 194   1        rw=1;
 195   1        e =1;
 196   1        while(busy==1);
 197   1        e =0;
 198   1      }
 199          /*--------初始化定时器----------*/
 200           void inicial_timer () {
 201   1        TMOD=0x1;
 202   1        EA=1;
 203   1        TR0=1;
 204   1        ET0=1;
 205   1       }
 206          /*------------显示一个整屏----------*/
 207           void display_all_screen (uchar screen_num)
 208           {
 209   1         uchar counter;
 210   1         wr_lcd (comm,clear_screen);//这里是写入清屏指令
 211   1         wr_lcd (comm,0x80);
 212   1         for(counter=0;counter<64;counter++)
 213   1          {
 214   2           wr_lcd (dat,screen_data[screen_num][counter]);
 215   2          }
 216   1      
 217   1       }
 218          
 219          
 220          
 221          void delay_ms(unsigned int ms)////延时毫秒级的
 222          {  unsigned int i,j;
 223   1         uchar timer;
 224   1       for(i=0;i<ms;i++)
 225   1        for(j=0;j<30;j++)
 226   1           { for(timer=10;timer>1;timer--)
 227   2                      {
 228   3                      ;
 229   3                      }
 230   2                }
 231   1      }
 232          
 233          
 234          /*------键盘响应函数----------*/
 235          void respond_key_down()
 236          {
 237   1        if(KEY_DOWN)
 238   1           {
 239   2                 KEY_DOWN=0;
 240   2            switch(KEY_WORD)
 241   2              {
C51 COMPILER V8.02   TEST                                                                  01/27/2007 22:14:50 PAGE 5   

 242   3                 case Up_Down:
 243   3                        Up_Down_function();                 
 244   3                             break;
 245   3                 case Down_Down:
 246   3                           Down_Down_function();
 247   3                           

⌨️ 快捷键说明

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