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

📄 baud.lst

📁 Library for the 8051 microcontroller. such as math routine, hexBCD, LCD, Keyboard, I2C, Remote, Ke
💻 LST
字号:

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Macro Assembler   A S E M - 5 1   V 1.3
       =====================================================



	Source File:	E:\MiCrOConTroller\Coba_M-IDE\AUTOBAUD\BAUD.asm
	Object File:	E:\MiCrOConTroller\Coba_M-IDE\AUTOBAUD\BAUD.hex
	List File:	E:\MiCrOConTroller\Coba_M-IDE\AUTOBAUD\BAUD.lst



 Line  I  Addr  Code            Source

    1:				;
    2:				;****************************************************************************
    3:				;
    4:				;  Purpose:
    5:				;	Automatically Detect The Baud Rate On The Serial Port
    6:				;
    7:				;  Date:
    8:				;	02/03/95
    9:				;
   10:				;  Author:
   11:				;	John C. Wren
   12:				;
   13:				;  Modications:
   14:				;	02/04/97 - Added Description Fields For Archive
   15:				;
   16:				;  Processor:
   17:				;	Generic 8031, Running At 11.0592MHz
   18:				;
   19:				;  Assembler:
   20:				;	Avocet AVA51
   21:				;
   22:				;  Dependencies:
   23:				;	None
   24:				;
   25:				;  Files:
   26:				;	None
   27:				;
   28:				;  Philosophic:
   29:				;	These Routines Make The Assumption That The Entire CPU Can Be
   30:				;	Dedicated To Determing The Baud Rate Of The Serial Port.  This
   31:				;	Could Be Better Implemented By Tying The Serial Port RX Pin To
   32:				;	-INT0 Or -INT1.  This Would Allow An Interrupt To Be Generated
   33:				;	On The Edge Of The Start Bit, Rather Than The Autobauder Camping
   34:				;	Out On The Port Pin, Waiting For The Change.
   35:				;
   36:				;	This Routine Came From A FORTH Interpeter I Wrote.  Since The System
   37:				;	Didn't Have To Do Anything While Waiting For The Serial Port To
   38:				;	Autobaud, It Was OK To Camp Out On The Serial Port Pin.  This Is
   39:				;	Not Very Elegant.
   40:				;
   41:
   42:				;******************************************************************************
   43:				;

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:				;  Description:
   45:				;	Determine Baud Rate Of Serial Port By Timing Start Bit.
   46:				;
   47:				;  Entry Requirements:
   48:				;	None
   49:				;
   50:				;  On Exit:
   51:				;	B/A Has Current Baud Rate (As 9600, 1900, etc For Displaying)
   52:				;	R0 Has Value For SMOD Bit Used
   53:				;	R1 Has Divisor Rate Used
   54:				;
   55:				;  Affected:
   56:				;	SCON, SBUF, TMOD, TH0, TL0, R0, R1, B, A, DPTR, PSW
   57:				;
   58:				;  Stack:
   59:				;	0 Bytes, Not Including Space Used By Called Routines
   60:				;
   61:				;  Comments:
   62:				;	The Tables Are Setup To Allow +-3% Variation In Timing.  If Can't
   63:				;	Get A Good Baud Rate, Just Keep Trying.  The Routine Can And Will
   64:				;	Be Tricked If Not Running At 8/N/1.
   65:				;
   66:
   67:	  0000	C2 AC				clr	es		; No Serial Interrupts
   68:	  0002	C2 A9				clr	et0		; No Timer 0 Interrupt
   69:	  0004	75 98 52			mov	scon,#052h	; Mode 3 Serial Port
   70:	  0007	75 89 21			mov	tmod,#021h	; Timer 1 Mode 2, Timer 0 Mode 1
   71:	  000A	75 99 00			mov	sbuf,#000h	; Send A Null For First Character
   72:	  000D	D2 8E				setb	tr1		; Start Timer 1 Up
   73:				;
   74:				;  Wait For Start Bit, Run Timer While Start Bit High
   75:				;
   76:	  000F	C2 98		l?p0:		clr	ri		; Ignore Any Character In SBUF
   77:	  0011	C2 8C				clr	tr0		; Cancel Timer 0
   78:	  0013	75 8C 00			mov	th0,#000h	; Clear Timer 0 High
   79:	  0016	75 8A 00			mov	tl0,#000h	; Clear Timer 0 Low
   80:	  0019	20 B0 FD			jb	p3.0,$		; Wait For Start Bit High
   81:	  001C	D2 8C				setb	tr0		; Start Timer 0 Running
   82:	  001E	30 B0 FD			jnb	p3.0,$		; Wait For Start Bit To Go Low
   83:	  0021	C2 8C				clr	tr0		; Cancel Timer 0
   84:				;
   85:				;  Timer 0 Has Start Bit Period.  Test Against Table.
   86:				;
   87:	  0023	90 00 72			mov	dptr,#Table	; Point To Table
   88:	  0026	74 00		l?p1:		mov	a,#0		; Set For MOVC
   89:	  0028	93				movc	a,@a+dptr	; Get High Byte From Table
   90:	  0029	B5 8C 06			cjne	a,th0,l?p2	; Compare
   91:	  002C	74 01				mov	a,#1		; Set For MOVC
   92:	  002E	93				movc	a,@a+dptr	; Get Low Byte From Table
   93:	  002F	B5 8A 00			cjne	a,tl0,l?p2	; Compare
   94:	  0032	40 2D		l?p2:		jc	l?p4		; If Greater, Try Next Entry
   95:	  0034	74 02				mov	a,#2		; Set For MOVC
   96:	  0036	93				movc	a,@a+dptr	; Get High Byte From Table
   97:	  0037	B5 8C 07			cjne	a,th0,l?p3	; Compare
   98:	  003A	74 03				mov	a,#3		; Set For MOVC
   99:	  003C	93				movc	a,@a+dptr	; Get Low Byte From Table

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  003D	B5 8A 01			cjne	a,tl0,l?p3	; Compare
  101:	  0040	D3				setb	c		; Flip Status
  102:	  0041	50 1E		l?p3:		jnc	l?p4		; If Less, Try Next Entry
  103:				;
  104:	  0043	74 04				mov	a,#4		; Point To SMOD Status Byte
  105:	  0045	93				movc	a,@a+dptr	; Get SMOD Byte
  106:	  0046	F8				mov	r0,a		; Move To R0 For Return
  107:	  0047	F5 87				mov	pcon,a		; Store It Back
  108:	  0049	74 05				mov	a,#5		; Point To Speed Byte
  109:	  004B	93				movc	a,@a+dptr	; Get Speed Byte
  110:	  004C	F9				mov	r1,a		; Move To R1 For Return
  111:	  004D	F5 8D				mov	th1,a		; Setup Baud Rate Timer
  112:	  004F	F5 8B				mov	tl1,a		; Setup Baud Rate Timer
  113:	  0051	30 98 FD			jnb	ri,$		; Wait For Character
  114:	  0054	C2 98				clr	ri		; Say Character Received Isn't There
  115:	  0056	74 06				mov	a,#6		; Offset To Baud Rate High
  116:	  0058	93				movc	a,@a+dptr	; Get High Of Baud Rate In Binary
  117:	  0059	F5 F0				mov	b,a		; Store In B
  118:	  005B	74 07				mov	a,#7		; Offset To Baud Rate Low
  119:	  005D	93				movc	a,@a+dptr	; Get Low Of Baud Rate In Binary
  120:	  005E	D2 AC				setb	es		; Allow Serial Interrupts
  121:	  0060	22				ret			; Return To Caller
  122:				;
  123:	  0061	74 08		l?p4:		mov	a,#8		; Number Bytes In Record
  124:	  0063	25 82				add	a,dpl		; Add In DPL
  125:	  0065	F5 82				mov	dpl,a		; Back To DPL
  126:	  0067	50 02				jnc	l?p5		; If No Carry, Skip
  127:	  0069	05 83				inc	dph		; Increment High Of DPTR
  128:	  006B	E4		l?p5:		clr	a		; Clear For MOVC
  129:	  006C	93				movc	a,@a+dptr	; Get Byte
  130:	  006D	B4 FF B6			cjne	a,#-1,l?p1	; While Not -1, Loop
  131:	  0070	80 9D				sjmp	l?p0		; Try Again
  132:				;
  133:				;  All Values Calculated For 11.059200Mhz
  134:				;
  135:	  0072	18 B8 17 48	Table:		dw	6328, 5960, 00040h, 00150; 150
	  0076	00 40 00 96
  136:	  007A	0C 5C 0B A4			dw	3164, 2980, 000a0h, 00300; 300
	  007E	00 A0 01 2C
  137:	  0082	08 3D 07 C3			dw	2109, 1987, 000c0h, 00450; 450
	  0086	00 C0 01 C2
  138:	  008A	06 2E 05 D2			dw	1582, 1490, 000d0h, 00600; 600
	  008E	00 D0 02 58
  139:	  0092	03 17 02 E9			dw	0791, 0745, 000e8h, 01200; 1200
	  0096	00 E8 04 B0
  140:	  009A	02 0F 01 F1			dw	0527, 0497, 000f0h, 01800; 1800
	  009E	00 F0 07 08
  141:	  00A2	01 8C 01 74			dw	0396, 0372, 000f4h, 02400; 2400
	  00A6	00 F4 09 60
  142:	  00AA	01 08 00 F8			dw	0264, 0248, 000f8h, 03600; 3600
	  00AE	00 F8 0E 10
  143:	  00B2	00 C6 00 BA			dw	0198, 0186, 000fah, 04800; 4800
	  00B6	00 FA 12 C0
  144:	  00BA	00 84 00 7C			dw	0132, 0124, 000fch, 07200; 7200
	  00BE	00 FC 1C 20
  145:	  00C2	00 63 00 5D			dw	0099, 0093, 000fdh, 09600; 9600

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

	  00C6	00 FD 25 80
  146:	  00CA	00 42 00 3E			dw	0066, 0062, 000feh, 14400; 14400
	  00CE	00 FE 38 40
  147:	  00D2	00 31 00 2F			dw	0049, 0047, 080fdh, 19200; 19200
	  00D6	80 FD 4B 00
  148:	  00DA	FF FF				dw	-1
  149:
  150:				;
  151:				;****************************************************************************
  152:				;
  153:						end





                     register banks used:  ---

                     no errors




ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 5





	       L I S T   O F   S Y M B O L S
	       =============================


SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
??ASEM_51			  NUMBER    8051
??VERSION			  NUMBER    0130
AC				  BIT	      D6
ACC				  DATA	      E0
B				  DATA	      F0
CY				  BIT	      D7
DPH				  DATA	      83
DPL				  DATA	      82
EA				  BIT	      AF
ES				  BIT	      AC
ET0				  BIT	      A9
ET1				  BIT	      AB
EX0				  BIT	      A8
EX1				  BIT	      AA
EXTI0				  CODE	    0003
EXTI1				  CODE	    0013
F0				  BIT	      D5
IE				  DATA	      A8
IE0				  BIT	      89
IE1				  BIT	      8B
INT0				  BIT	      B2
INT1				  BIT	      B3
IP				  DATA	      B8
IT0				  BIT	      88
IT1				  BIT	      8A
L?P0				  CODE	    000F	  76
L?P1				  CODE	    0026	  88
L?P2				  CODE	    0032	  94
L?P3				  CODE	    0041	 102
L?P4				  CODE	    0061	 123
L?P5				  CODE	    006B	 128
OV				  BIT	      D2
P				  BIT	      D0
P0				  DATA	      80
P1				  DATA	      90
P2				  DATA	      A0
P3				  DATA	      B0
PCON				  DATA	      87
PS				  BIT	      BC
PSW				  DATA	      D0
PT0				  BIT	      B9
PT1				  BIT	      BB
PX0				  BIT	      B8
PX1				  BIT	      BA
RB8				  BIT	      9A
RD				  BIT	      B7
REN				  BIT	      9C
RESET				  CODE	    0000
RI				  BIT	      98
RS0				  BIT	      D3

ASEM-51 V1.3                                         Copyright (c) 2002 by W.W. Heinz                                         PAGE 6



SYMBOL				  TYPE     VALUE	LINE
------------------------------------------------------------
RS1				  BIT	      D4
RXD				  BIT	      B0
SBUF				  DATA	      99
SCON				  DATA	      98
SINT				  CODE	    0023
SM0				  BIT	      9F
SM1				  BIT	      9E
SM2				  BIT	      9D
SP				  DATA	      81
T0				  BIT	      B4
T1				  BIT	      B5
TABLE				  CODE	    0072	 135
TB8				  BIT	      9B
TCON				  DATA	      88
TF0				  BIT	      8D
TF1				  BIT	      8F
TH0				  DATA	      8C
TH1				  DATA	      8D
TI				  BIT	      99
TIMER0				  CODE	    000B
TIMER1				  CODE	    001B
TL0				  DATA	      8A
TL1				  DATA	      8B
TMOD				  DATA	      89
TR0				  BIT	      8C
TR1				  BIT	      8E
TXD				  BIT	      B1
WR				  BIT	      B6

⌨️ 快捷键说明

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