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

📄 uart.lst

📁 at9535下 异步串口uart的c语言编程 at9535下 异步串口uart的c语言编程
💻 LST
字号:
__start:
__text_start:
    001D E5CF      LDI	R28,0x5F
    001E E0D2      LDI	R29,2
    001F BFCD      OUT	0x3D,R28
    0020 BFDE      OUT	0x3E,R29
    0021 51C0      SUBI	R28,0x10
    0022 40D0      SBCI	R29,0
    0023 EA0A      LDI	R16,0xAA
    0024 8308      STD	Y+0,R16
    0025 2400      CLR	R0
    0026 E7E8      LDI	R30,0x78
    0027 E0F0      LDI	R31,0
    0028 E010      LDI	R17,0
    0029 37E8      CPI	R30,0x78
    002A 07F1      CPC	R31,R17
    002B F011      BEQ	0x002E
    002C 9201      ST	R0,Z+
    002D CFFB      RJMP	0x0029
    002E 8300      STD	Z+0,R16
    002F E2E2      LDI	R30,0x22
    0030 E0F0      LDI	R31,0
    0031 E6A0      LDI	R26,0x60
    0032 E0B0      LDI	R27,0
    0033 E010      LDI	R17,0
    0034 33EA      CPI	R30,0x3A
    0035 07F1      CPC	R31,R17
    0036 F021      BEQ	0x003B
    0037 95C8      LPM
    0038 9631      ADIW	R30,1
    0039 920D      ST	R0,X+
    003A CFF9      RJMP	0x0034
    003B D033      RCALL	_main
_exit:
    003C CFFF      RJMP	_exit
_DelayMs:
  j                    --> R20
  i                    --> R16
    003D D06D      RCALL	push_gset1
FILE: J:\AVRpractice\BOOK\UARTforBook\UART.C
(0001) #include <io8535v.h>
(0002) #define uchar unsigned char
(0003) #define uint  unsigned int
(0004) 
(0005) uchar Table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
(0006)                  0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
(0007) uchar Send_Data[]={'a','b','c','d'};
(0008) uchar Receive_Data[]={0,0,0,0};
(0009) 			 
(0010) void DelayMs(uint i)
(0011) {uint j;
(0012)  for(;i!=0;i--)
    003E C00A      RJMP	0x0049
(0013)    {for(j=2000;j!=0;j--) {;}}
    003F ED40      LDI	R20,0xD0
    0040 E057      LDI	R21,7
    0041 C002      RJMP	0x0044
    0042 5041      SUBI	R20,1
    0043 4050      SBCI	R21,0
    0044 3040      CPI	R20,0
    0045 0745      CPC	R20,R21
    0046 F7D9      BNE	0x0042
    0047 5001      SUBI	R16,1
    0048 4010      SBCI	R17,0
    0049 3000      CPI	R16,0
    004A 0701      CPC	R16,R17
    004B F799      BNE	0x003F
(0014) }
    004C D061      RCALL	pop_gset1
    004D 9508      RET
_Display:
  sel                  --> R20
  i                    --> R22
  p                    --> R10
    004E D076      RCALL	push_gset3
    004F 2EA0      MOV	R10,R16
    0050 2EB1      MOV	R11,R17
(0015) 
(0016) void Display(uchar *p)         //动态显示函数,参数p为待显示的数组名
(0017) {uchar i,sel=0x01;           
    0051 E041      LDI	R20,1
(0018)  for(i=0;i<4;i++)
    0052 2766      CLR	R22
    0053 C017      RJMP	0x006B
(0019)   {PORTA=sel;                  //选通最右边的数码管
    0054 BB4B      OUT	0x1B,R20
(0020)    PORTC=0xff-Table[p[i]];     //送字型码
    0055 2FE6      MOV	R30,R22
    0056 27FF      CLR	R31
    0057 0DEA      ADD	R30,R10
    0058 1DFB      ADC	R31,R11
    0059 81E0      LDD	R30,Z+0
    005A 27FF      CLR	R31
    005B E680      LDI	R24,0x60
    005C E090      LDI	R25,0
    005D 0FE8      ADD	R30,R24
    005E 1FF9      ADC	R31,R25
    005F 8020      LDD	R2,Z+0
    0060 2433      CLR	R3
    0061 EF8F      LDI	R24,0xFF
    0062 E090      LDI	R25,0
    0063 1982      SUB	R24,R2
    0064 0993      SBC	R25,R3
    0065 BB85      OUT	0x15,R24
(0021)    DelayMs(1);                 //显示延时    
    0066 E001      LDI	R16,1
    0067 E010      LDI	R17,0
    0068 DFD4      RCALL	_DelayMs
(0022)    sel=sel<<1;                 //移位以显示前一位
    0069 0F44      LSL	R20
    006A 9563      INC	R22
    006B 3064      CPI	R22,4
    006C F338      BCS	0x0054
(0023)   }
(0024) }
    006D D03B      RCALL	pop_gset3
    006E 9508      RET
(0025) 
(0026) void main(void)
(0027) {uchar temp,i;
(0028)  DDRA=0xff;
_main:
  temp                 --> Y+1
  i                    --> R20
    006F EF8F      LDI	R24,0xFF
    0070 BB8A      OUT	0x1A,R24
(0029)  DDRC=0xff;
    0071 BB84      OUT	0x14,R24
(0030)  PORTA=0xff;
    0072 BB8B      OUT	0x1B,R24
(0031)  PORTC=0x00;
    0073 2422      CLR	R2
    0074 BA25      OUT	0x15,R2
(0032)  DelayMs(2000);
    0075 ED00      LDI	R16,0xD0
    0076 E017      LDI	R17,7
    0077 DFC5      RCALL	_DelayMs
(0033)  PORTC=0xff;
    0078 EF8F      LDI	R24,0xFF
    0079 BB85      OUT	0x15,R24
(0034)  UBRR=51;//9600bps,8.000M,
    007A E383      LDI	R24,0x33
    007B B989      OUT	0x09,R24
(0035)  UCR=0x18;//RXD.TXD使能;
    007C E188      LDI	R24,0x18
    007D B98A      OUT	0x0A,R24
(0036)  for(i=0;i<4;i++)
    007E 2744      CLR	R20
    007F C00F      RJMP	0x008F
(0037)    {while(!(USR&0x80)) 
(0038)       {Display(Receive_Data);}            //等待接收完成
    0080 E704      LDI	R16,0x74
    0081 E010      LDI	R17,0
    0082 DFCB      RCALL	_Display
    0083 9B5F      SBIS	0x0B,7
    0084 CFFB      RJMP	0x0080
(0039)     Receive_Data[i]=UDR-48;}            //接收数据
    0085 E784      LDI	R24,0x74
    0086 E090      LDI	R25,0
    0087 2FE4      MOV	R30,R20
    0088 27FF      CLR	R31
    0089 0FE8      ADD	R30,R24
    008A 1FF9      ADC	R31,R25
    008B B18C      IN	R24,0x0C
    008C 5380      SUBI	R24,0x30
    008D 8380      STD	Z+0,R24
    008E 9543      INC	R20
    008F 3044      CPI	R20,4
    0090 F390      BCS	0x0083
(0040)  for(i=0;i<4;i++)
    0091 2744      CLR	R20
    0092 C00E      RJMP	0x00A1
(0041)    {while(!(USR&0x20)) 
(0042)       {Display(Receive_Data); }           //等待移位寄存器空;
    0093 E704      LDI	R16,0x74
    0094 E010      LDI	R17,0
    0095 DFB8      RCALL	_Display
    0096 9B5D      SBIS	0x0B,5
    0097 CFFB      RJMP	0x0093
(0043)     UDR=Send_Data[i];} 
    0098 E780      LDI	R24,0x70
    0099 E090      LDI	R25,0
    009A 2FE4      MOV	R30,R20
    009B 27FF      CLR	R31
    009C 0FE8      ADD	R30,R24
    009D 1FF9      ADC	R31,R25
    009E 8020      LDD	R2,Z+0
    009F B82C      OUT	0x0C,R2
    00A0 9543      INC	R20
    00A1 3044      CPI	R20,4
    00A2 F398      BCS	0x0096
    00A3 C003      RJMP	0x00A7
(0044)  while(1)
(0045)    Display(Receive_Data);   
    00A4 E704      LDI	R16,0x74
    00A5 E010      LDI	R17,0
    00A6 DFA7      RCALL	_Display
    00A7 CFFC      RJMP	0x00A4
(0046) }
FILE: <library>
    00A8 9508      RET
pop_gset3:
    00A9 E0E4      LDI	R30,4
    00AA C004      RJMP	pop
push_gset1:
    00AB 935A      ST	R21,-Y
    00AC 934A      ST	R20,-Y
    00AD 9508      RET
pop_gset1:
    00AE E0E1      LDI	R30,1
pop:
    00AF 9149      LD	R20,Y+
    00B0 9159      LD	R21,Y+
    00B1 FDE0      SBRC	R30,0
    00B2 9508      RET
    00B3 9169      LD	R22,Y+
    00B4 9179      LD	R23,Y+
    00B5 FDE1      SBRC	R30,1
    00B6 9508      RET
    00B7 90A9      LD	R10,Y+
    00B8 90B9      LD	R11,Y+
    00B9 FDE2      SBRC	R30,2
    00BA 9508      RET
    00BB 90C9      LD	R12,Y+
    00BC 90D9      LD	R13,Y+
    00BD FDE3      SBRC	R30,3
    00BE 9508      RET
    00BF 90E9      LD	R14,Y+
    00C0 90F9      LD	R15,Y+
    00C1 9508      RET
push_gset2:
    00C2 937A      ST	R23,-Y
    00C3 936A      ST	R22,-Y
    00C4 CFE6      RJMP	push_gset1
push_gset3:
    00C5 92BA      ST	R11,-Y
    00C6 92AA      ST	R10,-Y
    00C7 CFFA      RJMP	push_gset2

⌨️ 快捷键说明

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