📄 display_board3.0.lis
字号:
0023 0400 .word 4
.area data(ram, con, rel)
0025 .dbfile display_board3.0.c
0025 .dbsym e PDataYMin _PDataYMin I
0025 _FileEnd::
0025 .blkb 1
.area idata
0025 01 .byte 1
.area data(ram, con, rel)
0026 .dbfile display_board3.0.c
0026 .dbsym e FileEnd _FileEnd c
0026 _HeadLoad::
0026 .blkb 1
.area idata
0026 00 .byte 0
.area data(ram, con, rel)
0027 .dbfile display_board3.0.c
0027 .dbsym e HeadLoad _HeadLoad c
0027 _HeadEN::
0027 .blkb 1
.area idata
0027 01 .byte 1
.area data(ram, con, rel)
0028 .dbfile display_board3.0.c
0028 .dbsym e HeadEN _HeadEN c
0028 _DataIndex::
0028 .blkb 2
.area idata
0028 0000 .word 0
.area data(ram, con, rel)
002A .dbfile display_board3.0.c
002A .dbsym e DataIndex _DataIndex I
002A _FileLength::
002A .blkb 2
.area idata
002A 0000 .word 0
.area data(ram, con, rel)
002C .dbfile display_board3.0.c
002C .dbsym e FileLength _FileLength I
002C _time_out_ms::
002C .blkb 2
.area idata
002C 0100 .word 1
.area data(ram, con, rel)
002E .dbfile display_board3.0.c
002E .dbsym e time_out_ms _time_out_ms i
002E _time_out_s::
002E .blkb 1
.area idata
002E 00 .byte 0
.area data(ram, con, rel)
002F .dbfile display_board3.0.c
002F .dbsym e time_out_s _time_out_s c
002F _DispModel::
002F .blkb 1
.area idata
002F 00 .byte 0
.area data(ram, con, rel)
0030 .dbfile display_board3.0.c
0030 .dbsym e DispModel _DispModel c
0030 _ModelDelayTime::
0030 .blkb 2
.area idata
0030 0000 .word 0
.area data(ram, con, rel)
0032 .dbfile display_board3.0.c
0032 .dbsym e ModelDelayTime _ModelDelayTime I
0032 _ModelContJuge::
0032 .blkb 1
.area idata
0032 00 .byte 0
.area data(ram, con, rel)
0033 .dbfile display_board3.0.c
0033 .dbsym e ModelContJuge _ModelContJuge c
.area text(rom, con, rel)
01D8 .dbfile display_board3.0.c
01D8 .dbfunc e port_int _port_int fV
.even
01D8 _port_int::
01D8 .dbline -1
01D8 .dbline 128
01D8 ; ****************************************/
01D8 ; void port_int(void)
01D8 ; {
01D8 .dbline 129
01D8 ; DDRA =0XFF;
01D8 8FEF ldi R24,255
01DA 8ABB out 0x1a,R24
01DC .dbline 130
01DC ; PORTA =0XFF;
01DC 8BBB out 0x1b,R24
01DE .dbline 131
01DE ; DDRB =0B00001110;
01DE 8EE0 ldi R24,14
01E0 87BB out 0x17,R24
01E2 .dbline 132
01E2 ; PORTB =0XFF;
01E2 8FEF ldi R24,255
01E4 88BB out 0x18,R24
01E6 .dbline 133
01E6 ; DDRC =0XFF;
01E6 84BB out 0x14,R24
01E8 .dbline 134
01E8 ; PORTC =0XFF;
01E8 85BB out 0x15,R24
01EA .dbline 135
01EA ; DDRD = 0xF8; //
01EA 88EF ldi R24,248
01EC 81BB out 0x11,R24
01EE .dbline 136
01EE ; PORTD = 0XFF;
01EE 8FEF ldi R24,255
01F0 82BB out 0x12,R24
01F2 .dbline -2
01F2 L40:
01F2 .dbline 0 ; func end
01F2 0895 ret
01F4 .dbend
01F4 .dbfunc e timer_int _timer_int fV
.even
01F4 _timer_int::
01F4 .dbline -1
01F4 .dbline 143
01F4 ; }
01F4 ;
01F4 ; /****************************************
01F4 ; 定时器
01F4 ; ****************************************/
01F4 ; void timer_int(void)
01F4 ; {
01F4 .dbline 144
01F4 ; TCCR1B = 0x00; //stop
01F4 2224 clr R2
01F6 2EBC out 0x2e,R2
01F8 .dbline 145
01F8 ; TCNT1H = 0xd4; //setup
01F8 84ED ldi R24,212
01FA 8DBD out 0x2d,R24
01FC .dbline 146
01FC ; TCNT1L = 0xce;
01FC 8EEC ldi R24,206
01FE 8CBD out 0x2c,R24
0200 .dbline 147
0200 ; TCCR1A = 0x00;
0200 2FBC out 0x2f,R2
0202 .dbline 148
0202 ; TCCR1B = 0x01; //start Timer
0202 81E0 ldi R24,1
0204 8EBD out 0x2e,R24
0206 .dbline 149
0206 ; TIMSK = 0x04;
0206 84E0 ldi R24,4
0208 89BF out 0x39,R24
020A .dbline -2
020A L41:
020A .dbline 0 ; func end
020A 0895 ret
020C .dbend
020C .dbfunc e exit_int _exit_int fV
.even
020C _exit_int::
020C .dbline -1
020C .dbline 157
020C ;
020C ; }
020C ;
020C ; /****************************************
020C ; 外中断
020C ; ****************************************/
020C ; void exit_int(void)
020C ; {
020C .dbline 158
020C ; GICR = 0x40;
020C 80E4 ldi R24,64
020E 8BBF out 0x3b,R24
0210 .dbline 159
0210 ; MCUCR = 0x02;
0210 82E0 ldi R24,2
0212 85BF out 0x35,R24
0214 .dbline -2
0214 L42:
0214 .dbline 0 ; func end
0214 0895 ret
0216 .dbend
0216 .dbfunc e uart_int _uart_int fV
.even
0216 _uart_int::
0216 .dbline -1
0216 .dbline 167
0216 ;
0216 ; }
0216 ;
0216 ; /****************************************
0216 ; 串口通讯
0216 ; ****************************************/
0216 ; void uart_int(void)
0216 ; {
0216 .dbline 168
0216 ; UCSRB = 0x00; //disable while setting baud rate
0216 2224 clr R2
0218 2AB8 out 0xa,R2
021A .dbline 169
021A ; UCSRA = 0x00;
021A 2BB8 out 0xb,R2
021C .dbline 170
021C ; UCSRC = 0x00;
021C 20BC out 0x20,R2
021E .dbline 171
021E ; UBRR =5; //设置波特率115200
021E 85E0 ldi R24,5
0220 89B9 out 0x9,R24
0222 .dbline 172
0222 ; UCSRB = 0x98; //接受中断允许,接受允许,发送允许
0222 88E9 ldi R24,152
0224 8AB9 out 0xa,R24
0226 .dbline 173
0226 ; UCSRC = 0xAe; //8BIT, 奇校验,2停止位
0226 8EEA ldi R24,174
0228 80BD out 0x20,R24
022A .dbline -2
022A L43:
022A .dbline 0 ; func end
022A 0895 ret
022C .dbend
022C .dbfunc e device_int _device_int fV
.even
022C _device_int::
022C .dbline -1
022C .dbline 180
022C ; }
022C ;
022C ; /****************************************
022C ; 器件初始化函数
022C ; ****************************************/
022C ; void device_int(void)
022C ; {
022C .dbline 181
022C ; CLI();
022C F894 cli
022E .dbline 182
022E ; port_int();
022E D4DF xcall _port_int
0230 .dbline 183
0230 ; timer_int();
0230 E1DF xcall _timer_int
0232 .dbline 184
0232 ; exit_int();
0232 ECDF xcall _exit_int
0234 .dbline 185
0234 ; uart_int();
0234 F0DF xcall _uart_int
0236 .dbline 186
0236 ; SEI();
0236 7894 sei
0238 .dbline -2
0238 L44:
0238 .dbline 0 ; func end
0238 0895 ret
023A .dbend
023A .dbfunc e uart_TX _uart_TX fV
023A ; data -> R16
.even
023A _uart_TX::
023A .dbline -1
023A .dbline 193
023A ; }
023A ;
023A ; /****************************************
023A ; 串口收发数据
023A ; ****************************************/
023A ; void uart_TX(unsigned char data)
023A ; {
023A .dbline 194
023A ; UCSRA |=0X40; //标志清零
023A 5E9A sbi 0xb,6
023C .dbline 195
023C ; UDR =data;
023C 0CB9 out 0xc,R16
023E .dbline -2
023E L45:
023E .dbline 0 ; func end
023E 0895 ret
0240 .dbsym r data 16 c
0240 .dbend
0240 .dbfunc e uart_time_out _uart_time_out fV
.even
0240 _uart_time_out::
0240 .dbline -1
0240 .dbline 201
0240 ; }
0240 ; //***************
0240 ; //传输超时处理,当time_out_ms大于设定值的时候,等待等待20S,并且
0240 ; //一直发送标志符号,超过20S以后,进行错误处理
0240 ; void uart_time_out(void)
0240 ; {
0240 .dbline 202
0240 ; time_out_ms++;
0240 80912C00 lds R24,_time_out_ms
0244 90912D00 lds R25,_time_out_ms+1
0248 0196 adiw R24,1
024A 90932D00 sts _time_out_ms+1,R25
024E 80932C00 sts _time_out_ms,R24
0252 .dbline 203
0252 ; if (HeadEN ==0 && FileEnd ==0 && time_out_ms >=800 )
0252 20902700 lds R2,_HeadEN
0256 2220 tst R2
0258 61F5 brne L47
025A 20902500 lds R2,_FileEnd
025E 2220 tst R2
0260 41F5 brne L47
0262 8032 cpi R24,32
0264 E3E0 ldi R30,3
0266 9E07 cpc R25,R30
0268 20F1 brlo L47
026A .dbline 204
026A ; {
026A .dbline 205
026A ; if(sys_cont ==0) //秒记时
026A 20901D00 lds R2,_sys_cont
026E 30901E00 lds R3,_sys_cont+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -