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

📄 uartdriv.lst

📁 单片机开发列程
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.01   UARTDRIV                                                              09/30/2007 11:14:55 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE UARTDRIV
OBJECT MODULE PLACED IN UARTDriv.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE UARTDriv.c LARGE BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

line level    source

   1          #define __UARTDRIV_H__
   2          
   3          #include "Config.h"
   4          /********************************************************************************************************
   5          **函数名称:UART0Config
   6          **函数功能:UART0配置函数:八位模式
   7          **输    入:无
   8          **输    出:无
   9          ********************************************************************************************************/
  10          void UART0Config(void) 
  11          { 
  12   1              PERIPHEN1 |= BIT3;                  //使能外设UATR0
  13   1          UART0CFG   = BAUDREJUST;            //BIT[7:4]波特率调整值
  14   1                                              //BIT3    波特率时钟源
  15   1                                              //Bit2    发送或接收的第九位
  16   1                                              //BIT1    九位模式使能
  17   1                                              //BIT0    使能两个停止位模式 
  18   1          UART0INT = 0x62; 
  19   1          UART0EXT = 0x00;                    //不使用扩展功能 
  20   1          UART0BRH = UARTBRH;                 //波特率发生器预置值   
  21   1          UART0BRL = UARTBRL;              
  22   1      }
  23             
  24          /********************************************************************************************************
  25          **函数名称:UART1Config
  26          **函数功能:UART1配置函数:八位模式
  27          **输    入:无
  28          **输    出:无
  29          ********************************************************************************************************/
  30          void UART1Config(void) 
  31          { 
  32   1              PERIPHEN1 |= BIT4;                  //使能外设UART1
  33   1          UART1CFG   = BAUDREJUST;            //BIT[7:4]波特率调整值
  34   1                                              //BIT3    波特率时钟源
  35   1                                              //Bit2    发送或接收的第九位
  36   1                                              //BIT1    九位模式使能
  37   1                                              //BIT0    使能两个停止位模式 
  38   1          UART1INT = 0x62; 
  39   1          UART1EXT = 0x00;                    //不使用扩展功能 
  40   1          UART1BRH = UARTBRH;                 //波特率发生器预置值   
  41   1          UART1BRL = UARTBRL;              
  42   1      }
  43          /********************************************************************************************************
  44          **函数名称:UART0_SendByte
  45          **函数功能:通过UART0发送一位数据
  46          **输    入:uchar Charact->待发送的字符
  47          **输    出:无
  48          ********************************************************************************************************/
  49          void UART0_SendByte( uchar Charact)
  50          { 
  51   1          uchar Genvar; 
  52   1          
  53   1          Genvar = Genvar;
  54   1              UART0BUF = Charact;         //Send Character 
  55   1      
C51 COMPILER V8.01   UARTDRIV                                                              09/30/2007 11:14:55 PAGE 2   

  56   1      #ifdef DOWNLOAD
  57   1          do
  58   1              {                               //wait for TX Empty Flag to be set 
  59   2              Genvar = UART0INT; 
  60   2              Genvar = Genvar & 0x01; 
  61   2              }
  62   1              while (Genvar == 0x00);     
  63   1      #endif
  64   1        
  65   1              UART0INT &= 0xFE; 
  66   1      }
  67          /********************************************************************************************************
  68          **函数名称:UART1_SendByte
  69          **函数功能:通过UART1发送一位数据
  70          **输    入:uchar Charact->待发送的字符
  71          **输    出:无
  72          ********************************************************************************************************/
  73          void UART1_SendByte(uchar Charact)
  74          { 
  75   1          uchar Genvar; 
  76   1          
  77   1          Genvar = Genvar;
  78   1              UART1BUF = Charact;         //Send Character 
  79   1      
  80   1      #ifdef DOWNLOAD
  81   1          do
  82   1              {                               //wait for TX Empty Flag to be set 
  83   2              Genvar = UART1INT; 
  84   2              Genvar = Genvar & 0x01; 
  85   2              }
  86   1              while (Genvar == 0x00); 
  87   1      #endif
  88   1        
  89   1              UART1INT &= 0xFE; 
  90   1      }
  91          
  92          /********************************************************************************************************
  93          **函数名称:UART0_Printf
  94          **函数功能:通过UART0打印数据
  95          **输    入:char *fmt,...->参数表列,同printf
  96          **输    出:
  97          ********************************************************************************************************/
  98          #define MAX_TBUF0       100
  99          
 100          void UART0_Printf(char *fmt,...)
 101          {
 102   1          char xdata tbuf0[MAX_TBUF0]= {0, };
 103   1      
 104   1          va_list v_list;
 105   1              char *ptr;
 106   1              int  i = 0;
 107   1      
 108   1              va_start(v_list, fmt);              // Initialize variable arguments. 
 109   1              vsprintf(tbuf0, fmt, v_list ); 
 110   1              va_end(v_list);
 111   1      
 112   1              ptr = tbuf0;
 113   1              while((*ptr) && i < MAX_TBUF0)
 114   1              {
 115   2                      UART0_SendByte(*ptr);           //本工程的发送一字节函数
 116   2              ptr++;
 117   2              i++;
C51 COMPILER V8.01   UARTDRIV                                                              09/30/2007 11:14:55 PAGE 3   

 118   2              }
 119   1      }
 120          
 121          /********************************************************************************************************
 122          **函数名称:UART1_Printf
 123          **函数功能:通过UART0打印数据
 124          **输    入:char *fmt,...->参数表列,同printf
 125          **输    出:
 126          ********************************************************************************************************/
 127          #define MAX_TBUF1       100
 128          
 129          void UART1_Printf(char *fmt,...)
 130          {
 131   1          char xdata tbuf1[MAX_TBUF1]= {0, };
 132   1      
 133   1          va_list v_list;
 134   1              char *ptr;
 135   1              int  i = 0;
 136   1      
 137   1              va_start(v_list, fmt);     // Initialize variable arguments. 
 138   1              vsprintf(tbuf1, fmt, v_list ); 
 139   1              va_end(v_list);
 140   1      
 141   1              ptr = tbuf1;
 142   1              while((*ptr) && i < MAX_TBUF1)
 143   1              {
 144   2                      UART1_SendByte(*ptr);           //本工程的发送一字节函数
 145   2              ptr++;
 146   2              i++;
 147   2              }
 148   1      }
 149          //****************************************************************************************************
 150          //从UART1打印几个数据,作为简单的测试
 151          //传入参数:无
 152          //返 回 值:无
 153          //****************************************************************************************************
 154          void UART1Test(void)
 155          {
 156   1          UART1_Printf("\n This is UART1! \n");
 157   1          UART1_Printf("\n UART1 Test OK! \n");
 158   1      }
