📄 timer0.lis
字号:
.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 + -