📄 设计最后.lis
字号:
0004 ; 0x76, ' ',//Esc
0004 ; 0x75, ' ',// { up }
0004 ; 0x72, ' ',// { down }
0004 ; 0x6B, ' ',// { left }
0004 ; 0x74, ' ',// { right }
0004 ; 0x66, ' ',//(删去键)
0004 ;
0004 ; };
0004 ;
0004 ; unsigned char Shifted[59][2] = {
0004 ; 0x1C, 'A',
0004 ; 0x32, 'B',
0004 ; 0x21, 'C',
0004 ; 0x23, 'D',
0004 ; 0x24, 'E',
0004 ; 0x2B, 'F',
0004 ; 0x34, 'G',
0004 ; 0x33, 'H',
0004 ; 0x43, 'I',
0004 ; 0x3B, 'J',
0004 ; 0x42, 'K',
0004 ; 0x4B, 'L',
0004 ; 0x3A, 'M',
0004 ; 0x31, 'N',
0004 ; 0x44, 'O',
0004 ; 0x4D, 'P',
0004 ; 0x15, 'Q',
0004 ; 0x2D, 'R',
0004 ; 0x1B, 'S',
0004 ; 0x2C, 'T',
0004 ; 0x3C, 'U',
0004 ; 0x2A, 'V',
0004 ; 0x1D, 'W',
0004 ; 0x22, 'X',
0004 ; 0x35, 'Y',
0004 ; 0x1A, 'Z',
0004 ; 0x45, '0',
0004 ; 0x16, '1',
0004 ; 0x1E, '2',
0004 ; 0x26, '3',
0004 ; 0x25, '4',
0004 ; 0x2E, '5',
0004 ; 0x36, '6',
0004 ; 0x3D, '7',
0004 ; 0x3E, '8',
0004 ; 0x46, '9',
0004 ; 0x0E, '~',
0004 ; 0x4E, '_',
0004 ; 0x55, '+',
0004 ; 0x5D, '|',
0004 ; 0x29, ' ',
0004 ; 0x54, '{',
0004 ; 0x5B, '}',
0004 ; 0x4C, ':',
0004 ; 0x52, '"',
0004 ; 0x41, '<',
0004 ; 0x49, '>',
0004 ; 0x4A, '?',
0004 ; 0x71, '.',
0004 ; 0x70, '0',
0004 ; 0x69, '1',
0004 ; 0x72, '2',
0004 ; 0x7A, '3',
0004 ; 0x6B, '4',
0004 ; 0x73, '5',
0004 ; 0x74, '6',
0004 ; 0x6C, '7',
0004 ; 0x75, '8',
0004 ; 0x7D, '9',
0004 ; };
0004 ;
0004 ; void delay(unsigned char n)
0004 ; {
0004 .dbline 163
0004 ; unsigned char i;
0004 ; for(;n>0;n--)
0004 06C0 xjmp L5
0006 L2:
0006 .dbline 164
0006 4427 clr R20
0008 01C0 xjmp L9
000A L6:
000A .dbline 164
000A L7:
000A .dbline 164
000A 4395 inc R20
000C L9:
000C .dbline 164
000C 483C cpi R20,200
000E E8F3 brlo L6
0010 L3:
0010 .dbline 163
0010 0A95 dec R16
0012 L5:
0012 .dbline 163
0012 2224 clr R2
0014 2016 cp R2,R16
0016 B8F3 brlo L2
0018 .dbline -2
0018 L1:
0018 0E940000 xcall pop_gset1
001C .dbline 0 ; func end
001C 0895 ret
001E .dbsym r i 20 c
001E .dbsym r n 16 c
001E .dbend
001E .dbfunc e initail_ocmj _initail_ocmj fV
.even
001E _initail_ocmj::
001E .dbline -1
001E .dbline 168
001E ; for(i=0;i<200;i++);
001E ; }
001E ; /**************************************/
001E ; void initail_ocmj(void)
001E ; {
001E .dbline 169
001E ; MCUCR=0X00;
001E 2224 clr R2
0020 25BE out 0x35,R2
0022 .dbline 170
0022 ; DDRA=0XFF;
0022 8FEF ldi R24,255
0024 8ABB out 0x1a,R24
0026 .dbline 171
0026 ; DPORT_A=0XFF;
0026 8BBB out 0x1b,R24
0028 .dbline 172
0028 ; DDRE=0X80; ///PORTE.7作为输出请求信号,PE3为检查忙不忙信号
0028 80E8 ldi R24,128
002A 82B9 out 0x2,R24
002C .dbline 173
002C ; DDRD=0XFF;
002C 8FEF ldi R24,255
002E 81BB out 0x11,R24
0030 .dbline 174
0030 ; PORTD=0XfF;
0030 82BB out 0x12,R24
0032 .dbline 175
0032 ; PORTE=0Xff; //PE初使化为高电平
0032 83B9 out 0x3,R24
0034 .dbline 176
0034 ; DDRC=0X08; //PC3复位
0034 88E0 ldi R24,8
0036 84BB out 0x14,R24
0038 .dbline 177
0038 ; CLR1_RESET;
0038 AB98 cbi 0x15,3
003A .dbline 178
003A ; delay_nms(20);
003A 04E1 ldi R16,20
003C 10E0 ldi R17,0
003E 0E940000 xcall _delay_nms
0042 .dbline 179
0042 ; SBT_RESET;
0042 AB9A sbi 0x15,3
0044 .dbline 180
0044 ; CLR_ANSWER;//关闭请求信号
0044 1F98 cbi 0x3,7
0046 .dbline 181
0046 ; delay(100);
0046 04E6 ldi R16,100
0048 DBDF xcall _delay
004A .dbline -2
004A L10:
004A .dbline 0 ; func end
004A 0895 ret
004C .dbend
004C .dbfunc e ocmj_write _ocmj_write fV
004C ; adata -> R16
.even
004C _ocmj_write::
004C .dbline -1
004C .dbline 185
004C ; }
004C ; /***************************************/
004C ; void ocmj_write(unsigned char adata)
004C ; {
004C L12:
004C .dbline 186
004C L13:
004C .dbline 186
004C ; while(ASK);//高电平就等待
004C 0E99 sbic 0x1,6
004E FECF rjmp L12
0050 .dbline 187
0050 ; DPORT_A=adata;//先给数据给PA
0050 0BBB out 0x1b,R16
0052 .dbline 188
0052 ; _NOP(); //延时
0052 0000 nop
0054 .dbline 189
0054 ; SBT_ANSWER;//请求信号
0054 1F9A sbi 0x3,7
0056 .dbline 190
0056 ; _NOP();
0056 0000 nop
0058 L15:
0058 .dbline 191
0058 L16:
0058 .dbline 191
0058 ; while(ASK==0);//等待数据传送完
0058 0E9B sbis 0x1,6
005A FECF rjmp L15
005C .dbline 192
005C ; CLR_ANSWER; //关闭请求
005C 1F98 cbi 0x3,7
005E .dbline -2
005E L11:
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbsym r adata 16 c
0060 .dbend
0060 .dbfunc e write_asiic _write_asiic fV
0060 ; asc_p -> y+4
0060 ; y -> R20
0060 ; x -> R22
.even
0060 _write_asiic::
0060 0E940000 xcall push_gset2
0064 422F mov R20,R18
0066 602F mov R22,R16
0068 .dbline -1
0068 .dbline 197
0068 ; }
0068 ;
0068 ;
0068 ; void write_asiic(unsigned char x,unsigned char y,unsigned char asc_p)
0068 ; {
0068 .dbline 198
0068 ; x+=4;
0068 6C5F subi R22,252 ; addi 4
006A .dbline 199
006A ; ocmj_write(0xf1);
006A 01EF ldi R16,241
006C EFDF xcall _ocmj_write
006E .dbline 200
006E ; ocmj_write(x);
006E 062F mov R16,R22
0070 EDDF xcall _ocmj_write
0072 .dbline 201
0072 ; ocmj_write(y);
0072 042F mov R16,R20
0074 EBDF xcall _ocmj_write
0076 .dbline 202
0076 ; ocmj_write(asc_p);
0076 0C81 ldd R16,y+4
0078 E9DF xcall _ocmj_write
007A .dbline -2
007A L18:
007A 0E940000 xcall pop_gset2
007E .dbline 0 ; func end
007E 0895 ret
0080 .dbsym l asc_p 4 c
0080 .dbsym r y 20 c
0080 .dbsym r x 22 c
0080 .dbend
0080 .dbfunc e DisplayListChar _DisplayListChar fV
0080 ; asc_p -> R20
0080 ; i -> R22
0080 ; y -> R10
0080 ; x -> R12
.even
0080 _DisplayListChar::
0080 0E940000 xcall push_gset4
0084 A22E mov R10,R18
0086 C02E mov R12,R16
0088 .dbline -1
0088 .dbline 209
0088 ;
0088 ; }
0088 ; /********************************************/
0088 ;
0088 ; /**********************************************/
0088 ; void DisplayListChar(unsigned char x,unsigned char y)
0088 ; {
0088 .dbline 211
0088 ; unsigned char i,asc_p;
0088 ; asc_p=' ';
0088 40E2 ldi R20,32
008A .dbline 212
008A ; x+=4;
008A 8C2D mov R24,R12
008C 8C5F subi R24,252 ; addi 4
008E C82E mov R12,R24
0090 .dbline 213
0090 ; for(i=0;i<16;i++)
0090 6627 clr R22
0092 0AC0 xjmp L23
0094 L20:
0094 .dbline 214
0094 .dbline 214
0094 01EF ldi R16,241
0096 DADF xcall _ocmj_write
0098 .dbline 215
0098 0C2D mov R16,R12
009A 060F add R16,R22
009C D7DF xcall _ocmj_write
009E .dbline 216
009E 0A2D mov R16,R10
00A0 D5DF xcall _ocmj_write
00A2 .dbline 217
00A2 042F mov R16,R20
00A4 D3DF xcall _ocmj_write
00A6 .dbline 218
00A6 L21:
00A6 .dbline 213
00A6 6395 inc R22
00A8 L23:
00A8 .dbline 213
00A8 6031 cpi R22,16
00AA A0F3 brlo L20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -