📄 12864-7920.lis
字号:
00B8 .dbline 83
00B8 ; s_ms(100);
00B8 04E6 ldi R16,100
00BA 10E0 ldi R17,0
00BC A1DF xcall _s_ms
00BE .dbline 84
00BE ; PORTA&=~EN; //EN=0
00BE DF98 cbi 0x1b,7
00C0 .dbline 85
00C0 ; s_ms(100);
00C0 04E6 ldi R16,100
00C2 10E0 ldi R17,0
00C4 9DDF xcall _s_ms
00C6 .dbline 86
00C6 ; if(temp>>7==0)
00C6 2A2C mov R2,R10
00C8 2694 lsr R2
00CA 2694 lsr R2
00CC 2694 lsr R2
00CE 2694 lsr R2
00D0 2694 lsr R2
00D2 2694 lsr R2
00D4 2694 lsr R2
00D6 09F4 brne L12
00D8 X1:
00D8 .dbline 87
00D8 ; flag = 0;
00D8 4427 clr R20
00DA L12:
00DA .dbline 88
00DA ; }
00DA L10:
00DA .dbline 69
00DA 4130 cpi R20,1
00DC A1F2 breq L9
00DE X2:
00DE .dbline -2
00DE L8:
00DE .dbline 0 ; func end
00DE 4991 ld R20,y+
00E0 A990 ld R10,y+
00E2 0895 ret
00E4 .dbsym r flag 20 c
00E4 .dbsym r temp 10 c
00E4 .dbend
00E4 .dbfunc e LCMInit _LCMInit fV
.even
00E4 _LCMInit::
00E4 .dbline -1
00E4 .dbline 93
00E4 ; }
00E4 ;
00E4 ; //LCM初始化
00E4 ; void LCMInit(void)
00E4 ; {
00E4 .dbline 94
00E4 ; WriteCommandLCM(0x38); //三次显示模式设置,不检测忙信号
00E4 08E3 ldi R16,56
00E6 B0DF xcall _WriteCommandLCM
00E8 .dbline 95
00E8 ; s_ms(1000);
00E8 08EE ldi R16,1000
00EA 13E0 ldi R17,3
00EC 89DF xcall _s_ms
00EE .dbline 96
00EE ; WriteCommandLCM(0x38);
00EE 08E3 ldi R16,56
00F0 ABDF xcall _WriteCommandLCM
00F2 .dbline 97
00F2 ; s_ms(1000);
00F2 08EE ldi R16,1000
00F4 13E0 ldi R17,3
00F6 84DF xcall _s_ms
00F8 .dbline 98
00F8 ; WriteCommandLCM(0x38);
00F8 08E3 ldi R16,56
00FA A6DF xcall _WriteCommandLCM
00FC .dbline 99
00FC ; s_ms(1000);
00FC 08EE ldi R16,1000
00FE 13E0 ldi R17,3
0100 7FDF xcall _s_ms
0102 .dbline 100
0102 ; WriteCommandLCM(0x38); //显示模式设置,开始要求每次检测忙信号
0102 08E3 ldi R16,56
0104 A1DF xcall _WriteCommandLCM
0106 .dbline 101
0106 ; WriteCommandLCM(0x08); //关闭显示
0106 08E0 ldi R16,8
0108 9FDF xcall _WriteCommandLCM
010A .dbline 102
010A ; WriteCommandLCM(0x01); //显示清屏
010A 01E0 ldi R16,1
010C 9DDF xcall _WriteCommandLCM
010E .dbline 103
010E ; WriteCommandLCM(0x06); //显示光标移动设置
010E 06E0 ldi R16,6
0110 9BDF xcall _WriteCommandLCM
0112 .dbline 104
0112 ; WriteCommandLCM(0x0C); //显示开及光标设置
0112 0CE0 ldi R16,12
0114 99DF xcall _WriteCommandLCM
0116 .dbline -2
0116 L14:
0116 .dbline 0 ; func end
0116 0895 ret
0118 .dbend
0118 .dbfunc e DisplayList _DisplayList fV
0118 ; p -> R14,R15
0118 ; length -> R14
0118 ; i -> R10
0118 ; DData -> R12,R13
0118 ; X -> R20
.even
0118 _DisplayList::
0118 0E940000 xcall push_xgset30FC
011C 6901 movw R12,R18
011E 402F mov R20,R16
0120 .dbline -1
0120 .dbline 116
0120 ; }
0120 ;
0120 ; //按指定位置显示一串字符
0120 ; //液晶显示:汉字为16*16,字母及数字为8*16,此次显示的文本
0120 ; // 从第一行第一列开始,依次向左,如果想在不同的
0120 ; // 位置显示,只需修改相应的行值即可。液晶显示
0120 ; // 完毕后,转入语音文本发送。
0120 ; //DisplsyList(X,DData)函数:X为0x80在第一行显示;X为0x90在
0120 ; // 第二行显示;X为0x88在第三行显示;X为0x98在
0120 ; // 第四行显示;DData为显示数组。
0120 ; void DisplayList(unsigned char X,char *DData)
0120 ; {
0120 .dbline 118
0120 ; unsigned char length;
0120 ; unsigned char i=0;
0120 AA24 clr R10
0122 .dbline 120
0122 ; char *p;
0122 ; p = DData;
0122 7601 movw R14,R12
0124 .dbline 121
0124 ; length = strlen(p);
0124 8701 movw R16,R14
0126 0E940000 xcall _strlen
012A E02E mov R14,R16
012C .dbline 122
012C ; WriteCommandLCM(0x08);
012C 08E0 ldi R16,8
012E 8CDF xcall _WriteCommandLCM
0130 .dbline 123
0130 ; WriteCommandLCM(X);
0130 042F mov R16,R20
0132 8ADF xcall _WriteCommandLCM
0134 .dbline 124
0134 ; WriteCommandLCM(0x06);
0134 06E0 ldi R16,6
0136 88DF xcall _WriteCommandLCM
0138 .dbline 125
0138 ; WriteCommandLCM(0x0C);
0138 0CE0 ldi R16,12
013A 86DF xcall _WriteCommandLCM
013C .dbline 126
013C ; WriteCommandLCM(X);
013C 042F mov R16,R20
013E 84DF xcall _WriteCommandLCM
0140 .dbline 127
0140 ; for(i=0;i<length;i++)
0140 0EC0 xjmp L19
0142 L16:
0142 .dbline 128
0142 ; {
0142 .dbline 129
0142 ; WriteDataLCM(DData[i]);
0142 EA2D mov R30,R10
0144 FF27 clr R31
0146 EC0D add R30,R12
0148 FD1D adc R31,R13
014A 0081 ldd R16,z+0
014C 62DF xcall _WriteDataLCM
014E .dbline 130
014E ; i++;
014E A394 inc R10
0150 .dbline 131
0150 ; WriteDataLCM(DData[i]);
0150 EA2D mov R30,R10
0152 FF27 clr R31
0154 EC0D add R30,R12
0156 FD1D adc R31,R13
0158 0081 ldd R16,z+0
015A 5BDF xcall _WriteDataLCM
015C .dbline 132
015C ; }
015C L17:
015C .dbline 127
015C A394 inc R10
015E L19:
015E .dbline 127
015E AE14 cp R10,R14
0160 80F3 brlo L16
0162 X3:
0162 .dbline -2
0162 L15:
0162 .dbline 0 ; func end
0162 0C940000 xjmp pop_xgset30FC
0166 .dbsym r p 14 pc
0166 .dbsym r length 14 c
0166 .dbsym r i 10 c
0166 .dbsym r DData 12 pc
0166 .dbsym r X 20 c
0166 .dbend
0166 .dbfunc e main _main fV
.even
0166 _main::
0166 .dbline -1
0166 .dbline 137
0166 ; }
0166 ;
0166 ; //主函数
0166 ; void main(void)
0166 ; {
0166 .dbline 139
0166 ; //端口初始化
0166 ; DDRA=0xff;
0166 8FEF ldi R24,255
0168 8ABB out 0x1a,R24
016A .dbline 140
016A ; PORTA=0xff;
016A 8BBB out 0x1b,R24
016C .dbline 141
016C ; DDRB=0xff;
016C 87BB out 0x17,R24
016E .dbline 142
016E ; PORTB=0xff;
016E 88BB out 0x18,R24
0170 .dbline 143
0170 ; DDRD=0xff;
0170 81BB out 0x11,R24
0172 .dbline 144
0172 ; PORTD=0x00;
0172 2224 clr R2
0174 22BA out 0x12,R2
0176 .dbline 146
0176 ;
0176 ; s_ms(200);
0176 08EC ldi R16,200
0178 10E0 ldi R17,0
017A 42DF xcall _s_ms
017C .dbline 147
017C ; s_ms(200);
017C 08EC ldi R16,200
017E 10E0 ldi R17,0
0180 3FDF xcall _s_ms
0182 .dbline 148
0182 ; LCMInit(); //LCM初始化 //液晶初始化
0182 B0DF xcall _LCMInit
0184 .dbline 150
0184 ;
0184 ; DisplayList(0x80,text_1); //显示第一行
0184 20E0 ldi R18,<_text_1
0186 30E0 ldi R19,>_text_1
0188 00E8 ldi R16,128
018A C6DF xcall _DisplayList
018C .dbline 151
018C ; DisplayList(0x90,text_2); //显示第二行
018C 20E0 ldi R18,<_text_2
018E 30E0 ldi R19,>_text_2
0190 00E9 ldi R16,144
0192 C2DF xcall _DisplayList
0194 .dbline 152
0194 ; DisplayList(0x88,text_3); //显示第三行
0194 20E0 ldi R18,<_text_3
0196 30E0 ldi R19,>_text_3
0198 08E8 ldi R16,136
019A BEDF xcall _DisplayList
019C .dbline 153
019C ; DisplayList(0x98,text_4); //显示第四行
019C 20E0 ldi R18,<_text_4
019E 30E0 ldi R19,>_text_4
01A0 08E9 ldi R16,152
01A2 BADF xcall _DisplayList
01A4 L21:
01A4 .dbline 154
01A4 ; while(1);
01A4 L22:
01A4 .dbline 154
01A4 FFCF xjmp L21
01A6 X4:
01A6 .dbline -2
01A6 L20:
01A6 .dbline 0 ; func end
01A6 0895 ret
01A8 .dbend
01A8 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -