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

📄 hx8303_b.lst

📁 C8051F单片机应用和液晶显示器编程的例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.05   HX8303_B                                                              09/11/2005 18:32:58 PAGE 1   


C51 COMPILER V7.05, COMPILATION OF MODULE HX8303_B
OBJECT MODULE PLACED IN HX8303_B.OBJ
COMPILER INVOKED BY: C:\Program Files\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe HX8303_B.c DB OE

stmt level    source

   1          //-----------------------------------------------------------------------------
   2          // Copyright (C) 2004 Silicon Laboratories, Inc.
   3          //
   4          // AUTH: JS
   5          // DATE: 03 JUL 02
   6          //
   7          // This program flashes the green LED on the C8051F31x target board about 
   8          // five times a second using the interrupt handler for Timer2.
   9          //
  10          // Target: C8051F31x
  11          //
  12          // Tool chain: KEIL Eval 'c'
  13          //
  14          
  15          //-----------------------------------------------------------------------------
  16          // Includes
  17          //-----------------------------------------------------------------------------
  18          //OSC=24.5MHz
  19          /* 
  20          ;                                C8051F310
  21          ;            KEY5    P0.1       1|---=---|32 P0.2 XTAL1
  22          ;            KEY6    P0.0       2|       |31 P0.3 XTAL2
  23          ;            GND                3|       |30 P0.4 KEY1
  24          ;            VDD                4|       |29 P0.5 KEY2
  25          ;            /RST/C2ACK         5|       |28 P0.6 CNVSTR KEY3
  26          ;            KEY7    P3.0(C2D)  6|       |27 P0.7 KEY4
  27          ;            CS2     P3.1       7|       |26 P1.0 D0
  28          ;            CS1     P3.2       8|       |25 P1.1 D1
  29          ;            RD      P3.3       9|       |24 P1.2 D2
  30          ;            WR      P3.4      10|       |23 P1.3 D3
  31          ;            RS      P2.7      11|       |22 P1.4 D4
  32          ;            MR_B    P2.6      12|       |21 P1.5 D5
  33          ;            MWE     P2.5      13|       |20 P1.6 D6
  34          ;            MRE     P2.4      14|       |19 P1.7 D7
  35          ;            MALE    P2.3      15|       |18 P2.0 LP
  36          ;            MCLE    P2.2      16|-------|17 P2.1 MCE
  37          ;              
  38          */
  39          //=============================
  40          #include <c8051f310.h>
  41          
  42          //=============================
  43          
  44          #define uchar unsigned char
  45          #define uint unsigned int
  46          //=============================
  47          uchar xdata buffer[513];     //开辟页缓存数组
  48          uchar *pointer;              //建立数组指针
  49          uchar raddrl; uchar raddrh;  //页寻址的高、低位
  50          uchar mydata;                //数据
  51          //=============================
  52          sbit         KEY3  =P0^6;    //fr
  53          sbit         KEY4  =P0^7;    //-
  54          sbit         KEY2  =P0^5;    //+
  55          sbit         KEY7  =P3^0;    //no step
