📄 nec_fp.lis
字号:
.module nec_fp.c
.area text(rom, con, rel)
0000 .dbfile D:\avrmcu\AT980\nec_fp.c
0000 .dbfunc s VFD_LL_WriteByte _VFD_LL_WriteByte fI
; i -> R20
; byte -> R16
.even
0000 _VFD_LL_WriteByte:
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 8
; #include "main.h"
; #include "nec_fp.h"
; #include <iom163.h>
; #include "io.h"
; unsigned char p_keycode[BYTES_USED_TO_SCANKEY];
;
; static void VFD_LL_WriteByte( unsigned char byte )
; {
0004 .dbline 11
; register unsigned char i;
;
; for( i=0x01; i!=0; i<<=1 )
0004 41E0 ldi R20,1
0006 0AC0 xjmp L5
0008 L2:
0008 .dbline 12
; {
0008 .dbline 13
; Set_Fp_CLK_L();
0008 AF98 CBI 0x15,7
000A .dbline 15
;
; if(byte&i)
000A 202E mov R2,R16
000C 2422 and R2,R20
000E 2220 tst R2
0010 11F0 breq L6
0012 .dbline 16
; Set_Fp_DOUT_H();
0012 AD9A SBI 0x15,5
0014 01C0 xjmp L7
0016 L6:
0016 .dbline 18
; else
; Set_Fp_DOUT_L();
0016 AD98 CBI 0x15,5
0018 L7:
0018 .dbline 20
0018 AF9A SBI 0x15,7
001A .dbline 21
001A L3:
001A .dbline 11
001A 440F lsl R20
001C L5:
001C .dbline 11
001C 4423 tst R20
001E A1F7 brne L2
0020 .dbline -2
0020 .dbline 22
;
; Set_Fp_CLK_H();
; }
; }
0020 L1:
0020 0E940000 xcall pop_gset1
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbsym r i 20 c
0026 .dbsym r byte 16 c
0026 .dbfunc s VFD_LL_ReadByte _VFD_LL_ReadByte fI
; value -> R20
; i -> R22
; byte -> R10,R11
.even
0026 _VFD_LL_ReadByte:
0026 0E940000 xcall push_gset3
002A 5801 movw R10,R16
002C .dbline -1
002C .dbline 24
; static void VFD_LL_ReadByte( unsigned char *byte )
; {
002C .dbline 31
; unsigned char value;
; register unsigned char i;
; // unsigned char value;
;
; //Set_Fp_CLK_H();
; //*byte = 0; //FW 0117 Clear byte first
; value = 0;
002C 4427 clr R20
002E .dbline 32
; for( i=0; i<8; i++ )
002E 6627 clr R22
0030 0BC0 xjmp L12
0032 L9:
0032 .dbline 33
; {
0032 .dbline 34
; Set_Fp_CLK_L();
0032 AF98 CBI 0x15,7
0034 .dbline 36
; // *byte >>=1;
; value >>=1;
0034 4695 lsr R20
0036 .dbline 37
; soft_delay();
0036 0E940000 xcall _soft_delay
003A .dbline 38
; if(Get_Fp_DIN())
003A 9D9B sbis 0x13,5
003C 01C0 rjmp L13
003E .dbline 40
; //*byte |= 0x80;
; value |= 0x80;
003E 4068 ori R20,128
0040 L13:
0040 .dbline 41
0040 AF9A SBI 0x15,7
0042 .dbline 42
0042 0E940000 xcall _soft_delay
0046 .dbline 43
0046 L10:
0046 .dbline 32
0046 6395 inc R22
0048 L12:
0048 .dbline 32
0048 6830 cpi R22,8
004A 98F3 brlo L9
004C .dbline 44
; Set_Fp_CLK_H();
; soft_delay();
; }
; *byte = value;
004C F501 movw R30,R10
004E 4083 std z+0,R20
0050 .dbline -2
0050 .dbline 49
; //Set_Fp_CLK_L();
; //if(Get_Fp_DIN())
; //*byte |= 0x80;
; //Set_Fp_CLK_H();
; }
0050 L8:
0050 0E940000 xcall pop_gset3
0054 .dbline 0 ; func end
0054 0895 ret
0056 .dbsym r value 20 c
0056 .dbsym r i 22 c
0056 .dbsym r byte 10 pc
0056 .dbfunc s VFD_LL_SetDim _VFD_LL_SetDim fI
; real_dim_value -> R20
.even
0056 _VFD_LL_SetDim::
0056 0E940000 xcall push_gset1
005A 402F mov R20,R16
005C .dbline -1
005C .dbline 51
; void VFD_LL_SetDim(unsigned char real_dim_value)
; {
005C .dbline 53
;
; Set_Fp_STB_L();
005C AE98 CBI 0x15,6
005E .dbline 56
;
;
; VFD_LL_WriteByte( DISPLAY_CONTROL | real_dim_value );
005E 042F mov R16,R20
0060 0068 ori R16,128
0062 CEDF xcall _VFD_LL_WriteByte
0064 .dbline 59
;
;
; Set_Fp_STB_H();
0064 AE9A SBI 0x15,6
0066 .dbline -2
0066 .dbline 61
;
; }
0066 L15:
0066 0E940000 xcall pop_gset1
006A .dbline 0 ; func end
006A 0895 ret
006C .dbsym r real_dim_value 20 c
006C .dbfunc s VFD_LL_SetGrid _VFD_LL_SetGrid fI
.even
006C _VFD_LL_SetGrid::
006C .dbline -1
006C .dbline 63
; void VFD_LL_SetGrid(void)
; {
006C .dbline 68
;
; //Set_Fp_STB_H();
;
;
; Set_Fp_STB_L();
006C AE98 CBI 0x15,6
006E .dbline 70
;
; VFD_LL_WriteByte( DISPLAY_MODE| REAL_GRID_VALUE );
006E 0AE0 ldi R16,10
0070 C7DF xcall _VFD_LL_WriteByte
0072 .dbline 71
; Set_Fp_STB_H();
0072 AE9A SBI 0x15,6
0074 .dbline -2
0074 .dbline 74
;
; //VFD_LL_SetDim(0x0f);
; }
0074 L16:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -