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

📄 rfidsys.lst

📁 读写器与射频卡通信的设计采用RC522射频读写芯片与射频卡进行通信
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0174) 	delay50us(40);
    03A6 E208      LDI	R16,0x28
    03A7 E010      LDI	R17,0
    03A8 DEBE      RCALL	_delay50us
(0175) //delay50us(60);
(0176) 	if(length>effectLen)
    03A9 840F      LDD	R0,Y+15
    03AA 14C0      CP	R12,R0
    03AB F478      BCC	0x03BB
(0177) 	{
(0178) 		for(i=length-effectLen-1;i>=0;i--)
    03AC 2D80      MOV	R24,R0
    03AD 198C      SUB	R24,R12
    03AE 5081      SUBI	R24,1
    03AF 2EA8      MOV	R10,R24
    03B0 C007      RJMP	0x03B8
(0179) 		{
(0180) 			lcd_wrDat(' '&0xF0,(' '&0x0F)<<4);
    03B1 2722      CLR	R18
    03B2 E200      LDI	R16,0x20
    03B3 DEF5      RCALL	_lcd_wrDat
(0181) 			delay50us(40);
    03B4 E208      LDI	R16,0x28
    03B5 E010      LDI	R17,0
    03B6 DEB0      RCALL	_delay50us
    03B7 94AA      DEC	R10
    03B8 2D8A      MOV	R24,R10
    03B9 3080      CPI	R24,0
    03BA F7B4      BGE	0x03B1
(0182) //delay50us(60);
(0183) 		}
(0184) 	}
(0185) 	for(i=effectLen-1;i>=0;i--)
    03BB 2D8C      MOV	R24,R12
    03BC 5081      SUBI	R24,1
    03BD 2EA8      MOV	R10,R24
    03BE C01E      RJMP	0x03DD
(0186) 	{
(0187) 		lcd_wrDat( (dataElem[i]+0x30)&0xF0 ,( (dataElem[i]+0x30)&0x0F )<<4 );
    03BF EF82      LDI	R24,0xF2
    03C0 E091      LDI	R25,1
    03C1 2DEA      MOV	R30,R10
    03C2 27FF      CLR	R31
    03C3 FDE7      SBRC	R30,7
    03C4 95F0      COM	R31
    03C5 0FE8      ADD	R30,R24
    03C6 1FF9      ADC	R31,R25
    03C7 8180      LDD	R24,Z+0
    03C8 2799      CLR	R25
    03C9 96C0      ADIW	R24,0x30
    03CA 2F28      MOV	R18,R24
    03CB 702F      ANDI	R18,0xF
    03CC 7030      ANDI	R19,0
    03CD 0F22      LSL	R18
    03CE 1F33      ROL	R19
    03CF 0F22      LSL	R18
    03D0 1F33      ROL	R19
    03D1 0F22      LSL	R18
    03D2 1F33      ROL	R19
    03D3 0F22      LSL	R18
    03D4 1F33      ROL	R19
    03D5 2F08      MOV	R16,R24
    03D6 7F00      ANDI	R16,0xF0
    03D7 7010      ANDI	R17,0
    03D8 DED0      RCALL	_lcd_wrDat
(0188) 		delay50us(40);
    03D9 E208      LDI	R16,0x28
    03DA E010      LDI	R17,0
    03DB DE8B      RCALL	_delay50us
    03DC 94AA      DEC	R10
    03DD 2D8A      MOV	R24,R10
    03DE 3080      CPI	R24,0
    03DF F6FC      BGE	0x03BF
    03E0 9621      ADIW	R28,1
    03E1 940E0653  CALL	pop_gset5
    03E3 9508      RET
_lcd_puts:
  str                  --> R20
  y                    --> R10
  x                    --> R22
    03E4 940E065A  CALL	push_gset3
    03E6 2EA2      MOV	R10,R18
    03E7 2F60      MOV	R22,R16
    03E8 814E      LDD	R20,Y+6
    03E9 815F      LDD	R21,Y+7
(0189) //delay50us(60);
(0190) 	}
(0191) }
(0192) 
(0193) void lcd_puts(uint8 x,uint8 y,uint8 *str)
(0194) {
(0195) 	lcd_set_xy(x,y);
    03EA 2D2A      MOV	R18,R10
    03EB 2F06      MOV	R16,R22
    03EC DEC9      RCALL	_lcd_set_xy
(0196) 	delay50us(20);
    03ED E104      LDI	R16,0x14
    03EE E010      LDI	R17,0
    03EF DE77      RCALL	_delay50us
    03F0 C00F      RJMP	0x0400
(0197) //delay50us(30);
(0198) 	while(*str)
(0199) 	{
(0200) 		lcd_wrDat((*(str))&0xF0,((*(str))&0x0F)<<4);
    03F1 01FA      MOVW	R30,R20
    03F2 8020      LDD	R2,Z+0
    03F3 2433      CLR	R3
    03F4 2D22      MOV	R18,R2
    03F5 702F      ANDI	R18,0xF
    03F6 702F      ANDI	R18,0xF
    03F7 9522      SWAP	R18
    03F8 2D02      MOV	R16,R2
    03F9 7F00      ANDI	R16,0xF0
    03FA DEAE      RCALL	_lcd_wrDat
(0201) 		str++;
    03FB 5F4F      SUBI	R20,0xFF
    03FC 4F5F      SBCI	R21,0xFF
(0202) 		delay50us(20);
    03FD E104      LDI	R16,0x14
    03FE E010      LDI	R17,0
    03FF DE67      RCALL	_delay50us
    0400 01FA      MOVW	R30,R20
    0401 8020      LDD	R2,Z+0
    0402 2022      TST	R2
    0403 F769      BNE	0x03F1
    0404 940E064D  CALL	pop_gset3
    0406 9508      RET
_lcd_puts_:
  dlyMs                --> R20
  str                  --> R22
  y                    --> R12
  x                    --> R10
    0407 940E0658  CALL	push_gset4
    0409 2EC2      MOV	R12,R18
    040A 2EA0      MOV	R10,R16
    040B 8568      LDD	R22,Y+8
    040C 8579      LDD	R23,Y+9
    040D 854A      LDD	R20,Y+10
(0203) //delay50us(30);
(0204) 	}
(0205) }
(0206) 
(0207) void lcd_puts_(uint8 x,uint8 y,uint8 *str,uint8 dlyMs)
(0208) {
(0209) 	lcd_set_xy(x,y);
    040E 2D2C      MOV	R18,R12
    040F 2D0A      MOV	R16,R10
    0410 DEA5      RCALL	_lcd_set_xy
(0210) 	delay50us(20);
    0411 E104      LDI	R16,0x14
    0412 E010      LDI	R17,0
    0413 DE53      RCALL	_delay50us
    0414 C00F      RJMP	0x0424
(0211) //delay50us(30);
(0212) 	while(*str)
(0213) 	{
(0214) 		lcd_wrDat((*(str))&0xF0,((*(str))&0x0F)<<4);
    0415 01FB      MOVW	R30,R22
    0416 8020      LDD	R2,Z+0
    0417 2433      CLR	R3
    0418 2D22      MOV	R18,R2
    0419 702F      ANDI	R18,0xF
    041A 702F      ANDI	R18,0xF
    041B 9522      SWAP	R18
    041C 2D02      MOV	R16,R2
    041D 7F00      ANDI	R16,0xF0
    041E DE8A      RCALL	_lcd_wrDat
(0215) 		str++;
    041F 5F6F      SUBI	R22,0xFF
    0420 4F7F      SBCI	R23,0xFF
(0216) 		delay50ms(dlyMs);
    0421 2F04      MOV	R16,R20
    0422 2711      CLR	R17
    0423 DE55      RCALL	_delay50ms
    0424 01FB      MOVW	R30,R22
    0425 8020      LDD	R2,Z+0
    0426 2022      TST	R2
    0427 F769      BNE	0x0415
    0428 940E0650  CALL	pop_gset4
    042A 9508      RET
(0217) 	}
(0218) }
(0219) 
(0220) void lcd_clr()
(0221) {
(0222) 	lcd_wrCmd(0x00,0x10);	//显示右移
_lcd_clr:
    042B E120      LDI	R18,0x10
    042C 2700      CLR	R16
    042D DE6E      RCALL	_lcd_wrCmd
(0223) 	delay50us(200);
    042E EC08      LDI	R16,0xC8
    042F E010      LDI	R17,0
    0430 DE36      RCALL	_delay50us
    0431 9508      RET
(0224) //delay50us(300);
(0225) }
(0226) 
(0227) void lcd_init(void)
(0228) {
(0229) 	SPI_init();
_lcd_init:
    0432 DE5C      RCALL	_SPI_init
(0230) 	//OUT_LCD_CS;		//若LCD_CS
(0231) 	//SET_LCD_CS;
(0232) 	delay50ms(1);
    0433 E001      LDI	R16,1
    0434 E010      LDI	R17,0
    0435 DE43      RCALL	_delay50ms
(0233) 	lcd_wrCmd(0x30,0x30);	//使用8位控制界面,使用基本指令集
    0436 E320      LDI	R18,0x30
    0437 E300      LDI	R16,0x30
    0438 DE63      RCALL	_lcd_wrCmd
(0234) 	//lcd_wrCmd(0x00,0xF0);	//整体显示ON
(0235) 	lcd_wrCmd(0x00,0xC0);	//整体显示ON
    0439 EC20      LDI	R18,0xC0
    043A 2700      CLR	R16
    043B DE60      RCALL	_lcd_wrCmd
(0236) 	lcd_wrCmd(0x00,0x10);	//清屏
    043C E120      LDI	R18,0x10
    043D 2700      CLR	R16
    043E DE5D      RCALL	_lcd_wrCmd
(0237) 	//lcd_wrCmd(0x10,0x00);	//光标
(0238) 	lcd_wrCmd(0x00,0x60);
    043F E620      LDI	R18,0x60
    0440 2700      CLR	R16
    0441 DE5A      RCALL	_lcd_wrCmd
(0239) 	//lcd_wrCmd(0x00,0x70);	//显示右移
(0240) 	delay50ms(1);		//不可省去!!!
    0442 E001      LDI	R16,1
    0443 E010      LDI	R17,0
    0444 DE34      RCALL	_delay50ms
    0445 9508      RET
FILE: D:\RFIDsys\RFIDsys.C
(0001) /*********************************************************************
(0002)              
(0003) 目    的:   建立操作LCD12864_ST7920液晶的示例程序
(0004) 
(0005) 目标系统:   基于任何AVR单片机
(0006) 		                                                                
(0007) 应用软件:   ICCAVR
(0008) 		                                                                
(0009) 版    本:   Version 1.0                                                          
(0010) 		                                                                
(0011) 圆版时间:   2008-05-28
(0012) 	
(0013) 开发人员:   hky
(0014) 
(0015) 说    明:   若用于商业用途,请保留此段文字或注明代码来源
(0016) 
(0017) *********************************************************************/
(0018) 
(0019) /*01010101010101010101010101010101010101010101010101010101010101010101
(0020) ----------------------------------------------------------------------
(0021) 版本更新记录:
(0022) 
(0023) ----------------------------------------------------------------------
(0024) 实验内容:
(0025) 初始化、读写Lcd12864_ST7920。
(0026) ----------------------------------------------------------------------
(0027) 硬件连接:
(0028) LCD12864_ST7920			ATmega16
(0029) 4.RS(CS)	--------	VCC
(0030) 5.R/W(SID)	--------	MOSI/PB5
(0031) 6.E(SCLK)	--------	SCK/PB7
(0032) 15.PSB		--------	GND
(0033) ----------------------------------------------------------------------
(0034) 10101010101010101010101010101010101010101010101010101010101010101010*/
(0035) 
(0036) #include <iom16v.h>
(0037) #include "D:\Headers\LCD12864_ST7920.H"
(0038) //#include "PCF8563.h"
(0039) #include "D:\Headers\Hardware.H"
(0040) //#include "D:\ICC_H\I2C.H"
(0041) //#include "delay1.h"
(0042) /*--------------------------------------------------------------------
(0043) 函数名称:
(0044) 函数功能:
(0045) 注意事项:
(0046) 提示说明:
(0047) 输    入:
(0048) 返    回:
(0049) --------------------------------------------------------------------*/
(0050) void init_device()
(0051) {
(0052) // Input/Output Ports initialization
(0053) // Port A initialization
(0054) // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
(0055) // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
(0056) PORTA=0x00;
_init_device:
    0446 2422      CLR	R2
    0447 BA2B      OUT	0x1B,R2
(0057) DDRA=0x00;
    0448 BA2A      OUT	0x1A,R2
(0058) 
(0059) // Port B initialization
(0060) // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
(0061) // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
(0062) PORTB=0x00;
    0449 BA28      OUT	0x18,R2
(0063) DDRB=0x00;
    044A BA27      OUT	0x17,R2
(0064) 
(0065) // Port C initialization
(0066) // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
(0067) // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
(0068) PORTC=0x00;
    044B BA25      OUT	0x15,R2
(0069) DDRC=0x00;
    044C BA24      OUT	0x14,R2
(0070) 
(0071) // Port D initialization
(0072) // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
(0073) // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
(0074) PORTD=0x00;
    044D BA22      OUT	0x12,R2
(0075) DDRD=0x00;
    044E BA21      OUT	0x11,R2
(0076) 
(0077) // Timer/Counter 0 initialization
(0078) // Clock source: System Clock
(0079) // Clock value: Timer 0 Stopped
(0080) // Mode: Normal top=FFh
(0081) // OC0 output: Disconnected
(0082) TCCR0=0x00;
    044F BE23      OUT	0x33,R2
(0083) TCNT0=0x00;
    0450 BE22      OUT	0x32,R2
(0084) OCR0=0x00;
    0451 BE2C      OUT	0x3C,R2
(0085) 
(0086) // Timer/Counter 1 initialization
(0087) // Clock source: System Clock
(0088) // Clock value: Timer 1 Stopped
(0089) // Mode: Normal top=FFFFh
(0090) // OC1A output: Discon.
(0091) // OC1B output: Discon.
(0092) // Noise Canceler: Off
(0093) // Input Capture on Falling Edge
(0094) // Timer 1 Overflow Interrupt: Off
(0095) // Input Capture Interrupt: Off
(0096) // Compare A Match Interrupt: Off
(0097) // Compare B Match Interrupt: Off
(0098) TCCR1A=0x00;
    0452 BC2F      OUT	0x2F,R2
(0099) TCCR1B=0x00;
    0453 BC2E      OUT	0x2E,R2
(0100) TCNT1H=0x00;
    0454 BC2D      OUT	0x2D,R2
(0101) TCNT1L=0x00;
    0455 BC2C      OUT	0x2C,R2
(0102) ICR1H=0x00;
    0456 BC27      OUT	0x27,R2
(0103) ICR1L=0x00;
    0457 BC26      OUT	0x26,R2
(0104) OCR1AH=0x00;
    0458 BC2B      OUT	0x2B,R2
(0105) OCR1AL=0x00;
    0459 BC2A      OUT	0x2A,R2
(0106) OCR1BH=0x00;
    045A BC29      OUT	0x29,R2
(0107) OCR1BL=0x00;
    045B BC28      OUT	0x28,R2
(0108) 
(0109) // Timer/Counter 2 initialization
(0110) // Clock source: System Clock
(0111) // Clock value: Timer 2 Stopped
(0112) // Mode: Normal top=FFh
(0113) // OC2 output: Disconnected
(0114) ASSR=0x00;
    045C BC22      OUT	0x22,R2
(0115) TCCR2=0x00;
    045D BC25      OUT	0x25,R2
(0116) TCNT2=0x00;
    045E BC24      OUT	0x24,R2
(0117) OCR2=0x00;
    045F BC23      OUT	0x23,R2
(0118) 
(0119) // External Interrupt(s) initialization
(0120) // INT0: Off
(0121) // INT1: Off
(0122) // INT2: Off
(0123) MCUCR=0x00;
    0460 BE25      OUT	0x35,R2
(0124) MCUCSR=0x00;
    0461 BE24      OUT	0x34,R2
(0125) 
(0126) // Timer(s)/Counter(s) Interrupt(s) initialization
(0127) TIMSK=0x00;
    0462 BE29      OUT	0x39,R2
(0128) 
(0129) // Analog Comparator initialization
(0130) // Analog Comparator: Off
(0131) // Analog Comparator Input Capture by Timer/Counter 1: Off
(0132) ACSR=0x80;
    0463 E880      LDI	R24,0x80
    0464 B988      OUT	0x08,R24
(0133) SFIOR=0x

⌨️ 快捷键说明

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