C51 COMPILER V7.05   HX8303_B                                                              09/11/2005 18:32:58 PAGE 2   

  56          sbit         KEY1  =P0^4;    //step
  57          sbit           RD  =P3^3;
  58          sbit           RS  =P2^7;
  59          sbit           WR  =P3^4;
  60          sbit          MR_B =P2^6;
  61          sbit          MWE  =P2^5;
  62          sbit          MRE  =P2^4;
  63          sbit          MALE =P2^3;
  64          sbit          MCLE =P2^2;
  65          sbit          MCE  =P2^1; 
  66          sbit              CS1  =P3^2; 
  67          sbit          LP   =P2^0;
  68          //================
  69          sbit    LED  =P0^0;
  70          //=================
  71          uchar autorun0,data_out;
  72          uint ii,jj,kk,wait_value,aa,bb,cc;
  73          int otp_value;
  74          //========write instruction===========================================
  75          void wr_com8080(uchar x)
  76          {
  77   1        RS=0;RD=1;WR=1;WR=1;WR=1;P1=x;P1=x;P1=x;WR=0;WR=0;WR=0;WR=0;WR=1;WR=1;WR=1;
  78   1        P1=0xff;
  79   1      }
  80          void wr_com8080_16(uchar XH,XL)
  81          {
  82   1        RS=0;
  83   1        RD=1;
  84   1        LP=1;
  85   1        WR=1;WR=1;WR=1;
  86   1        P1=XH;P1=XH;
  87   1        LP=0;
  88   1        LP=0;
  89   1        P1=XL;P1=XL;
  90   1        WR=0;WR=0;WR=0;WR=0;
  91   1        WR=1;WR=1;WR=1;
  92   1        P1=0xff;
  93   1      }
  94          //=====write display data==================================================
  95          void wr_data8080(uchar x)
  96          {
  97   1       RS=1;WR=1;WR=1;WR=1;RD=1;P1=x;P1=x;P1=x; WR=0; WR=0; WR=0;WR=0;WR=1;WR=1;WR=1;
  98   1       P1=0xff;
  99   1      }
 100          void wr_data8080_16(uchar XH,XL)
 101          {
 102   1       RS=1;
 103   1       RD=1;
 104   1       LP=1;
 105   1       WR=1;WR=1;WR=1;
 106   1       P1=XH;P1=XH;
 107   1       LP=0;
 108   1       LP=0;
 109   1       P1=XL;P1=XL;
 110   1       WR=0; WR=0; WR=0;WR=0;
 111   1       WR=1;WR=1;WR=1;
 112   1       P1=0xff;
 113   1      }
 114          //=========================================================
 115          void coordinate(uchar col,page)
 116          {
 117   1           //RAM Address Set (R21h)
C51 COMPILER V7.05   HX8303_B                                                              09/11/2005 18:32:58 PAGE 3   

 118   1           wr_com8080_16(0x00,0x21);
 119   1           wr_data8080_16(page,col);
 120   1      }
 121          //=========delay without key==========================================
 122          void DelayX1ms(uchar count)
 123          {
 124   1       uchar i,j,k;
 125   1       for(i=0;i<count;i++)
 126   1        for(j=0;j<40;j++)
 127   1         for(k=0;k<120;k++)
 128   1          {
 129   2           ;
 130   2          }
 131   1      }
 132          //=====================================================================
 133          void DelayX10ms(uint count)
 134          {
 135   1       uint i,j,k;
 136   1       for(i=0;i<count;i++)
 137   1        for(j=0;j<10;j++)
 138   1         for(k=0;k<120;k++)
 139   1          {
 140   2           ;
 141   2          }
 142   1      }
 143          //====================================================================
 144          void Delay50us(uchar count)
 145          {
 146   1       uchar i,j;
 147   1       for(j=0;j<count;j++)
 148   1         for(i=0;i<6;i++)
 149   1         {
 150   2          ;
 151   2          }
 152   1      }
 153          //=======================================================================
 154          void key_wait(uint count)
 155          {
 156   1       uint i,j,k;
 157   1       if(autorun0==0)
 158   1        {
 159   2         for(i=0;i<count;i++)
 160   2         for(j=0;j<10;j++)
 161   2         for(k=0;k<20;k++)
 162   2          {
 163   3           if(KEY1!=1)
 164   3            {
 165   4              autorun0=1;
 166   4              goto next;
 167   4            }
 168   3           //==========================
 169   3           if(KEY7==0)
 170   3           {
 171   4            while(KEY7==0)
 172   4                {
 173   5                 ;
 174   5                }
 175   4            kk=1000;
 176   4                while(KEY7==0)
 177   4                {
 178   5                 ;
 179   5                }
C51 COMPILER V7.05   HX8303_B                                                              09/11/2005 18:32:58 PAGE 4   

 180   4            goto next; 
 181   4               }
 182   3          //==========================
 183   3              if(KEY3==0)
 184   3           {
 185   4                while(KEY3==0)
 186   4                {
 187   5                ;
 188   5                }
 189   4                DelayX10ms(25);
 190   4                while(KEY3==0)
 191   4                {
 192   5                ;
 193   5                }
 194   4                if(wait_value==40)
 195   4                 wait_value=70;
 196   4            else if(wait_value==70)
 197   4                 wait_value=110;
 198   4            else if(wait_value==110)
 199   4                 wait_value=180;
 200   4            else 
 201   4                 wait_value=40;
 202   4           goto next;  
 203   4           }
 204   3          }
 205   2        }
 206   1       else
 207   1        {
 208   2         while(1)
 209   2          {
 210   3           if(KEY1!=1)
 211   3            {
 212   4             for(i=0;i<100;i++)
 213   4             for(j=0;j<100;j++)
 214   4               {
 215   5                  ;
 216   5               }
 217   4             goto next;
 218   4             }
 219   3           //==============================
 220   3           if(KEY7!=1)
 221   3           {
 222   4            while(KEY7!=1)
 223   4                {
 224   5                 ;
 225   5                }
 226   4            kk=1000;
 227   4            goto next; 
 228   4               }
 229   3          //==========================
 230   3              DelayX10ms(25);
 231   3           if(KEY2==0)
 232   3           {
 233   4            while(KEY2==0)
 234   4                {
 235   5                ;
 236   5                }
 237   4                /*wr_com8080(0x2a);
 238   4            otp_value=otp_value+1;
 239   4            if(otp_value==256)
 240   4              otp_value=0xff;
 241   4            wr_com8080(otp_value);*/
C51 COMPILER V7.05   HX8303_B                                                              09/11/2005 18:32:58 PAGE 5   

 242   4           }
 243   3          //==========================
 244   3          if(KEY4==0)
 245   3           {
 246   4            while(KEY4==0)
 247   4                {
 248   5                ;
 249   5                }
 250   4                /*wr_com8080(0x2a);
 251   4            otp_value=otp_value-1;
 252   4            if(otp_value==-1)

⌨️ 快捷键说明

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