C51 COMPILER V8.01   UARTDRIV                                                              09/30/2007 11:14:55 PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION UART0Config (BEGIN)
                                           ; SOURCE LINE # 10
                                           ; SOURCE LINE # 11
                                           ; SOURCE LINE # 12
0000 43F408            ORL     PERIPHEN1,#08H
                                           ; SOURCE LINE # 13
0003 75A2B0            MOV     UART0CFG,#0B0H
                                           ; SOURCE LINE # 18
0006 75A162            MOV     UART0INT,#062H
                                           ; SOURCE LINE # 19
0009 E4                CLR     A
000A F5A6              MOV     UART0EXT,A
                                           ; SOURCE LINE # 20
000C F5A5              MOV     UART0BRH,A
                                           ; SOURCE LINE # 21
000E 75A401            MOV     UART0BRL,#01H
                                           ; SOURCE LINE # 22
0011 22                RET     
             ; FUNCTION UART0Config (END)

             ; FUNCTION UART1Config (BEGIN)
                                           ; SOURCE LINE # 30
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 32
0000 43F410            ORL     PERIPHEN1,#010H
                                           ; SOURCE LINE # 33
0003 75B2B0            MOV     UART1CFG,#0B0H
                                           ; SOURCE LINE # 38
0006 75B162            MOV     UART1INT,#062H
                                           ; SOURCE LINE # 39
