⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 1302_18b20_8515基于AVR单片机的开发系统。 在使用中通过仿真来实现。可以将此程序扩展成其他外围设备的基础
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -