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

📄 slave.lst

📁 这是用C编的nrf905的通讯程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0062)     { 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C
(0063)     { 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D
(0064)     { 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E
(0065)     { 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F
(0066)     { 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G
(0067)     { 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H
(0068)     { 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I
(0069)     { 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J
(0070)     { 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K
(0071)     { 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L
(0072)     { 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M
(0073)     { 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N
(0074)     { 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O
(0075)     { 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P
(0076)     { 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q
(0077)     { 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R
(0078)     { 0x46, 0x49, 0x49, 0x49, 0x31 },   // S
(0079)     { 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T
(0080)     { 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U
(0081)     { 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V
(0082)     { 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W
(0083)     { 0x63, 0x14, 0x08, 0x14, 0x63 },   // X
(0084)     { 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y
(0085)     { 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z
(0086)     { 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [
(0087) 	{ 0x55, 0x2A, 0x55, 0x2A, 0x55 },   // \
(0088)     { 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]
(0089) 	{ 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]
(0090)     { 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^
(0091)     { 0x40, 0x40, 0x40, 0x40, 0x40 },   // _
(0092)     { 0x00, 0x01, 0x02, 0x04, 0x00 },   // '
(0093)     { 0x20, 0x54, 0x54, 0x54, 0x78 },   // a
(0094)     { 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b
(0095)     { 0x38, 0x44, 0x44, 0x44, 0x20 },   // c
(0096)     { 0x38, 0x44, 0x44, 0x48, 0x7F },   // d
(0097)     { 0x38, 0x54, 0x54, 0x54, 0x18 },   // e
(0098)     { 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f
(0099)     { 0x0C, 0x52, 0x52, 0x52, 0x3E },   // g
(0100)     { 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h
(0101)     { 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i
(0102)     { 0x20, 0x40, 0x44, 0x3D, 0x00 },   // j
(0103)     { 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k
(0104)     { 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l
(0105)     { 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m
(0106)     { 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n
(0107)     { 0x38, 0x44, 0x44, 0x44, 0x38 },   // o
(0108)     { 0x7C, 0x14, 0x14, 0x14, 0x08 },   // p
(0109)     { 0x08, 0x14, 0x14, 0x18, 0x7C },   // q
(0110)     { 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r
(0111)     { 0x48, 0x54, 0x54, 0x54, 0x20 },   // s
(0112)     { 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t
(0113)     { 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u
(0114)     { 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v
(0115)     { 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w
(0116)     { 0x44, 0x28, 0x10, 0x28, 0x44 },   // x
(0117)     { 0x0C, 0x50, 0x50, 0x50, 0x3C },   // y
(0118)     { 0x44, 0x64, 0x54, 0x4C, 0x44 }    // z
(0119) };
(0120) /*--------------------------------------------------------------------------------------------------
(0121) 		                                  函数原型声明
(0122) --------------------------------------------------------------------------------------------------*/
(0123) void init_lcd       ( void );
(0124) void clear_lcd      ( void );
(0125) void display_lcd    ( unsigned char, unsigned char);
(0126) void locat_lcd      ( unsigned char, unsigned char);
(0127) 
(0128) 
(0129) ////////////////////////////////////////////////////////////////////////////////////////////////////
(0130) ////////////////////////////////////////////////////////////////////////////////////////////////////
(0131) ////////////////////////////////////////////////////////////////////////////////////////////////////
(0132) ////////////////////////////////////////////////////////////////////////////////////////////////////
(0133) 
(0134) void init_lcd(void)
(0135) {
(0136)     PORTD|=RST; //RESET LCD
_init_lcd:
    0365 9A90      SBI	0x12,0
(0137) 	DIS905();
    0366 9AC4      SBI	0x18,4
(0138) 	ENLCD();
    0367 9891      CBI	0x12,1
(0139) 	PORTB&=~RST; //RESETED
    0368 98C0      CBI	0x18,0
(0140) 
(0141) 
(0142) 
(0143) //SPI SETTINGS
(0144) 
(0145) 
(0146) //DISABLE LCD
(0147)   PORTD|=CE;
    0369 9A91      SBI	0x12,1
(0148)   display_lcd( 0x21, 0 ); // LCD Extended Commands.
    036A 2722      CLR	R18
    036B E201      LDI	R16,0x21
    036C D02F      RCALL	_display_lcd
(0149)   display_lcd( 0xC8, 0 ); // Set LCD Vop (Contrast).
    036D 2722      CLR	R18
    036E EC08      LDI	R16,0xC8
    036F D02C      RCALL	_display_lcd
(0150)   display_lcd( 0x06, 0 ); // Set Temp coefficent.
    0370 2722      CLR	R18
    0371 E006      LDI	R16,6
    0372 D029      RCALL	_display_lcd
(0151)   display_lcd( 0x13, 0 ); // LCD bias mode 1:48.
    0373 2722      CLR	R18
    0374 E103      LDI	R16,0x13
    0375 D026      RCALL	_display_lcd
(0152)   display_lcd( 0x20, 0 ); // LCD Standard Commands, Horizontal addressing mode.
    0376 2722      CLR	R18
    0377 E200      LDI	R16,0x20
    0378 D023      RCALL	_display_lcd
(0153)   display_lcd( 0x0C, 0 ); // LCD in normal mode.
    0379 2722      CLR	R18
    037A E00C      LDI	R16,0xC
    037B D020      RCALL	_display_lcd
(0154)   
(0155)   
(0156)   clear_lcd();
    037C D005      RCALL	_clear_lcd
(0157)   locat_lcd(X_Init,Y_Init);
    037D E022      LDI	R18,2
    037E E00A      LDI	R16,0xA
    037F D029      RCALL	_locat_lcd
(0158)   DISLCD();  
    0380 9A91      SBI	0x12,1
    0381 9508      RET
_clear_lcd:
  i                    --> R20
    0382 940E040C  CALL	push_gset1
(0159) }
(0160) //
(0161) //
(0162) void clear_lcd(void)
(0163) {
(0164) unsigned int i;
(0165) 
(0166) display_lcd(0x0c, 0); 
    0384 2722      CLR	R18
    0385 E00C      LDI	R16,0xC
    0386 D015      RCALL	_display_lcd
(0167) display_lcd(0x80, 0); 
    0387 2722      CLR	R18
    0388 E800      LDI	R16,0x80
    0389 D012      RCALL	_display_lcd
(0168) 
(0169) locat_lcd(0,0);
    038A 2722      CLR	R18
    038B 2700      CLR	R16
    038C D01C      RCALL	_locat_lcd
(0170) for (i=0; i<504; i++)
    038D 2744      CLR	R20
    038E 2755      CLR	R21
    038F C005      RJMP	0x0395
(0171) display_lcd(0, 1); 
    0390 E021      LDI	R18,1
    0391 2700      CLR	R16
    0392 D009      RCALL	_display_lcd
    0393 5F4F      SUBI	R20,0xFF
    0394 4F5F      SBCI	R21,0xFF
    0395 3F48      CPI	R20,0xF8
    0396 E0E1      LDI	R30,1
    0397 075E      CPC	R21,R30
    0398 F3B8      BCS	0x0390
    0399 940E040F  CALL	pop_gset1
    039B 9508      RET
(0172) }
(0173) //
(0174) //
(0175) void display_lcd(unsigned char data,unsigned char mode)
(0176) {
(0177) PORTD&=~CE;
_display_lcd:
  mode                 --> R18
  data                 --> R16
    039C 9891      CBI	0x12,1
(0178) if(mode==0)PORTD&=~DC;
    039D 2322      TST	R18
    039E F411      BNE	0x03A1
    039F 9892      CBI	0x12,2
    03A0 C001      RJMP	0x03A2
(0179) else PORTD|=DC;
    03A1 9A92      SBI	0x12,2
(0180) 
(0181) SPDR=data;
    03A2 B90F      OUT	0x0F,R16
(0182) while((SPSR&0x80)!=0x80);
    03A3 B18E      IN	R24,0x0E
    03A4 7880      ANDI	R24,0x80
    03A5 3880      CPI	R24,0x80
    03A6 F7E1      BNE	0x03A3
(0183) 
(0184) PORTD|=CE;
    03A7 9A91      SBI	0x12,1
    03A8 9508      RET
_locat_lcd:
  y                    --> R20
  x                    --> R22
    03A9 940E040A  CALL	push_gset2
    03AB 2F42      MOV	R20,R18
    03AC 2F60      MOV	R22,R16
(0185) }
(0186) //
(0187) //
(0188) void locat_lcd(unsigned char x,unsigned char y)
(0189) {
(0190) display_lcd(0x80|x,0); // set initial column
    03AD 2722      CLR	R18
    03AE 2F06      MOV	R16,R22
    03AF 6800      ORI	R16,0x80
    03B0 DFEB      RCALL	_display_lcd
(0191) display_lcd(0x40|y,0); // set initial row
    03B1 2722      CLR	R18
    03B2 2F04      MOV	R16,R20
    03B3 6400      ORI	R16,0x40
    03B4 DFE7      RCALL	_display_lcd
    03B5 940E03FE  CALL	pop_gset2
    03B7 9508      RET
_PutChar:
  i                    --> R20
  ch                   --> R22
    03B8 940E040A  CALL	push_gset2
    03BA 2F60      MOV	R22,R16
(0192) }
(0193) //
(0194) //
(0195) void PutChar (unsigned char ch)
(0196) {	unsigned char i;
(0197) 	ch-=32;
    03BB 5260      SUBI	R22,0x20
(0198) 	for(i=0;i<5;i++)
    03BC 2744      CLR	R20
    03BD C00F      RJMP	0x03CD
(0199)     display_lcd(CharList[ch][i],1);
    03BE E021      LDI	R18,1
    03BF E085      LDI	R24,5
    03C0 9F86      MUL	R24,R22
    03C1 0110      MOVW	R2,R0
    03C2 E784      LDI	R24,0x74
    03C3 E090      LDI	R25,0
    03C4 0E28      ADD	R2,R24
    03C5 1E39      ADC	R3,R25
    03C6 2FE4      MOV	R30,R20
    03C7 27FF      CLR	R31
    03C8 0DE2      ADD	R30,R2
    03C9 1DF3      ADC	R31,R3
    03CA 9104      LPM	R16,0(Z)
    03CB DFD0      RCALL	_display_lcd
    03CC 9543      INC	R20
    03CD 3045      CPI	R20,5
    03CE F378      BCS	0x03BE
    03CF 940E03FE  CALL	pop_gset2
    03D1 9508      RET
_LCD:
  data                 --> R20
    03D2 940E040C  CALL	push_gset1
    03D4 2F40      MOV	R20,R16
(0200) }
(0201) //
(0202) //
(0203) 
(0204) void LCD(unsigned char data)
(0205) {
(0206)     
(0207)     if((X+=10)>=80){Y++;X=1;}
    03D5 91800064  LDS	R24,Y+3
    03D7 5F86      SUBI	R24,0xF6
    03D8 2E28      MOV	R2,R24
    03D9 92200064  STS	Y+3,R2
    03DB 3580      CPI	R24,0x50
    03DC F040      BCS	0x03E5
    03DD 91800065  LDS	R24,0x65
    03DF 5F8F      SUBI	R24,0xFF
    03E0 93800065  STS	0x65,R24
    03E2 E081      LDI	R24,1
    03E3 93800064  STS	Y+3,R24
(0208) 	if(Y>5){Y=0;}
    03E5 E085      LDI	R24,5
    03E6 90200065  LDS	R2,0x65
    03E8 1582      CP	R24,R2
    03E9 F418      BCC	0x03ED
    03EA 2422      CLR	R2
    03EB 92200065  STS	0x65,R2
(0209) 	locat_lcd(X,Y);
    03ED 91200065  LDS	R18,0x65
    03EF 91000064  LDS	R16,Y+3
    03F1 DFB7      RCALL	_locat_lcd
(0210) 	
(0211) 	
(0212)     
(0213)     data+=48;
    03F2 5D40      SUBI	R20,0xD0
(0214) 	if(data>57)data+=7;
    03F3 E389      LDI	R24,0x39
    03F4 1784      CP	R24,R20
    03F5 F408      BCC	0x03F7
    03F6 5F49      SUBI	R20,0xF9
(0215)     PutChar(data);
    03F7 2F04      MOV	R16,R20
    03F8 DFBF      RCALL	_PutChar
(0216)     DISLCD(); 
    03F9 9A91      SBI	0x12,1
(0217)     EN905(); 
FILE: <library>
    03FA 98C4      CBI	0x18,4
    03FB 940E040F  CALL	pop_gset1
    03FD 9508      RET
pop_gset2:
    03FE E0E2      LDI	R30,2
    03FF 940C0410  JMP	pop
pop_gset3:
    0401 E0E4      LDI	R30,4
    0402 940C0410  JMP	pop
push_gset5:
    0404 92FA      ST	R15,-Y
    0405 92EA      ST	R14,-Y
push_gset4:
    0406 92DA      ST	R13,-Y
    0407 92CA      ST	R12,-Y
push_gset3:
    0408 92BA      ST	R11,-Y
    0409 92AA      ST	R10,-Y
push_gset2:
    040A 937A      ST	R23,-Y
    040B 936A      ST	R22,-Y
push_gset1:
    040C 935A      ST	R21,-Y
    040D 934A      ST	R20,-Y
    040E 9508      RET
pop_gset1:
    040F E0E1      LDI	R30,1
pop:
    0410 9149      LD	R20,Y+
    0411 9159      LD	R21,Y+
    0412 FDE0      SBRC	R30,0
    0413 9508      RET
    0414 9169      LD	R22,Y+
    0415 9179      LD	R23,Y+
    0416 FDE1      SBRC	R30,1
    0417 9508      RET
    0418 90A9      LD	R10,Y+
    0419 90B9      LD	R11,Y+
    041A FDE2      SBRC	R30,2
    041B 9508      RET
    041C 90C9      LD	R12,Y+
    041D 90D9      LD	R13,Y+
    041E FDE3      SBRC	R30,3
    041F 9508      RET
    0420 90E9      LD	R14,Y+
    0421 90F9      LD	R15,Y+
    0422 9508      RET
asgncblk:
    0423 93AA      ST	R26,-Y
    0424 93BA      ST	R27,-Y
    0425 93EA      ST	R30,-Y
    0426 93FA      ST	R31,-Y
    0427 920A      ST	R0,-Y
    0428 81AF      LDD	R26,Y+7
    0429 85B8      LDD	R27,Y+8
    042A 81ED      LDD	R30,Y+5
    042B 81FE      LDD	R31,Y+6
    042C 3000      CPI	R16,0
    042D 0701      CPC	R16,R17
    042E F031      BEQ	0x0435
    042F 95C8      LPM
    0430 920D      ST	R0,X+
    0431 9631      ADIW	R30,1
    0432 5001      SUBI	R16,1
    0433 4010      SBCI	R17,0
    0434 CFF7      RJMP	0x042C
    0435 9009      LD	R0,Y+
    0436 91F9      LD	R31,Y+
    0437 91E9      LD	R30,Y+
    0438 91B9      LD	R27,Y+
    0439 91A9      LD	R26,Y+
    043A 9624      ADIW	R28,4
    043B 9508      RET

⌨️ 快捷键说明

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