0009 E4                CLR     A
000A F5B6              MOV     UART1EXT,A
                                           ; SOURCE LINE # 40
000C F5B5              MOV     UART1BRH,A
                                           ; SOURCE LINE # 41
000E 75B401            MOV     UART1BRL,#01H
                                           ; SOURCE LINE # 42
0011 22                RET     
             ; FUNCTION UART1Config (END)

             ; FUNCTION _UART0_SendByte (BEGIN)
                                           ; SOURCE LINE # 49
;---- Variable 'Genvar' assigned to Register 'R6' ----
;---- Variable 'Charact' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 50
                                           ; SOURCE LINE # 53
                                           ; SOURCE LINE # 54
0000 8FA3              MOV     UART0BUF,R7
0002         ?C0005:
                                           ; SOURCE LINE # 58
                                           ; SOURCE LINE # 59
0002 AEA1              MOV     R6,UART0INT
                                           ; SOURCE LINE # 60
0004 EE                MOV     A,R6
0005 5401              ANL     A,#01H
0007 FE                MOV     R6,A
                                           ; SOURCE LINE # 61
                                           ; SOURCE LINE # 62
0008 60F8              JZ      ?C0005
C51 COMPILER V8.01   UARTDRIV                                                              09/30/2007 11:14:55 PAGE 5   

                                           ; SOURCE LINE # 65
000A 53A1FE            ANL     UART0INT,#0FEH
                                           ; SOURCE LINE # 66
000D 22                RET     
             ; FUNCTION _UART0_SendByte (END)

             ; FUNCTION _UART1_SendByte (BEGIN)
                                           ; SOURCE LINE # 73
;---- Variable 'Genvar' assigned to Register 'R6' ----
;---- Variable 'Charact' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 74
                                           ; SOURCE LINE # 77
                                           ; SOURCE LINE # 78
0000 8FB3              MOV     UART1BUF,R7
0002         ?C0009:
                                           ; SOURCE LINE # 82
                                           ; SOURCE LINE # 83
0002 AEB1              MOV     R6,UART1INT
                                           ; SOURCE LINE # 84
0004 EE                MOV     A,R6
0005 5401              ANL     A,#01H
0007 FE                MOV     R6,A
                                           ; SOURCE LINE # 85
                                           ; SOURCE LINE # 86
0008 60F8              JZ      ?C0009
                                           ; SOURCE LINE # 89
000A 53B1FE            ANL     UART1INT,#0FEH
                                           ; SOURCE LINE # 90
000D 22                RET     
             ; FUNCTION _UART1_SendByte (END)

             ; FUNCTION _UART0_Printf (BEGIN)
                                           ; SOURCE LINE # 100
0000 900000      R     MOV     DPTR,#fmt
0003 EB                MOV     A,R3
0004 F0                MOVX    @DPTR,A
0005 A3                INC     DPTR
0006 EA                MOV     A,R2
0007 F0                MOVX    @DPTR,A
0008 A3                INC     DPTR
0009 E9                MOV     A,R1
000A F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 101
                                           ; SOURCE LINE # 102
000B 7800        R     MOV     R0,#LOW tbuf0
000D 7C00        R     MOV     R4,#HIGH tbuf0
000F 7D01              MOV     R5,#01H
0011 7BFF              MOV     R3,#0FFH
0013 7A00        R     MOV     R2,#HIGH _?ix1000
0015 7900        R     MOV     R1,#LOW _?ix1000
0017 7E00              MOV     R6,#00H
0019 7F64              MOV     R7,#064H
001B 120000      E     LCALL   ?C?COPY
                                           ; SOURCE LINE # 106
001E E4                CLR     A
001F 900000      R     MOV     DPTR,#i
0022 F0                MOVX    @DPTR,A
0023 A3                INC     DPTR
0024 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 108
0025 7B01              MOV     R3,#01H
0027 900000      R     MOV     DPTR,#v_list
C51 COMPILER V8.01   UARTDRIV                                                              09/30/2007 11:14:55 PAGE 6   

⌨️ 快捷键说明

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