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

📄 test.lst

📁 89C52单片机的底层代码,包括A/D,D/A转换,键盘,LED显示等
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   TEST                                                                  08/10/2005 00:27:29 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN TEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TEST.C OPTIMIZE(2,SPEED) BROWSE INTVECTOR(0X8000) DEFINE(monitor51) DEBUG O
                    -BJECTEXTEND

line level    source

   1          /*************************************************************************************************
   2          * PROJECT CODE:MCS_51 Experiment Board Test Program                                              *
   3          *`CREATE DATE :2004.12.20                                                                        *
   4          * CREATED BY  :Wan Wen Lue ,ChongQing Institute of Technology                                    *
   5          * MODEIFY DATE:2005.6.2                                                                          *
   6          * DOCUMENT    :None                                                                              *
   7          * OTHER       :None                                                                              *
   8          *************************************************************************************************/
   9          #include <reg51.H>
  10          #include<absacc.h>
  11          
  12          #define WR_COM XBYTE[0x4000]
  13          #define RD_STA XBYTE[0x4001]
  14          #define WR_DAT XBYTE[0x4002]
  15          #define RD_DAT XBYTE[0x4003]
  16          char code CGRAM_TABLE[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//     ;年
  17                  0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00,        //;月
  18                  0x0F,0x09,0x09,0x0F,0x0,0x09,0x0F,0x00};   //   ;日
  19          char code TABLE1[]={'C','Q','I','T',' ','M','C','S','-','5','1',' ','E','M','U',' '};//,'V','1','.','0'};/
             -/{0x44,0x50,0x2D,0x35,0x31,0x48};//;DP-51H
  20          char code TABLE2[]={'V','1','.','0'};//;空格
  21          char code TABLE3[]={0x5A,0x4C,0x47,0x32,0x30,0x30,0x33,0x00,0x37,0x01,0x31,0x32,0x02};
  22                  //;   Z   l   G   2   0   0   3   年  7  月   1   2   日
  23          char code TABLE4[]="Designed By WWL";
  24          void printf_lcd(unsigned char StartPosition,char *string,char len);
  25          void init_cgram();
  26          void init_lcd();
  27          void test_lcd();
  28          void clr_lcd();
  29          
  30          sbit CS=P1^0;
  31          sbit CLK=P1^1;
  32          sbit DIO=P1^2;
  33          sbit AD_OK=P3^2;
  34          char KeyCode;
  35          char dispbuff[8];
  36          char adconvert(char channel);
  37          char ReadKB();
  38          void sent(unsigned char sent_buf);
  39          void delay(unsigned char time);
  40          void display();
  41          char TICK;
  42          char ADresult;
  43          /*************************************************************************************************
  44          * FUNCTION NAME:void Timer0 interrupt                                                             *
  45          *`CREATE DATE  :2004.12.20                                                                        *
  46          * CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
  47          * MODEIFY DATE :2005.6.2                                                                          *
  48          * INPUT        :None                                                                              *
  49          * OUTPUT       :None                                                                              *
  50          * RETURN       :None                                                                              *
  51          * Global Variable:unsigned TICK                                                                   *
  52          *************************************************************************************************/
  53          
C51 COMPILER V7.09   TEST                                                                  08/10/2005 00:27:29 PAGE 2   

  54          void Timer0() interrupt 1
  55          {
  56   1         TMOD=0x01;
  57   1         TH0=0x3c;
  58   1         if(TICK==5)
  59   1         {
  60   2          display();
  61   2              TICK=0;
  62   2          ADresult=adconvert(0);
  63   2              }
  64   1              TICK++;
  65   1      }
  66          /*************************************************************************************************
  67          * FUNCTION NAME:void KeyBoard() interrupt 2                                                       *
  68          *`CREATE DATE  :2004.12.20                                                                        *
  69          * CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
  70          * MODEIFY DATE :2005.6.2                                                                          *
  71          * INPUT        :None                                                                              *
  72          * OUTPUT       :None                                                                              *
  73          * RETURN       :None                                                                              *
  74          * Global Variable:KeyCode                                                                         *
  75          *************************************************************************************************/
  76          void KeyBoard() interrupt 2
  77          {
  78   1         KeyCode=ReadKB();
  79   1         if(KeyCode==0x0f)
  80   1         printf_lcd(0x80,TABLE4,15);
  81   1         if(KeyCode==0x0e)
  82   1         {
  83   2         clr_lcd();
  84   2         test_lcd();}
  85   1      }
  86          main()
  87          {
  88   1         
  89   1         EX1=1;
  90   1         EA=1;
  91   1         CS=1;
  92   1         IT1=1;
  93   1         TMOD=0x01;
  94   1         TH0=0x3c;
  95   1         TL0=0xb0;
  96   1         ET0=1;
  97   1         TR0=1;
  98   1         TICK=0;
  99   1        init_lcd();
 100   1        init_cgram();
 101   1        test_lcd();
 102   1        clr_lcd();
 103   1        test_lcd();
 104   1        
 105   1         
 106   1         while(1)
 107   1         {
 108   2            dispbuff[0]=KeyCode/16;
 109   2                dispbuff[1]=KeyCode%16;
 110   2                dispbuff[6]=(ADresult/16)&0x0f;
 111   2                dispbuff[7]=(ADresult%16)&0x0f;
 112   2                
 113   2         }
 114   1      
 115   1       }
C51 COMPILER V7.09   TEST                                                                  08/10/2005 00:27:29 PAGE 3   

 116          /*************************************************************************************************
 117          * FUNCTION NAME:char ReadKB()                                                                     *
 118          *`CREATE DATE  :2004.12.20                                                                        *
 119          * CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
 120          * MODEIFY DATE :2005.6.2                                                                          *
 121          * INPUT        :None                                                                              *
 122          * OUTPUT       :None                                                                              *
 123          * RETURN       :KeyCode                                                                           *
 124          * Global Variable:KeyCode                                                                         *
 125          *************************************************************************************************/
 126          char ReadKB()
 127          {  char kb=0,i;
 128   1         CS=1;
 129   1         CLK=0;
 130   1         delay (50);
 131   1         sent(0x15);//发送读键盘指令
 132   1         delay(10);
 133   1         DIO=1;
 134   1         CLK=1;
 135   1         delay(50);
 136   1         for(i=0;i<8;i++)
 137   1        {CLK=0;
 138   2         kb=kb*2+(char)DIO;//读1位数据
 139   2         delay(10);
 140   2         CLK=1;
 141   2         delay(10);
 142   2         } 
 143   1         CS=1;
 144   1         return(kb);}
 145          /*************************************************************************************************
 146          * FUNCTION NAME:void sent(unsigned char sent_buf)                                                 *
 147          *`CREATE DATE  :2004.12.20                                                                        *
 148          * CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
 149          * MODEIFY DATE :2005.6.2                                                                          *
 150          * INPUT        :sent_buf                                                                          *
 151          * OUTPUT       :sent sent_buf to SPI interface                                                    *
 152          * RETURN       :None                                                                              *
 153          * Global Variable:None                                                                            *
 154          *************************************************************************************************/
 155          void sent(unsigned char sent_buf)
 156          {
 157   1      char i;
 158   1      CLK=0;                            /*置SPI时钟线为低*/
 159   1      CS=0;                              /*置SPI片选线为低*/
 160   1      delay (50);                          /*延时50us*/
 161   1      
 162   1      for(i=0;i<8;i++)                      /*发送8位数据*/
 163   1      {
 164   2      sent_buf=sent_buf<<1;     /*从数据最高位开始,将要发发送的数据位移入进位位CY*/
 165   2      DIO=CY;                          /*数据位送数据线*/
 166   2      CLK=1;                           /* 置SPI时钟线为高*/
 167   2      delay (10);                         /*延时10us*/
 168   2      CLK=0;                          /* 置SPI时钟线为低,发送完1位数据*/
 169   2      delay (10);/*延时10us*/
 170   2      }
 171   1      DIO=0;
 172   1      }
 173          /*************************************************************************************************
 174          * FUNCTION NAME:void delay(unsigned char time)                                                    *
 175          *`CREATE DATE  :2004.12.20                                                                        *
 176          * CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
 177          * MODEIFY DATE :2005.6.2                                                                          *
C51 COMPILER V7.09   TEST                                                                  08/10/2005 00:27:29 PAGE 4   

 178          * INPUT        :unsigned char time                                                                *
 179          * OUTPUT       :Delay some times                                                                  *
 180          * RETURN       :None                                                                              *
 181          * Global Variable:None                                                                            *
 182          *************************************************************************************************/
 183          void delay(unsigned char time)
 184          {
 185   1        unsigned char i;
 186   1        for(i=0;i<time;i++);
 187   1      }
 188          /*************************************************************************************************
 189          * FUNCTION NAME:void delay(unsigned char time)                                                    *
 190          *`CREATE DATE  :2004.12.20                                                                        *
 191          * CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
 192          * MODEIFY DATE :2005.6.2                                                                          *
 193          * INPUT        :char channel                                                                      *
 194          * OUTPUT       :None                                                                              *
 195          * RETURN       :ADresult                                                                          *
 196          * Global Variable:ADresult                                                                        *
 197          *************************************************************************************************/
 198          char adconvert(char channel)
 199          {
 200   1         char result;
 201   1         char xdata *adport;
 202   1         adport=0x0000+channel;  //AD转换通道选择
 203   1         *adport=0;   // 启动转换
 204   1         while(AD_OK==1);  //等待转换结束
 205   1         result=*adport; // 读转换结果
 206   1         return result;
 207   1      }       
 208          /*************************************************************************************************
 209          * FUNCTION NAME:void delay(unsigned char time)                                                    *
 210          *`CREATE DATE  :2004.12.20                                                                        *
 211          * CREATED BY   :Wan Wen Lue ,ChongQing Institute of Technology                                    *
 212          * MODEIFY DATE :2005.6.2                                                                          *
 213          * INPUT        :char channel                                                                      *
 214          * OUTPUT       :None                                                                              *
 215          * RETURN       :ADresult                                                                          *
 216          * Global Variable:ADresult                                                                        *
 217          *************************************************************************************************/
 218          void display()
 219          {
 220   1       char i;
 221   1       for(i=0;i<8;i++)
 222   1         {
 223   2           CS=1;
 224   2               sent(0xc8+i);
 225   2               sent(dispbuff[i]);
 226   2               CS=1;
 227   2         }

⌨️ 快捷键说明

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