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

📄 pc_8535.lst

📁 单片机pc8535开发程序 (利用iccavr等开发工具开发)
💻 LST
📖 第 1 页 / 共 2 页
字号:
    017F 3041      CPI	R20,1
    0180 E0E0      LDI	R30,0
    0181 075E      CPC	R21,R30
    0182 F0D4      BLT	0x019D
    0183 304B      CPI	R20,0xB
    0184 E0E0      LDI	R30,0
    0185 075E      CPC	R21,R30
    0186 F009      BEQ	0x0188
    0187 C015      RJMP	0x019D
(0097) 	  {
(0098) 	   case 11:{
(0099) 	            if ((PIN_KB&(1<<DATAPIN))!=0)
    0188 9B83      SBIS	P10,3
    0189 C001      RJMP	0x018B
(0100) 				     return;
    018A C01E      RJMP	0x01A9
(0101) 			    else		 
(0102) 	   			    bitcount--;
    018B D0C5      RCALL	0x0251
(0103) 	    		break;}
    018C C01C      RJMP	0x01A9
(0104) 	   case 2:{
(0105) 	   			bitcount--;	   		   
    018D D0C3      RCALL	0x0251
(0106) 			    break;}
    018E C01A      RJMP	0x01A9
(0107) 	   case 1:{
(0108) 	   			bitcount--;	 
    018F D0C1      RCALL	0x0251
(0109) 				if ((PIN_KB&(1<<DATAPIN))==0)
    0190 9983      SBIC	P10,3
    0191 C004      RJMP	0x0196
(0110) 				    {
(0111) 					 bitcount=11;
    0192 E08B      LDI	R24,0xB
    0193 938000B5  STS	R24,_bitcount
(0112) 					 return;
    0195 C013      RJMP	0x01A9
(0113) 					}
(0114) 				else
(0115) 				   {
(0116) 				    bitcount=11;
    0196 E08B      LDI	R24,0xB
    0197 938000B5  STS	R24,_bitcount
(0117) 		            decode(data);
    0199 91000074  LDS	R16,0x74
    019B DF60      RCALL	_decode
(0118) 				   }	  
(0119) 	   	        break;}
    019C C00C      RJMP	0x01A9
(0120) 	   default:{
(0121) 	   	        data = (data >> 1);
    019D 90200074  LDS	R2,0x74
    019F 9426      LSR	R2
    01A0 92200074  STS	R2,0x74
(0122)                 if((PIN_KB&(1<<DATAPIN))!=0)
    01A2 9B83      SBIS	P10,3
    01A3 C004      RJMP	0x01A8
(0123)                     data|=0x80;
    01A4 2D82      MOV	R24,R2
    01A5 6880      ORI	R24,0x80
    01A6 93800074  STS	R24,0x74
(0124) 				bitcount--;
    01A8 D0A8      RCALL	0x0251
(0125) 	            }		
(0126) 	  }		 		 	  	
(0127)     } 
    01A9 D056      RCALL	pop_gset1
    01AA D03B      RCALL	pop_lset
    01AB 9518      RETI
FILE: D:\ICC-AVR\examples.sl\pc_8535\pc_8535.c
(0001) /*******************************************/
(0002) /*             PC机键盘演示程序            */
(0003) /*           广州双龙电子有限公司          */
(0004) /*           http://www.sl.com.cn          */
(0005) /*               作者:詹卫前              */
(0006) /*          MCU:AT90S8535 晶振:8MHZ        */
(0007) /*  使用ICCAVR的终端调试窗口观察PC键盘数据 */
(0008) /*          连线说明: SL-AVRAD             */
(0009) /*			1、PC键盘clock--PD.2		   */
(0010) /*			2、PC键盘data---PD.3		   */
(0011) /*			3、D232.T-------PD.1		   */
(0012) /*			4、D232.R-------PD.0		   */
(0013) /*******************************************/
(0014) #include<io8535.h>
(0015) #include<stdio.h>
(0016) extern unsigned char get_char(void);
(0017) extern void init_kb(void);
(0018) //UART初始化
(0019) void uart0_init(void)
(0020) 	 {
(0021)  	  UCR  = 0x00;
_uart0_init:
    01AC 2422      CLR	R2
    01AD B82A      OUT	P0A,R2
(0022)  	  UBRR = 0x19;//BAUD=19200
    01AE E189      LDI	R24,0x19
    01AF B989      OUT	P09,R24
(0023)  	  UCR|=(1<<TXEN) ;//使能发送
    01B0 9A53      SBI	P0A,3
(0024)  	 }
    01B1 9508      RET
(0025) //端口初始化	 
(0026) void port_init(void)
(0027) 	 {
(0028) 	  DDRD=0x02;
_port_init:
    01B2 E082      LDI	R24,2
    01B3 BB81      OUT	P11,R24
(0029) 	  PORTD=0xff;
    01B4 EF8F      LDI	R24,0xFF
    01B5 BB82      OUT	P12,R24
(0030) 	 }
    01B6 9508      RET
(0031) //PC键盘演示程序,SHIFT键和按键同时按下时为大写 
(0032) void main(void)
(0033) 	 {
(0034) 	  unsigned char key;
(0035) 	  port_init();
_main:
  key                  --> R20
    01B7 DFFA      RCALL	_port_init
(0036) 	  uart0_init();
    01B8 DFF3      RCALL	_uart0_init
(0037) 	  init_kb();
    01B9 DF38      RCALL	_init_kb
(0038) 	  puts("PC键盘演示程序");
    01BA E602      LDI	R16,0x62
    01BB E010      LDI	R17,0
    01BC D074      RCALL	_puts
(0039) 	  putchar(0x0d);
    01BD E00D      LDI	R16,0xD
    01BE D05D      RCALL	_putchar
    01BF C00D      RJMP	0x01CD
(0040) 	  while(1)
(0041) 	  		 {
(0042) 			  key=get_char();
    01C0 DF15      RCALL	_get_char
    01C1 2F40      MOV	R20,R16
(0043) 			  if(key!=0) 
    01C2 2300      TST	R16
    01C3 F049      BEQ	0x01CD
(0044) 			      {
(0045) 				   if (key==0x0d)//回车键处理
    01C4 300D      CPI	R16,0xD
    01C5 F429      BNE	0x01CB
(0046) 				      {					   
(0047) 					   putchar('\n');
    01C6 E00A      LDI	R16,0xA
    01C7 D054      RCALL	_putchar
(0048) 					   putchar(key);					   
    01C8 2F04      MOV	R16,R20
    01C9 D052      RCALL	_putchar
(0049) 					  }
    01CA C002      RJMP	0x01CD
(0050) 				   else				   	  
(0051) 				   	  putchar(key);
    01CB 2F04      MOV	R16,R20
    01CC D04F      RCALL	_putchar
(0052) 				  }
(0053) 			 }	  
    01CD CFF2      RJMP	0x01C0
(0054) 	 }	 	 
FILE: <library>
    01CE 9508      RET
push_lset:
    01CF 93FA      ST	R31,-Y
    01D0 93EA      ST	R30,-Y
    01D1 93BA      ST	R27,-Y
    01D2 93AA      ST	R26,-Y
    01D3 939A      ST	R25,-Y
    01D4 938A      ST	R24,-Y
    01D5 933A      ST	R19,-Y
    01D6 932A      ST	R18,-Y
    01D7 931A      ST	R17,-Y
    01D8 930A      ST	R16,-Y
    01D9 929A      ST	R9,-Y
    01DA 928A      ST	R8,-Y
    01DB 927A      ST	R7,-Y
    01DC 926A      ST	R6,-Y
    01DD 925A      ST	R5,-Y
    01DE 924A      ST	R4,-Y
    01DF 923A      ST	R3,-Y
    01E0 922A      ST	R2,-Y
    01E1 921A      ST	R1,-Y
    01E2 920A      ST	R0,-Y
    01E3 B60F      IN	R0,P3F
    01E4 920A      ST	R0,-Y
    01E5 9508      RET
pop_lset:
    01E6 9009      LD	R0,Y+
    01E7 BE0F      OUT	P3F,R0
    01E8 9009      LD	R0,Y+
    01E9 9019      LD	R1,Y+
    01EA 9029      LD	R2,Y+
    01EB 9039      LD	R3,Y+
    01EC 9049      LD	R4,Y+
    01ED 9059      LD	R5,Y+
    01EE 9069      LD	R6,Y+
    01EF 9079      LD	R7,Y+
    01F0 9089      LD	R8,Y+
    01F1 9099      LD	R9,Y+
    01F2 9109      LD	R16,Y+
    01F3 9119      LD	R17,Y+
    01F4 9129      LD	R18,Y+
    01F5 9139      LD	R19,Y+
    01F6 9189      LD	R24,Y+
    01F7 9199      LD	R25,Y+
    01F8 91A9      LD	R26,Y+
    01F9 91B9      LD	R27,Y+
    01FA 91E9      LD	R30,Y+
    01FB 91F9      LD	R31,Y+
    01FC 9508      RET
push_gset1:
    01FD 935A      ST	R21,-Y
    01FE 934A      ST	R20,-Y
    01FF 9508      RET
pop_gset1:
    0200 E0E1      LDI	R30,1
pop:
    0201 9149      LD	R20,Y+
    0202 9159      LD	R21,Y+
    0203 FDE0      SBRC	R30,0
    0204 9508      RET
    0205 9169      LD	R22,Y+
    0206 9179      LD	R23,Y+
    0207 FDE1      SBRC	R30,1
    0208 9508      RET
    0209 90A9      LD	R10,Y+
    020A 90B9      LD	R11,Y+
    020B FDE2      SBRC	R30,2
    020C 9508      RET
    020D 90C9      LD	R12,Y+
    020E 90D9      LD	R13,Y+
    020F FDE3      SBRC	R30,3
    0210 9508      RET
    0211 90E9      LD	R14,Y+
    0212 90F9      LD	R15,Y+
    0213 9508      RET
push_gset2:
    0214 937A      ST	R23,-Y
    0215 936A      ST	R22,-Y
    0216 CFE6      RJMP	push_gset1
push_gset3:
    0217 92BA      ST	R11,-Y
    0218 92AA      ST	R10,-Y
    0219 CFFA      RJMP	push_gset2
pop_gset3:
    021A E0E4      LDI	R30,4
    021B CFE5      RJMP	pop
_putchar:
    021C DFE0      RCALL	push_gset1
    021D 2F40      MOV	R20,R16
    021E 903000B7  LDS	R3,__textmode+1
    0220 902000B6  LDS	R2,__textmode
    0222 2022      TST	R2
    0223 F411      BNE	0x0226
    0224 2033      TST	R3
    0225 F021      BEQ	0x022A
    0226 304A      CPI	R20,0xA
    0227 F411      BNE	0x022A
    0228 E00D      LDI	R16,0xD
    0229 DFF2      RCALL	_putchar
    022A 9B5D      SBIS	P0B,5
    022B CFFE      RJMP	0x022A
    022C B94C      OUT	P0C,R20
    022D 2F04      MOV	R16,R20
    022E 2711      CLR	R17
    022F DFD0      RCALL	pop_gset1
    0230 9508      RET
_puts:
    0231 DFCB      RCALL	push_gset1
    0232 2F40      MOV	R20,R16
    0233 2F51      MOV	R21,R17
    0234 C006      RJMP	0x023B
    0235 2FE4      MOV	R30,R20
    0236 2FF5      MOV	R31,R21
    0237 8100      LDD	R16,0+Z
    0238 DFE3      RCALL	_putchar
    0239 5F4F      SUBI	R20,0xFF
    023A 4F5F      SBCI	R21,0xFF
    023B 2FE4      MOV	R30,R20
    023C 2FF5      MOV	R31,R21
    023D 8020      LDD	R2,0+Z
    023E 2022      TST	R2
    023F F7A9      BNE	0x0235
    0240 E00A      LDI	R16,0xA
    0241 DFDA      RCALL	_putchar
    0242 E001      LDI	R16,1
    0243 E010      LDI	R17,0
    0244 DFBB      RCALL	pop_gset1
    0245 9508      RET
<created procedures>:
    0246 E090      LDI	R25,0
    0247 2E24      MOV	R2,R20
    0248 2433      CLR	R3
    0249 0C22      LSL	R2
    024A 1C33      ROL	R3
    024B 0E28      ADD	R2,R24
    024C 1E39      ADC	R3,R25
    024D 2DE2      MOV	R30,R2
    024E 2DF3      MOV	R31,R3
    024F 95C8      LPM
    0250 9508      RET
    0251 918000B5  LDS	R24,_bitcount
    0253 5081      SUBI	R24,1
    0254 938000B5  STS	R24,_bitcount
    0256 9508      RET
    0257 E081      LDI	R24,1
    0258 93800071  STS	R24,0x71
    025A 93800073  STS	R24,0x73
    025C 9508      RET

⌨️ 快捷键说明

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