?? eeprom.lis
字號(hào):
.module eeprom.c
.area text(rom, con, rel)
0000 .dbfile E:\icc\eeprom/lcd_init.h
0000 .dbfunc e delay _delay fV
0000 ; n -> R16,R17
.even
0000 _delay::
0000 .dbline -1
0000 .dbline 40
0000 ; //ICC-AVR application builder : 2008-10-8 下午 04:03:04
0000 ; // Target : M128
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom128v.h>
0000 ; #include <macros.h>
0000 ; #include "lcd_init.h"
0000 ; #include "eeprom_init.h"
0000 ; #include "DS1302.h"
0000 ; //iccavr
0000 ; //extern unsigned char twi_write(unsigned char addr, unsigned char dd);
0000 ; //extern unsigned char twi_read(unsigned char addr, unsigned char *dd);
0000 ; /*延時(shí)函數(shù)*/
0000 ; void delay_ms(unsigned char i) {
0000 ; unsigned char a, b;
0000 ; for (a = 1; a < i; a++)
0000 ; {
0000 ; for (b = 1; b; b++)
0000 ; {
0000 ; ;
0000 ; }
0000 ; }
0000 ; }
0000 ; void main(void)
0000 ; {
0000 ;
0000 ; unsigned char temp,i;
0000 ; unsigned char send_flag=0,time_read=6;
0000 ; PORTA = 0xFF; /*打開上拉*/
0000 ; DDRA = 0x00; /*方向輸入*/
0000 ; PORTB = 0xF0; /*電平設(shè)置*/
0000 ; DDRB = 0xFF; /*方向輸出*/
0000 ; PORTC = 0xFF;
0000 ; DDRC = 0x00;
0000 ; PORTD = 0xFF;
0000 ; DDRD = 0x00;
0000 ; ds1302_init();//ds1302初始化
0000 ; ds1302_write_time();
0000 ; disp_init();
0000 ; for (i=0;i<20;i++) //寫入20個(gè)數(shù)據(jù)
0000 L2:
0000 .dbline 41
0000 L3:
0000 .dbline 41
0000 ; {
0000 1801 movw R2,R16
0002 0150 subi R16,1
0004 1040 sbci R17,0
0006 2220 tst R2
0008 D9F7 brne L2
000A 3320 tst R3
000C C9F7 brne L2
000E X0:
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbsym r n 16 i
0010 .dbend
0010 .dbfunc e chk_busy _chk_busy fV
.even
0010 _chk_busy::
0010 .dbline -1
0010 .dbline 44
0010 ; twi_write((0x100+i),i);
0010 ; delay(0xfff);
0010 ; }
0010 .dbline 45
0010 ;
0010 8FEF ldi R24,255
0012 8BBB out 0x1b,R24
0014 .dbline 46
0014 ; //twi_read(0x08, &temp);
0014 80916500 lds R24,101
0018 8E7F andi R24,254
001A 80936500 sts 101,R24
001E .dbline 47
001E ; //PORTB = ~temp;
001E 80916500 lds R24,101
0022 8260 ori R24,2
0024 80936500 sts 101,R24
0028 .dbline 49
0028 ; //temp ++;
0028 ; //temp=0;
0028 2224 clr R2
002A 2ABA out 0x1a,R2
002C .dbline 51
002C ; //twi_write(0x08, temp);
002C ;
002C 80916500 lds R24,101
0030 8460 ori R24,4
0032 80936500 sts 101,R24
0036 L6:
0036 .dbline 52
0036 L7:
0036 .dbline 52
0036 ;
0036 CF99 sbic 0x19,7
0038 FECF rjmp L6
003A .dbline 53
003A ; delay(0xffff);
003A 80916500 lds R24,101
003E 8B7F andi R24,251
0040 80936500 sts 101,R24
0044 .dbline 54
0044 ; disp_word(0x80,"任務(wù):EEPROM");
0044 8FEF ldi R24,255
0046 8ABB out 0x1a,R24
0048 .dbline -2
0048 L5:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbend
004A .dbfunc e LCD_write_code _LCD_write_code fV
004A ; code -> R20
.even
004A _LCD_write_code::
004A 0E940000 xcall push_gset1
004E 402F mov R20,R16
0050 .dbline -1
0050 .dbline 58
0050 ; disp_word(0x90,"2008年10月09日");
0050 ; disp_word(0x88,"AT24C16");
0050 ; i=0;
0050 ;
0050 .dbline 59
0050 ; while (1)
0050 DFDF xcall _chk_busy
0052 .dbline 60
0052 ; {
0052 80916500 lds R24,101
0056 8E7F andi R24,254
0058 80936500 sts 101,R24
005C .dbline 61
005C ; ds1302_read_time();
005C 80916500 lds R24,101
0060 8D7F andi R24,253
0062 80936500 sts 101,R24
0066 .dbline 62
0066 ; disp_number16(0x8d,time_buf[6]);
0066 4BBB out 0x1b,R20
0068 .dbline 63
0068 ; if(time_buf[6]==0)
0068 80916500 lds R24,101
006C 8460 ori R24,4
006E 80936500 sts 101,R24
0072 .dbline 64
0072 ; {
0072 04E6 ldi R16,100
0074 10E0 ldi R17,0
0076 C4DF xcall _delay
0078 .dbline 65
0078 ; send_flag=1;
0078 80916500 lds R24,101
007C 8B7F andi R24,251
007E 80936500 sts 101,R24
0082 .dbline -2
0082 L9:
0082 0E940000 xcall pop_gset1
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbsym r code 20 c
0088 .dbend
0088 .dbfunc e LCD_write_data _LCD_write_data fV
0088 ; data -> R20
.even
0088 _LCD_write_data::
0088 0E940000 xcall push_gset1
008C 402F mov R20,R16
008E .dbline -1
008E .dbline 69
008E ; if(time_buf[5]==time_read)
008E ; send_flag=0;
008E ; }
008E ; if(send_flag==1)
008E .dbline 70
008E ; {
008E C0DF xcall _chk_busy
0090 .dbline 71
0090 ; twi_read((0x100+i),&temp);
0090 80916500 lds R24,101
0094 8160 ori R24,1
0096 80936500 sts 101,R24
009A .dbline 72
009A ; i++;
009A 80916500 lds R24,101
009E 8D7F andi R24,253
00A0 80936500 sts 101,R24
00A4 .dbline 73
00A4 ; send_flag=0;
00A4 4BBB out 0x1b,R20
00A6 .dbline 74
00A6 ; time_read=time_buf[5];
00A6 80916500 lds R24,101
00AA 8460 ori R24,4
00AC 80936500 sts 101,R24
00B0 .dbline 75
00B0 ; disp_number10(0x98,temp);
00B0 04E6 ldi R16,100
00B2 10E0 ldi R17,0
00B4 A5DF xcall _delay
00B6 .dbline 76
00B6 ; }
00B6 80916500 lds R24,101
00BA 8B7F andi R24,251
00BC 80936500 sts 101,R24
00C0 .dbline -2
00C0 L10:
00C0 0E940000 xcall pop_gset1
00C4 .dbline 0 ; func end
00C4 0895 ret
00C6 .dbsym r data 20 c
00C6 .dbend
00C6 .dbfunc e disp_char _disp_char fV
00C6 ; asii -> R20
00C6 ; position -> R22
.even
00C6 _disp_char::
00C6 0E940000 xcall push_gset2
00CA 422F mov R20,R18
00CC 602F mov R22,R16
00CE .dbline -1
00CE .dbline 80
00CE ;
00CE ; }
00CE ; }
00CE ; }
00CE .dbline 81
00CE ; }
00CE 062F mov R16,R22
00D0 BCDF xcall _LCD_write_code
00D2 .dbline 82
00D2 ; }
00D2 042F mov R16,R20
00D4 D9DF xcall _LCD_write_data
00D6 .dbline -2
00D6 L11:
00D6 0E940000 xcall pop_gset2
00DA .dbline 0 ; func end
00DA 0895 ret
00DC .dbsym r asii 20 c
00DC .dbsym r position 22 c
00DC .dbend
00DC .dbfunc e disp_word _disp_word fV
00DC ; word -> R20,R21
00DC ; position -> R22
.even
00DC _disp_word::
00DC 0E940000 xcall push_gset2
00E0 A901 movw R20,R18
00E2 602F mov R22,R16
00E4 .dbline -1
00E4 .dbline 97
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 ; }
00E4 .dbline 98
00E4 ; }
00E4 062F mov R16,R22
00E6 B1DF xcall _LCD_write_code
00E8 05C0 xjmp L14
00EA L13:
00EA .dbline 100
00EA .dbline 101
00EA FA01 movw R30,R20
00EC 0081 ldd R16,z+0
00EE CCDF xcall _LCD_write_data
00F0 .dbline 102
00F0 4F5F subi R20,255 ; offset = 1
00F2 5F4F sbci R21,255
00F4 .dbline 103
00F4 L14:
00F4 .dbline 99
00F4 ; }
00F4 FA01 movw R30,R20
00F6 2080 ldd R2,z+0
00F8 2220 tst R2
00FA B9F7 brne L13
00FC .dbline -2
00FC L12:
00FC 0E940000 xcall pop_gset2
0100 .dbline 0 ; func end
0100 0895 ret
0102 .dbsym r word 20 pc
0102 .dbsym r position 22 c
0102 .dbend
0102 .dbfunc e disp_number10 _disp_number10 fV
0102 ; num_l -> R22
0102 ; num_h -> R10
0102 ; num -> R20
0102 ; position -> R22
.even
0102 _disp_number10::
0102 0E940000 xcall push_gset3
0106 422F mov R20,R18
0108 602F mov R22,R16
010A .dbline -1
010A .dbline 111
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A .dbline 113
010A ; }
010A ; }
010A 062F mov R16,R22
010C 9EDF xcall _LCD_write_code
010E .dbline 114
010E ; }
010E 4A30 cpi R20,10
0110 88F0 brlo L17
0112 .dbline 115
0112 ; }
0112 .dbline 116
0112 ; }
0112 1AE0 ldi R17,10
0114 042F mov R16,R20
0116 0E940000 xcall div8u
011A A02E mov R10,R16
011C .dbline 117
011C ; }
011C 1AE0 ldi R17,10
011E 042F mov R16,R20
0120 0E940000 xcall mod8u
0124 602F mov R22,R16
0126 .dbline 118
0126 ; }
0126 0A2D mov R16,R10
0128 005D subi R16,208 ; addi 48
012A AEDF xcall _LCD_write_data
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -