📄 t0时钟.lis
字号:
.module T0时钟.c
.area text(rom, con, rel)
0000 .dbfile D:\M16开发板实验教程\icc-avr\T0CTCT~1/delay.h
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 10
0000 ; /*
0000 ; Title: icc-avr timer0 ctc timer
0000 ; Author: dushibiao
0000 ; Date: 2007 10 18
0000 ; Purpose: use timer0 ctc mode to generate a timer
0000 ; Frequency: Ext 8M
0000 ; Software: icc-avr
0000 ; Hardware: AVR mega16 BOARD
0000 ; Connect: dushibiao@126.com
0000 ; */
0000 .dbline 11
0000 ; //内部8M晶振,T0 CTC方式 DUSHIBIAO 2007 7 7
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e delay_nus _delay_nus fV
0004 ; i -> R20,R21
0004 ; n -> R22,R23
.even
0004 _delay_nus::
0004 0E940000 xcall push_gset2
0008 B801 movw R22,R16
000A .dbline -1
000A .dbline 15
000A ;
000A ; #include<iom16v.h>
000A ; #include<macros.h>
000A ; #include "shumaguan.h"
000A .dbline 16
000A ; #define uint unsigned int
000A 4427 clr R20
000C 5527 clr R21
000E .dbline 17
000E ; #define uchar unsigned char
000E 03C0 xjmp L6
0010 L3:
0010 .dbline 18
0010 F7DF xcall _delay_1us
0012 L4:
0012 .dbline 17
0012 4F5F subi R20,255 ; offset = 1
0014 5F4F sbci R21,255
0016 L6:
0016 .dbline 17
0016 4617 cp R20,R22
0018 5707 cpc R21,R23
001A D0F3 brlo L3
001C .dbline -2
001C L2:
001C 0E940000 xcall pop_gset2
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r i 20 i
0022 .dbsym r n 22 i
0022 .dbend
0022 .dbfunc e delay_1ms _delay_1ms fV
0022 ; i -> R16,R17
.even
0022 _delay_1ms::
0022 .dbline -1
0022 .dbline 22
0022 ;
0022 ; uint micsec; //毫秒
0022 ; uchar second, minute;
0022 ;
0022 ; void initial(void);
0022 .dbline 24
0022 0027 clr R16
0024 1127 clr R17
0026 02C0 xjmp L11
0028 L8:
0028 .dbline 24
0028 L9:
0028 .dbline 24
0028 0F5F subi R16,255 ; offset = 1
002A 1F4F sbci R17,255
002C L11:
002C .dbline 24
002C ;
002C ; void main()
002C 0437 cpi R16,116
002E E4E0 ldi R30,4
0030 1E07 cpc R17,R30
0032 D0F3 brlo L8
0034 .dbline -2
0034 L7:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r i 16 i
0036 .dbend
0036 .dbfunc e delay_nms _delay_nms fV
0036 ; i -> R20,R21
0036 ; n -> R22,R23
.even
0036 _delay_nms::
0036 0E940000 xcall push_gset2
003A B801 movw R22,R16
003C .dbline -1
003C .dbline 28
003C ; {
003C ; initial();
003C ;
003C ; while(1)
003C .dbline 29
003C ; {
003C 4427 clr R20
003E 5527 clr R21
0040 .dbline 30
0040 ; unsigned int disvalue;
0040 03C0 xjmp L16
0042 L13:
0042 .dbline 31
0042 EFDF xcall _delay_1ms
0044 L14:
0044 .dbline 30
0044 4F5F subi R20,255 ; offset = 1
0046 5F4F sbci R21,255
0048 L16:
0048 .dbline 30
0048 4617 cp R20,R22
004A 5707 cpc R21,R23
004C D0F3 brlo L13
004E .dbline -2
004E L12:
004E 0E940000 xcall pop_gset2
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbsym r i 20 i
0054 .dbsym r n 22 i
0054 .dbend
.area lit(rom, con, rel)
0000 _discode::
0000 C0F9 .byte 192,249
0002 A4B0 .byte 164,176
0004 9992 .byte 153,146
0006 82F8 .byte 130,248
0008 8090 .byte 128,144
000A FF .byte 255
000B .dbfile D:\M16开发板实验教程\icc-avr\T0CTCT~1/shumaguan.h
000B .dbsym e discode _discode A[11:11]kc
.area text(rom, con, rel)
0054 .dbfile D:\M16开发板实验教程\icc-avr\T0CTCT~1/shumaguan.h
0054 .dbfunc e display _display fV
0054 ; number -> R20,R21
.even
0054 _display::
0054 0E940000 xcall push_gset1
0058 A801 movw R20,R16
005A .dbline -1
005A .dbline 17
005A .dbline 21
005A C098 cbi 0x18,0
005C .dbline 23
005C 28EE ldi R18,1000
005E 33E0 ldi R19,3
0060 8A01 movw R16,R20
0062 0E940000 xcall div16u
0066 F801 movw R30,R16
0068 80E0 ldi R24,<_discode
006A 90E0 ldi R25,>_discode
006C E80F add R30,R24
006E F91F adc R31,R25
0070 E491 lpm R30,Z
0072 EBBB out 0x1b,R30
0074 .dbline 24
0074 05E0 ldi R16,5
0076 10E0 ldi R17,0
0078 DEDF xcall _delay_nms
007A .dbline 25
007A C09A sbi 0x18,0
007C .dbline 27
007C C198 cbi 0x18,1
007E .dbline 28
007E 24E6 ldi R18,100
0080 30E0 ldi R19,0
0082 8A01 movw R16,R20
0084 0E940000 xcall div16u
0088 2AE0 ldi R18,10
008A 30E0 ldi R19,0
008C 0E940000 xcall mod16u
0090 F801 movw R30,R16
0092 80E0 ldi R24,<_discode
0094 90E0 ldi R25,>_discode
0096 E80F add R30,R24
0098 F91F adc R31,R25
009A E491 lpm R30,Z
009C EBBB out 0x1b,R30
009E .dbline 29
009E 05E0 ldi R16,5
00A0 10E0 ldi R17,0
00A2 C9DF xcall _delay_nms
00A4 .dbline 30
00A4 C19A sbi 0x18,1
00A6 .dbline 32
00A6 ; disvalue=(unsigned int)minute*100+second;
00A6 ; display(disvalue);
00A6 C298 cbi 0x18,2
00A8 .dbline 33
00A8 ; }
00A8 24E6 ldi R18,100
00AA 30E0 ldi R19,0
00AC 8A01 movw R16,R20
00AE 0E940000 xcall mod16u
00B2 2AE0 ldi R18,10
00B4 30E0 ldi R19,0
00B6 0E940000 xcall div16u
00BA F801 movw R30,R16
00BC 80E0 ldi R24,<_discode
00BE 90E0 ldi R25,>_discode
00C0 E80F add R30,R24
00C2 F91F adc R31,R25
00C4 E491 lpm R30,Z
00C6 EBBB out 0x1b,R30
00C8 .dbline 34
00C8 ;
00C8 05E0 ldi R16,5
00CA 10E0 ldi R17,0
00CC B4DF xcall _delay_nms
00CE .dbline 35
00CE ; }
00CE C29A sbi 0x18,2
00D0 .dbline 37
00D0 ; /*-------------------------------------------------------------
00D0 ; fuction: initialize ports and timer0 register
00D0 C398 cbi 0x18,3
00D2 .dbline 38
00D2 ; --------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -