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

📄 timer0.lis

📁 AVR 单片机 时钟显示 通过7279 用数码管
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module timer0.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\WORKS\AVRSIM~1\TIMER0~1\timer0.c
                        .area data(ram, con, rel)
 0000                   .dbfile F:\WORKS\AVRSIM~1\TIMER0~1\timer0.c
 0000           _hour::
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
 0001                   .dbfile F:\WORKS\AVRSIM~1\TIMER0~1\timer0.c
 0001                   .dbsym e hour _hour c
 0001           _minute::
 0001                   .blkb 1
                        .area idata
 0001 00                .byte 0
                        .area data(ram, con, rel)
 0002                   .dbfile F:\WORKS\AVRSIM~1\TIMER0~1\timer0.c
 0002                   .dbsym e minute _minute c
 0002           _second::
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile F:\WORKS\AVRSIM~1\TIMER0~1\timer0.c
 0003                   .dbsym e second _second c
 0003           _counter::
 0003                   .blkb 1
                        .area idata
 0003 00                .byte 0
                        .area data(ram, con, rel)
 0004                   .dbfile F:\WORKS\AVRSIM~1\TIMER0~1\timer0.c
 0004                   .dbsym e counter _counter c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\WORKS\AVRSIM~1\TIMER0~1\timer0.c
 0000                   .dbfunc e send_byte _send_byte fV
 0000           ;              i -> R20
 0000           ;       out_byte -> R10
                        .even
 0000           _send_byte::
 0000 AA92              st -y,R10
 0002 4A93              st -y,R20
 0004 A02E              mov R10,R16
 0006                   .dbline -1
 0006                   .dbline 14
 0006           ; //ICC-AVR application builder : 2007-12-14 下午 03:35:52
 0006           ; // Target : M16
 0006           ; // Crystal: 8.0000Mhz
 0006           ; 
 0006           ; #include <iom16v.h>
 0006           ; #include <macros.h>
 0006           ; #include<slavr.h>
 0006           ; unsigned char hour=0;
 0006           ; unsigned char minute=0;
 0006           ; unsigned char second=0;
 0006           ; unsigned char counter=0;
 0006           ; //*******************发送字节*******************
 0006           ; void send_byte( unsigned char out_byte)
 0006           ; {
 0006                   .dbline 16
 0006           ;       unsigned char i;
 0006           ;       for (i=0;i<8;i++)
 0006 4427              clr R20
 0008 11C0              xjmp L5
 000A           L2:
 000A                   .dbline 17
 000A           ;       {
 000A                   .dbline 18
 000A           ;               if (out_byte&0x80)
 000A A7FE              sbrs R10,7
 000C 02C0              rjmp L6
 000E           X0:
 000E                   .dbline 19
 000E           ;               {
 000E                   .dbline 20
 000E           ;                       PORTB|=BIT(PB1); //置1data
 000E C19A              sbi 0x18,1
 0010                   .dbline 21
 0010           ;               }
 0010 01C0              xjmp L7
 0012           L6:
 0012                   .dbline 23
 0012           ;               else
 0012           ;               {                                                                                
 0012                   .dbline 24
 0012           ;                       PORTB&=~BIT(PB1);//清零
 0012 C198              cbi 0x18,1
 0014                   .dbline 25
 0014           ;               }
 0014           L7:
 0014                   .dbline 26
 0014           ;               PORTB|=BIT(PB2);//置1
 0014 C29A              sbi 0x18,2
 0016                   .dbline 27
 0016           ;               out_byte<<=1;
 0016 AA0C              lsl R10
 0018                   .dbline 28
 0018           ;               delay_us(30);//20//32//30
 0018 0EE1              ldi R16,30
 001A 10E0              ldi R17,0
 001C 0E940000          xcall _delay_us
 0020                   .dbline 29
 0020           ;               PORTB&=~BIT(PB2); //清零
 0020 C298              cbi 0x18,2
 0022                   .dbline 30
 0022           ;               delay_us(30);//32//30
 0022 0EE1              ldi R16,30
 0024 10E0              ldi R17,0
 0026 0E940000          xcall _delay_us
 002A                   .dbline 31
 002A           ;       }
 002A           L3:
 002A                   .dbline 16
 002A 4395              inc R20
 002C           L5:
 002C                   .dbline 16
 002C 4830              cpi R20,8
 002E 68F3              brlo L2
 0030           X1:
 0030                   .dbline 32
 0030           ;       PORTB&=~BIT(PB1);//清零
 0030 C198              cbi 0x18,1
 0032                   .dbline -2
 0032           L1:
 0032                   .dbline 0 ; func end
 0032 4991              ld R20,y+
 0034 A990              ld R10,y+
 0036 0895              ret
 0038                   .dbsym r i 20 c
 0038                   .dbsym r out_byte 10 c
 0038                   .dbend
 0038                   .dbfunc e write7279 _write7279 fV
 0038           ;            dta -> R10
 0038           ;            cmd -> R12
                        .even
 0038           _write7279::
 0038 AA92              st -y,R10
 003A CA92              st -y,R12
 003C A22E              mov R10,R18
 003E C02E              mov R12,R16
 0040                   .dbline -1
 0040                   .dbline 42
 0040           ;       //delay_us(50); 
 0040           ;       //PORTB|=BIT(PB3);//清零cs1     
 0040           ; 
 0040           ; }
 0040           ; //*******************写入7279*******************
 0040           ; 
 0040           ; 
 0040           ; //**********************************************
 0040           ; void write7279(unsigned char cmd, char dta ) //写入7279
 0040           ; {
 0040                   .dbline 43
 0040           ;       CLI();
 0040 F894              cli
 0042                   .dbline 44
 0042           ;       delay_us(62);//50//55//62
 0042 0EE3              ldi R16,62
 0044 10E0              ldi R17,0
 0046 0E940000          xcall _delay_us
 004A                   .dbline 45
 004A           ;       send_byte (cmd);
 004A 0C2D              mov R16,R12
 004C D9DF              xcall _send_byte
 004E                   .dbline 46
 004E           ;       delay_us(33);//20//28//33
 004E 01E2              ldi R16,33
 0050 10E0              ldi R17,0
 0052 0E940000          xcall _delay_us
 0056                   .dbline 47
 0056           ;       send_byte (dta);
 0056 0A2D              mov R16,R10
 0058 D3DF              xcall _send_byte
 005A                   .dbline 48
 005A           ;       SEI();
 005A 7894              sei
 005C                   .dbline -2
 005C           L8:
 005C                   .dbline 0 ; func end
 005C C990              ld R12,y+
 005E A990              ld R10,y+
 0060 0895              ret
 0062                   .dbsym r dta 10 c
 0062                   .dbsym r cmd 12 c
 0062                   .dbend
 0062                   .dbfunc e display _display fV
                        .even
 0062           _display::
 0062                   .dbline -1
 0062                   .dbline 51
 0062           ; } 
 0062           ; void display(void)
 0062           ; {
 0062                   .dbline 52
 0062           ; write7279(0x83,second%10);//
 0062 1AE0              ldi R17,10
 0064 00910200          lds R16,_second
 0068 0E940000          xcall mod8u
 006C 202F              mov R18,R16
 006E 03E8              ldi R16,131
 0070 E3DF              xcall _write7279
 0072                   .dbline 53
 0072           ; write7279(0x82,second/10);
 0072 1AE0              ldi R17,10
 0074 00910200          lds R16,_second
 0078 0E940000          xcall div8u
 007C 202F              mov R18,R16
 007E 02E8              ldi R16,130
 0080 DBDF              xcall _write7279
 0082                   .dbline 54
 0082           ; write7279(0x81,minute%10);
 0082 1AE0              ldi R17,10
 0084 00910100          lds R16,_minute
 0088 0E940000          xcall mod8u
 008C 202F              mov R18,R16
 008E 01E8              ldi R16,129
 0090 D3DF              xcall _write7279
 0092                   .dbline 55
 0092           ; write7279(0x80,minute/10);
 0092 1AE0              ldi R17,10
 0094 00910100          lds R16,_minute
 0098 0E940000          xcall div8u
 009C 202F              mov R18,R16
 009E 00E8              ldi R16,128
 00A0 CBDF              xcall _write7279
 00A2                   .dbline 56
 00A2           ; write7279(0x85,hour%10);
 00A2 1AE0              ldi R17,10
 00A4 00910000          lds R16,_hour
 00A8 0E940000          xcall mod8u
 00AC 202F              mov R18,R16
 00AE 05E8              ldi R16,133
 00B0 C3DF              xcall _write7279
 00B2                   .dbline 57
 00B2           ; write7279(0x84,hour/10);
 00B2 1AE0              ldi R17,10
 00B4 00910000          lds R16,_hour
 00B8 0E940000          xcall div8u
 00BC 202F              mov R18,R16
 00BE 04E8              ldi R16,132
 00C0 BBDF              xcall _write7279
 00C2                   .dbline -2
 00C2           L9:
 00C2                   .dbline 0 ; func end
 00C2 0895              ret
 00C4                   .dbend
 00C4                   .dbfunc e port_init _port_init fV
                        .even
 00C4           _port_init::

⌨️ 快捷键说明

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