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

📄 main.lst

📁 单片机与4*4按键接口程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  07/19/2007 23:28:51 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <stdio.h>
   2          //#include <reg51.h>
   3          #include <absacc.h> 
   4          #include <intrins.h>
   5          #include "me.h" 
   6          #include "hzK.h"
   7          
   8          sbit WATCHDOG   = P1^1;//0xB5;  //T1
   9          sbit RUNLED     = P1^0;  //T0
  10          
  11          
  12          /***************一个10ms延时程序************************/
  13          
  14          void delay10ms(unsigned int time)
  15          {
  16   1          unsigned int i;
  17   1          unsigned int j;
  18   1          for (i=0;i<time;i++)
  19   1              for(j=0;j<1746;j++);
  20   1      }
  21          
  22          
  23          //sbit spk=P1^7;
  24          
  25          #define cmd_reset       0x0a4
  26          #define cmd_test                0x0bf
  27          #define decode0                 0x80
  28          #define decode1                 0x0c8
  29          #define cmd_read                0x15
  30          #define undecode                0x90
  31          #define rtl_cycle       0x0a3
  32          #define rtr_cycle       0x0a2
  33          #define rtl_uncyl       0x0a1
  34          #define rtr_uncyl       0x0a0
  35          #define actctl                  0x98
  36          #define segon                   0x0e0
  37          #define segoff                  0x0c0
  38          #define blinkctl                0x88
  39          
  40          /*
  41          文章编号:909----加入日期:2003-12-5 
  42           
  43          『关闭窗口』
  44           
  45          CVAVR写的关于12864的程序(ATMage8L/HD61202)(huxiangming)
  46           
  47          
  48          主程序:
  49          */
  50          /************************************************************ 
  51             LCD采用HD61202,128x64
  52             控制单片机ATMage8L 8MHz
  53             2003.12.5 huxiangming.
  54          ************************************************************/
  55          
C51 COMPILER V7.50   MAIN                                                                  07/19/2007 23:28:51 PAGE 2   

  56          //#include <mega8.h>
  57          //#include <delay.h>
  58          //#include <stdio.h>
  59          //#include "hz.h"
  60          
  61          
  62          /*LCD引脚定义 PB0-7对应LCD DB0-DB7*/
  63          
  64          sbit DI =P2^0;  // 数据\指令 选择 DI
  65          sbit RW =P2^1;  // 读\写 选择
  66          sbit E =P2^2;   // 读\写使能
  67          sbit CS1 =P2^3; // 片选1,低有效(前64列)
  68          sbit CS2 =P2^4; // 片选2,低有效(后64列)
  69          sbit RST=P2^5;  // 复位
  70          
  71          void LCD_NOP(void)
  72          {
  73   1              unsigned char i;
  74   1              for(i=0;i<50;i++); 
  75   1      }
  76          
  77          void Delay(int x)
  78          {
  79   1              int i,j;
  80   1              for(j=0;j<x;j++)
  81   1              {
  82   2                      for(i=0;i<250;i++);
  83   2              }
  84   1      }
  85          
  86          
  87          //LCD左半屏写命令字
  88          void LCD_Write_ComL(unsigned char x)
  89          { 
  90   1              LCD_NOP();
  91   1              CS1=1;  CS2=0;
  92   1              DI=0;                   //0=指令       1=数据
  93   1              RW=0;                   //0=写          1=读
  94   1              E=1;
  95   1              P0=x;
  96   1              LCD_NOP();
  97   1              E=0;
  98   1      }
  99          
 100          //LCD左半屏写数据
 101          void LCD_Write_DatL(unsigned char x)
 102          { 
 103   1              LCD_NOP();
 104   1              CS1=1;CS2=0;
 105   1              DI=1;                   //0=指令       1=数据
 106   1              RW=0;                   //0=写          1=读
 107   1              E=1;
 108   1              P0=x;
 109   1              LCD_NOP();
 110   1              E=0;                    //下降沿锁存数据
 111   1      }
 112          
 113          //LCD右半屏写命令字
 114          void LCD_Write_ComR(unsigned char x)
 115          { 
 116   1              LCD_NOP();
 117   1              CS1=0;CS2=1;
C51 COMPILER V7.50   MAIN                                                                  07/19/2007 23:28:51 PAGE 3   

 118   1              DI=0;                   //0=指令       1=数据
 119   1              RW=0;                   //0=写          1=读
 120   1              E=1;
 121   1              P0=x;
 122   1              LCD_NOP();
 123   1              E=0;
 124   1      }      
 125          
 126          //LCD右半屏写数据
 127          void LCD_Write_DatR(unsigned char x)
 128          { 
 129   1              LCD_NOP();
 130   1              CS1=0;CS2=1;    
 131   1              DI=1;                   //0=指令       1=数据
 132   1              RW=0;                   //0=写          1=读
 133   1              E=1;
 134   1              P0=x;
 135   1              LCD_NOP();
 136   1              E=0;                    //下降沿锁存数据
 137   1      }
 138          
 139          //LCD左半屏读状态
 140          unsigned char LCD_Read_StaL()
 141          { 
 142   1              unsigned char x;
 143   1              CS1=1;CS2=0;
 144   1              DI=0;                   //0=指令       1=数据
 145   1              RW=1;                   //0=写          1=读
 146   1              E=1;
 147   1              LCD_NOP();
 148   1              x=P0;
 149   1              E=0;
 150   1              return x;
 151   1      }
 152          //LCD右半屏读状态
 153          unsigned char LCD_Read_StaR()
 154          { 
 155   1              unsigned char x;
 156   1              CS1=0;CS2=1;
 157   1              DI=0;                   //0=指令       1=数据
 158   1              RW=1;                   //0=写          1=读
 159   1              E=1;
 160   1              LCD_NOP();
 161   1              x=P0;
 162   1              E=0;
 163   1              return x;
 164   1      }
 165          
 166          
 167          //LCD清屏
 168          void LCD_Clr(void)
 169          {
 170   1              unsigned char i,j;
 171   1              
 172   1              for(j=0;j<8;j++)
 173   1              {
 174   2                      LCD_Write_ComL(0xb8|j);  
 175   2                      LCD_Write_ComL(0x40);
 176   2                      LCD_Write_ComR(0xb8|j);  
 177   2                      LCD_Write_ComR(0x40);
 178   2                      for(i=0;i<64;i++)
 179   2                      {
C51 COMPILER V7.50   MAIN                                                                  07/19/2007 23:28:51 PAGE 4   

 180   3                              LCD_Write_DatL(0x00);  
 181   3                              LCD_Write_DatR(0x00); 
 182   3                      }
 183   2              }
 184   1      }
 185          
 186          //显示8x16字符,位置按8x8一个点来定  x:列坐标  y:行坐标  chrx:显示字符
 187          LCD_WrCHr8x16(unsigned char x,unsigned char y,unsigned char chrx)

⌨️ 快捷键说明

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