📄 pro.lis
字号:
059E 44E6 ldi R20,100
05A0 50E0 ldi R21,0
05A2 60E0 ldi R22,0
05A4 70E0 ldi R23,0
05A6 FE01 movw R30,R28
05A8 2080 ldd R2,z+0
05AA 3180 ldd R3,z+1
05AC 4280 ldd R4,z+2
05AE 5380 ldd R5,z+3
05B0 7A93 st -y,R23
05B2 6A93 st -y,R22
05B4 5A93 st -y,R21
05B6 4A93 st -y,R20
05B8 8101 movw R16,R2
05BA 9201 movw R18,R4
05BC 0E940000 xcall mod32u
05C0 FE01 movw R30,R28
05C2 0083 std z+0,R16
05C4 1183 std z+1,R17
05C6 2283 std z+2,R18
05C8 3383 std z+3,R19
05CA .dbline 184
05CA ; temp[6]=freq /10 + 0x30;
05CA 4AE0 ldi R20,10
05CC 50E0 ldi R21,0
05CE 60E0 ldi R22,0
05D0 70E0 ldi R23,0
05D2 FE01 movw R30,R28
05D4 2080 ldd R2,z+0
05D6 3180 ldd R3,z+1
05D8 4280 ldd R4,z+2
05DA 5380 ldd R5,z+3
05DC 7A93 st -y,R23
05DE 6A93 st -y,R22
05E0 5A93 st -y,R21
05E2 4A93 st -y,R20
05E4 8101 movw R16,R2
05E6 9201 movw R18,R4
05E8 0E940000 xcall div32u
05EC 1801 movw R2,R16
05EE 2901 movw R4,R18
05F0 40E3 ldi R20,48
05F2 50E0 ldi R21,0
05F4 60E0 ldi R22,0
05F6 70E0 ldi R23,0
05F8 240E add R2,R20
05FA 351E adc R3,R21
05FC 461E adc R4,R22
05FE 571E adc R5,R23
0600 20920600 sts _temp+6,R2
0604 .dbline 185
0604 ; temp[7]=freq %10 + 0x30;
0604 4AE0 ldi R20,10
0606 50E0 ldi R21,0
0608 60E0 ldi R22,0
060A 70E0 ldi R23,0
060C FE01 movw R30,R28
060E 2080 ldd R2,z+0
0610 3180 ldd R3,z+1
0612 4280 ldd R4,z+2
0614 5380 ldd R5,z+3
0616 7A93 st -y,R23
0618 6A93 st -y,R22
061A 5A93 st -y,R21
061C 4A93 st -y,R20
061E 8101 movw R16,R2
0620 9201 movw R18,R4
0622 0E940000 xcall mod32u
0626 1801 movw R2,R16
0628 2901 movw R4,R18
062A 40E3 ldi R20,48
062C 50E0 ldi R21,0
062E 60E0 ldi R22,0
0630 70E0 ldi R23,0
0632 240E add R2,R20
0634 351E adc R3,R21
0636 461E adc R4,R22
0638 571E adc R5,R23
063A 20920700 sts _temp+7,R2
063E .dbline 187
063E ;
063E ; LCD12864_gotoXY(3,2);
063E 22E0 ldi R18,2
0640 03E0 ldi R16,3
0642 0E940000 xcall _LCD12864_gotoXY
0646 .dbline 188
0646 ; LCD12864_sendstr(temp);
0646 00E0 ldi R16,<_temp
0648 10E0 ldi R17,>_temp
064A 0E940000 xcall _LCD12864_sendstr
064E .dbline 189
064E ; LCD12864_sendstr("Hz");
064E 00E0 ldi R16,<L35
0650 10E0 ldi R17,>L35
0652 0E940000 xcall _LCD12864_sendstr
0656 .dbline -2
0656 L27:
0656 2496 adiw R28,4
0658 0E940000 xcall pop_gset2
065C .dbline 0 ; func end
065C 0895 ret
065E .dbsym l freq 0 l
065E .dbend
065E .dbfunc e init_devices _init_devices fV
.even
065E _init_devices::
065E .dbline -1
065E .dbline 202
065E ; /* LCD12864_sendbyte(1, temp[0]);
065E ; LCD12864_sendbyte(1, temp[1]);
065E ; LCD12864_sendbyte(1, temp[2]);
065E ; LCD12864_sendbyte(1, temp[3]);
065E ; LCD12864_sendbyte(1, temp[4]);
065E ; LCD12864_sendbyte(1, temp[5]);
065E ; LCD12864_sendbyte(1, temp[6]);
065E ; LCD12864_sendbyte(1, temp[7]);*/
065E ;
065E ; }
065E ;
065E ; void init_devices(void)
065E ; {
065E .dbline 203
065E ; CLI(); //禁止所有中断
065E F894 cli
0660 .dbline 204
0660 ; MCUCR = 0x00;
0660 2224 clr R2
0662 25BE out 0x35,R2
0664 .dbline 205
0664 ; GICR = 0x00;
0664 2BBE out 0x3b,R2
0666 .dbline 206
0666 ; port_init();
0666 2CDD xcall _port_init
0668 .dbline 207
0668 ; LCD12864_initial();
0668 0E940000 xcall _LCD12864_initial
066C .dbline 208
066C ; timer0_init();
066C 36DD xcall _timer0_init
066E .dbline 209
066E ; timer1_init();
066E 5ADD xcall _timer1_init
0670 .dbline 210
0670 ; timer2_init();
0670 76DD xcall _timer2_init
0672 .dbline 211
0672 ; SEI();//开全局中断
0672 7894 sei
0674 .dbline -2
0674 L36:
0674 .dbline 0 ; func end
0674 0895 ret
0676 .dbend
0676 .dbfunc e main _main fV
.even
0676 _main::
0676 .dbline -1
0676 .dbline 215
0676 ; }
0676 ; //主函数
0676 ; void main(void)
0676 ; {
0676 .dbline 216
0676 ; init_devices();
0676 F3DF xcall _init_devices
0678 .dbline 218
0678 ; //在这继续添加你的代码
0678 ; LCD12864_gotoXY(1,0);
0678 2227 clr R18
067A 01E0 ldi R16,1
067C 0E940000 xcall _LCD12864_gotoXY
0680 .dbline 219
0680 ; LCD12864_sendstr("作者: 张秋伟");
0680 00E0 ldi R16,<L38
0682 10E0 ldi R17,>L38
0684 0E940000 xcall _LCD12864_sendstr
0688 .dbline 220
0688 ; LCD12864_gotoXY(2,0);
0688 2227 clr R18
068A 02E0 ldi R16,2
068C 0E940000 xcall _LCD12864_gotoXY
0690 .dbline 221
0690 ; LCD12864_sendstr("班级: 06电气");
0690 00E0 ldi R16,<L39
0692 10E0 ldi R17,>L39
0694 0E940000 xcall _LCD12864_sendstr
0698 .dbline 222
0698 ; LCD12864_gotoXY(3,0);
0698 2227 clr R18
069A 03E0 ldi R16,3
069C 0E940000 xcall _LCD12864_gotoXY
06A0 .dbline 223
06A0 ; LCD12864_sendstr("学号: 06");
06A0 00E0 ldi R16,<L40
06A2 10E0 ldi R17,>L40
06A4 0E940000 xcall _LCD12864_sendstr
06A8 .dbline 224
06A8 ; delay_nms(5000);
06A8 08E8 ldi R16,5000
06AA 13E1 ldi R17,19
06AC 0E940000 xcall _delay_nms
06B0 .dbline 225
06B0 ; LCD12864_clear(); //清屏
06B0 0E940000 xcall _LCD12864_clear
06B4 .dbline 226
06B4 ; LCD12864_gotoXY(1,2);
06B4 22E0 ldi R18,2
06B6 01E0 ldi R16,1
06B8 0E940000 xcall _LCD12864_gotoXY
06BC .dbline 227
06BC ; LCD12864_sendstr("数字频率计");
06BC 00E0 ldi R16,<L41
06BE 10E0 ldi R17,>L41
06C0 0E940000 xcall _LCD12864_sendstr
06C4 .dbline 228
06C4 ; LCD12864_gotoXY(2,0);
06C4 2227 clr R18
06C6 02E0 ldi R16,2
06C8 0E940000 xcall _LCD12864_gotoXY
06CC .dbline 229
06CC ; LCD12864_sendstr("时间");
06CC 00E0 ldi R16,<L42
06CE 10E0 ldi R17,>L42
06D0 0E940000 xcall _LCD12864_sendstr
06D4 .dbline 230
06D4 ; LCD12864_gotoXY(3,0);
06D4 2227 clr R18
06D6 03E0 ldi R16,3
06D8 0E940000 xcall _LCD12864_gotoXY
06DC .dbline 231
06DC ; LCD12864_sendstr("频率");
06DC 00E0 ldi R16,<L43
06DE 10E0 ldi R17,>L43
06E0 0E940000 xcall _LCD12864_sendstr
06E4 .dbline 233
06E4 ;
06E4 ; DDRB |=(1<<PB7)|(1<<PB0);//设置74ls393的清零端,闸门控制端为输出
06E4 87B3 in R24,0x17
06E6 8168 ori R24,129
06E8 87BB out 0x17,R24
06EA .dbline 234
06EA ; PORTB|= (1<<PB7); //74LS393清零
06EA C79A sbi 0x18,7
06EC .dbline 235
06EC ; delay_nus(5);
06EC 05E0 ldi R16,5
06EE 10E0 ldi R17,0
06F0 0E940000 xcall _delay_nus
06F4 .dbline 236
06F4 ; PORTB &=~(1<<PB7); //74LS393开始计数
06F4 C798 cbi 0x18,7
06F6 .dbline 237
06F6 ; PORTB|=(1<<PB0); //打开闸门
06F6 C09A sbi 0x18,0
06F8 11C0 xjmp L45
06FA L44:
06FA .dbline 239
06FA ; while(1)
06FA ; {
06FA .dbline 240
06FA ; if(second_is_ok == 1)
06FA 80912400 lds R24,_second_is_ok
06FE 8130 cpi R24,1
0700 21F4 brne L47
0702 .dbline 241
0702 ; {
0702 .dbline 242
0702 ; second_is_ok =0;
0702 2224 clr R2
0704 20922400 sts _second_is_ok,R2
0708 .dbline 243
0708 ; time();
0708 7BDC xcall _time
070A .dbline 244
070A ; }
070A L47:
070A .dbline 245
070A ; if(display_is_ok)
070A 20902200 lds R2,_display_is_ok
070E 2220 tst R2
0710 29F0 breq L49
0712 .dbline 246
0712 ; {
0712 .dbline 247
0712 ; display_is_ok=0;
0712 2224 clr R2
0714 20922200 sts _display_is_ok,R2
0718 .dbline 248
0718 ; PutChar();
0718 0DDE xcall _PutChar
071A .dbline 249
071A ; display_time();
071A 8DDC xcall _display_time
071C .dbline 250
071C ; }
071C L49:
071C .dbline 251
071C L45:
071C .dbline 238
071C EECF xjmp L44
071E X0:
071E .dbline -2
071E L37:
071E .dbline 0 ; func end
071E 0895 ret
0720 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0000 _temp::
0000 .blkb 8
0008 .dbsym e temp _temp A[8:8]c
0008 _Hour_L::
0008 .blkb 1
0009 .dbsym e Hour_L _Hour_L c
0009 _Hour_H::
0009 .blkb 1
000A .dbsym e Hour_H _Hour_H c
000A _Minute_L::
000A .blkb 1
000B .dbsym e Minute_L _Minute_L c
000B _Minute_H::
000B .blkb 1
000C .dbsym e Minute_H _Minute_H c
000C _Second_L::
000C .blkb 1
000D .dbsym e Second_L _Second_L c
000D _Second_H::
000D .blkb 1
000E .dbsym e Second_H _Second_H c
.area data(ram, con, rel)
0025 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0025 L43:
0025 .blkb 5
.area idata
0025 C6B5C2CA00 .byte 198,181,194,202,0
.area data(ram, con, rel)
002A .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
002A L42:
002A .blkb 5
.area idata
002A CAB1BCE400 .byte 202,177,188,228,0
.area data(ram, con, rel)
002F .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
002F L41:
002F .blkb 11
.area idata
002F CAFDD7D6C6B5C2CABCC600 .byte 202,253,215,214,198,181,194,202,188,198,0
.area data(ram, con, rel)
003A .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
003A L40:
003A .blkb 9
.area idata
003A D1A7BAC53A20303600 .byte 209,167,186,197,58,32,48,54,0
.area data(ram, con, rel)
0043 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0043 L39:
0043 .blkb 13
.area idata
0043 B0E0BCB63A203036B5E7C6F800 .byte 176,224,188,182,58,32,48,54,181,231,198,248,0
.area data(ram, con, rel)
0050 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
0050 L38:
0050 .blkb 13
.area idata
0050 D7F7D5DF3A20D5C5C7EFCEB000 .byte 215,247,213,223,58,32,213,197,199,239,206,176,0
.area data(ram, con, rel)
005D .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
005D L35:
005D .blkb 3
.area idata
005D 487A00 .byte 'H,'z,0
.area data(ram, con, rel)
0060 .dbfile E:\张秋伟\我的实验\数字频率计\pro.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -