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

📄 1602-miaobiao.lst

📁 2010年新增TX-1C程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   1602_MIAOBIAO                                                         06/29/2010 13:14:05 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 1602_MIAOBIAO
OBJECT MODULE PLACED IN 1602-miaobiao.OBJ
COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE 1602-miaobiao.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***************************************************************
   2                                                  “天祥电子”            倾情奉献
   3                                                                  www.txmcu.com
   4                                                                  www.txmcu.cn
   5          *****************************************************************
   6          ******************************************************************
   7          * 工作芯片:STC89C516      晶振频率:11.0592MHz                         *
   8          *                                                                       *
   9          * 作者: 郭天祥 (Email: txmcu@163.com)                                  *
  10          * 网站: www.tx-power.com(天祥电子)                                     *
  11          * 邮箱: txmcu@163.com                                                  *
  12          *                                                                       *
  13          *【版权】Copyright(C)天祥电子 www.tx-power.com  All Rights Reserved     *
  14          *【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!             *
  15          *                                                                       *
  16          *************************************************************************
  17          *                                                                       *
  18          * 描述:                                                                *
  19          *                                                                       *
  20          *   上电后液晶屏先显示网站等信息,接着按下S4,定时开始,再次按下        *
  21          *                                                                       *
  22          *   S4暂停,第3次按下显示累积计时,第4次按下暂停计时,任何时候按下S5*
  23          *                                                                       *
  24          *   计数清零。                                                              *
  25          *                                                                                                       *
  26          *                                                                       *
  27          ************************************************************************/
  28          
  29          #include <reg51.h>
  30          #include <intrins.h>
  31          
  32          #define uchar unsigned char
  33          #define uint  unsigned int
  34          
  35          uchar KeyCount=0;
  36          
  37          sbit  K3 = P3^6;
  38          sbit  K4 = P3^7;
  39          
  40          sbit BEEP = P2^3;          //蜂鸣器
  41          
  42          uchar code  cdis1[ ] = {"  STOPWATCH  0  "};
  43          uchar code  cdis2[ ] = {"www.tx-power.com"};
  44          uchar code  cdis3[ ] = {"TIME            "};
  45          
  46          uchar code  cdis4[ ] = {" BEGIN COUNT  1 "};
  47          uchar code  cdis5[ ] = {" PAUSE COUNT  2 "};
  48          uchar code  cdis6[ ] = {" BEGIN COUNT  3 "};
  49          uchar code  cdis7[ ] = {" PAUSE COUNT  4 "};
  50          uchar code  cdis8[ ] = {"                "};
  51          
  52          sbit LCD_RS = P3^5;             
  53          //sbit LCD_RW = P2^1;
  54          sbit LCD_EN = P3^4;
  55          
C51 COMPILER V8.02   1602_MIAOBIAO                                                         06/29/2010 13:14:05 PAGE 2   

  56          #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
  57          
  58          uchar display[] =  {0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  59          uchar display2[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  60          
  61          /*********************************************************
  62           延时函数
  63          *********************************************************/
  64          
  65          void Delay(uint num)//延时函数
  66          {
  67   1        while( --num );
  68   1      }
  69          
  70          /*********************************************************
  71           蜂鸣器响一声                                           
  72          **********************************************************/
  73          void beep()
  74          {
  75   1          unsigned char y;
  76   1          for (y=0;y<180;y++)
  77   1          {
  78   2            BEEP=!BEEP;                //BEEP取反
  79   2                Delay(70);
  80   2          } 
  81   1          BEEP=1;                      //关闭蜂鸣器
  82   1      }
  83          
  84          /*********************************************************
  85           延时函数1
  86          *********************************************************/
  87          void delay1(int ms)
  88          {
  89   1         unsigned char n;
  90   1         while(ms--)
  91   1         {
  92   2           for(n = 0; n<250; n++)
  93   2          {
  94   3            _nop_();
  95   3            _nop_();
  96   3            _nop_();
  97   3            _nop_();
  98   3          }
  99   2         }
 100   1      }
 101          
 102          /**********************************************************
 103          *                                                         *
 104          * 检查LCD忙状态                                           *
 105          * lcd_busy为1时,忙,等待。                               *
 106          * lcd-busy为0时,闲,可写指令与数据。                      *
 107          *                                                         *
 108          **********************************************************/ 
 109          bit lcd_busy()
 110           {                          
 111   1          bit result;
 112   1          LCD_RS = 0;
 113   1       //   LCD_RW = 1;
 114   1          LCD_EN = 1;
 115   1          delayNOP();
 116   1          result = (bit)(P0&0x80);
 117   1          LCD_EN = 0;
C51 COMPILER V8.02   1602_MIAOBIAO                                                         06/29/2010 13:14:05 PAGE 3   

 118   1          return(result); 
 119   1       }
 120          
 121          /**********************************************************
 122          *                                                         *
 123          *写指令数据到LCD                                          *
 124          *RS=L,RW=L,E=高脉冲,D0-D7=指令码。                     *
 125          *                                                         *
 126          **********************************************************/
 127          void lcd_wcmd(uchar cmd)
 128          {                          
 129   1      //   while(lcd_busy());
 130   1          LCD_RS = 0;
 131   1      //    LCD_RW = 0;
 132   1          LCD_EN = 0;
 133   1          _nop_();
 134   1          _nop_(); 
 135   1          P0 = cmd;
 136   1          delayNOP();
 137   1          LCD_EN = 1;
 138   1          delayNOP();
 139   1          LCD_EN = 0; 
 140   1          Delay(10);
 141   1      }
 142          
 143          /**********************************************************
 144          *                                                         *
 145          *写显示数据到LCD                                          *
 146          *RS=H,RW=L,E=高脉冲,D0-D7=数据。                       *
 147          *                                                         *
 148          **********************************************************/
 149          void lcd_wdat(uchar dat)
 150          {                          
 151   1      //   while(lcd_busy());
 152   1          LCD_RS = 1;
 153   1      //    LCD_RW = 0;
 154   1          LCD_EN = 0;
 155   1          P0 = dat;
 156   1          delayNOP();
 157   1          LCD_EN = 1;
 158   1          delayNOP();
 159   1          LCD_EN = 0; 
 160   1          Delay(10);
 161   1      }
 162          
 163          /**********************************************************
 164          *                                                         *
 165          *  LCD初始化设定                                          *
 166          *                                                         *
 167          **********************************************************/
 168          void lcd_init()
 169          { 
 170   1          delay1(15);   
 171   1          lcd_wcmd(0x01);      //清除LCD的显示内容            
 172   1          lcd_wcmd(0x38);      //16*2显示,5*7点阵,8位数据
 173   1          delay1(5);
 174   1          lcd_wcmd(0x38);         
 175   1          delay1(5);
 176   1          lcd_wcmd(0x38);         
 177   1          delay1(5);
 178   1      
 179   1          lcd_wcmd(0x0c);      //开显示,不显示光标  
C51 COMPILER V8.02   1602_MIAOBIAO                                                         06/29/2010 13:14:05 PAGE 4   

 180   1          delay1(5);
 181   1      
 182   1          lcd_wcmd(0x01);      //清除LCD的显示内容
 183   1          delay1(5);
 184   1      }
 185          
 186          /**********************************************************

⌨️ 快捷键说明

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