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

📄 sio.lst

📁 应用于51芯片的很经典的串口通讯程序源代码 (采用fifo方式)
💻 LST
📖 第 1 页 / 共 2 页
字号:
 155   1      	TR1 = 0;            /* stop timer 1 */
 156   1      	ET1 = 0;            /* disable timer 1 interrupt */
 157   1      
 158   1      	PCON |= 0x80;       /* 0x80=SMOD: set serial baudrate doubler */
 159   1      
 160   1      	TMOD &= ~0xF0;      /* clear timer 1 mode bits */
 161   1      	TMOD |= 0x20;       /* put timer 1 into MODE 2 */
 162   1      
 163   1      	TH1 = (unsigned char) (256 - (XTAL / (16L * 12L * baudrate)));
 164   1      
 165   1      	TR1 = 1;            /* start timer 1 */
 166   1      }
 167          
 168          /*------------------------------------------------------------------------------
 169          ------------------------------------------------------------------------------*/
 170          #pragma disable
 171          
 172          char com_putchar (
 173            unsigned char c)
 174          {
 175   1      	/*------------------------------------------------
 176   1      	If the buffer is full, return an error value.
 177   1      	------------------------------------------------*/
 178   1      	if (com_tbuflen () >= TBUF_SIZE)
 179   1      		return (-1);
C51 COMPILER V6.14  SIO                                                                    04/12/2003 22:48:18 PAGE 4   

 180   1      
 181   1      	/*------------------------------------------------
 182   1      	Add the data to the transmit buffer.  If the
 183   1      	transmit interrupt is disabled, then enable it.
 184   1      	------------------------------------------------*/
 185   1      	tbuf [t_in & (TBUF_SIZE - 1)] = c;
 186   1      	t_in++;
 187   1      
 188   1      	if (ti_restart)
 189   1      	{
 190   2      		ti_restart = 0;
 191   2      	  	TI = 1;               /* generate transmit interrupt */
 192   2      	}
 193   1      
 194   1      	return (0);
 195   1      }
 196          
 197          /*------------------------------------------------------------------------------
 198          ------------------------------------------------------------------------------*/
 199          #pragma disable
 200          
 201          int com_getchar (void)
 202          {
 203   1      	if (com_rbuflen () == 0)
 204   1        		return (-1);
 205   1      
 206   1      	return (rbuf [(r_out++) & (RBUF_SIZE - 1)]);
 207   1      }
 208          
 209          /*------------------------------------------------------------------------------
 210          ------------------------------------------------------------------------------*/
 211          #pragma disable
 212          
 213          unsigned char com_rbuflen (void)
 214          {
 215   1      	return (r_in - r_out);
 216   1      }
 217          
 218          /*------------------------------------------------------------------------------
 219          ------------------------------------------------------------------------------*/
 220          #pragma disable
 221          
 222          unsigned char com_tbuflen (void)
 223          {
 224   1      	return (t_in - t_out);
 225   1      }
 226          
 227          /*------------------------------------------------------------------------------
 228          ------------------------------------------------------------------------------*/
 229          
C51 COMPILER V6.14  SIO                                                                    04/12/2003 22:48:18 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


com_getchar. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
com_rbuflen. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
com_tbuflen. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
r_in . . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0000H  1
r_out. . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0001H  1
t_in . . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0002H  1
t_out. . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0003H  1
rbuf . . . . . . . . . . . . . . . . .  STATIC   IDATA  ARRAY    0000H  16
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
PCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0087H  1
tbuf . . . . . . . . . . . . . . . . .  STATIC   IDATA  ARRAY    0010H  4
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
ti_restart . . . . . . . . . . . . . .  STATIC   DATA   BIT      0000H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
_com_baudrate. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  baudrate . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
com_initialize . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
C51 COMPILER V6.14  SIO                                                                    04/12/2003 22:48:18 PAGE 6   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
com_isr. . . . . . . . . . . . . . . .  STATIC   CODE   PROC     0000H  -----
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
_com_putchar . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  c. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    327    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       1
   IDATA SIZE       =     20    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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