?? eeprom.s
字號(hào):
.module eeprom.c
.area text(rom, con, rel)
.dbfile E:\icc\eeprom/lcd_init.h
.dbfunc e delay _delay fV
; n -> R16,R17
.even
_delay::
.dbline -1
.dbline 40
; //ICC-AVR application builder : 2008-10-8 下午 04:03:04
; // Target : M128
; // Crystal: 8.0000Mhz
;
; #include <iom128v.h>
; #include <macros.h>
; #include "lcd_init.h"
; #include "eeprom_init.h"
; #include "DS1302.h"
; //iccavr
; //extern unsigned char twi_write(unsigned char addr, unsigned char dd);
; //extern unsigned char twi_read(unsigned char addr, unsigned char *dd);
; /*延時(shí)函數(shù)*/
; void delay_ms(unsigned char i) {
; unsigned char a, b;
; for (a = 1; a < i; a++)
; {
; for (b = 1; b; b++)
; {
; ;
; }
; }
; }
; void main(void)
; {
;
; unsigned char temp,i;
; unsigned char send_flag=0,time_read=6;
; PORTA = 0xFF; /*打開上拉*/
; DDRA = 0x00; /*方向輸入*/
; PORTB = 0xF0; /*電平設(shè)置*/
; DDRB = 0xFF; /*方向輸出*/
; PORTC = 0xFF;
; DDRC = 0x00;
; PORTD = 0xFF;
; DDRD = 0x00;
; ds1302_init();//ds1302初始化
; ds1302_write_time();
; disp_init();
; for (i=0;i<20;i++) //寫入20個(gè)數(shù)據(jù)
L2:
.dbline 41
L3:
.dbline 41
; {
movw R2,R16
subi R16,1
sbci R17,0
tst R2
brne L2
tst R3
brne L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r n 16 i
.dbend
.dbfunc e chk_busy _chk_busy fV
.even
_chk_busy::
.dbline -1
.dbline 44
; twi_write((0x100+i),i);
; delay(0xfff);
; }
.dbline 45
;
ldi R24,255
out 0x1b,R24
.dbline 46
; //twi_read(0x08, &temp);
lds R24,101
andi R24,254
sts 101,R24
.dbline 47
; //PORTB = ~temp;
lds R24,101
ori R24,2
sts 101,R24
.dbline 49
; //temp ++;
; //temp=0;
clr R2
out 0x1a,R2
.dbline 51
; //twi_write(0x08, temp);
;
lds R24,101
ori R24,4
sts 101,R24
L6:
.dbline 52
L7:
.dbline 52
;
sbic 0x19,7
rjmp L6
.dbline 53
; delay(0xffff);
lds R24,101
andi R24,251
sts 101,R24
.dbline 54
; disp_word(0x80,"任務(wù):EEPROM");
ldi R24,255
out 0x1a,R24
.dbline -2
L5:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LCD_write_code _LCD_write_code fV
; code -> R20
.even
_LCD_write_code::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 58
; disp_word(0x90,"2008年10月09日");
; disp_word(0x88,"AT24C16");
; i=0;
;
.dbline 59
; while (1)
xcall _chk_busy
.dbline 60
; {
lds R24,101
andi R24,254
sts 101,R24
.dbline 61
; ds1302_read_time();
lds R24,101
andi R24,253
sts 101,R24
.dbline 62
; disp_number16(0x8d,time_buf[6]);
out 0x1b,R20
.dbline 63
; if(time_buf[6]==0)
lds R24,101
ori R24,4
sts 101,R24
.dbline 64
; {
ldi R16,100
ldi R17,0
xcall _delay
.dbline 65
; send_flag=1;
lds R24,101
andi R24,251
sts 101,R24
.dbline -2
L9:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r code 20 c
.dbend
.dbfunc e LCD_write_data _LCD_write_data fV
; data -> R20
.even
_LCD_write_data::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 69
; if(time_buf[5]==time_read)
; send_flag=0;
; }
; if(send_flag==1)
.dbline 70
; {
xcall _chk_busy
.dbline 71
; twi_read((0x100+i),&temp);
lds R24,101
ori R24,1
sts 101,R24
.dbline 72
; i++;
lds R24,101
andi R24,253
sts 101,R24
.dbline 73
; send_flag=0;
out 0x1b,R20
.dbline 74
; time_read=time_buf[5];
lds R24,101
ori R24,4
sts 101,R24
.dbline 75
; disp_number10(0x98,temp);
ldi R16,100
ldi R17,0
xcall _delay
.dbline 76
; }
lds R24,101
andi R24,251
sts 101,R24
.dbline -2
L10:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r data 20 c
.dbend
.dbfunc e disp_char _disp_char fV
; asii -> R20
; position -> R22
.even
_disp_char::
xcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 80
;
; }
; }
; }
.dbline 81
; }
mov R16,R22
xcall _LCD_write_code
.dbline 82
; }
mov R16,R20
xcall _LCD_write_data
.dbline -2
L11:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r asii 20 c
.dbsym r position 22 c
.dbend
.dbfunc e disp_word _disp_word fV
; word -> R20,R21
; position -> R22
.even
_disp_word::
xcall push_gset2
movw R20,R18
mov R22,R16
.dbline -1
.dbline 97
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 98
; }
mov R16,R22
xcall _LCD_write_code
xjmp L14
L13:
.dbline 100
.dbline 101
movw R30,R20
ldd R16,z+0
xcall _LCD_write_data
.dbline 102
subi R20,255 ; offset = 1
sbci R21,255
.dbline 103
L14:
.dbline 99
; }
movw R30,R20
ldd R2,z+0
tst R2
brne L13
.dbline -2
L12:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r word 20 pc
.dbsym r position 22 c
.dbend
.dbfunc e disp_number10 _disp_number10 fV
; num_l -> R22
; num_h -> R10
; num -> R20
; position -> R22
.even
_disp_number10::
xcall push_gset3
mov R20,R18
mov R22,R16
.dbline -1
.dbline 111
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 113
; }
; }
mov R16,R22
xcall _LCD_write_code
.dbline 114
; }
cpi R20,10
brlo L17
.dbline 115
; }
.dbline 116
; }
ldi R17,10
mov R16,R20
xcall div8u
mov R10,R16
.dbline 117
; }
ldi R17,10
mov R16,R20
xcall mod8u
mov R22,R16
.dbline 118
; }
mov R16,R10
subi R16,208 ; addi 48
xcall _LCD_write_data
.dbline 119
; }
mov R16,R22
subi R16,208 ; addi 48
xcall _LCD_write_data
.dbline 120
; }
xjmp L18
L17:
.dbline 122
.dbline 123
ldi R16,48
xcall _LCD_write_data
.dbline 124
mov R16,R20
subi R16,208 ; addi 48
xcall _LCD_write_data
.dbline 125
L18:
.dbline -2
L16:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r num_l 22 c
.dbsym r num_h 10 c
.dbsym r num 20 c
.dbsym r position 22 c
.dbend
.dbfunc e disp_number16 _disp_number16 fV
; num_l -> R22
; num_h -> R10
; num -> R20
; position -> R22
.even
_disp_number16::
xcall push_gset3
mov R20,R18
mov R22,R16
.dbline -1
.dbline 133
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 136
; }
; }
; }
mov R16,R22
xcall _LCD_write_code
.dbline 137
; }
cpi R20,10
brlo L20
.dbline 138
; }
.dbline 139
; }
mov R24,R20
swap R24
andi R24,#0x0F
mov R10,R24
.dbline 141
; }
; }
ldi R17,16
mov R16,R20
xcall mod8u
mov R22,R16
.dbline 144
; }
; }
; }
mov R16,R10
subi R16,208 ; addi 48
xcall _LCD_write_data
.dbline 145
; }
mov R16,R22
subi R16,208 ; addi 48
xcall _LCD_write_data
.dbline 146
; }
xjmp L21
L20:
.dbline 148
.dbline 151
ldi R16,48
xcall _LCD_write_data
.dbline 152
mov R16,R20
subi R16,208 ; addi 48
xcall _LCD_write_data
.dbline 153
L21:
.dbline -2
L19:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r num_l 22 c
.dbsym r num_h 10 c
.dbsym r num 20 c
.dbsym r position 22 c
.dbend
.dbfunc e disp_init _disp_init fV
.even
_disp_init::
.dbline -1
.dbline 157
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 158
; }
ldi R24,255
out 0x1a,R24
.dbline 160
; }
; }
sts 100,R24
.dbline 162
; }
; }
ldi R16,48
xcall _LCD_write_code
.dbline 163
; }
ldi R16,1
xcall _LCD_write_code
.dbline 164
; }
ldi R16,6
xcall _LCD_write_code
.dbline 165
; }
ldi R16,12
xcall _LCD_write_code
.dbline -2
L22:
.dbline 0 ; func end
ret
.dbend
.dbfile E:\icc\eeprom/eeprom_init.h
.dbfunc e error _error fV
; type -> R16
.even
_error::
xcall push_gset1
.dbline -1
.dbline 16
.dbline 17
mov R20,R16
clr R21
andi R20,248
andi R21,0
cpi R20,48
ldi R30,0
cpc R21,R30
breq L28
ldi R24,48
ldi R25,0
cp R24,R20
cpc R25,R21
brlt L32
L31:
cpi R20,32
ldi R30,0
cpc R21,R30
breq L27
xjmp L24
L32:
cpi R20,56
ldi R30,0
cpc R21,R30
breq L25
cpi R20,56
ldi R30,0
cpc R21,R30
brlt L24
L33:
cpi R20,72
ldi R30,0
cpc R21,R30
breq L30
xjmp L24
X1:
.dbline 18
L27:
.dbline 21
ldi R24,148
sts 116,R24
.dbline 22
xjmp L25
L28:
.dbline 25
ldi R24,148
sts 116,R24
.dbline 26
xjmp L25
X2:
.dbline 28
L30:
.dbline 31
ldi R24,148
sts 116,R24
.dbline 32
L24:
L25:
.dbline -2
L23:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r type 16 c
.dbend
.dbfunc e twi_write _twi_write fc
; dd -> R20
; addr -> R22
.even
_twi_write::
xcall push_gset2
mov R20,R18
mov R22,R16
.dbline -1
.dbline 37
.dbline 38
ldi R24,2
sts 112,R24
.dbline 40
ldi R24,164
sts 116,R24
L35:
.dbline 41
L36:
.dbline 41
lds R2,116
sbrs R2,7
rjmp L35
.dbline 42
lds R24,113
andi R24,248
cpi R24,8
breq L38
.dbline 42
.dbline 43
lds R16,113
xcall _error
.dbline 44
clr R16
xjmp L34
L38:
.dbline 47
ldi R24,160
sts 115,R24
.dbline 48
ldi R24,132
sts 116,R24
L40:
.dbline 49
L41:
.dbline 49
lds R2,116
sbrs R2,7
rjmp L40
.dbline 50
lds R24,113
andi R24,248
cpi R24,24
breq L43
.dbline 50
.dbline 51
lds R16,113
xcall _error
.dbline 52
clr R16
xjmp L34
L43:
.dbline 55
sts 115,R22
.dbline 56
ldi R24,132
sts 116,R24
L45:
.dbline 57
L46:
.dbline 57
lds R2,116
sbrs R2,7
rjmp L45
.dbline 58
lds R24,113
andi R24,248
cpi R24,40
breq L48
.dbline 58
.dbline 59
lds R16,113
xcall _error
.dbline 60
clr R16
xjmp L34
L48:
.dbline 64
sts 115,R20
.dbline 65
ldi R24,132
sts 116,R24
L50:
.dbline 66
L51:
.dbline 66
lds R2,116
sbrs R2,7
rjmp L50
.dbline 67
lds R24,113
andi R24,248
cpi R24,40
breq L53
.dbline 67
.dbline 68
lds R16,113
xcall _error
.dbline 69
clr R16
xjmp L34
L53:
.dbline 73
ldi R24,148
sts 116,R24
.dbline 74
ldi R16,1
.dbline -2
L34:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r dd 20 c
.dbsym r addr 22 c
.dbend
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -