📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\时钟芯片\1302\1302-162\main.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 12
0000 ; //ICC-AVR application builder : 2005-11-2 16:28:30
0000 ; // Target : 8515
0000 ; // Crystal: 4.0000Mhz
0000 ; #include <io8515v.h>
0000 ; #include <macros.h>
0000 ; #include <162-1302.h>
0000 ; #include <function.h>
0000 ; uchar temh_d;
0000 ; uchar teml_d;
0000 ; uchar temm_d;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 13
0000 ; PORTA = 0x00;
0000 2224 clr R2
0002 2BBA out 0x1b,R2
0004 .dbline 14
0004 ; DDRA = 0xFF;
0004 8FEF ldi R24,255
0006 8ABB out 0x1a,R24
0008 .dbline 15
0008 ; PORTB = 0xFF;
0008 88BB out 0x18,R24
000A .dbline 16
000A ; DDRB = 0xFF;
000A 87BB out 0x17,R24
000C .dbline 17
000C ; PORTC = 0xFF;
000C 85BB out 0x15,R24
000E .dbline 18
000E ; DDRC = 0xFF;
000E 84BB out 0x14,R24
0010 .dbline 19
0010 ; PORTD = 0x00;
0010 22BA out 0x12,R2
0012 .dbline 20
0012 ; DDRD = 0x00;
0012 21BA out 0x11,R2
0014 .dbline -2
0014 L1:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbend
0016 .dbfunc e init_devices _init_devices fV
.even
0016 _init_devices::
0016 .dbline -1
0016 .dbline 23
0016 ; } //call this routine to initialize all peripherals
0016 ; void init_devices(void)
0016 ; {
0016 .dbline 25
0016 ; //stop errant interrupts until set up
0016 ; CLI(); //disable all interrupts
0016 F894 cli
0018 .dbline 26
0018 ; port_init();
0018 F3DF rcall _port_init
001A .dbline 27
001A ; MCUCR = 0x00;
001A 2224 clr R2
001C 25BE out 0x35,R2
001E .dbline 28
001E ; GIMSK = 0x00;
001E 2BBE out 0x3b,R2
0020 .dbline 29
0020 ; TIMSK = 0x00;
0020 29BE out 0x39,R2
0022 .dbline 30
0022 ; SEI(); //re-enable interrupts
0022 7894 sei
0024 .dbline -2
0024 L2:
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbend
0026 .dbfunc e main _main fV
0026 ; temm -> R20
0026 ; count -> R22
0026 ; a -> R10
0026 ; temh -> R12
0026 ; teml -> R14
0026 ; th -> R12
0026 ; tl -> R20
0026 ; s -> R22
0026 ; i -> y+2
.even
0026 _main::
0026 2397 sbiw R28,3
0028 .dbline -1
0028 .dbline 37
0028 ; //all peripherals are now initialized
0028 ; }
0028 ; /******************************************************
0028 ; 主程序
0028 ; ******************************************************/
0028 ; void main(void)
0028 ; {
0028 .dbline 40
0028 ; uchar s,i,th,tl;
0028 ; uchar temh,teml,a,count,temm;
0028 ; init_devices();
0028 F6DF rcall _init_devices
002A .dbline 41
002A ; init_1302();
002A 00D0 rcall _init_1302
002C .dbline 42
002C ; init_1302();
002C 00D0 rcall _init_1302
002E .dbline 43
002E ; init_lcd() ;
002E 00D0 rcall _init_lcd
0030 .dbline 44
0030 ; init_lcd() ;
0030 00D0 rcall _init_lcd
0032 .dbline 45
0032 ; init_time();
0032 00D0 rcall _init_time
0034 98C0 rjmp L5
0036 L4:
0036 .dbline 47
0036 ; while(1)
0036 ; {
0036 .dbline 48
0036 ; LCD_set_xy(0,0);
0036 2227 clr R18
0038 0027 clr R16
003A 00D0 rcall _LCD_set_xy
003C .dbline 49
003C ; for(i=0;i<9;i+=2)
003C 0024 clr R0
003E 0A82 std y+2,R0
0040 18C0 rjmp L10
0042 L7:
0042 .dbline 50
0042 .dbline 51
0042 2A80 ldd R2,y+2
0044 3324 clr R3
0046 09E8 ldi R16,137
0048 0219 sub R16,R2
004A 1309 sbc R17,R3
004C 00D0 rcall _read_data
004E 602F mov R22,R16
0050 .dbline 52
0050 462F mov R20,R22
0052 4F70 andi R20,15
0054 .dbline 53
0054 862F mov R24,R22
0056 8295 swap R24
0058 8F70 andi R24,#0x0F
005A C82E mov R12,R24
005C .dbline 54
005C 082F mov R16,R24
005E 005D subi R16,208 ; addi 48
0060 00D0 rcall _LCD_write_char
0062 .dbline 55
0062 042F mov R16,R20
0064 005D subi R16,208 ; addi 48
0066 00D0 rcall _LCD_write_char
0068 .dbline 56
0068 0AE3 ldi R16,58
006A 00D0 rcall _LCD_write_char
006C .dbline 57
006C L8:
006C .dbline 49
006C 8A81 ldd R24,y+2
006E 8E5F subi R24,254 ; addi 2
0070 8A83 std y+2,R24
0072 L10:
0072 .dbline 49
0072 8A81 ldd R24,y+2
0074 8930 cpi R24,9
0076 28F3 brlo L7
0078 .dbline 58
0078 ; {
0078 ; s=read_data(0x89-i);
0078 ; tl=s&0x0f;
0078 ; th=(s>>4);
0078 ; LCD_write_char(th+48);
0078 ; LCD_write_char(tl+48);
0078 ; LCD_write_char(':');
0078 ; }
0078 ; s=read_data(0x8b);
0078 0BE8 ldi R16,139
007A 00D0 rcall _read_data
007C 602F mov R22,R16
007E .dbline 59
007E ; tl=s&0x0f;
007E 462F mov R20,R22
0080 4F70 andi R20,15
0082 .dbline 60
0082 ; LCD_write_char(tl+48);
0082 042F mov R16,R20
0084 005D subi R16,208 ; addi 48
0086 00D0 rcall _LCD_write_char
0088 .dbline 62
0088 ;
0088 ; a=init_1820(); //复位18b20
0088 00D0 rcall _init_1820
008A A02E mov R10,R16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -