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

📄 tetr.lst

📁 实现了led数码管的显示
💻 LST
字号:
C51 COMPILER V7.06   TETR                                                                  06/04/2008 10:36:57 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE TETR
OBJECT MODULE PLACED IN tetr.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE tetr.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <c8051F320.h>                                  //c8051F320SFR的C51格式头文件
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          
   5          #define SYSCLK 24000000
   6          #define uart_rate 19200
   7          
   8          void Port_Init(void);
   9          void Timer1_Init(void);
  10          void Uart0_Init(void);
  11          void transmitte (void);
  12          
  13          void start(void);
  14          void receive(void);
  15          
  16          uchar code trdata1[]={"correct\r\n\0"};
  17          uchar code trdata2[]={"wrong\r\n\0"};
  18          uchar code *data point;
  19          bit     trans_next_ok;
  20          
  21          uint flag;
  22          uchar data rc[3];
  23          bit rc_next_ok;
  24          uint data m;
  25          
  26          sbit BEEP = P3^0;
  27          sbit LED_SEL = P1^7;
  28          
  29          extern uchar data hour,minute,second;
  30          
  31          void Port_Init(void)
  32          {  
  33   1              XBR0 = 0x01;                                    //uart的tx,rx分配至p0.4及p0.5 
  34   1              P0MDOUT |= 0x10;                                //uart的tx为推挽输出 
  35   1              XBR1 = 0x40;                                    //使能交叉矩阵,弱上拉 
  36   1                                                                              //关闭音响和LED,对应新实验板,与仿真无关
  37   1              BEEP = 0;
  38   1              P2 = 0;
  39   1              LED_SEL = 0;
  40   1              LED_SEL = 1;
  41   1              LED_SEL = 0;
  42   1              LED_SEL = 1;
  43   1                                                                              //
  44   1      }
  45          
  46          void Timer1_Init(void)
  47          {   
  48   1              CKCON |= 0x02;                                  //定时器1和2的触发时钟为 sysclk/48 = 0.5MHZ
  49   1              CKCON &= ~0x08;
  50   1              TMOD |= 0x20;                                   //定时器1为模式2,8位自动重装
  51   1              TMOD &= ~0x10;
  52   1              TH1 = -((SYSCLK/48)/2)/uart_rate;//设置定时器1的重装值,-13,即0xf3
  53   1              TR1 = 1;                                                //启动定时器1
  54   1      }
  55          
C51 COMPILER V7.06   TETR                                                                  06/04/2008 10:36:57 PAGE 2   

  56          void Uart0_Init(void)
  57          {
  58   1              SCON0 |= 0x10;                                  //8位数据,允许接收
  59   1                                                                              //偶校验由软件实现
  60   1              ES0 = 1;                                                //允许UART中断
  61   1      }
  62          
  63          void Uart0_ISR(void) interrupt 4
  64          {
  65   1              if (RI0 == 1)
  66   1              {
  67   2                      RI0 = 0;
  68   2                      rc[m] = SBUF0;
  69   2                      m++;
  70   2                      if(m==3)
  71   2                      {
  72   3                       rc_next_ok = 1;
  73   3                       m = 0;
  74   3                      }
  75   2           
  76   2              }
  77   1              if (TI0 == 1)
  78   1              {
  79   2                      TI0 = 0;
  80   2                      trans_next_ok = 1;
  81   2              }
  82   1      }
  83          
  84          void start(void)
  85          {
  86   1       if(flag==1) point=trdata1;
  87   1       else point=trdata2;
  88   1       flag = 0;
  89   1       trans_next_ok =1;
  90   1      }
  91          
  92          void receive(void)
  93          {
  94   1       rc_next_ok = 0;
  95   1      if(((rc[0]>>4)*10+(rc[0]&0x0f)<=23)&&((rc[1]>>4)*10+(rc[1]&0x0f)<=59)&&((rc[2]>>4)*10+(rc[2]&0x0f)<=59))
  96   1       {
  97   2         flag = 1;
  98   2         EA = 0;
*** ERROR C202 IN LINE 98 OF TETR.C: 'EA': undefined identifier
  99   2         hour = rc[0];
 100   2         minute = rc [1];
 101   2         second = rc[2];
 102   2         EA = 1;
*** ERROR C202 IN LINE 102 OF TETR.C: 'EA': undefined identifier
 103   2       }
 104   1       else flag = 2;
 105   1      }
 106          
 107          void transmitte (void)
 108          {
 109   1              trans_next_ok = 0;      
 110   1              if (*point != '\0')
 111   1          {  
 112   2            ACC = *point;
 113   2                TB80 = P; 
*** ERROR C202 IN LINE 113 OF TETR.C: 'P': undefined identifier
 114   2                SBUF0 = ACC;
C51 COMPILER V7.06   TETR                                                                  06/04/2008 10:36:57 PAGE 3   

 115   2            point++;
 116   2          } 
 117   1      }

C51 COMPILATION COMPLETE.  0 WARNING(S),  3 ERROR(S)

⌨️ 快捷键说明

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