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

📄 uart_multiproc_slave.lst

📁 Atmel Uart C51程序(从方式)
💻 LST
字号:
C51 COMPILER V7.10   UART_MULTIPROC_SLAVE                                                  04/26/2004 14:07:34 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE UART_MULTIPROC_SLAVE
OBJECT MODULE PLACED IN uart_multiproc_slave.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE uart_multiproc_slave.c BROWSE DEBUG OBJECTEXTEND TABS(3)

line level    source

   1          /**
   2           * @file $RCSfile:uart_multiproc_slave.c,v $
   3           *
   4           * Copyright (c) 2004 Atmel.
   5           *
   6           * Please read file license.txt for copyright notice.
   7           *
   8           * @brief This file is an example to use uart with timer in 
   9           * multiprocessor mode.
  10           *
  11           * This file can be parsed by Doxygen for automatic documentation
  12           * generation.
  13           * Put here the functional description of this file within the software
  14           * architecture of your program.
  15           *
  16           * @version $Revision: 1.0 $ $Name:  $
  17           */
  18          
  19          /* @section  I N C L U D E S */
  20          #include "reg_c51.h"
  21          
  22          char uart_data;
  23          bit TxOK=0;
  24          bit echo=0;
  25          
  26          /**
  27           * FUNCTION_PURPOSE: This file set up uart in mode 3 (9 bits uart) with
  28           * timer 1 in baud rate generator mode.
  29           * FUNCTION_INPUTS: void
  30           * FUNCTION_OUTPUTS: P3.1(TXD) serial output
  31           */
  32          void main (void) 
  33          {
  34   1         SCON = 0xF0;                 /* uart in mode 3 (9 bit), REN=1 */
  35   1         SADDR=0x03;                  /* local address */ 
  36   1         SADEN=0xFF;                  /* address mask */
  37   1         TMOD = TMOD | 0x20 ;         /* Timer 1 in mode 2 */
  38   1         TH1  = 0xFD;                 /* 9600 Bds at 11.059MHz */
  39   1         TL1  = 0xFD;                 /* 9600 Bds at 11.059MHz */
  40   1         ES = 1;                      /* Enable serial interrupt */
  41   1         EA = 1;                      /* Enable global interrupt */
  42   1         TR1 = 1;                     /* Timer 1 run */
  43   1      
  44   1         while(1)                     /* endless */
  45   1            {
  46   2               while(!echo);          /* wait data to echo */
  47   2               echo = 0;              /* disable echo */
  48   2      
  49   2               TB8 = 1;               /* address mode */ 
  50   2               TxOK=1;                /* set software flag */ 
  51   2               SBUF = 0x01;           /* send master adress */
  52   2               while(TxOK);           /* wait the stop bit transmition */
  53   2      
  54   2               TB8 = 0;               /* data mode */
  55   2               TxOK=1;                /* set software flag */ 
C51 COMPILER V7.10   UART_MULTIPROC_SLAVE                                                  04/26/2004 14:07:34 PAGE 2   

  56   2               SBUF = uart_data;      /* send data */ 
  57   2               while(TxOK);           /* wait the stop bit transmition */
  58   2            }
  59   1      }     
  60          
  61          /**
  62           * FUNCTION_PURPOSE: serial interrupt, receive data to master
  63           * FUNCTION_INPUTS: P3.0(RXD) serial input
  64           * FUNCTION_OUTPUTS: none
  65           */
  66          void serial_IT(void) interrupt 4 
  67          {
  68   1         if (TI == 1) 
  69   1         {                            /* if reception occur */
  70   2            TI=0;                     /* clear transmition flag for next transmition */
  71   2            TxOK=0;                   /* clear software transmition flag */
  72   2         }
  73   1      
  74   1         if (RI == 1) 
  75   1         {                            /* if reception occur */
  76   2            RI = 0;                   /* clear reception flag for next reception */
  77   2            if(RB8) SM2=0;            /* go into data mode */ 
  78   2            else
  79   2            {
  80   3               uart_data = SBUF;      /* Read receive data */
  81   3               SM2=1;                 /* return into address mode after receive data */
  82   3               echo=1;                /* enable echo */
  83   3            }
  84   2         }
  85   1      }
  86          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     77    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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