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

📄 oneled.lst

📁 自已编写的一个用于调试单片机串口的一个下位机程序。很实用的。
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   ONELED                                                                10/30/2004 11:18:07 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE ONELED
OBJECT MODULE PLACED IN oneLed.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE oneLed.c BROWSE DEBUG OBJECTEXTEND CODE

line level    source

   1          /*#include <REG51.h>
   2          sbit gate=P2^0;
   3          void main(void)
   4          {
   5                  unsigned int i,j;
   6                  while(1)
   7                  {
   8                          for(i=1000;i>0;i--);
   9                          for(j=1000;j>0;j--);
  10                          gate=!gate;
  11                  }
  12          
  13          }
  14          
  15          #include <AT89X51.H>
  16          #include <stdio.h>
  17          void   CheckLED(void);
  18          sbit   LED0=P1^4;
  19          sbit   LED1=P1^5;
  20          sbit   LED2=P1^6;
  21          sbit   Beep=P1^7;
  22          
  23          void main(void)
  24          {
  25          int x,y;
  26          SCON = 0x50; //串口方式1,允许接收
  27          TMOD = 0x20; //定时器1 定时方式2
  28          TH1 = 0xE8; //11.0592MHz 1200 波特率
  29          TL1 = 0xE8;
  30          TI = 1;
  31          TR1 = 1; //启动定时器
  32          LED0=0;
  33          while(1)
  34          {
  35                  printf("您好!我叫Robot!我是一个会做算术的机器人!\n"); //显示
  36                  printf("请您输入两个int,X 和 Y\n"); //显示
  37                  scanf("%d%d",&x,&y); //输入
  38                  if (x < y)
  39                          printf("X<Y\n"); //当X 小于Y 时
  40                  else //当X 不小于Y 时再作判断
  41                          {
  42                                  if (x == y)
  43                                          printf("X=Y\n"); //当X 等于Y 时
  44                                  else
  45                                  printf("X>Y\n"); //当X 大于Y 时
  46                          }
  47          }
  48          }*/
  49          
  50          #include <reg51.h>
  51          //#include <absacc.h>
  52          #include <intrins.h>
  53          //#include <stdio.h>
  54          //#include <string.h>
  55          #include <stdlib.h>
C51 COMPILER V7.20   ONELED                                                                10/30/2004 11:18:07 PAGE 2   

  56          //#include <ctype.h>
  57          #define uchar unsigned char
  58          #define uint  unsigned int
  59          #define   Error         0xff
  60          uint   data   counter;
  61          uchar  data   uc0;
  62          sbit   LED0=P1^4;
  63          sbit   LED1=P1^5;
  64          sbit   LED2=P1^6;
  65          sbit   Beep=P1^7;
  66          bit    bdata  flag;
  67          void   RcvDataBy232(void);
  68          void    InitSBUF(void);
  69          void    TranDataBy232(void);
  70          void    SendBuf();
  71          void    OpeningBeep(uchar OBN);
  72          void    DELAY(uint z);
  73          void   RestWatchdog(void);
  74          
  75          /*********************************************************************
  76           ------------        主从多机串行中断服务程序     ------------------
  77           -- 主机先发送地址帧,从机接收到地址帧后,先判断是否为键盘地址:是则接收 
  78           -- 主机发送过来的所有数据信息,否则返回.
  79           *********************************************************************/
  80          /*void SerialCom(void) interrupt 4 using 1
  81          {
  82              EA=0;
  83              ES=0;                      /* 关串行中断 
  84              RcvDataBy232();
  85              OpeningBeep(uc0);
  86              SBUF=0x66;
  87              TranDataBy232();
  88              ES=1;
  89              RI=0;  TI=0; EA=1;
  90                  flag=1;
  91          }*/
  92          
  93          /****************************************
  94           ---------  延时函数 ,大约1MS.-----------
  95           ****************************************/
  96          void DELAY(uint z)
  97          {
  98   1          uchar data l;
  99   1          while((z--)>0)
 100   1          {
 101   2      for(l=0;l<31;l++)    RestWatchdog();   /* 125 _nop_();          ;   /* 125 _nop_(); */
 102   2          }
 103   1      }
 104          
 105          void   RestWatchdog(void)
 106          {
 107   1          _nop_();
 108   1          _nop_();
 109   1          _nop_();
 110   1      }
 111          
 112          void OpeningBeep(uchar OBN)
 113          {
 114   1          uchar data i;
 115   1          for(i=0;i<OBN;i++)
 116   1              {
 117   2             Beep=0;
C51 COMPILER V7.20   ONELED                                                                10/30/2004 11:18:07 PAGE 3   

 118   2             DELAY(150);
 119   2             Beep=1;
 120   2             DELAY(100);
 121   2         }
 122   1      }
 123          /*******************************************
 124           ---------- 初始化串行口来多机通信 ---------
 125           *******************************************/
 126          void InitSBUF(void)     
 127          {
 128   1         TMOD=0x20;           /* T/C1定义为方式2 */
 129   1         TL1=0xfd;            /* 9600时TH1,TL1=0xfd,1200时TH1,TL1=0XE8 */
 130   1         TH1=0xfd; 
 131   1      //   TL0=0xef;          /* 初值为0X2AEF,定时值为50ms */
 132   1      //   TH0=0x2a;  
 133   1         PCON=0x0;
 134   1         SCON=0x50;           /* 串行口为方式1,SM2=1,TB8=0,RB8=0 */
 135   1        /* SM0=0;*/
 136   1         TR1=1;   //ES=1;  ;  /*ET0=1; ES=1; TR0=1;*/
 137   1        /* SM2=1;*/   PS=1;
 138   1         RI=0;    TI=0; EA=1;
 139   1      }
 140          
 141          /*****************************************************
 142           -------从串行端口接收一字节数据,并存入UC0变量中------
 143           *****************************************************/
 144          
 145          /*void   RcvDataBy232(void)
 146          {
 147              counter=0;
 148              do{
 149                  counter++;
 150                  RestWatchdog();
 151                  if(counter>0x6ff)
 152                  { uc0=Error;goto rete1;}   /* 1fff 
 153                    RestWatchdog();
 154                }   while(RI==0);
 155              uc0=SBUF;
 156                  flag=1;
 157                  OpeningBeep(uc0);
 158          rete1:  
 159                          RI=0;
 160          }*/
 161          
 162          /*****************************************************
 163           -------从串行端口发送一字节数据,数据已存入SBUF中------
 164           *****************************************************/
 165          void TranDataBy232(void)
 166          {
 167   1         while(TI==0) ;
 168   1         TI=0;
 169   1      }
 170          
 171          void SendBuf() 
 172          {
 173   1        uchar data i=0x01;
 174   1        do{         //发送数据  
 175   2                      SBUF=i;
 176   2                      TranDataBy232();
 177   2                                      i++;           
 178   2              
 179   2           }while(i<5);           /*  如果主机返回成功信号则退出,否则重新发新/ *  初始化串行口*/  
C51 COMPILER V7.20   ONELED                                                                10/30/2004 11:18:07 PAGE 4   

 180   1      }
 181          
 182          void main(void)
 183          {
 184   1              LED0=0;
 185   1              OpeningBeep(3);
 186   1              InitSBUF();                                     
 187   1              flag=0;
 188   1              uc0=0;
 189   1      while(1)
 190   1              {
 191   2              DELAY(255);
 192   2              LED0=~LED0;
 193   2      /***连续发* */ 
 194   2      //      SendBuf();
 195   2      /**逐个发*/     
 196   2              while(RI)
 197   2                      {//RestWatchdog();
 198   3                              uc0=SBUF;
 199   3                              RI=0;                   
 200   3                              if(uc0==0x11)
 201   3                                      uc0=0xee;
 202   3                              SBUF=uc0;
 203   3                              TranDataBy232();                
 204   3                              if(uc0<9)
 205   3                                      OpeningBeep(uc0);
 206   3                              else
 207   3                                      OpeningBeep(1);
 208   3                      } 
 209   2              
 210   2              }
 211   1      }
C51 COMPILER V7.20   ONELED                                                                10/30/2004 11:18:07 PAGE 5   

⌨️ 快捷键说明

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