📄 display.lis
字号:
.module display.c
.area text(rom, con, rel)
0000 .dbfile F:\programme\nrf2401\display.c
0000 .dbfunc e display4 _display4 fV
.area func_lit(rom, con, rel)
0000 L14:
0000 3100 .word `L5
0002 3100 .word `L5
0004 3100 .word `L5
0006 3100 .word `L5
0008 3100 .word `L5
000A 3100 .word `L5
000C 3100 .word `L5
000E 3100 .word `L5
0010 3100 .word `L5
0012 3100 .word `L5
0014 7400 .word `L2
0016 7400 .word `L2
0018 7400 .word `L2
001A 3800 .word `L6
001C 4200 .word `L7
001E 4C00 .word `L8
0020 5600 .word `L9
.area text(rom, con, rel)
0000 .dbfile F:\programme\nrf2401\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 5BC0 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 BCF0 brlt L13
0028 L12:
0028 6030 cpi R22,0
002A E0E0 ldi R30,0
002C 7E07 cpc R23,R30
002E 0CF4 brge X2
0030 5BC0 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 55C0 rjmp L2
003E X3:
003E 80E0 ldi R24,<L14
0040 90E0 ldi R25,>L14
0042 062F mov R16,R22
0044 172F mov R17,R23
0046 000F lsl R16
0048 111F rol R17
004A 080F add R16,R24
004C 191F adc R17,R25
004E 00D0 rcall lpm16
0050 E02F mov R30,R16
0052 F12F mov R31,R17
0054 0994 ijmp
0056 L13:
0056 6A32 cpi R22,42
0058 E0E0 ldi R30,0
005A 7E07 cpc R23,R30
005C 09F4 brne X4
005E 30C0 rjmp L10
0060 X4:
0060 43C0 rjmp L2
0062 X0:
0062 .dbline 16
0062 ; {case 1:
0062 L5:
0062 .dbline 25
0062 ; case 2:
0062 ; case 3:
0062 ; case 4:
0062 ; case 5:
0062 ; case 6:
0062 ; case 7:
0062 ; case 8:
0062 ; case 9:
0062 ; case 0: lcd_write_comm(0x98); displaybyte2(kk); break;
0062 08E9 ldi R16,152
0064 10E0 ldi R17,0
0066 00D0 rcall _lcd_write_comm
0068 .dbline 25
0068 042F mov R16,R20
006A 1127 clr R17
006C 77D0 rcall _displaybyte2
006E .dbline 25
006E 45C0 rjmp L3
0070 L6:
0070 .dbline 26
0070 ; case 13: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('1'); break;
0070 08E9 ldi R16,152
0072 10E0 ldi R17,0
0074 00D0 rcall _lcd_write_comm
0076 .dbline 26
0076 06E4 ldi R16,70
0078 10E0 ldi R17,0
007A 00D0 rcall _lcd_write_data
007C .dbline 26
007C 01E3 ldi R16,49
007E 10E0 ldi R17,0
0080 00D0 rcall _lcd_write_data
0082 .dbline 26
0082 3BC0 rjmp L3
0084 L7:
0084 .dbline 27
0084 ; case 14: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('2'); break;
0084 08E9 ldi R16,152
0086 10E0 ldi R17,0
0088 00D0 rcall _lcd_write_comm
008A .dbline 27
008A 06E4 ldi R16,70
008C 10E0 ldi R17,0
008E 00D0 rcall _lcd_write_data
0090 .dbline 27
0090 02E3 ldi R16,50
0092 10E0 ldi R17,0
0094 00D0 rcall _lcd_write_data
0096 .dbline 27
0096 31C0 rjmp L3
0098 L8:
0098 .dbline 28
0098 ; case 15: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('2'); break;
0098 08E9 ldi R16,152
009A 10E0 ldi R17,0
009C 00D0 rcall _lcd_write_comm
009E .dbline 28
009E 06E4 ldi R16,70
00A0 10E0 ldi R17,0
00A2 00D0 rcall _lcd_write_data
00A4 .dbline 28
00A4 02E3 ldi R16,50
00A6 10E0 ldi R17,0
00A8 00D0 rcall _lcd_write_data
00AA .dbline 28
00AA 27C0 rjmp L3
00AC L9:
00AC .dbline 29
00AC ; case 16: lcd_write_comm(0x98);lcd_write_data('F');lcd_write_data('4'); break;
00AC 08E9 ldi R16,152
00AE 10E0 ldi R17,0
00B0 00D0 rcall _lcd_write_comm
00B2 .dbline 29
00B2 06E4 ldi R16,70
00B4 10E0 ldi R17,0
00B6 00D0 rcall _lcd_write_data
00B8 .dbline 29
00B8 04E3 ldi R16,52
00BA 10E0 ldi R17,0
00BC 00D0 rcall _lcd_write_data
00BE .dbline 29
00BE 1DC0 rjmp L3
00C0 L10:
00C0 .dbline 30
00C0 ; case '*':lcd_write_comm(0x98);lcd_write_data(' ');lcd_write_data('*'); break;
00C0 08E9 ldi R16,152
00C2 10E0 ldi R17,0
00C4 00D0 rcall _lcd_write_comm
00C6 .dbline 30
00C6 00E2 ldi R16,32
00C8 10E0 ldi R17,0
00CA 00D0 rcall _lcd_write_data
00CC .dbline 30
00CC 0AE2 ldi R16,42
00CE 10E0 ldi R17,0
00D0 00D0 rcall _lcd_write_data
00D2 .dbline 30
00D2 13C0 rjmp L3
00D4 L11:
00D4 .dbline 31
00D4 ; case '#':lcd_write_comm(0x98);lcd_write_data(' ');lcd_write_data('#'); break;
00D4 08E9 ldi R16,152
00D6 10E0 ldi R17,0
00D8 00D0 rcall _lcd_write_comm
00DA .dbline 31
00DA 00E2 ldi R16,32
00DC 10E0 ldi R17,0
00DE 00D0 rcall _lcd_write_data
00E0 .dbline 31
00E0 03E2 ldi R16,35
00E2 10E0 ldi R17,0
00E4 00D0 rcall _lcd_write_data
00E6 .dbline 31
00E6 09C0 rjmp L3
00E8 L2:
00E8 .dbline 32
00E8 08E9 ldi R16,152
00EA 10E0 ldi R17,0
00EC 00D0 rcall _lcd_write_comm
00EE .dbline 32
00EE 0EE4 ldi R16,78
00F0 10E0 ldi R17,0
00F2 00D0 rcall _lcd_write_data
00F4 .dbline 32
00F4 0FE4 ldi R16,79
00F6 10E0 ldi R17,0
00F8 00D0 rcall _lcd_write_data
00FA .dbline 32
00FA L3:
00FA .dbline -2
00FA L1:
00FA 00D0 rcall pop_gset2
00FC .dbline 0 ; func end
00FC 0895 ret
00FE .dbsym r kk 20 c
00FE .dbend
00FE .dbfunc e displaybyte _displaybyte fV
00FE ; data -> R20
.even
00FE _displaybyte::
00FE 00D0 rcall push_gset1
0100 402F mov R20,R16
0102 .dbline -1
0102 .dbline 38
0102 ; default: lcd_write_comm(0x98);lcd_write_data('N');lcd_write_data('O'); break;
0102 ; }
0102 ;
0102 ; }
0102 ;
0102 ; void displaybyte(unsigned char data)
0102 ; {
0102 .dbline 39
0102 ; lcd_write_data(data/100%10+0x30);
0102 24E6 ldi R18,100
0104 30E0 ldi R19,0
0106 042F mov R16,R20
0108 1127 clr R17
010A 00D0 rcall div16s
010C 2AE0 ldi R18,10
010E 30E0 ldi R19,0
0110 00D0 rcall mod16s
0112 005D subi R16,208 ; offset = 48
0114 1F4F sbci R17,255
0116 00D0 rcall _lcd_write_data
0118 .dbline 40
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -