📄 display_board5.0.lis
字号:
004E ;
004E 062F mov R16,R22
0050 142F mov R17,R20
0052 0E940000 xcall lsl8
0056 802F mov R24,R16
0058 8078 andi R24,128
005A 21F4 brne L11
005C .dbline 65
005C ; //按键处理
005C 88B3 in R24,0x18
005E 877F andi R24,247
0060 88BB out 0x18,R24
0062 01C0 xjmp L12
0064 L11:
0064 .dbline 67
0064 ;
0064 ; //数脉冲
0064 C39A sbi 0x18,3
0066 L12:
0066 .dbline 68
0066 C29A sbi 0x18,2
0068 .dbline 69
0068 88B3 in R24,0x18
006A 8B7F andi R24,251
006C 88BB out 0x18,R24
006E .dbline 70
006E L8:
006E .dbline 62
006E 4395 inc R20
0070 L10:
0070 .dbline 62
0070 4830 cpi R20,8
0072 68F3 brlo L7
0074 .dbline -2
0074 .dbline 71
0074 ; int PDataY =0;
0074 ; int PDataYMax =152;
0074 ; int PDataYMin =2;
0074 ;
0074 L6:
0074 0E940000 xcall pop_gset2
0078 .dbline 0 ; func end
0078 0895 ret
007A .dbsym r count 20 c
007A .dbsym r send_data 22 c
007A .dbend
007A .dbfunc e Disp_key_group _Disp_key_group fV
.even
007A _Disp_key_group::
007A .dbline -1
007A .dbline 74
007A ; //UART接收数据
007A ; char FileEnd =1;
007A ; char HeadLoad =0;
007A .dbline 75
007A ; char HeadEN =1;
007A 80910800 lds R24,_disp_key_count
007E 8F5F subi R24,255 ; addi 1
0080 80930800 sts _disp_key_count,R24
0084 .dbline 76
0084 ; int DataIndex =0;
0084 87E0 ldi R24,7
0086 20900800 lds R2,_disp_key_count
008A 8215 cp R24,R2
008C 18F4 brsh L14
008E .dbline 77
008E ; int FileLength =0;
008E 2224 clr R2
0090 20920800 sts _disp_key_count,R2
0094 L14:
0094 .dbline 78
0094 ; char Head[3]; //头文件"LED"存储
0094 10910800 lds R17,_disp_key_count
0098 01E0 ldi R16,1
009A 0E940000 xcall lsl8
009E 202F mov R18,R16
00A0 80E0 ldi R24,<_Disp_Buff
00A2 90E0 ldi R25,>_Disp_Buff
00A4 E0910800 lds R30,_disp_key_count
00A8 FF27 clr R31
00AA E80F add R30,R24
00AC F91F adc R31,R25
00AE 0081 ldd R16,z+0
00B0 B4DF xcall _disp_bit
00B2 .dbline 79
00B2 ; unsigned int time_out_ms=1; //接收数据时限
00B2 B099 sbic 0x16,0
00B4 0AC0 rjmp L16
00B6 .dbline 80
00B6 ; unsigned char time_out_s=0; //试图通讯重新时限
00B6 80E0 ldi R24,<_key_buff
00B8 90E0 ldi R25,>_key_buff
00BA E0910800 lds R30,_disp_key_count
00BE FF27 clr R31
00C0 E80F add R30,R24
00C2 F91F adc R31,R25
00C4 81E0 ldi R24,1
00C6 8083 std z+0,R24
00C8 09C0 xjmp L17
00CA L16:
00CA .dbline 82
00CA 80E0 ldi R24,<_key_buff
00CC 90E0 ldi R25,>_key_buff
00CE E0910800 lds R30,_disp_key_count
00D2 FF27 clr R31
00D4 E80F add R30,R24
00D6 F91F adc R31,R25
00D8 2224 clr R2
00DA 2082 std z+0,R2
00DC L17:
00DC .dbline -2
00DC .dbline 83
00DC ;
00DC ; //特效处理
00DC ; char DispModel =0;
00DC L13:
00DC .dbline 0 ; func end
00DC 0895 ret
00DE .dbend
00DE .dbfunc e dec_hex_disp _dec_hex_disp fV
00DE ; temp -> R20,R21
00DE ; i -> R22
.even
00DE _dec_hex_disp::
00DE 0E940000 xcall push_gset2
00E2 .dbline -1
00E2 .dbline 85
00E2 ; int ModelDelayTime =0;
00E2 ; char ModelContJuge=0;
00E2 .dbline 88
00E2 ; /************************************************
00E2 ; 函数申明
00E2 ; **************************************************/
00E2 40910900 lds R20,_disp_code
00E6 50910A00 lds R21,_disp_code+1
00EA .dbline 89
00EA ; //基本初始化
00EA 6627 clr R22
00EC 11C0 xjmp L22
00EE L19:
00EE .dbline 90
00EE 84E0 ldi R24,4
00F0 869F mul R24,R22
00F2 9001 movw R18,R0
00F4 8A01 movw R16,R20
00F6 0E940000 xcall asr16
00FA C801 movw R24,R16
00FC 8F70 andi R24,15
00FE 9070 andi R25,0
0100 E0E0 ldi R30,<_Disp_Buff
0102 F0E0 ldi R31,>_Disp_Buff
0104 A62F mov R26,R22
0106 BB27 clr R27
0108 AE0F add R26,R30
010A BF1F adc R27,R31
010C 8C93 st x,R24
010E L20:
010E .dbline 89
010E 6395 inc R22
0110 L22:
0110 .dbline 89
0110 6730 cpi R22,7
0112 68F3 brlo L19
0114 .dbline -2
0114 .dbline 91
0114 ; void port_int(void);
0114 ; void timer_int(void);
0114 L18:
0114 0E940000 xcall pop_gset2
0118 .dbline 0 ; func end
0118 0895 ret
011A .dbsym r temp 20 I
011A .dbsym r i 22 c
011A .dbend
011A .dbfunc e Key_num _Key_num fV
011A ; j -> R16
011A ; i -> R18
.even
011A _Key_num::
011A .dbline -1
011A .dbline 94
011A ; void uart_int(void);
011A ; void device_int(void);
011A ; void twi_init(void);
011A .dbline 96
011A ;
011A ; //按键显示事件处理
011A 0027 clr R16
011C .dbline 97
011C ; void Display_event(void); //显示事件
011C 2224 clr R2
011E 30901A00 lds R3,_key_delay
0122 2314 cp R2,R3
0124 20F4 brsh L24
0126 .dbline 98
0126 ; void KEY_event(void); //按键事件处理
0126 832D mov R24,R3
0128 8150 subi R24,1
012A 80931A00 sts _key_delay,R24
012E L24:
012E .dbline 99
012E ;
012E 2227 clr R18
0130 0DC0 xjmp L29
0132 L26:
0132 .dbline 100
0132 ; //特效处理
0132 .dbline 101
0132 ; void Disp_Model(void); //屏幕显示特效模式
0132 80E0 ldi R24,<_key_buff
0134 90E0 ldi R25,>_key_buff
0136 E22F mov R30,R18
0138 FF27 clr R31
013A E80F add R30,R24
013C F91F adc R31,R25
013E 8081 ldd R24,z+0
0140 8130 cpi R24,1
0142 19F4 brne L30
0144 .dbline 102
0144 ;
0144 .dbline 103
0144 ; //外部RAM读写操作
0144 20930F00 sts _new_key_num,R18
0148 .dbline 104
0148 ; void data_store(char data);
0148 01E0 ldi R16,1
014A .dbline 105
014A ; char RAM_Read(int adress);
014A L30:
014A .dbline 106
014A L27:
014A .dbline 99
014A 2395 inc R18
014C L29:
014C .dbline 99
014C 87E0 ldi R24,7
014E 8217 cp R24,R18
0150 80F7 brsh L26
0152 .dbline 107
0152 ; void RAM_Write(int adress,char data);
0152 ;
0152 0023 tst R16
0154 19F4 brne L32
0156 .dbline 108
0156 ; //显示屏数据发送
0156 8FE0 ldi R24,15
0158 80930F00 sts _new_key_num,R24
015C L32:
015C .dbline 109
015C ; void Screen_send(void);
015C 80910E00 lds R24,_old_key_num
0160 8F30 cpi R24,15
0162 61F4 brne L34
0164 80910F00 lds R24,_new_key_num
0168 8F30 cpi R24,15
016A 41F0 breq L34
016C 20901A00 lds R2,_key_delay
0170 2220 tst R2
0172 21F4 brne L34
0174 .dbline 110
0174 ;
0174 282E mov R2,R24
0176 20920D00 sts _key_num,R2
017A 29C0 xjmp L35
017C L34:
017C .dbline 111
017C ; //SPI硬件通讯
017C 80910E00 lds R24,_old_key_num
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -