📄 display.lis
字号:
.module display.c
.area text(rom, con, rel)
0000 .dbfile F:\programme\RF905\display.c
0000 .dbfunc e display4 _display4 fV
.area func_lit(rom, con, rel)
0000 L14:
0000 3200 .word `L5
0002 3200 .word `L5
0004 3200 .word `L5
0006 3200 .word `L5
0008 3200 .word `L5
000A 3200 .word `L5
000C 3200 .word `L5
000E 3200 .word `L5
0010 3200 .word `L5
0012 3200 .word `L5
0014 7500 .word `L2
0016 7500 .word `L2
0018 7500 .word `L2
001A 3900 .word `L6
001C 4300 .word `L7
001E 4D00 .word `L8
0020 5700 .word `L9
.area text(rom, con, rel)
0000 .dbfile F:\programme\RF905\display.c
0000 ; kk -> R20
.even
0000 _display4::
0000 00D0 rcall push_gset2
0002 402F mov R20,R16
0004 .dbline -1
0004 .dbline 12
0004 ; //************************************************************//
0004 ; //本模块用于显示程序运行过程中需要显示的一些数据,可按需要改动
0004 ; //注意:将要显示的数据设为外部变量
0004 ; //周金广做
0004 ; //**********************************************************//
0004 ; #include <stdio.h>
0004 ; #include <iom8v.h>
0004 ; #include <macros.h>
0004 ;
0004 ;
0004 ; void display4(unsigned char kk) //临时少麻烦
0004 ; {
0004 .dbline 13
0004 ; lcd_write_comm(0x30);
0004 00E3 ldi R16,48
0006 10E0 ldi R17,0
0008 00D0 rcall _lcd_write_comm
000A .dbline 14
000A ; lcd_write_comm(0x0c);
000A 0CE0 ldi R16,12
000C 10E0 ldi R17,0
000E 00D0 rcall _lcd_write_comm
0010 .dbline 15
0010 ; switch(kk)
0010 642F mov R22,R20
0012 7727 clr R23
0014 6332 cpi R22,35
0016 E0E0 ldi R30,0
0018 7E07 cpc R23,R30
001A 09F4 brne X1
001C 5CC0 rjmp L11
001E X1:
001E 83E2 ldi R24,35
0020 90E0 ldi R25,0
0022 8617 cp R24,R22
0024 9707 cpc R25,R23
0026 C4F0 brlt L13
0028 L12:
0028 6030 cpi R22,0
002A E0E0 ldi R30,0
002C 7E07 cpc R23,R30
002E 0CF4 brge X2
0030 5CC0 rjmp L2
0032 X2:
0032 80E1 ldi R24,16
0034 90E0 ldi R25,0
0036 8617 cp R24,R22
0038 9707 cpc R25,R23
003A 0CF4 brge X3
003C 56C0 rjmp L2
003E X3:
003E 02E0 ldi R16,2
0040 10E0 ldi R17,0
0042 9B01 movw R18,R22
0044 00D0 rcall empy16s
0046 F801 movw R30,R16
0048 80E0 ldi R24,<L14
004A 90E0 ldi R25,>L14
004C E80F add R30,R24
004E F91F adc R31,R25
0050 0590 lpm R0,Z+
0052 1490 lpm R1,Z
0054 F001 movw R30,R0
0056 0994 ijmp
0058 L13:
0058 6A32 cpi R22,42
005A E0E0 ldi R30,0
005C 7E07 cpc R23,R30
005E 09F4 brne X4
0060 30C0 rjmp L10
0062 X4:
0062 43C0 rjmp L2
0064 X0:
0064 .dbline 16
0064 ; {case 1:
0064 L5:
0064 .dbline 25
0064 ; case 2:
0064 ; case 3:
0064 ; case 4:
0064 ; case 5:
0064 ; case 6:
0064 ; case 7:
0064 ; case 8:
0064 ; case 9:
0064 ; case 0: lcd_write_comm(0x98); displaybyte2(kk); break;
0064 08E9 ldi R16,152
0066 10E0 ldi R17,0
0068 00D0 rcall _lcd_write_comm
006A .dbline 25
006A 042F mov R16,R20
006C 1127 clr R17
006E 77D0 rcall _displaybyte2
0070 .dbline 25
0070 45C0 rjmp L3
0072 L6:
0072 .dbline 26
0072 ; case 13: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('1'); break;
0072 08E9 ldi R16,152
0074 10E0 ldi R17,0
0076 00D0 rcall _lcd_write_comm
0078 .dbline 26
0078 06E4 ldi R16,70
007A 10E0 ldi R17,0
007C 00D0 rcall _lcd_write_data
007E .dbline 26
007E 01E3 ldi R16,49
0080 10E0 ldi R17,0
0082 00D0 rcall _lcd_write_data
0084 .dbline 26
0084 3BC0 rjmp L3
0086 L7:
0086 .dbline 27
0086 ; case 14: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('2'); break;
0086 08E9 ldi R16,152
0088 10E0 ldi R17,0
008A 00D0 rcall _lcd_write_comm
008C .dbline 27
008C 06E4 ldi R16,70
008E 10E0 ldi R17,0
0090 00D0 rcall _lcd_write_data
0092 .dbline 27
0092 02E3 ldi R16,50
0094 10E0 ldi R17,0
0096 00D0 rcall _lcd_write_data
0098 .dbline 27
0098 31C0 rjmp L3
009A L8:
009A .dbline 28
009A ; case 15: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('2'); break;
009A 08E9 ldi R16,152
009C 10E0 ldi R17,0
009E 00D0 rcall _lcd_write_comm
00A0 .dbline 28
00A0 06E4 ldi R16,70
00A2 10E0 ldi R17,0
00A4 00D0 rcall _lcd_write_data
00A6 .dbline 28
00A6 02E3 ldi R16,50
00A8 10E0 ldi R17,0
00AA 00D0 rcall _lcd_write_data
00AC .dbline 28
00AC 27C0 rjmp L3
00AE L9:
00AE .dbline 29
00AE ; case 16: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('4'); break;
00AE 08E9 ldi R16,152
00B0 10E0 ldi R17,0
00B2 00D0 rcall _lcd_write_comm
00B4 .dbline 29
00B4 06E4 ldi R16,70
00B6 10E0 ldi R17,0
00B8 00D0 rcall _lcd_write_data
00BA .dbline 29
00BA 04E3 ldi R16,52
00BC 10E0 ldi R17,0
00BE 00D0 rcall _lcd_write_data
00C0 .dbline 29
00C0 1DC0 rjmp L3
00C2 L10:
00C2 .dbline 30
00C2 ; case '*':lcd_write_comm(0x98);lcd_write_data(' ');lcd_write_data('*'); break;
00C2 08E9 ldi R16,152
00C4 10E0 ldi R17,0
00C6 00D0 rcall _lcd_write_comm
00C8 .dbline 30
00C8 00E2 ldi R16,32
00CA 10E0 ldi R17,0
00CC 00D0 rcall _lcd_write_data
00CE .dbline 30
00CE 0AE2 ldi R16,42
00D0 10E0 ldi R17,0
00D2 00D0 rcall _lcd_write_data
00D4 .dbline 30
00D4 13C0 rjmp L3
00D6 L11:
00D6 .dbline 31
00D6 ; case '#':lcd_write_comm(0x98);lcd_write_data(' ');lcd_write_data('#'); break;
00D6 08E9 ldi R16,152
00D8 10E0 ldi R17,0
00DA 00D0 rcall _lcd_write_comm
00DC .dbline 31
00DC 00E2 ldi R16,32
00DE 10E0 ldi R17,0
00E0 00D0 rcall _lcd_write_data
00E2 .dbline 31
00E2 03E2 ldi R16,35
00E4 10E0 ldi R17,0
00E6 00D0 rcall _lcd_write_data
00E8 .dbline 31
00E8 09C0 rjmp L3
00EA L2:
00EA .dbline 32
00EA 08E9 ldi R16,152
00EC 10E0 ldi R17,0
00EE 00D0 rcall _lcd_write_comm
00F0 .dbline 32
00F0 0EE4 ldi R16,78
00F2 10E0 ldi R17,0
00F4 00D0 rcall _lcd_write_data
00F6 .dbline 32
00F6 0FE4 ldi R16,79
00F8 10E0 ldi R17,0
00FA 00D0 rcall _lcd_write_data
00FC .dbline 32
00FC L3:
00FC .dbline -2
00FC L1:
00FC 00D0 rcall pop_gset2
00FE .dbline 0 ; func end
00FE 0895 ret
0100 .dbsym r kk 20 c
0100 .dbend
0100 .dbfunc e displaybyte _displaybyte fV
0100 ; data -> R20
.even
0100 _displaybyte::
0100 00D0 rcall push_gset1
0102 402F mov R20,R16
0104 .dbline -1
0104 .dbline 38
0104 ; default: lcd_write_comm(0x98);lcd_write_data('N');lcd_write_data('O'); break;
0104 ; }
0104 ;
0104 ; }
0104 ;
0104 ; void displaybyte(unsigned char data)
0104 ; {
0104 .dbline 39
0104 ; lcd_write_data(data/100%10+0x30);
0104 24E6 ldi R18,100
0106 30E0 ldi R19,0
0108 042F mov R16,R20
010A 1127 clr R17
010C 00D0 rcall div16s
010E 2AE0 ldi R18,10
0110 30E0 ldi R19,0
0112 00D0 rcall mod16s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -