📄 pro.lis
字号:
.module pro.c
.area data(ram, con, rel)
0000 _Second::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0001 .dbsym e Second _Second c
0001 _Minute::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0002 .dbsym e Minute _Minute c
0002 _Hour::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0003 .dbsym e Hour _Hour c
0003 _time_buffer::
0003 .blkb 2
.area idata
0003 0000 .byte 0,0
.area data(ram, con, rel)
0005 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0005 .blkb 2
.area idata
0005 0000 .byte 0,0
.area data(ram, con, rel)
0007 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0007 .blkb 2
.area idata
0007 0000 .byte 0,0
.area data(ram, con, rel)
0009 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0009 .blkb 2
.area idata
0009 0000 .byte 0,0
.area data(ram, con, rel)
000B .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
000B .dbsym e time_buffer _time_buffer A[8:8]c
000B _Timer1_Counter_H::
000B .blkb 1
.area idata
000B 00 .byte 0
.area data(ram, con, rel)
000C .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
000C .dbsym e Timer1_Counter_H _Timer1_Counter_H c
000C _Timer1_Counter_L::
000C .blkb 1
.area idata
000C 00 .byte 0
.area data(ram, con, rel)
000D .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
000D .dbsym e Timer1_Counter_L _Timer1_Counter_L c
000D _value::
000D .blkb 4
.area idata
000D 00000000 .word 0,0
.area data(ram, con, rel)
0011 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0011 .dbsym e value _value l
0011 _Freq::
0011 .blkb 4
.area idata
0011 00000000 .word 0,0
.area data(ram, con, rel)
0015 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0015 .dbsym e Freq _Freq L
0015 _Freq_H16::
0015 .blkb 4
.area idata
0015 00000000 .word 0,0
.area data(ram, con, rel)
0019 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0019 .dbsym e Freq_H16 _Freq_H16 L
0019 _Freq_L8::
0019 .blkb 4
.area idata
0019 00000000 .word 0,0
.area data(ram, con, rel)
001D .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
001D .dbsym e Freq_L8 _Freq_L8 L
001D _counter::
001D .blkb 4
.area idata
001D 00000000 .word 0,0
.area data(ram, con, rel)
0021 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0021 .dbsym e counter _counter L
0021 _T1_OV_Times::
0021 .blkb 1
.area idata
0021 00 .byte 0
.area data(ram, con, rel)
0022 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0022 .dbsym e T1_OV_Times _T1_OV_Times c
.area text(rom, con, rel)
0000 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0000 .dbfunc e time _time fV
.even
0000 _time::
0000 .dbline -1
0000 .dbline 21
0000 ; //包含所需头文件
0000 ; #include <ioM16v.h>
0000 ; #include <macros.h>
0000 ; #include "12864.h"
0000 ; #include "delay.h"
0000 ; /*------宏定义------*/
0000 ; #define uchar unsigned char
0000 ; #define uint unsigned int
0000 ;
0000 ; uchar Second=0,Minute=0,Hour=0;
0000 ; uchar Second_H,Second_L,Minute_H,Minute_L,Hour_H,Hour_L;
0000 ; uchar time_buffer[8]={0,0,0,0,0,0,0,0};
0000 ; unsigned char Timer1_Counter_H=0;
0000 ; unsigned char Timer1_Counter_L=0;
0000 ; unsigned long value=0;
0000 ; long Freq=0,Freq_H16=0,Freq_L8=0,counter=0;
0000 ; uchar T1_OV_Times=0; //T1溢出次数
0000 ; uchar temp[8];
0000 ;
0000 ; void time(void)
0000 ; {
0000 .dbline 22
0000 ; Second++;
0000 80910000 lds R24,_Second
0004 8F5F subi R24,255 ; addi 1
0006 80930000 sts _Second,R24
000A .dbline 23
000A ; if(Second >= 60)
000A 8C33 cpi R24,60
000C 98F0 brlo L2
000E .dbline 24
000E ; {
000E .dbline 25
000E ; Second=0;
000E 2224 clr R2
0010 20920000 sts _Second,R2
0014 .dbline 26
0014 ; Minute++;
0014 80910100 lds R24,_Minute
0018 8F5F subi R24,255 ; addi 1
001A 80930100 sts _Minute,R24
001E .dbline 27
001E ; if(Minute >=60)
001E 8C33 cpi R24,60
0020 48F0 brlo L4
0022 .dbline 28
0022 ; {
0022 .dbline 29
0022 ; Hour++;
0022 80910200 lds R24,_Hour
0026 8F5F subi R24,255 ; addi 1
0028 80930200 sts _Hour,R24
002C .dbline 30
002C ; if(Hour >=24)
002C 8831 cpi R24,24
002E 10F0 brlo L6
0030 .dbline 31
0030 ; Hour=0;
0030 20920200 sts _Hour,R2
0034 L6:
0034 .dbline 32
0034 ; }
0034 L4:
0034 .dbline 33
0034 L2:
0034 .dbline -2
0034 L1:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbend
0036 .dbfunc e display_time _display_time fV
.even
0036 _display_time::
0036 .dbline -1
0036 .dbline 37
0036 ; }
0036 ; }
0036 ;
0036 ; void display_time(void)
0036 ; {
0036 .dbline 38
0036 ; time_buffer[0]=Hour/10+0x30;
0036 1AE0 ldi R17,10
0038 00910200 lds R16,_Hour
003C 0E940000 xcall div8u
0040 802F mov R24,R16
0042 805D subi R24,208 ; addi 48
0044 80930300 sts _time_buffer,R24
0048 .dbline 39
0048 ; time_buffer[1]=Hour%10+0x30;
0048 1AE0 ldi R17,10
004A 00910200 lds R16,_Hour
004E 0E940000 xcall mod8u
0052 802F mov R24,R16
0054 805D subi R24,208 ; addi 48
0056 80930400 sts _time_buffer+1,R24
005A .dbline 40
005A ; time_buffer[2]=':';
005A 8AE3 ldi R24,58
005C 80930500 sts _time_buffer+2,R24
0060 .dbline 41
0060 ; time_buffer[3]=Minute/10+0x30;
0060 1AE0 ldi R17,10
0062 00910100 lds R16,_Minute
0066 0E940000 xcall div8u
006A 802F mov R24,R16
006C 805D subi R24,208 ; addi 48
006E 80930600 sts _time_buffer+3,R24
0072 .dbline 42
0072 ; time_buffer[4]=Minute%10+0x30;
0072 1AE0 ldi R17,10
0074 00910100 lds R16,_Minute
0078 0E940000 xcall mod8u
007C 802F mov R24,R16
007E 805D subi R24,208 ; addi 48
0080 80930700 sts _time_buffer+4,R24
0084 .dbline 43
0084 ; time_buffer[5]=':';
0084 8AE3 ldi R24,58
0086 80930800 sts _time_buffer+5,R24
008A .dbline 44
008A ; time_buffer[6]=Second/10+0x30;
008A 1AE0 ldi R17,10
008C 00910000 lds R16,_Second
0090 0E940000 xcall div8u
0094 802F mov R24,R16
0096 805D subi R24,208 ; addi 48
0098 80930900 sts _time_buffer+6,R24
009C .dbline 45
009C ; time_buffer[7]=Second%10+0X30;
009C 1AE0 ldi R17,10
009E 00910000 lds R16,_Second
00A2 0E940000 xcall mod8u
00A6 802F mov R24,R16
00A8 805D subi R24,208 ; addi 48
00AA 80930A00 sts _time_buffer+7,R24
00AE .dbline 47
00AE ;
00AE ; LCD12864_gotoXY(2,2);
00AE 22E0 ldi R18,2
00B0 02E0 ldi R16,2
00B2 0E940000 xcall _LCD12864_gotoXY
00B6 .dbline 48
00B6 ; LCD12864_sendstr(time_buffer);
00B6 00E0 ldi R16,<_time_buffer
00B8 10E0 ldi R17,>_time_buffer
00BA 0E940000 xcall _LCD12864_sendstr
00BE .dbline -2
00BE L8:
00BE .dbline 0 ; func end
00BE 0895 ret
00C0 .dbend
00C0 .dbfunc e port_init _port_init fV
.even
00C0 _port_init::
00C0 .dbline -1
00C0 .dbline 62
00C0 ; /*LCD12864_sendbyte(1,Hour_H);
00C0 ; LCD12864_sendbyte(1,Hour_L);
00C0 ; LCD12864_sendbyte(1,':');
00C0 ;
00C0 ; LCD12864_sendbyte(1,Minute_H);
00C0 ; LCD12864_sendbyte(1,Minute_L);
00C0 ; LCD12864_sendbyte(1,':');
00C0 ;
00C0 ; LCD12864_sendbyte(1,Second_H);
00C0 ; LCD12864_sendbyte(1,Second_L);*/
00C0 ; }
00C0 ; //端口初始化
00C0 ; void port_init(void)
00C0 ; {
00C0 .dbline 63
00C0 ; PORTA = 0xFF;
00C0 8FEF ldi R24,255
00C2 8BBB out 0x1b,R24
00C4 .dbline 64
00C4 ; DDRA = 0xFF;
00C4 8ABB out 0x1a,R24
00C6 .dbline 65
00C6 ; PORTB = 0xf3;
00C6 83EF ldi R24,243
00C8 88BB out 0x18,R24
00CA .dbline 66
00CA ; DDRB = 0xf1;
00CA 81EF ldi R24,241
00CC 87BB out 0x17,R24
00CE .dbline 67
00CE ; PORTC = 0x00;
00CE 2224 clr R2
00D0 25BA out 0x15,R2
00D2 .dbline 68
00D2 ; DDRC = 0x00;
00D2 24BA out 0x14,R2
00D4 .dbline 69
00D4 ; PORTD = 0x00;
00D4 22BA out 0x12,R2
00D6 .dbline 70
00D6 ; DDRD = 0x00;
00D6 21BA out 0x11,R2
00D8 .dbline -2
00D8 L16:
00D8 .dbline 0 ; func end
00D8 0895 ret
00DA .dbend
00DA .dbfunc e timer0_init _timer0_init fV
.even
00DA _timer0_init::
00DA .dbline -1
00DA .dbline 75
00DA ; }
00DA ;
00DA ; //定时器T0初始化
00DA ; void timer0_init(void)
00DA ; {
00DA .dbline 76
00DA ; TCCR0 = 0x00;//停止定时器
00DA 2224 clr R2
00DC 23BE out 0x33,R2
00DE .dbline 77
00DE ; TCNT0 = 0x83;//初始值
00DE 83E8 ldi R24,131
00E0 82BF out 0x32,R24
00E2 .dbline 78
00E2 ; OCR0 = 0x82;//匹配值
00E2 82E8 ldi R24,130
00E4 8CBF out 0x3c,R24
00E6 .dbline 79
00E6 ; TIMSK |= 0x02;//中断允许
00E6 89B7 in R24,0x39
00E8 8260 ori R24,2
00EA 89BF out 0x39,R24
00EC .dbline 80
00EC ; TCCR0 = 0x04;//启动定时器
00EC 84E0 ldi R24,4
00EE 83BF out 0x33,R24
00F0 .dbline -2
00F0 L17:
00F0 .dbline 0 ; func end
00F0 0895 ret
00F2 .dbend
.area data(ram, con, rel)
0022 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0022 _display_is_ok::
0022 .blkb 1
.area idata
0022 00 .byte 0
.area data(ram, con, rel)
0023 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0023 .dbsym e display_is_ok _display_is_ok c
0023 _count::
0023 .blkb 1
.area idata
0023 00 .byte 0
.area data(ram, con, rel)
0024 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0024 .dbsym e count _count c
.area vector(rom, abs)
.org 76
004C 0C947900 jmp _timer0_comp_isr
.area data(ram, con, rel)
0024 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
.area text(rom, con, rel)
00F2 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
00F2 .dbfunc e timer0_comp_isr _timer0_comp_isr fV
.even
00F2 _timer0_comp_isr::
00F2 2A92 st -y,R2
00F4 8A93 st -y,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -