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

📄 main.lst

📁 驱动15X20D液晶屏
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   MAIN                                                                  04/03/2008 10:27:52 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\setup\keil\C51\BIN\C51.EXE main.c LARGE DEBUG OBJECTEXTEND

line level    source

   1          /************************** ************************************************
   2          Copyright (c) HUST ESRI 1999-2007. All Rights Reserved.
   3          文件名:        main.c
   4          
   5          摘要:LCD测试程序(RTX51 FULL)
   6          作者:  turtle
   7          完成日期:      2008.03.28
   8          
   9          源版本:        
  10          **************************************************************************/
  11          
  12          #include "inc\ConstDef.h"       //硬件相关常数定义
  13          #include "inc\main.h"   //硬件相关常数定义
  14          uchar temp;
  15          void main (void)
  16          {
  17   1              
  18   1      //=========系统初始化
  19   1          WDTCN     = 0xDE;
  20   1          WDTCN     = 0xAD;   //关闭看门狗
  21   1      
  22   1              SysClkInit();           //初始化系统时钟
  23   1              PortInit();                     //初始化GPIO和交叉开关
  24   1              DelayL(10);
  25   1      //=========外设与变量初始化
  26   1      
  27   1              P7 = 0x00;                      //打开指示灯
  28   1              
  29   1              LCD_Reset();
  30   1              lcd_initial();
  31   1              lcd_clear();
  32   1              lcd_regwrite(0x00,0xcD);//打开屏
  33   1              temp=lcd_regread(0x00);
  34   1              SetXY(4,24);
  35   1              lcd_datawrite(0xD1);
  36   1              lcd_datawrite(0xEE);
  37   1              DelayS(1);
  38   1              SetXY(4,56);
  39   1              lcd_datawrite(0xE8);
  40   1              lcd_datawrite(0xAF);
  41   1              DelayS(1);
  42   1              SetXY(4,88);
  43   1              lcd_datawrite(0xE8);
  44   1              lcd_datawrite(0xAF);
  45   1      
  46   1      
  47   1      
  48   1      /*      lcd_regwrite(0x00,0xc5);
  49   1              DelayS(1);
  50   1              lcd_photo(tab2);
  51   1      */       
  52   1              while(1)
  53   1              {
  54   2                    if(INT2==0)
  55   2                 {
C51 COMPILER V7.20   MAIN                                                                  04/03/2008 10:27:52 PAGE 2   

  56   3      
  57   3                               DelayS(200);
  58   3      
  59   3                                  if(INT2==0)
  60   3                                      
  61   3                                      {
  62   4                                      temp=0;
  63   4                     
  64   4                              while(INT2==0)
  65   4                              {
  66   5                               temp=1;
  67   5                              }
  68   4                        
  69   4                         // MouseUp();//按键释放时候的操作
  70   4                        
  71   4                             
  72   4                                 }
  73   3                   }
  74   2      
  75   2              }
  76   1      }
  77          
  78          
  79          // ===============================================================
  80          //                      子函数
  81          // ===============================================================
  82          /*-------------------------------------------------------------------
  83          * 功能: 长时间延时
  84          * 调用: NULL
  85          * 输入: NULL
  86          * 返回: NULL
  87          * 说明: 长时间延时,工作在11.0592M时,此函数近似延时28ms
  88          -------------------------------------------------------------------*/
  89          void DelayL(uchar Time)
  90          {
  91   1              uchar i,j,k;
  92   1              while(Time--)
  93   1              {
  94   2                      for(k=0; k<CLK_BASE; k++)
  95   2                              for(j=0; j<100; j++)
  96   2                                      for(i=0; i<100; i++)
  97   2                                              _nop_();
  98   2              }
  99   1      }
 100           
 101          /*-------------------------------------------------------------------
 102          * 功能: 短时间延时
 103          * 调用: NULL
 104          * 输入: NULL
 105          * 返回: NULL
 106          * 说明: 工作在11.0592M时,此函数近似延时0.11ms
 107          -------------------------------------------------------------------*/
 108          void DelayS(uchar Time)
 109          {
 110   1              uchar i;
 111   1              while(Time--)
 112   1              {
 113   2                      for(i=0; i<250; i++)
 114   2                              {_nop_(); _nop_(); _nop_(); _nop_(); _nop_();}
 115   2              }
 116   1      }
 117          
C51 COMPILER V7.20   MAIN                                                                  04/03/2008 10:27:52 PAGE 3   

 118          /*-------------------------------------------------------------------
 119          * 功能: 系统时钟初始化
 120          * 调用: NULL
 121          * 输入: NULL
 122          * 返回: NULL
 123          * 说明: 切换至11.0592M外部晶振
 124          -------------------------------------------------------------------*/
 125          void SysClkInit (void)
 126          {
 127   1              int i;
 128   1              OSCXCN = 0x67;                          // 使用22MHz的外部晶振
 129   1              for(i=0; i<3000; i++);          // 延时,等待外部晶振起振
 130   1              while(!(OSCXCN&0x80));          // 等待外部晶振起振完成
 131   1              OSCICN = 0x08;                          // 启用外部晶振,启用时钟丢失检测器
 132   1      }
 133          
 134          /*-------------------------------------------------------------------
 135          * 功能: C8051端口初始化
 136          * 调用: NULL
 137          * 输入: NULL
 138          * 返回: NULL
 139          * 说明: 配置各端口输入输出状态。如非必要,关闭不相关端口的弱上拉
 140          -------------------------------------------------------------------*/
 141          void PortInit (void)
 142          {
 143   1              XBR0 = 0x07;            //允许SMBus、UART0、SPI0
 144   1              XBR2 = 0x46;            //允许交叉开关和弱上拉,允许UART1
 145   1      
 146   1          P0MDOUT = 0x1D; // Output configuration for P0 
 147   1          P1MDOUT = 0xF9; // Output configuration for P1 
 148   1          P2MDOUT = 0x0D; // Output configuration for P2 
 149   1          P3MDOUT = 0xFF; // Output configuration for P3 
 150   1          P74OUT = 0xF3;  // Output configuration for P4-7
 151   1      
 152   1          P1MDIN = 0xFF;  // Input configuration for P1
 153   1      }
 154          /*-------------------------------------------------------------------
 155          * 功能: 液晶屏的相关程序
 156          * 调用: NULL
 157          * 输入: NULL
 158          * 返回: NULL
 159          * 说明: 对LCD的寄存器和DDRAM
 160          -------------------------------------------------------------------*/
 161          void lcd_regwr(uchar regnada) 

⌨️ 快捷键说明

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