📄 show.lis
字号:
.module Show.c
.area text
0000 .dbfile Show.c
0000 .dbfunc e InBuff _InBuff fV
0000 ; i -> 0,X
0000 ; p -> 1,X
0000 ; Buff -> 13,X
0000 ; time2 -> 11,X
0000 ; time1 -> 9,X
0000 ; tmp2 -> 7,X
0000 ; tmp1 -> 5,X
0000 _InBuff::
0000 .dbline -1
0000 A7FD ais #-3
0002 95 tsx
0003 .dbline 20
0003 ; #include "Show.h"
0003 ;
0003 ; //内部函数声明
0003 ; void NumFormatChange(INT8U * ReP,INT8U * Data);
0003 ; void Show1Data(INT16U showdata,INT8U showline,INT8U fbflag,INT8U *Buff);
0003 ;
0003 ; //InBuff:LCD显示数据合并子函数---------------------------------------------*
0003 ; //功 能:将需要显示的4行数据按LCD显示位置放入一个64字节的缓冲区 *
0003 ; //参 数: *
0003 ; // tmp1:第2行左对齐显示的数据 *
0003 ; // tmp2:第2行右对齐显示的数据 *
0003 ; // time1:第3行左对齐显示的数据 *
0003 ; // time2:第3行右对齐显示的数据 *
0003 ; // Buff:存放显示64字节数据的缓冲区 *
0003 ; //返 回:内存Buff开始连续的64个地址内即为转换后要显示的数据 *
0003 ; //调 用:Show1Data *
0003 ; //说 明:第4行显示“青星科技有限公司” *
0003 ; //-------------------------------------------------------------------------*
0003 ; void InBuff(INT16U tmp1,INT16U tmp2,INT16U time1,INT16U time2,INT8U *Buff)
0003 ; {
0003 .dbline 29
0003 ; INT8U *p;
0003 ; INT8U i;
0003 ;
0003 ; //1 显示当前温度和设定温度
0003 ; //1.1空1格,因为汉字要从奇数位开始显示,否则为乱码
0003 ; // Buff[16]=' ';
0003 ; //1.2在第2行左对齐显示当前温度及其单位,共占用7字节
0003 ; // Show1Data(tmp1,2,0,Buff+1);
0003 ; p="℃"; //当1个汉字(2字节)显示
0003 A603 lda #>L2
0005 E701 sta 1,X
0007 A603 lda #<L2
0009 E702 sta 2,X
000B .dbline 30
000B ; Buff[22]=*p;
000B E601 lda 1,X
000D EE02 ldx 2,X
000F 87 psha
0010 8A pulh
0011 F6 lda ,x
0012 95 tsx
0013 B700 sta *__r1
0015 E60E lda 14,X
0017 AB16 add #22
0019 B700 sta *__r3
001B E60D lda 13,X
001D A900 adc #0
001F B700 sta *__r2
0021 B600 lda *__r1
0023 5500 ldhx *__r2
0025 F7 sta ,x
0026 95 tsx
0027 .dbline 31
0027 ; Buff[23]=*(p+1);
0027 E602 lda 2,X
0029 AB01 add #1
002B B700 sta *__r1
002D E601 lda 1,X
002F A900 adc #0
0031 B700 sta *__r0
0033 5500 ldhx *__r0
0035 F6 lda ,x
0036 95 tsx
0037 B700 sta *__r1
0039 E60E lda 14,X
003B AB17 add #23
003D B700 sta *__r3
003F E60D lda 13,X
0041 A900 adc #0
0043 B700 sta *__r2
0045 B600 lda *__r1
0047 5500 ldhx *__r2
0049 F7 sta ,x
004A 95 tsx
004B .dbline 33
004B ; //1.3中间用1个空格分开左右的显示
004B ; Buff[24]=' ';
004B E60E lda 14,X
004D AB18 add #24
004F B700 sta *__r1
0051 E60D lda 13,X
0053 A900 adc #0
0055 B700 sta *__r0
0057 A620 lda #32
0059 5500 ldhx *__r0
005B F7 sta ,x
005C 95 tsx
005D .dbline 35
005D ; //1.4在第2行右对齐显示设定温度及其单位,也占用7字节
005D ; Show1Data(tmp2,2,1,Buff);
005D E60E lda 14,X
005F 87 psha
0060 E60D lda 13,X
0062 87 psha
0063 A601 lda #1
0065 87 psha
0066 A602 lda #2
0068 87 psha
0069 E608 lda 8,X
006B 87 psha
006C E607 lda 7,X
006E 87 psha
006F CD019F jsr _Show1Data
0072 A706 ais #6
0074 95 tsx
0075 .dbline 36
0075 ; Buff[30]=*p;
0075 E601 lda 1,X
0077 EE02 ldx 2,X
0079 87 psha
007A 8A pulh
007B F6 lda ,x
007C 95 tsx
007D B700 sta *__r1
007F E60E lda 14,X
0081 AB1E add #30
0083 B700 sta *__r3
0085 E60D lda 13,X
0087 A900 adc #0
0089 B700 sta *__r2
008B B600 lda *__r1
008D 5500 ldhx *__r2
008F F7 sta ,x
0090 95 tsx
0091 .dbline 37
0091 ; Buff[31]=*(p+1);
0091 E602 lda 2,X
0093 AB01 add #1
0095 B700 sta *__r1
0097 E601 lda 1,X
0099 A900 adc #0
009B B700 sta *__r0
009D 5500 ldhx *__r0
009F F6 lda ,x
00A0 95 tsx
00A1 B700 sta *__r1
00A3 E60E lda 14,X
00A5 AB1F add #31
00A7 B700 sta *__r3
00A9 E60D lda 13,X
00AB A900 adc #0
00AD B700 sta *__r2
00AF B600 lda *__r1
00B1 5500 ldhx *__r2
00B3 F7 sta ,x
00B4 95 tsx
00B5 .dbline 40
00B5 ;
00B5 ; //2 同样显示当前温度和设定温度
00B5 ; Buff[32]=' ';
00B5 E60E lda 14,X
00B7 AB20 add #32
00B9 B700 sta *__r1
00BB E60D lda 13,X
00BD A900 adc #0
00BF B700 sta *__r0
00C1 A620 lda #32
00C3 5500 ldhx *__r0
00C5 F7 sta ,x
00C6 95 tsx
00C7 .dbline 41
00C7 ; Show1Data(time1,3,0,Buff+1);
00C7 E60E lda 14,X
00C9 AB01 add #1
00CB B700 sta *__r1
00CD E60D lda 13,X
00CF A900 adc #0
00D1 B700 sta *__r0
00D3 B600 lda *__r1
00D5 87 psha
00D6 B600 lda *__r0
00D8 87 psha
00D9 4F clra
00DA 87 psha
00DB A603 lda #3
00DD 87 psha
00DE E60A lda 10,X
00E0 87 psha
00E1 E609 lda 9,X
00E3 87 psha
00E4 CD019F jsr _Show1Data
00E7 A706 ais #6
00E9 95 tsx
00EA .dbline 42
00EA ; p="分";
00EA A600 lda #>L3
00EC E701 sta 1,X
00EE A600 lda #<L3
00F0 E702 sta 2,X
00F2 .dbline 43
00F2 ; Buff[38]=*p;
00F2 E601 lda 1,X
00F4 EE02 ldx 2,X
00F6 87 psha
00F7 8A pulh
00F8 F6 lda ,x
00F9 95 tsx
00FA B700 sta *__r1
00FC E60E lda 14,X
00FE AB26 add #38
0100 B700 sta *__r3
0102 E60D lda 13,X
0104 A900 adc #0
0106 B700 sta *__r2
0108 B600 lda *__r1
010A 5500 ldhx *__r2
010C F7 sta ,x
010D 95 tsx
010E .dbline 44
010E ; Buff[39]=*(p+1);
010E E602 lda 2,X
0110 AB01 add #1
0112 B700 sta *__r1
0114 E601 lda 1,X
0116 A900 adc #0
0118 B700 sta *__r0
011A 5500 ldhx *__r0
011C F6 lda ,x
011D 95 tsx
011E B700 sta *__r1
0120 E60E lda 14,X
0122 AB27 add #39
0124 B700 sta *__r3
0126 E60D lda 13,X
0128 A900 adc #0
012A B700 sta *__r2
012C B600 lda *__r1
012E 5500 ldhx *__r2
0130 F7 sta ,x
0131 95 tsx
0132 .dbline 45
0132 ; Buff[40]=' ';
0132 E60E lda 14,X
0134 AB28 add #40
0136 B700 sta *__r1
0138 E60D lda 13,X
013A A900 adc #0
013C B700 sta *__r0
013E A620 lda #32
0140 5500 ldhx *__r0
0142 F7 sta ,x
0143 95 tsx
0144 .dbline 46
0144 ; Show1Data(time2,3,1,Buff);
0144 E60E lda 14,X
0146 87 psha
0147 E60D lda 13,X
0149 87 psha
014A A601 lda #1
014C 87 psha
014D A603 lda #3
014F 87 psha
0150 E60C lda 12,X
0152 87 psha
0153 E60B lda 11,X
0155 87 psha
0156 CD019F jsr _Show1Data
0159 A706 ais #6
015B 95 tsx
015C .dbline 47
015C ; Buff[46]=*p;
015C E601 lda 1,X
015E EE02 ldx 2,X
0160 87 psha
0161 8A pulh
0162 F6 lda ,x
0163 95 tsx
0164 B700 sta *__r1
0166 E60E lda 14,X
0168 AB2E add #46
016A B700 sta *__r3
016C E60D lda 13,X
016E A900 adc #0
0170 B700 sta *__r2
0172 B600 lda *__r1
0174 5500 ldhx *__r2
0176 F7 sta ,x
0177 95 tsx
0178 .dbline 48
0178 ; Buff[47]=*(p+1);
0178 E602 lda 2,X
017A AB01 add #1
017C B700 sta *__r1
017E E601 lda 1,X
0180 A900 adc #0
0182 B700 sta *__r0
0184 5500 ldhx *__r0
0186 F6 lda ,x
0187 95 tsx
0188 B700 sta *__r1
018A E60E lda 14,X
018C AB2F add #47
018E B700 sta *__r3
0190 E60D lda 13,X
0192 A900 adc #0
0194 B700 sta *__r2
0196 B600 lda *__r1
0198 5500 ldhx *__r2
019A F7 sta ,x
019B 95 tsx
019C .dbline -2
019C L1:
019C A703 ais #3
019E .dbline 0 ; func end
019E 81 rts
019F .dbsym l i 0 c
019F .dbsym l p 1 pc
019F .dbsym l Buff 13 pc
019F .dbsym l time2 11 i
019F .dbsym l time1 9 i
019F .dbsym l tmp2 7 i
019F .dbsym l tmp1 5 i
019F .dbend
019F .dbfunc e Show1Data _Show1Data fV
019F ; j -> 0,X
019F ; p -> 1,X
019F ; data -> 3,X
019F ; line -> 6,X
019F ; redata -> 7,X
019F ; i -> 12,X
019F ; Buff -> 19,X
019F ; lrflag -> 18,X
019F ; showline -> 17,X
019F ; showdata -> 15,X
019F _Show1Data::
019F .dbline -1
019F A7F3 ais #-13
01A1 95 tsx
01A2 .dbline 74
01A2 ; /*
01A2 ; //3 在第4行显示“青星科技有限公司”
01A2 ; p="青星科技有限公司";
01A2 ; for(i=48;i<65;i++)
01A2 ; {
01A2 ; Buff[i]=*p;
01A2 ; p++;
01A2 ; }*/
01A2 ; }
01A2 ;
01A2 ;
01A2 ;
01A2 ; //Show1Data:LCD单个数据显示子函数------------------------------------------*
01A2 ; //功 能:将需要显示的showdata按LCD显示位置放入一个64字节的缓冲区 *
01A2 ; // 在LCD第showline行左对齐或右对齐显示1个整型数据showdata *
01A2 ; //参 数: *
01A2 ; // showdata:需要显示的1个整型数据 *
01A2 ; // showline:数据显示在LCD上的行数 *
01A2 ; // lrflag:左对齐或右对齐的标志 *
01A2 ; // Buff:存放显示64字节数据的缓冲区 *
01A2 ; //返 回:将数据放入内存Buff[(showline-1)*16]开始连续的5个地址内 *
01A2 ; // 或将数据放入内存Buff[(showline-1)*16+9]开始连续的5个地址内 *
01A2 ; //调 用:NumFormatChange *
01A2 ; //-------------------------------------------------------------------------*
01A2 ; void Show1Data(INT16U showdata,INT8U showline,INT8U lrflag,INT8U *Buff)
01A2 ; {
01A2 .dbline 82
01A2 ; INT8U *p;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -