⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icc_gmj.lst

📁 一款挂面机的自动化控制源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0257 940E0FA7  CALL	pop_gset2
    0259 9508      RET
_ZLG7290_SendBuf:
  i                    --> R20
  num                  --> R22
  display_buf          --> R10
    025A 940E0FB7  CALL	push_gset3
    025C 2F62      MOV	R22,R18
    025D 0158      MOVW	R10,R16
(0118) }
(0119) //向zlg7290的显示缓冲区发送数据
(0120) void ZLG7290_SendBuf(unsigned char *display_buf,unsigned char num)
(0121) {
(0122)  	unsigned char i;
(0123) 	for(i=0;i<num;i++)
    025E 2744      CLR	R20
    025F C009      RJMP	0x0269
(0124) 	{	
(0125) 		ZLG7290_SendCmd(0x60+i,*display_buf);
    0260 01F5      MOVW	R30,R10
    0261 8120      LDD	R18,Z+0
    0262 2F04      MOV	R16,R20
    0263 5A00      SUBI	R16,0xA0
    0264 DFE0      RCALL	_ZLG7290_SendCmd
(0126) 		display_buf++;
    0265 01C5      MOVW	R24,R10
    0266 9601      ADIW	R24,1
    0267 015C      MOVW	R10,R24
    0268 9543      INC	R20
    0269 1746      CP	R20,R22
    026A F3A8      BCS	0x0260
    026B 940E0FAA  CALL	pop_gset3
    026D 9508      RET
_ZLG7290_GetKey:
  rece                 --> Y+3
    026E 9724      SBIW	R28,4
(0127) 	}
(0128) } 
(0129) //zlg7290的键值
(0130) unsigned char ZLG7290_GetKey()
(0131) {   unsigned char rece=0;
    026F 2422      CLR	R2
    0270 822B      STD	Y+3,R2
(0132)     if( IRcvStr(zlg7290,1,&rece,1)==0 )  return (0);
    0271 E081      LDI	R24,1
    0272 838A      STD	Y+2,R24
    0273 01CE      MOVW	R24,R28
    0274 9603      ADIW	R24,3
    0275 8399      STD	Y+1,R25
    0276 8388      STD	Y+0,R24
    0277 E021      LDI	R18,1
    0278 E700      LDI	R16,0x70
    0279 DF37      RCALL	_IRcvStr
    027A 2300      TST	R16
    027B F411      BNE	0x027E
    027C 2700      CLR	R16
    027D C001      RJMP	0x027F
(0133)        //	delay_ms(10);
(0134) 	return rece;
    027E 810B      LDD	R16,Y+3
    027F 9624      ADIW	R28,4
    0280 9508      RET
_disstring:
  at                   --> R20
  num                  --> Y+0
  chr2                 --> R12
  i                    --> R22
  chr                  --> R14
  chr1                 --> R10
  tmp                  --> Y+11
    0281 931A      ST	R17,-Y
    0282 930A      ST	R16,-Y
    0283 940E0FB3  CALL	push_gset5
    0285 9721      SBIW	R28,1
(0135) } 
(0136) //向ZLG7290发送字符串
(0137) void disstring(char *tmp)
(0138) {
(0139) unsigned char num;
(0140) unsigned char i;  
(0141) unsigned char chr,chr1,chr2;
(0142) char *at;
(0143) num=strlen(tmp);
    0286 850B      LDD	R16,Y+11
    0287 851C      LDD	R17,Y+12
    0288 940E0ECF  CALL	_strlen
    028A 8308      STD	Y+0,R16
(0144) //at=strchr(tmp,46);
(0145) //if (at[0]==0) num=num-1;
(0146) //if (num>=8) num=8;
(0147) at=tmp;
    028B 854B      LDD	R20,Y+11
    028C 855C      LDD	R21,Y+12
(0148) if (num>8)
    028D E088      LDI	R24,0x8
    028E 2E00      MOV	R0,R16
    028F 1780      CP	R24,R16
    0290 F440      BCC	0x0299
(0149)    {
(0150)    if (*at==46) num=9;
    0291 01FA      MOVW	R30,R20
    0292 8180      LDD	R24,Z+0
    0293 328E      CPI	R24,0x2E
    0294 F411      BNE	0x0297
    0295 E089      LDI	R24,0x9
    0296 8388      STD	Y+0,R24
(0151)    at++;
    0297 5F4F      SUBI	R20,0xFF
    0298 4F5F      SBCI	R21,0xFF
(0152)    }
(0153) for (i=0;i<num;i++)
    0299 2766      CLR	R22
    029A C0DC      RJMP	0x0377
(0154)    {
(0155)    chr=0x68-i;
    029B E688      LDI	R24,0x68
    029C 2EE8      MOV	R14,R24
    029D 1AE6      SUB	R14,R22
(0156)    chr=*tmp;
    029E 85EB      LDD	R30,Y+11
    029F 85FC      LDD	R31,Y+12
    02A0 80E0      LDD	R14,Z+0
(0157)    switch (chr)
    02A1 2D4E      MOV	R20,R14
    02A2 2755      CLR	R21
    02A3 3642      CPI	R20,0x62
    02A4 E0E0      LDI	R30,0
    02A5 075E      CPC	R21,R30
    02A6 F409      BNE	0x02A8
    02A7 C079      RJMP	0x0321
    02A8 3643      CPI	R20,0x63
    02A9 E0E0      LDI	R30,0
    02AA 075E      CPC	R21,R30
    02AB F409      BNE	0x02AD
    02AC C0A7      RJMP	0x0354
    02AD 3644      CPI	R20,0x64
    02AE E0E0      LDI	R30,0
    02AF 075E      CPC	R21,R30
    02B0 F409      BNE	0x02B2
    02B1 C075      RJMP	0x0327
    02B2 3648      CPI	R20,0x68
    02B3 E0E0      LDI	R30,0
    02B4 075E      CPC	R21,R30
    02B5 F409      BNE	0x02B7
    02B6 C0A0      RJMP	0x0357
    02B7 3649      CPI	R20,0x69
    02B8 E0E0      LDI	R30,0
    02B9 075E      CPC	R21,R30
    02BA F409      BNE	0x02BC
    02BB C07A      RJMP	0x0336
    02BC E689      LDI	R24,0x69
    02BD E090      LDI	R25,0
    02BE 1784      CP	R24,R20
    02BF 0795      CPC	R25,R21
    02C0 F11C      BLT	0x02E4
    02C1 3240      CPI	R20,0x20
    02C2 E0E0      LDI	R30,0
    02C3 075E      CPC	R21,R30
    02C4 F409      BNE	0x02C6
    02C5 C055      RJMP	0x031B
    02C6 3240      CPI	R20,0x20
    02C7 E0E0      LDI	R30,0
    02C8 075E      CPC	R21,R30
    02C9 F40C      BGE	0x02CB
    02CA C095      RJMP	0x0360
    02CB 324E      CPI	R20,0x2E
    02CC E0E0      LDI	R30,0
    02CD 075E      CPC	R21,R30
    02CE F40C      BGE	0x02D0
    02CF C090      RJMP	0x0360
    02D0 E585      LDI	R24,0x55
    02D1 E090      LDI	R25,0
    02D2 1784      CP	R24,R20
    02D3 0795      CPC	R25,R21
    02D4 F40C      BGE	0x02D6
    02D5 C08A      RJMP	0x0360
    02D6 E002      LDI	R16,2
    02D7 E010      LDI	R17,0
    02D8 019A      MOVW	R18,R20
    02D9 940E0F97  CALL	empy16s
    02DB 01F8      MOVW	R30,R16
    02DC EF88      LDI	R24,0xF8
    02DD EF9F      LDI	R25,0xFF
    02DE 0FE8      ADD	R30,R24
    02DF 1FF9      ADC	R31,R25
    02E0 9005      LPM	R0,Z+
    02E1 9014      LPM	R1,0(Z)
    02E2 01F0      MOVW	R30,R0
    02E3 9409      IJMP
    02E4 3741      CPI	R20,0x71
    02E5 E0E0      LDI	R30,0
    02E6 075E      CPC	R21,R30
    02E7 F409      BNE	0x02E9
    02E8 C05C      RJMP	0x0345
    02E9 3742      CPI	R20,0x72
    02EA E0E0      LDI	R30,0
    02EB 075E      CPC	R21,R30
    02EC F409      BNE	0x02EE
    02ED C05A      RJMP	0x0348
    02EE 3744      CPI	R20,0x74
    02EF E0E0      LDI	R30,0
    02F0 075E      CPC	R21,R30
    02F1 F409      BNE	0x02F3
    02F2 C058      RJMP	0x034B
    02F3 3741      CPI	R20,0x71
    02F4 E0E0      LDI	R30,0
    02F5 075E      CPC	R21,R30
    02F6 F40C      BGE	0x02F8
    02F7 C068      RJMP	0x0360
    02F8 3749      CPI	R20,0x79
    02F9 E0E0      LDI	R30,0
    02FA 075E      CPC	R21,R30
    02FB F409      BNE	0x02FD
    02FC C054      RJMP	0x0351
    02FD C062      RJMP	0x0360
(0158)       {
(0159)       case '0' : chr1=0; break;
    02FE 24AA      CLR	R10
    02FF C062      RJMP	0x0362
(0160)       case '1' : chr1=1; break;
    0300 24AA      CLR	R10
    0301 94A3      INC	R10
    0302 C05F      RJMP	0x0362
(0161)       case '2' : chr1=2; break;
    0303 E082      LDI	R24,2
    0304 2EA8      MOV	R10,R24
    0305 C05C      RJMP	0x0362
(0162)       case '3' : chr1=3; break;
    0306 E083      LDI	R24,3
    0307 2EA8      MOV	R10,R24
    0308 C059      RJMP	0x0362
(0163)       case '4' : chr1=4; break;
    0309 E084      LDI	R24,4
    030A 2EA8      MOV	R10,R24
    030B C056      RJMP	0x0362
(0164)       case '5' : chr1=5; break;
    030C E085      LDI	R24,5
    030D 2EA8      MOV	R10,R24
    030E C053      RJMP	0x0362
(0165)       case '6' : chr1=6; break;
    030F E086      LDI	R24,6
    0310 2EA8      MOV	R10,R24
    0311 C050      RJMP	0x0362
(0166)       case '7' : chr1=7; break;
    0312 E087      LDI	R24,7
    0313 2EA8      MOV	R10,R24
    0314 C04D      RJMP	0x0362
(0167)       case '8' : chr1=8; break;
    0315 E088      LDI	R24,0x8
    0316 2EA8      MOV	R10,R24
    0317 C04A      RJMP	0x0362
(0168)       case '9' : chr1=9; break; 
    0318 E089      LDI	R24,0x9
    0319 2EA8      MOV	R10,R24
    031A C047      RJMP	0x0362
(0169)       case ' ' : chr1=31; break;
    031B E18F      LDI	R24,0x1F
    031C 2EA8      MOV	R10,R24
    031D C044      RJMP	0x0362
(0170)       case 'A' : chr1=10; break;
    031E E08A      LDI	R24,0xA
    031F 2EA8      MOV	R10,R24
    0320 C041      RJMP	0x0362
(0171)       case 'b' : chr1=11; break;
    0321 E08B      LDI	R24,0xB
    0322 2EA8      MOV	R10,R24
    0323 C03E      RJMP	0x0362
(0172)       case 'C' : chr1=12; break;
    0324 E08C      LDI	R24,0xC
    0325 2EA8      MOV	R10,R24
    0326 C03B      RJMP	0x0362
(0173)       case 'd' : chr1=13; break;
    0327 E08D      LDI	R24,0xD
    0328 2EA8      MOV	R10,R24
    0329 C038      RJMP	0x0362
(0174)       case 'E' : chr1=14; break;
    032A E08E      LDI	R24,0xE
    032B 2EA8      MOV	R10,R24
    032C C035      RJMP	0x0362
(0175)       case 'F' : chr1=15; break;
    032D E08F      LDI	R24,0xF
    032E 2EA8      MOV	R10,R24
    032F C032      RJMP	0x0362
(0176)       case 'G' : chr1=16; break;
    0330 E180      LDI	R24,0x10
    0331 2EA8      MOV	R10,R24
    0332 C02F      RJMP	0x0362
(0177)       case 'H' : chr1=17; break;
    0333 E181      LDI	R24,0x11
    0334 2EA8      MOV	R10,R24
    0335 C02C      RJMP	0x0362
(0178)       case 'i' : chr1=18; break;
    0336 E182      LDI	R24,0x12
    0337 2EA8      MOV	R10,R24
    0338 C029      RJMP	0x0362
(0179)       case 'J' : chr1=19; break;
    0339 E183      LDI	R24,0x13
    033A 2EA8      MOV	R10,R24
    033B C026      RJMP	0x0362
(0180)       case 'L' : chr1=20; break;
    033C E184      LDI	R24,0x14
    033D 2EA8      MOV	R10,R24
    033E C023      RJMP	0x0362
(0181)       case 'O' : chr1=21; break;
    033F E185      LDI	R24,0x15
    0340 2EA8      MOV	R10,R24
    0341 C020      RJMP	0x0362
(0182)       case 'P' : chr1=22; break;
    0342 E186      LDI	R24,0x16
    0343 2EA8      MOV	R10,R24
    0344 C01D      RJMP	0x0362
(0183)       case 'q' : chr1=23; break;
    0345 E187      LDI	R24,0x17
    0346 2EA8      MOV	R10,R24
    0347 C01A      RJMP	0x0362
(0184)       case 'r' : chr1=24; break;
    0348 E188      LDI	R24,0x18
    0349 2EA8      MOV	R10,R24
    034A C017      RJMP	0x0362
(0185)       case 't' : chr1=25; break;
    034B E189      LDI	R24,0x19
    034C 2EA8      MOV	R10,R24
    034D C014      RJMP	0x0362
(0186)       case 'U' : chr1=26; break;
    034E E18A      LDI	R24,0x1A
    034F 2EA8      MOV	R10,R24
    0350 C011      RJMP	0x0362
(0187)       case 'y' : chr1=27; break;
    0351 E18B      LDI	R24,0x1B
    0352 2EA8      MOV	R10,R24
    0353 C00E      RJMP	0x0362
(0188)       case 'c' : chr1=28; break;
    0354 E18C      LDI	R24,0x1C
    0355 2EA8      MOV	R10,R24
    0356 C00B      RJMP	0x0362
(0189)       case 'h' : chr1=29; break;
    0357 E18D      LDI	R24,0x1D
    0358 2EA8      MOV	R10,R24
    0359 C008      RJMP	0x0362
(0190)       case 'T' : chr1=30; break;
    035A E18E      LDI	R24,0x1E
    035B 2EA8      MOV	R10,R24
    035C C005      RJMP	0x0362
(0191)       case '.' : chr1=128; break;
    035D E880      LDI	R24,0x80
    035E 2EA8      MOV	R10,R24
    035F C002      RJMP	0x0362
(0192)       default  : chr1=31; 
    0360 E18F      LDI	R24,0x1F
    0361 2EA8      MOV	R10,R24
(0193)       }
(0194)     
(0195)    tmp++; 
    0362 858B      LDD	R24,Y+11
    0363 859C      LDD	R25,Y+12
    0364 9601      ADIW	R24,1
    0365 879C      STD	Y+12,R25
    0366 878B      STD	Y+11,R24
(0196)    chr2=*tmp;
    0367 01FC      MOVW	R30,R24
    0368 80C0      LDD	R12,Z+0
(0197)    if (chr2=='.')  
    0369 2D8C      MOV	R24,R12
    036A 328E      CPI	R24,0x2E
    036B F439      BNE	0x0373
(0198)       {
(0199)       chr1=chr1+128;
    036C 2D8A      MOV	R24,R10
    036D 5880      SUBI	R24,0x80
    036E 2EA8      MOV	R10,R24
(0200)       tmp++;
    036F 01CF      MOVW	R24,R30
    0370 9601      ADIW	R24,1
    0371 879C      STD	Y+12,R25
    0372 878B      STD	Y+11,R24
(0201)       }
(0202)    ZLG7290_SendCmd(chr,chr1);
    0373 2D2A      MOV	R18,R10
    0374 2D0E      MOV	R16,R14
    0375 DECF      RCALL	_ZLG7290_SendCmd
    0376 9563      INC	R22
    0377 8008      LDD	R0,Y+0
    0378 1560      CP	R22,R0
    0379 F408      BCC	0x037B
    037A CF20      RJMP	0x029B
    037B 9621      ADIW	R28,1
    037C 940E0FB0  CALL	pop_gset5
    037E 9622      ADIW	R28,2
    037F 9508      RET
FILE: D:\gmj_1\main.c
(0001) //ICC-AVR application builder : 2004-8-22 19:49:01
(0002) // Target : M16
(0003) // Crystal: 16.000Mhz
(0004) //本程序所用的长度单位为毫米,时间单位为8个时钟周期(千万分之五秒)
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007) #include <h_iic.c>
(0008) #include <eeprom.h>
(0009) ///////////////  键盘定义
(0010) #define START_K 1    
(0011) //启动
(0012) #define ENTER 1
(0013) //确定
(0014) #define STOP 5    
(0015) //停止  
(0016) #define RETURN 5
(0017) //返回

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -