📄 键盘.lst
字号:
058C 2022 TST R2
058D F6E9 BNE 0x056B
(0129) }
(0130) for(i=0;i<118;i++)
058E 2744 CLR R20
058F 2755 CLR R21
(0131) {lcd_w(0xf8);
0590 EF08 LDI R16,0xF8
0591 DF76 RCALL _lcd_w
(0132) delay_nms(2);
0592 E002 LDI R16,2
0593 E010 LDI R17,0
0594 DF32 RCALL _delay_nms
0595 5F4F SUBI R20,0xFF
0596 4F5F SBCI R21,0xFF
0597 3746 CPI R20,0x76
0598 E0E0 LDI R30,0
0599 075E CPC R21,R30
059A F3AC BLT 0x0590
059B 940E073A CALL pop_gset4
059D 9508 RET
_lcd_putse:
ch --> R20
y --> R22
x --> R10
059E 940E0741 CALL push_gset3
05A0 2F62 MOV R22,R18
05A1 2EA0 MOV R10,R16
05A2 814E LDD R20,Y+6
05A3 815F LDD R21,Y+7
(0133) }
(0134) }
(0135)
(0136) void lcd_putse(unsigned char x,unsigned char y,unsigned char *ch)
(0137) {
(0138) x+=4;
05A4 2D8A MOV R24,R10
05A5 5F8C SUBI R24,0xFC
05A6 2EA8 MOV R10,R24
05A7 C013 RJMP 0x05BB
(0139) while (y<=64)
(0140) {
(0141) lcd_w(0xf3);
05A8 EF03 LDI R16,0xF3
05A9 DF5E RCALL _lcd_w
(0142) lcd_w(x);
05AA 2D0A MOV R16,R10
05AB DF5C RCALL _lcd_w
(0143) lcd_w(y);
05AC 2F06 MOV R16,R22
05AD DF5A RCALL _lcd_w
(0144) lcd_w(*ch);
05AE 01FA MOVW R30,R20
05AF 8100 LDD R16,Z+0
05B0 DF57 RCALL _lcd_w
(0145) ch++;
05B1 5F4F SUBI R20,0xFF
05B2 4F5F SBCI R21,0xFF
(0146) if (x>=19)
05B3 2D8A MOV R24,R10
05B4 3183 CPI R24,0x13
05B5 F020 BCS 0x05BA
(0147) {
(0148) x=4;
05B6 E084 LDI R24,4
05B7 2EA8 MOV R10,R24
(0149) y+=1;
05B8 9563 INC R22
(0150) }
05B9 C001 RJMP 0x05BB
(0151) else
(0152) x++;
05BA 94A3 INC R10
05BB E480 LDI R24,0x40
05BC 1786 CP R24,R22
05BD F750 BCC 0x05A8
05BE 940E0737 CALL pop_gset3
05C0 9508 RET
_key_check:
05C1 940E075C CALL push_lset
(0153) }
(0154) }
(0155)
(0156) unsigned char a[]={
(0157) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0158) 0x80,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0159) 0x80,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0160) 0x80,0x03,0x80,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0161) 0x80,0x03,0xC0,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0162) 0x80,0x03,0x74,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0163) 0x80,0x03,0x5E,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0164) 0x80,0x03,0x4E,0x04,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0165) 0x80,0x02,0x4F,0x0E,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0166) 0x80,0x26,0x4F,0x8E,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0167) 0x80,0x3E,0x40,0xCF,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0168) 0x80,0x3E,0x45,0xCB,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0169) 0x86,0x26,0x47,0xF9,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0170) 0x87,0x27,0x22,0x7D,0xE0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0171) 0x83,0xA3,0xB1,0x7D,0xE4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0172) 0x82,0xE5,0xFE,0xDE,0xE4,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0173) 0x81,0xF3,0x8D,0x5E,0xF6,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0174) 0x87,0x79,0x85,0xDE,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0175) 0x87,0x74,0x87,0xF4,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0176) 0x87,0x52,0xCF,0xFE,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0177) 0x82,0x4E,0xF8,0x03,0xEF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0178) 0xA5,0x61,0x80,0x00,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0179) 0xBD,0x3F,0x00,0x00,0x79,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0180) 0xBD,0x18,0x00,0x00,0x6F,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0181) 0xB5,0x30,0x00,0xE0,0x35,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0182) 0xB6,0xE0,0x01,0xF0,0x3B,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0183) 0xA9,0xE0,0x1F,0xF0,0x35,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0184) 0xB4,0xC0,0xFF,0xE0,0x3B,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0185) 0xBB,0xC3,0xFC,0x07,0x3E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0186) 0xB4,0xCC,0x02,0x0F,0xBC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0187) 0xB9,0x58,0x03,0x0F,0xBC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0188) 0x9D,0x70,0x01,0x07,0x38,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0189) 0x9C,0x63,0xC0,0x00,0x20,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0190) 0x91,0x6F,0xC1,0x80,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0191) 0x88,0x73,0xC1,0x80,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0192) 0x8F,0xE3,0xC0,0x01,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0193) 0x87,0xB0,0x00,0x07,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0194) 0x87,0xAC,0x00,0x1C,0x38,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0195) 0x8D,0xB7,0x01,0xFF,0xEC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0196) 0x8C,0xBF,0xFF,0xF3,0xCA,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0197) 0x88,0x64,0x7F,0xF8,0x62,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0198) 0x84,0x40,0x3C,0x78,0x26,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0199) 0x83,0x80,0x3D,0x78,0x46,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0200) 0x80,0xC0,0x3D,0x7E,0x7F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0201) 0x80,0x38,0x7D,0x7E,0x07,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0202) 0x80,0x07,0xFC,0x7C,0x0F,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0203) 0x80,0x00,0x7F,0xFC,0x07,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0204) 0x80,0x00,0x7F,0xFC,0x01,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0205) 0x80,0x00,0x7F,0xFC,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0206) 0x80,0x00,0xFF,0xFC,0x0F,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0207) 0x80,0x01,0xBF,0xFC,0x07,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0208) 0x80,0x03,0x3F,0xF2,0x03,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0209) 0x80,0x02,0x1F,0xE2,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0210) 0x80,0x04,0x0F,0xC3,0x0B,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0211) 0x80,0x04,0x18,0xC1,0x0E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0212) 0x80,0x08,0x10,0x41,0x8E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0213) 0x80,0x1C,0x10,0x40,0x87,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0214) 0x80,0x37,0x30,0x67,0xC2,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0215) 0x80,0x40,0xA0,0x6C,0x67,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0216) 0x80,0x40,0x60,0x78,0x37,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0217) 0x80,0xC0,0x60,0x70,0x37,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0218) 0x80,0xC0,0x60,0x60,0x30,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0219) 0x80,0x7F,0xC0,0x7F,0xE0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0220) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0221)
(0222) };
(0223)
(0224) unsigned char b[]={
(0225) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0226) 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0227) 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0228) 0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0xFD,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0229) 0x00,0x00,0x00,0x00,0x00,0x03,0xFB,0xFB,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0230) 0x00,0x00,0x00,0x00,0x00,0x03,0x0D,0xF4,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0231) 0x00,0x00,0x00,0x00,0x00,0x03,0x06,0xEC,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0232) 0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x18,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
(0233) 0x00,0x00,0x00,0x00,0x00,0x03,0x07,0xB8,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
(0234) 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
(0235) 0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x3E,0x01,0x80,0x00,0x01,0xC0,0x07,0x00,0x00,
(0236) 0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x77,0x01,0x80,0x00,0x01,0xC0,0x07,0x00,0x00,
(0237) 0x00,0x00,0x00,0x00,0x00,0x03,0x81,0xE3,0x83,0x80,0x00,0x01,0xC0,0x07,0x00,0x00,
(0238) 0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x9D,0xC7,0x00,0x00,0x0F,0xFC,0x07,0x00,0x00,
(0239) 0x00,0x00,0x00,0x00,0x00,0x06,0x07,0x7C,0xDE,0x00,0x00,0x0F,0xFC,0x07,0x00,0x00,
(0240) 0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0xFF,0x00,0x00,0x0E,0x1F,0xFF,0xE0,0x00,
(0241) 0x00,0x00,0x00,0x00,0x00,0x1C,0x0F,0xFC,0xFF,0x00,0x00,0x0F,0xFF,0xFF,0xE0,0x00,
(0242) 0x00,0x00,0x00,0x00,0x00,0x18,0x1F,0xFF,0xFF,0xC0,0x00,0x0F,0xFC,0x07,0x00,0x00,
(0243) 0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xE0,0x00,0x0E,0x1C,0x07,0x00,0x00,
(0244) 0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x0F,0xE1,0xE0,0x00,0x0F,0xFF,0x87,0x00,0x00,
(0245) 0x00,0x0C,0x00,0x00,0x00,0x38,0x06,0x00,0xE1,0xC0,0x00,0x0F,0xFD,0xC7,0x00,0x00,
(0246) 0x00,0x7F,0xF8,0x1F,0xE0,0x38,0x3E,0x00,0xFF,0x80,0x00,0x0E,0x1D,0xE7,0x00,0x00,
(0247) 0x00,0x7F,0xFF,0xFF,0x90,0x38,0xFC,0x00,0xFF,0x80,0x00,0x0E,0x1C,0xE7,0x00,0x00,
(0248) 0x00,0x60,0x1F,0xFF,0xF0,0x79,0xF0,0x00,0xE3,0x80,0x00,0x1F,0xFC,0x77,0x00,0x00,
(0249) 0x00,0x61,0xFF,0xFF,0xFF,0xED,0xC0,0x00,0xF3,0xC0,0x00,0x1F,0xFC,0x07,0x00,0x00,
(0250) 0x00,0x7F,0xFF,0xF3,0xFF,0xEC,0x00,0x01,0xFB,0xC0,0x00,0x00,0xFC,0x07,0x00,0x00,
(0251) 0x00,0x7F,0xFF,0xF3,0x80,0xEC,0x00,0x01,0xFF,0x80,0x00,0x03,0xFC,0x07,0x00,0x00,
(0252) 0x00,0x06,0x00,0x7E,0x00,0x0F,0xE0,0x01,0xC7,0x00,0x00,0x0F,0x9C,0x07,0x00,0x00,
(0253) 0x00,0x07,0xFF,0xFF,0xC0,0x07,0x80,0x01,0xE7,0x80,0x00,0x3F,0x1C,0x0F,0x00,0x00,
(0254) 0x00,0x00,0x3F,0xFF,0xE0,0x07,0x00,0x00,0xF7,0x80,0x00,0x1C,0xFC,0xFF,0x00,0x00,
(0255) 0x00,0x00,0x0F,0xFC,0x70,0x03,0xC0,0x00,0xFF,0x80,0x00,0x00,0xF8,0xFE,0x00,0x00,
(0256) 0x00,0x00,0x01,0xFE,0x30,0x01,0xF0,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0257) 0x00,0x00,0x00,0x7F,0x30,0x00,0x7E,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0258) 0x00,0x00,0x00,0x3F,0x3F,0xF0,0x1F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0259) 0x00,0x00,0x00,0x1F,0xFF,0xFF,0x3F,0xF8,0xF0,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0260) 0x00,0x00,0x00,0x0F,0xFC,0x0F,0xF3,0xF0,0x38,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0261) 0x00,0x00,0x00,0x0F,0xFC,0x01,0xFC,0x38,0x1C,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0262) 0x00,0x00,0x00,0x07,0xFC,0x00,0xE8,0x18,0x0C,0x00,0x00,0x0F,0xFF,0xFF,0x80,0x00,
(0263) 0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0x38,0x0E,0x00,0x00,0x0F,0xFF,0xFF,0x80,0x00,
(0264) 0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0x70,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0265) 0x00,0x00,0x00,0x00,0x00,0x00,0xE8,0x60,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0266) 0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0xF0,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0267) 0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0x60,0x0C,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0268) 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x70,0x1C,0x00,0x00,0x1F,0xFF,0xFF,0xC0,0x00,
(0269) 0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0x38,0x38,0x00,0x00,0x1F,0xFF,0xFF,0xC0,0x00,
(0270) 0x00,0x00,0x00,0x00,0x00,0x07,0x87,0xF9,0xF0,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0271) 0x00,0x00,0x00,0x00,0x00,0x07,0x01,0xE9,0xC0,0x00,0x00,0x00,0x07,0x00,0x00,0x00,
(0272) 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0xE0,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
(0273) 0x00,0x00,0x00,0x00,0x00,0x0C,0x01,0xC0,0x70,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
(0274) 0x00,0x00,0x00,0x00,0x00,0x1C,0x01,0xE0,0x30,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
(0275) 0x00,0x00,0x00,0x00,0x00,0x18,0x03,0x60,0x18,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
(0276) 0x00,0x00,0x00,0x00,0x00,0x18,0x03,0x60,0x18,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
(0277) 0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x60,0x18,0x00,0x00,0x07,0x07,0x07,0x00,0x00,
(0278) 0x00,0x00,0x00,0x00,0x00,0xF0,0x06,0x60,0x0C,0x00,0x00,0x07,0xFF,0xFF,0x00,0x00,
(0279) 0x00,0x00,0x00,0x00,0x00,0xC0,0x06,0x60,0x0E,0x00,0x00,0x07,0xFF,0xFF,0x00,0x00,
(0280) 0x00,0x00,0x00,0x00,0x01,0xC0,0x06,0x60,0x06,0x00,0x00,0x00,0x00,0x07,0x00,0x00,
(0281) 0x00,0x00,0x00,0x00,0x01,0x80,0x06,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0282) 0x00,0x00,0x00,0x00,0x01,0xC0,0x0E,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0283) 0x00,0x00,0x00,0x00,0x00,0xF0,0xFC,0x70,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0284) 0x00,0x00,0x00,0x00,0x00,0x7F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0285) 0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0286) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0287) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0288) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0289)
(0290) };
(0291) #define key (PIND&0x08)==0
(0292) #define data (PIND&0x04)==0x04
(0293) #define set_cs asm("sbi 0x18,2")
(0294) #define set_clk asm("sbi 0x18,3")
(0295) #define set_data asm("sbi 0x12,2")
(0296) #define cl_cs asm("cbi 0x18,2")
(0297) #define cl_clk asm("cbi 0x18,3")
(0298) #define cl_data asm("cbi 0x12,2")
(0299) #pragma interrupt_handler key_check:5
(0300)
(0301) unsigned char k = 0x00; ;n = 0;
(0302)
(0303) void key_check()
(0304) {
(0305) n=1;
05C3 E081 LDI R24,1
05C4 E090 LDI R25,0
05C5 93900902 STS n+1,R25
05C7 93800901 STS n,R24
(0306) send(0x15); /* 读键盘指令 */
05C9 E105 LDI R16,0x15
05CA E010 LDI R17,0
05CB D024 RCALL _send
(0307) k=receive()+61;
05CC D040 RCALL _receive
05CD 01C8 MOVW R24,R16
05CE 96CD ADIW R24,0x3D
05CF 93800900 STS k,R24
(0308) set_cs;
05D1 9AC2 SBI 0x18,2
05D2 940E0773 CALL pop_lset
05D4 9518 RETI
(0309) }
(0310)
(0311) void led_init (void)
(0312) {
(0313) DDRB|= 0x0C; /* PB0和PB1为输入 */
_led_init:
05D5 B387 IN R24,0x17
05D6 608C ORI R24,0xC
05D7 BB87 OUT 0x17,R24
(0314) set_cs;
05D8 9AC2 SBI 0x18,2
(0315) send (0xA4);
05D9 EA04 LDI R16,0xA4
05DA E010 LDI R17,0
05DB D014 RCALL _send
05DC 9508 RET
(0316) }
(0317)
(0318) void init_7279()
(0319) {
(0320) SREG|=0x80; /* 状态寄存器,全局中断允许 */
_init_7279:
05DD 9478 BSET 7
(0321) EIMSK|=0x08; /* 外部中断屏蔽寄存器 */
05DE B789 IN R24,0x39
05DF 6088 ORI R24,0x8
05E0 BF89 OUT 0x39,R24
(0322) EICRA&=0x3f; /* 外部中断控制寄存器A,INTn的上
05E1 9180006A LDS R24,0x6A
05E3 738F ANDI R24,0x3F
05E4 9380006A STS 0x6A,R24
(0323) /* 升沿产生一个异步终端请求 */
(0324) DDRD&=0xf7; /* PD3为输入 */
05E6 B381 IN R24,0x11
05E7 7F87 ANDI R24,0xF7
05E8 BB81 OUT 0x11,R24
(0325) DDRB|=0x0c;
05E9 B387 IN R24,0x17
05EA 608C ORI R24,0xC
05EB BB87 OUT 0x17,R24
(0326) PORTD&=0xfb; /* PD2输出为1 */
05EC B382 IN R24,0x12
05ED 7F8B ANDI R24,0xFB
05EE BB82 OUT 0x12,R24
05EF 9508 RET
_send:
i --> R20
out_data --> R22
05F0 940E0743 CALL push_gset2
05F2 2F60 MOV R22,R16
(0327) }
(0328)
(0329) void send (unsigned char out_data)
(0330) {
(0331) unsigned char i;
(0332)
(0333) DDRD|=0x04; /* PD2为输出 */
05F3 9A8A SBI 0x11,2
(0334) cl_cs; /* PB2输出为0 */
05F4 98C2 CBI 0x18,2
(0335) l_delay();
05F5 DEE0 RCALL _l_delay
(0336)
(0337) for(i=0;i<8;i++)
05F6 2744 CLR R20
05F7 C00F RJMP 0x0607
(0338) {
(0339) if(out_data&0x80)
05F8 2F86 MOV R24,R22
05F9 7880 ANDI R24,0x80
05FA F011 BEQ 0x05FD
(0340) {
(0341) set_data; /* PD2输出为1 */
05FB 9A92 SBI 0x12,2
(0342) }
05FC C001 RJMP 0x05FE
(0343) else
(0344) {
(0345) cl_data; /* PD2输出为0 */
05FD 9892 CBI 0x12,2
(0346) }
(0347) s_delay();
05FE DEDD RCALL _s_delay
(0348) set_clk;
05FF 9AC3 SBI 0x18,3
(0349) s_delay();
0600 DEDB RCALL _s_delay
(0350) cl_clk;
0601 98C3 CBI 0x18,3
(0351) s_delay();
0602 DED9 RCALL _s_delay
(0352) out_data*=2; /* 数据向左移一位 */
0603 E082 LDI R24,2
0604 9F86 MUL R24,R22
0605 2D60 MOV R22,R0
0606 9543 INC R20
0607 3048 CPI R20,0x8
0608 F378 BCS 0x05F8
(0353) }
(0354) cl_data;
0609 9892 CBI 0x12,2
060A 940E0734 CALL pop_gset2
060C 9508 RET
_receive:
in_data --> R20
i --> R22
060D 940E0743 CALL push_gset2
(0355) }
(0356) unsigned char receive(void)
(0357) {
(0358) unsigned char i;
(0359) unsigned char in_data=0x00;
060F 2744 CLR R20
(0360)
(0361) DDRD&=0xfb;
0610 B381 IN R24,0x11
0611 7F8B ANDI R24,0xFB
0612 BB81 OUT 0x11,R24
(0362) /* PD2为输入 */
(0363) for(i=0;i<8;i++)
0613 2766 CLR R22
0614 C00D RJMP 0x0622
(0364) {
(0365) set_clk;
0615 9AC3 SBI 0x18,3
(0366) s_delay();
0616 DEC5 RCALL _s_delay
(0367) in_data*=2; /* 数据左移一位 */
0617 E082 LDI R24,2
0618 9F84 MUL R24,R20
0619 2D40 MOV R20,R0
(0368) if(data)
061A B380 IN R24,0x10
061B 7084 ANDI R24,4
061C 3084 CPI R24,4
061D F409 BNE 0x061F
(0369) {
(0370) in_data|=0x01;
061E 6041 ORI R20,1
(0371) }
(0372) cl_clk;
061F 98C3 CBI 0x18,3
(0373) s_delay();
0620 DEBB RCALL _s_delay
0621 9563 INC R22
0622 3068 CPI R22,0x8
0623 F388 BCS 0x0615
(0374) }
(0375) cl_data;
0624 9892 CBI 0x12,2
(0376) return(in_data);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -