📄 counter.lis
字号:
.module Counter.c
.area text(rom, con, rel)
0000 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
.area data(ram, con, rel)
0000 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
0000 _Table::
0000 .blkb 2
.area idata
0000 3F06 .byte 63,6
.area data(ram, con, rel)
0002 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
0002 .blkb 2
.area idata
0002 5B4F .byte 91,'O
.area data(ram, con, rel)
0004 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
0004 .blkb 2
.area idata
0004 666D .byte 'f,'m
.area data(ram, con, rel)
0006 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
0006 .blkb 2
.area idata
0006 7D07 .byte 125,7
.area data(ram, con, rel)
0008 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
0008 .blkb 2
.area idata
0008 7F6F .byte 127,'o
.area data(ram, con, rel)
000A .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
000A .dbsym e Table _Table A[10:10]c
000A _Data::
000A .blkb 2
.area idata
000A 0000 .byte 0,0
.area data(ram, con, rel)
000C .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
000C .blkb 2
.area idata
000C 0000 .byte 0,0
.area data(ram, con, rel)
000E .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
000E .dbsym e Data _Data A[4:4]c
000E _CNT::
000E .blkb 2
.area idata
000E 0000 .word 0
.area data(ram, con, rel)
0010 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
0010 .dbsym e CNT _CNT i
.area text(rom, con, rel)
0000 .dbfile G:\avr祥例·附原理图,及源代码c语言·\AVR单片机应用系统开发典型实例\实例源文件\第2章程序\定时计数器的c语言编程\基于tc0的计数器设计\Counter.c
0000 .dbfunc e DelayMs _DelayMs fV
0000 ; j -> R20,R21
0000 ; i -> R16,R17
.even
0000 _DelayMs::
0000 4A93 st -y,R20
0002 5A93 st -y,R21
0004 .dbline -1
0004 .dbline 14
0004 ; //******************************FileName: Counter.C*************************//
0004 ; //******************************ICCAVR V6.30编译***************************//
0004 ;
0004 ; #include <io8535v.h>
0004 ; #define uchar unsigned char
0004 ; #define uint unsigned int
0004 ;
0004 ; //数码管字型表,对应0,1,2,3,4,5,6,7,8,9//
0004 ; uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
0004 ; uchar Data[4]={0,0,0,0}; //显示初始值:0 0 0 0
0004 ; uint CNT=0; //初始计数值:0
0004 ;
0004 ; void DelayMs(uint i) //Ms级延时,参数i为延时时间
0004 ; {uint j;
0004 .dbline 15
0004 ; for(;i!=0;i--)
0004 0AC0 rjmp L5
0006 L2:
0006 .dbline 16
0006 ; {for(j=8000;j!=0;j--) {;}}
0006 .dbline 16
0006 40E4 ldi R20,8000
0008 5FE1 ldi R21,31
000A 02C0 rjmp L9
000C L6:
000C .dbline 16
000C .dbline 16
000C .dbline 16
000C L7:
000C .dbline 16
000C 4150 subi R20,1
000E 5040 sbci R21,0
0010 L9:
0010 .dbline 16
0010 4030 cpi R20,0
0012 4507 cpc R20,R21
0014 D9F7 brne L6
0016 X0:
0016 .dbline 16
0016 L3:
0016 .dbline 15
0016 0150 subi R16,1
0018 1040 sbci R17,0
001A L5:
001A .dbline 15
001A 0030 cpi R16,0
001C 0107 cpc R16,R17
001E 99F7 brne L2
0020 X1:
0020 .dbline -2
0020 L1:
0020 .dbline 0 ; func end
0020 5991 ld R21,y+
0022 4991 ld R20,y+
0024 0895 ret
0026 .dbsym r j 20 i
0026 .dbsym r i 16 i
0026 .dbend
0026 .dbfunc e Display _Display fV
0026 ; sel -> R22
0026 ; i -> R20
0026 ; p -> R10,R11
.even
0026 _Display::
0026 00D0 rcall push_xgsetF00C
0028 5801 movw R10,R16
002A .dbline -1
002A .dbline 20
002A ; }
002A ;
002A ; void Display(uchar *p) //动态显示函数,参数p为待显示的数组名
002A ; {uchar i,sel=0x01;
002A .dbline 20
002A 61E0 ldi R22,1
002C .dbline 21
002C ; for(i=0;i<4;i++)
002C 4427 clr R20
002E 12C0 rjmp L14
0030 L11:
0030 .dbline 22
0030 ; {PORTC=sel; //选通最右边的数码管
0030 .dbline 22
0030 65BB out 0x15,R22
0032 .dbline 23
0032 ; PORTA=Table[p[i]]; //送字型码
0032 E42F mov R30,R20
0034 FF27 clr R31
0036 EA0D add R30,R10
0038 FB1D adc R31,R11
003A E081 ldd R30,z+0
003C FF27 clr R31
003E 80E0 ldi R24,<_Table
0040 90E0 ldi R25,>_Table
0042 E80F add R30,R24
0044 F91F adc R31,R25
0046 2080 ldd R2,z+0
0048 2BBA out 0x1b,R2
004A .dbline 24
004A ; DelayMs(2); //显示延时
004A 02E0 ldi R16,2
004C 10E0 ldi R17,0
004E D8DF rcall _DelayMs
0050 .dbline 25
0050 ; sel=sel<<1; //移位以显示前一位
0050 660F lsl R22
0052 .dbline 26
0052 ; }
0052 L12:
0052 .dbline 21
0052 4395 inc R20
0054 L14:
0054 .dbline 21
0054 4430 cpi R20,4
0056 60F3 brlo L11
0058 X2:
0058 .dbline -2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -