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

📄 rtc.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .module RTC.C
                        .area data(ram, con, rel)
 0000           _Table::
 0000                   .blkb 2
                        .area idata
 0000 3F06              .byte 63,6
                        .area data(ram, con, rel)
 0002                   .blkb 2
                        .area idata
 0002 5B4F              .byte 91,'O
                        .area data(ram, con, rel)
 0004                   .blkb 2
                        .area idata
 0004 666D              .byte 'f,'m
                        .area data(ram, con, rel)
 0006                   .blkb 2
                        .area idata
 0006 7D07              .byte 125,7
                        .area data(ram, con, rel)
 0008                   .blkb 2
                        .area idata
 0008 7F6F              .byte 127,'o
                        .area data(ram, con, rel)
 000A                   .blkb 2
                        .area idata
 000A 3876              .byte 56,'v
                        .area data(ram, con, rel)
 000C                   .dbfile E:\张军\AVR\光盘内容\实例源文件\第十章程序\RTC.C
 000C                   .dbsym e Table _Table A[12:12]c
 000C           _Data::
 000C                   .blkb 2
                        .area idata
 000C 0000              .byte 0,0
                        .area data(ram, con, rel)
 000E                   .dbfile E:\张军\AVR\光盘内容\实例源文件\第十章程序\RTC.C
 000E                   .blkb 2
                        .area idata
 000E 0000              .byte 0,0
                        .area data(ram, con, rel)
 0010                   .dbfile E:\张军\AVR\光盘内容\实例源文件\第十章程序\RTC.C
 0010                   .dbsym e Data _Data A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\张军\AVR\光盘内容\实例源文件\第十章程序\RTC.C
 0000                   .dbfunc e DelayMs _DelayMs fV
 0000           ;              j -> R20
 0000           ;              i -> R16
                        .even
 0000           _DelayMs::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 18
 0002           ; //***************************FileName:RTC.C************************//
 0002           ; //***************************ICCAVR V6.30编译**********************//
 0002           ; 
 0002           ; #include <io8535v.h>                   //寄存器定义文件
 0002           ; #include <macros.h>                    //使用到宏
 0002           ; #define uchar unsigned char            //数据类型定义
 0002           ; #define uint unsigned char             //数据类型定义
 0002           ; #define SD2303 0x64                    //SD2303器件IIC识别码
 0002           ; 
 0002           ; 
 0002           ; uchar Table[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x38,0x76};
 0002           ;      //显示数据表 0    1    2     3   4    5    6    7    8    9    L    H  
 0002           ; uchar Data[4]={0,0,0,0};               //DS1722
 0002           ; uchar Enter_Flag;                      //确定
 0002           ; uchar F_Flag;                          //数据应答标志
 0002           ; 
 0002           ; void DelayMs(uint i)                   //延时函数1
 0002           ; {uchar j;
 0002                   .dbline 19
 0002           ;  for(;i!=0;i--)
 0002 06C0              rjmp L5
 0004           L2:
 0004                   .dbline 20
 0004                   .dbline 20
 0004 40ED              ldi R20,208
 0006 01C0              rjmp L9
 0008           L6:
 0008                   .dbline 20
 0008                   .dbline 20
 0008                   .dbline 20
 0008           L7:
 0008                   .dbline 20
 0008 4A95              dec R20
 000A           L9:
 000A                   .dbline 20
 000A 4423              tst R20
 000C E9F7              brne L6
 000E                   .dbline 20
 000E           L3:
 000E                   .dbline 19
 000E 0A95              dec R16
 0010           L5:
 0010                   .dbline 19
 0010 0023              tst R16
 0012 C1F7              brne L2
 0014                   .dbline -2
 0014                   .dbline 21
 0014           ;   {for(j=2000;j!=0;j--) {;}}
 0014           ; }
 0014           L1:
 0014 00D0              rcall pop_gset1
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbsym r j 20 c
 0018                   .dbsym r i 16 c
 0018                   .dbend
 0018                   .dbfunc e Display _Display fV
 0018           ;            sel -> R20
 0018           ;              i -> R22
 0018           ;              p -> R10,R11
                        .even
 0018           _Display::
 0018 00D0              rcall push_gset3
 001A A02E              mov R10,R16
 001C B12E              mov R11,R17
 001E                   .dbline -1
 001E                   .dbline 24
 001E           ; 
 001E           ; void Display(uchar *p)                //显示函数
 001E           ; {uchar i,sel=0x00;
 001E                   .dbline 24
 001E 4427              clr R20
 0020                   .dbline 25
 0020           ;  for(i=0;i<16;i++)
 0020 6627              clr R22
 0022 11C0              rjmp L14
 0024           L11:
 0024                   .dbline 26
 0024                   .dbline 26
 0024 45BB              out 0x15,R20
 0026                   .dbline 27
 0026 E62F              mov R30,R22
 0028 FF27              clr R31
 002A EA0D              add R30,R10
 002C FB1D              adc R31,R11
 002E E081              ldd R30,z+0
 0030 FF27              clr R31
 0032 80E0              ldi R24,<_Table
 0034 90E0              ldi R25,>_Table
 0036 E80F              add R30,R24
 0038 F91F              adc R31,R25
 003A 2080              ldd R2,z+0
 003C 2BBA              out 0x1b,R2
 003E                   .dbline 28
 003E 0AE0              ldi R16,10
 0040 DFDF              rcall _DelayMs
 0042                   .dbline 29
 0042 440F              lsl R20
 0044                   .dbline 30
 0044           L12:
 0044                   .dbline 25
 0044 6395              inc R22
 0046           L14:
 0046                   .dbline 25
 0046 6031              cpi R22,16
 0048 68F3              brlo L11
 004A                   .dbline -2
 004A                   .dbline 31
 004A           ;   {PORTC=sel;
 004A           ;    PORTA=Table[p[i]];
 004A           ;    DelayMs(10);
 004A           ;    sel=sel<<1;
 004A           ;   }
 004A           ; }
 004A           L10:
 004A 00D0              rcall pop_gset3
 004C                   .dbline 0 ; func end
 004C 0895              ret
 004E                   .dbsym r sel 20 c
 004E                   .dbsym r i 22 c
 004E                   .dbsym r p 10 pc
 004E                   .dbend
 004E                   .dbfunc e NOPNOP _NOPNOP fV
 004E           ;              i -> R16
                        .even
 004E           _NOPNOP::
 004E                   .dbline -1
 004E                   .dbline 35
 004E                   .dbline 35
 004E 02C0              rjmp L19
 0050           L16:
 0050                   .dbline 35
 0050 0000              nop
 0052           L17:
 0052                   .dbline 35
 0052 0A95              dec R16
 0054           L19:
 0054                   .dbline 35
 0054           ; 
 0054           ;   
 0054           ; void NOPNOP(uchar i)                   //延时函数2
 0054           ; {for(;i!=0;i--) NOP();}
 0054 0023              tst R16
 0056 E1F7              brne L16
 0058                   .dbline -2
 0058                   .dbline 35
 0058           L15:
 0058                   .dbline 0 ; func end
 0058 0895              ret
 005A                   .dbsym r i 16 c
 005A                   .dbend
 005A                   .dbfunc e SetSCL _SetSCL fV
 005A           ;              i -> R16
                        .even
 005A           _SetSCL::
 005A                   .dbline -1
 005A                   .dbline 38
 005A           ; 
 005A           ; void SetSCL(uchar i)                   //IIC时钟线SCL设置
 005A           ; {if(i==1) PORTB=PORTB|0x01;
 005A                   .dbline 38
 005A 0130              cpi R16,1
 005C 11F4              brne L21
 005E                   .dbline 38
 005E C09A              sbi 0x18,0
 0060 03C0              rjmp L22
 0062           L21:
 0062                   .dbline 39
 0062 88B3              in R24,0x18
 0064 8E7F              andi R24,254
 0066 88BB              out 0x18,R24
 0068           L22:
 0068                   .dbline -2
 0068                   .dbline 39
 0068           ;  else     PORTB=PORTB&0xFE;}
 0068           L20:
 0068                   .dbline 0 ; func end
 0068 0895              ret
 006A                   .dbsym r i 16 c
 006A                   .dbend
 006A                   .dbfunc e SetSDA _SetSDA fV
 006A           ;              i -> R16
                        .even
 006A           _SetSDA::
 006A                   .dbline -1
 006A                   .dbline 42
 006A           ;  
 006A           ; void SetSDA(uchar i)                   //IIC数据线SDA设置
 006A           ; {if(i==1) PORTB=PORTB|0x02;
 006A                   .dbline 42
 006A 0130              cpi R16,1
 006C 11F4              brne L24
 006E                   .dbline 42
 006E C19A              sbi 0x18,1
 0070 03C0              rjmp L25
 0072           L24:
 0072                   .dbline 43
 0072 88B3              in R24,0x18
 0074 8D7F              andi R24,253
 0076 88BB              out 0x18,R24
 0078           L25:
 0078                   .dbline -2
 0078                   .dbline 43
 0078           ;  else     PORTB=PORTB&0xFD;}
 0078           L23:
 0078                   .dbline 0 ; func end
 0078 0895              ret
 007A                   .dbsym r i 16 c
 007A                   .dbend
 007A                   .dbfunc e Start _Start fV
                        .even
 007A           _Start::
 007A                   .dbline -1
 007A                   .dbline 51
 007A           ;  
 007A           ; //SCL=PB^0;       SD2303时钟线  
 007A           ; //SDA=PB^1;       SD2303数据线 
 007A           ; //INTRB=PB^3;     SD2303中断线A
 007A           ; //INTRA=PB^2;     SD2303中断线B
 007A           ; 
 007A           ; void Start()                           //IIC总线开始信号
 007A           ; {SetSDA(1);
 007A                   .dbline 51
 007A 01E0              ldi R16,1
 007C F6DF              rcall _SetSDA
 007E                   .dbline 52
 007E           ;  SetSCL(1);
 007E 01E0              ldi R16,1
 0080 ECDF              rcall _SetSCL
 0082                   .dbline 53
 0082           ;  NOPNOP(50);
 0082 02E3              ldi R16,50
 0084 E4DF              rcall _NOPNOP
 0086                   .dbline 54
 0086           ;  SetSDA(0);
 0086 0027              clr R16
 0088 F0DF              rcall _SetSDA
 008A                   .dbline 55
 008A           ;  NOPNOP(50);
 008A 02E3              ldi R16,50
 008C E0DF              rcall _NOPNOP
 008E                   .dbline 56
 008E           ;  SetSCL(0);
 008E 0027              clr R16
 0090                   .dbline -2
 0090                   .dbline 57
 0090           ; }
 0090           L26:
 0090                   .dbline 0 ; func end
 0090 E4CF              rjmp _SetSCL
 0092                   .dbend
 0092                   .dbfunc e Stop _Stop fV
                        .even
 0092           _Stop::
 0092                   .dbline -1
 0092                   .dbline 60
 0092           ; 
 0092           ; void Stop()                            //IIC总线停止信号
 0092           ; {SetSDA(0);             
 0092                   .dbline 60
 0092 0027              clr R16
 0094 EADF              rcall _SetSDA
 0096                   .dbline 61
 0096           ;  SetSCL(1);
 0096 01E0              ldi R16,1
 0098 E0DF              rcall _SetSCL
 009A                   .dbline 62
 009A           ;  NOPNOP(50);
 009A 02E3              ldi R16,50
 009C D8DF              rcall _NOPNOP
 009E                   .dbline 63
 009E           ;  SetSDA(1);
 009E 01E0              ldi R16,1
 00A0 E4DF              rcall _SetSDA
 00A2                   .dbline 64
 00A2           ;  NOPNOP(50);
 00A2 02E3              ldi R16,50
 00A4 D4DF              rcall _NOPNOP
 00A6                   .dbline 65
 00A6           ;  SetSCL(0);
 00A6 0027              clr R16
 00A8                   .dbline -2
 00A8                   .dbline 66
 00A8           ; }
 00A8           L27:
 00A8                   .dbline 0 ; func end
 00A8 D8CF              rjmp _SetSCL

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -