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

📄 main.lst

📁 LCD1602.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   MAIN                                                                 08/07/2007 14:58:33 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\main.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\main.lst
                    -) OBJECT(main.obj)

line level    source

   1          //*************************************************************************************************
   2          //*************************************************************************************************
   3          //**<程序名>:多功能计算器4.0正式版                                                                                                                              **
   4          //**                                                                                                                                                                                     **
   5          //**<功能>:可以进行6位数以内正整数的加减乘除运算,以及计时器和自定义倒计时功能                                  **
   6          //**                                                                                                                                                                                     **
   7          //**<版本说明>:这是最后一版,主要增加了自定义倒计时功能,增加了几个状态显示,消除了部分bug。    **
   8          //**                                                                                                                                                                                     **
   9          //**<主要改动>:新增报告字符,实现倒计时功能。                                                                                                   **
  10          //**                                                                                                                                                                                     **
  11          //**<作者>:程沛                                                                                                                                                                 **
  12          //**<完成时间>:2007年7月30日                                                                                                                                    **
  13          //**<联系方式>:superyongzhe@163.com                                                                                                                     **
  14          //*************************************************************************************************
  15          //*************************************************************************************************
  16          
  17          
  18          //*************************************************************************************************
  19          //*                                                                                                                                                                                               *
  20          //*                      ******************************头文件及宏定义**************************                           *
  21          //*                                                                                                                                                                                               *
  22          //*************************************************************************************************
  23          #include "includes.h"
  24          
  25          #define TIME0H 0xFC
  26          #define TIME0L 0x18             //定时器0溢出时间:5ms
  27          
  28          #define TIME1H 0x44
  29          #define TIME1L 0x80             //定时器1溢出时间:48ms
  30          
  31          
  32          //*************************************************************************************************
  33          //*                                                                                                                                                                                               *
  34          //*                       ********************************全局变量******************************                          *
  35          //*                                                                                                                                                                                               *
  36          //*************************************************************************************************
  37          
  38          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器0定时刷新LED计数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  39          unsigned long ul_Number=0;                      //LCD实时显示数字。
  40          
  41          unsigned char uca_ShowCustom[6]={0x88,0x83,0xC6,0xA1,0x86,0x84};
  42                                                                                  //存放自定义显示字符。
  43          
  44          unsigned char uc_DisCount=1;            //LCD时事刷新计数。
  45          
  46          bit b_ShowMode=0;                                       //显示模式标志位。
  47                                                                                  //0--数字模式,将要显示的数字赋给ul_Number便可时事显示数值,
  48                                                                                  //                              默认为数字模式;
  49                                                                                  //1--自定义模式,该模式下自定义字符显示。
  50          
  51          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器1计数刷新定时(计时模式)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  52          unsigned char uc_TimeCount=1;           //定时器1定时计数。
  53          
  54          bit b_ClockStart=0;                                     //定时器1显示计数标志位。
C51 COMPILER V8.05a   MAIN                                                                 08/07/2007 14:58:33 PAGE 2   

  55          
  56          extern bit b_ClockOppose;                       //TimeOppose.c
  57          
  58          extern unsigned long ul_ClockOppose;
  59          
  60          
  61          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<防抖动标志>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  62          
  63          bit b_KeyShock=0;                                       //键盘防抖动标志位。
  64                                                                                  //当按键中断产生时,首先判断此位。
  65                                                                                  //0--执行键盘扫描及键码处理程序;1--不执行。
  66          
  67          bit b_KillShock=0;                                      //防抖标志清除位:0--不清除;1--清除。
  68          
  69          unsigned char uc_KillCount=1;           //抖动标志清除计数,使用定时器1。
  70          
  71          
  72          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<LCD闪烁显示报告>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  73          bit b_LCDClean=0;                                         //通过设置b_LCDClean为1便可启动延时清空LCD显示。
  74          
  75          unsigned char uc_CleanCount=1;            //延迟时间可在T1中断中设定。
  76          
  77          
  78          unsigned char uc_ReportSymbol;
  79          
  80          bit b_ReportFlash=0;
  81          
  82          unsigned char uca_FlashBlank[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
  83          
  84          
  85          //*************************************************************************************************
  86          //*                                                                                                                                                                                               *
  87          //*                       ********************************主函数******************************                            *
  88          //*                                                                                                                                                                                               *
  89          //*************************************************************************************************
  90          void main()
  91          {
  92   1              P2=0x0F;                  //初始化键盘接口。
  93   1      
  94   1              TMOD=0x11;                //定时器0:模式一;定时器0:模式一.
  95   1      
  96   1      
  97   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器0,用于LCD刷新>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  98   1              TH0=TIME0H;
  99   1              TL0=TIME0L;
 100   1              TR0=1;                   //开启定时器0
 101   1              ET0=1;                   //开定时器0中断
 102   1      
 103   1      
 104   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器1,用于1s计时 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 105   1              TH1=TIME1H;
 106   1              TL1=TIME1L;
 107   1              TR1=1;                   //开启定时器1
 108   1              ET1=1;                   //开定时器1中断
 109   1      
 110   1      
 111   1      //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<外部中断0,用于执行键盘扫描和键处理程序>>>>>>>>>>>>>>>>>>>>>>>>>>>
 112   1              IT0=1;                   //外部中断0,中断方式:下降沿
 113   1              EX0=1;                   //开启外部中断0
 114   1      
 115   1              PT0=1;                   //把定时器0溢出中断设为高优先级。
 116   1      
C51 COMPILER V8.05a   MAIN                                                                 08/07/2007 14:58:33 PAGE 3   

 117   1              EA=1;                    //开启总中断
 118   1      
 119   1              while(1);
 120   1      }
 121          
 122          
 123          
 124          //*************************************************************************************************
 125          //*                                                                                                                                                                                               *
 126          //*             ***************************外部中断0,调用键盘扫描程序*************************                   *
 127          //*                                                                                                                                                                                               *
 128          //*************************************************************************************************
 129          void vINT0(void) interrupt 0
 130          {
 131   1              EX0=0;                                                  //在键扫描处理时,关闭外部中断0,防抖动。
 132   1      
 133   1              if(b_KeyShock==0)
 134   1                      {
 135   2                      vKeyProcess(ucKeyScan());       //当判断有按键按下时,扫描键盘,并把扫描结果进行处理。
 136   2                      b_KeyShock=1;                                   //设置防抖动标志。
 137   2                      }
 138   1              else b_KeyShock=0;                              //如果有抖动则不执行键扫描,恢复防抖动标志。
 139   1      

⌨️ 快捷键说明

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