📄 main.lis
字号:
00F4 L40:
00F4 .dbline 80
00F4 ; float DW_juli; //单位距离
00F4 84EA ldi R24,164
00F6 86BF out 0x36,R24
00F8 .dbline 81
00F8 L42:
00F8 .dbline 81
00F8 L43:
00F8 .dbline 81
00F8 ; float P_speed; //皮带速度
00F8 26B6 in R2,0x36
00FA 27FE sbrs R2,7
00FC FDCF rjmp L42
00FE .dbline 81
00FE .dbline 81
00FE .dbline 82
00FE ; float juli; //切刀到杆切点的距离
00FE 81B1 in R24,0x1
0100 887F andi R24,248
0102 8031 cpi R24,16
0104 21F0 breq L45
0106 .dbline 82
0106 .dbline 82
0106 84E9 ldi R24,148
0108 86BF out 0x36,R24
010A .dbline 82
010A 0027 clr R16
010C 3CC0 xjmp L26
010E L45:
010E .dbline 83
010E ; unsigned char time0_chi; //计时器0的次数(256的倍数)
010E .dbline 83
010E 802F mov R24,R16
0110 8F5F subi R24,255 ; addi 1
0112 83B9 out 0x3,R24
0114 .dbline 83
0114 84E8 ldi R24,132
0116 86BF out 0x36,R24
0118 .dbline 83
0118 .dbline 83
0118 .dbline 84
0118 L47:
0118 .dbline 84
0118 L48:
0118 .dbline 84
0118 ; unsigned char time0_yu; //计时器0的余数(整除256后所得的余数)
0118 26B6 in R2,0x36
011A 27FE sbrs R2,7
011C FDCF rjmp L47
011E .dbline 84
011E .dbline 84
011E .dbline 85
011E ; unsigned char time0_fen; //如果余数太小,则从次数中分出一次来,和余数加在一起分担剩余的时间
011E 81B1 in R24,0x1
0120 887F andi R24,248
0122 8034 cpi R24,64
0124 21F0 breq L50
0126 .dbline 85
0126 .dbline 85
0126 84E9 ldi R24,148
0128 86BF out 0x36,R24
012A .dbline 85
012A 0027 clr R16
012C 2CC0 xjmp L26
012E L50:
012E .dbline 86
012E ; unsigned char pidai_yunxing=0; //皮带运行:1表示正常运行,0表示停止运行
012E 6627 clr R22
0130 13C0 xjmp L55
0132 L52:
0132 .dbline 87
0132 ; float set_speed; //设定的转速******
0132 .dbline 87
0132 84EC ldi R24,196
0134 86BF out 0x36,R24
0136 .dbline 88
0136 L56:
0136 .dbline 88
0136 L57:
0136 .dbline 88
0136 ; unsigned char dj_jibie=0; //电磁调速电动机速度增减的级别
0136 26B6 in R2,0x36
0138 27FE sbrs R2,7
013A FDCF rjmp L56
013C .dbline 88
013C .dbline 88
013C .dbline 89
013C 81B1 in R24,0x1
013E 887F andi R24,248
0140 8035 cpi R24,80
0142 21F0 breq L59
0144 .dbline 89
0144 .dbline 89
0144 84E9 ldi R24,148
0146 86BF out 0x36,R24
0148 .dbline 89
0148 0027 clr R16
014A 1DC0 xjmp L26
014C L59:
014C .dbline 89
014C .dbline 90
014C 23B0 in R2,0x3
014E FA01 movw R30,R20
0150 2082 std z+0,R2
0152 .dbline 91
0152 4F5F subi R20,255 ; offset = 1
0154 5F4F sbci R21,255
0156 .dbline 92
0156 L53:
0156 .dbline 86
0156 6395 inc R22
0158 L55:
0158 .dbline 86
0158 8A2D mov R24,R10
015A 8150 subi R24,1
015C 6817 cp R22,R24
015E 48F3 brlo L52
0160 .dbline 93
0160 ; unsigned char dj_fangxi=0; //电磁调速电动机调速的方向
0160 ; unsigned char on_scr=0; //可控硅导通标志
0160 ; unsigned int pre_jsq=2000; //上一次可控硅触发计时
0160 ; unsigned char key=0; //按键的键值
0160 ; unsigned char on_key=0; //有键按下的标志
0160 84E8 ldi R24,132
0162 86BF out 0x36,R24
0164 .dbline 94
0164 L61:
0164 .dbline 94
0164 L62:
0164 .dbline 94
0164 ; unsigned char key_num=0; //计数,每计50查一次按键
0164 26B6 in R2,0x36
0166 27FE sbrs R2,7
0168 FDCF rjmp L61
016A .dbline 94
016A .dbline 94
016A .dbline 95
016A ; unsigned char next_gan=0; //过下一杆标志
016A 81B1 in R24,0x1
016C 887F andi R24,248
016E 8835 cpi R24,88
0170 21F0 breq L64
0172 .dbline 95
0172 .dbline 95
0172 84E9 ldi R24,148
0174 86BF out 0x36,R24
0176 .dbline 95
0176 0027 clr R16
0178 06C0 xjmp L26
017A L64:
017A .dbline 96
017A ; unsigned char guogan=0; //开始正式过杆的标志
017A 23B0 in R2,0x3
017C FA01 movw R30,R20
017E 2082 std z+0,R2
0180 .dbline 97
0180 ; float dw_speed=0.00000025; //一个时间单位所走的毫米数*******
0180 84E9 ldi R24,148
0182 86BF out 0x36,R24
0184 .dbline 99
0184 ; float ganwei; //杆位:挂面杆相对于切点的位置
0184 ; float next_ganwei; //下一杆的杆位
0184 01E0 ldi R16,1
0186 .dbline -2
0186 L26:
0186 0E940000 xcall pop_gset3
018A .dbline 0 ; func end
018A 0895 ret
018C .dbsym r i 22 c
018C .dbsym r no 10 c
018C .dbsym r s 20 pc
018C .dbsym r suba 18 c
018C .dbsym r sla 16 c
018C .dbend
018C .dbfunc e ZLG7290_SendData _ZLG7290_SendData fc
018C ; Data -> y+5
018C ; SubAdd -> R20
.even
018C _ZLG7290_SendData::
018C 3A93 st -y,r19
018E 2A93 st -y,r18
0190 0E940000 xcall push_gset1
0194 402F mov R20,R16
0196 2397 sbiw R28,3
0198 .dbline -1
0198 .dbline 102
0198 ; float juli_jcd; //检测点到切点的距离*******
0198 ; float ganju; //两根挂面杆的距离*******
0198 ; float longth_guamian; //切好的挂面的长度*******
0198 .dbline 103
0198 ; float longth_zongmian; //一杆上挂面的总长度*******
0198 87E1 ldi R24,23
019A 8417 cp R24,R20
019C 10F4 brsh L67
019E .dbline 104
019E ; unsigned char jidao; //一杆面共切几刀
019E 0027 clr R16
01A0 0AC0 xjmp L66
01A2 L67:
01A2 .dbline 105
01A2 ; unsigned char first_gan=1; //第一杆标志
01A2 81E0 ldi R24,1
01A4 8A83 std y+2,R24
01A6 CE01 movw R24,R28
01A8 0596 adiw R24,5
01AA 9983 std y+1,R25
01AC 8883 std y+0,R24
01AE 242F mov R18,R20
01B0 00E7 ldi R16,112
01B2 26DF xcall _ISendStr
01B4 .dbline 107
01B4 ; unsigned char qidong=0; //步进电机是否起动
01B4 ; unsigned char jileigan=0; //累积的杆数
01B4 01E0 ldi R16,1
01B6 .dbline -2
01B6 L66:
01B6 2396 adiw R28,3
01B8 0E940000 xcall pop_gset1
01BC 2296 adiw R28,2
01BE .dbline 0 ; func end
01BE 0895 ret
01C0 .dbsym l Data 5 c
01C0 .dbsym r SubAdd 20 c
01C0 .dbend
01C0 .dbfunc e ZLG7290_SendCmd _ZLG7290_SendCmd fc
01C0 ; Data -> y+3
01C0 ; Data2 -> R20
01C0 ; Data1 -> R22
.even
01C0 _ZLG7290_SendCmd::
01C0 0E940000 xcall push_gset2
01C4 422F mov R20,R18
01C6 602F mov R22,R16
01C8 2597 sbiw R28,5
01CA .dbline -1
01CA .dbline 111
01CA ; unsigned char max_ganshu=10; //积累杆数的上限
01CA ; unsigned char caoshu=0; //高速标志
01CA ; float current_speed; //当前速度
01CA ; float caogan_speed; //高速时的速度
01CA .dbline 113
01CA ; unsigned char menu_jb=0; //菜单级别
01CA ; unsigned char menu_gn=0; //菜单功能码
01CA 6B83 std y+3,R22
01CC .dbline 114
01CC ; char *string1;
01CC 4C83 std y+4,R20
01CE .dbline 115
01CE ; char string2[]=" PASS";
01CE 82E0 ldi R24,2
01D0 8A83 std y+2,R24
01D2 CE01 movw R24,R28
01D4 0396 adiw R24,3
01D6 9983 std y+1,R25
01D8 8883 std y+0,R24
01DA 27E0 ldi R18,7
01DC 00E7 ldi R16,112
01DE 10DF xcall _ISendStr
01E0 .dbline 117
01E0 ; char tmp_string[9]; //输入参数时,显示的数字
01E0 ; unsigned char cs_num=0; //当前参数的位数
01E0 01E0 ldi R16,1
01E2 .dbline -2
01E2 L69:
01E2 2596 adiw R28,5
01E4 0E940000 xcall pop_gset2
01E8 .dbline 0 ; func end
01E8 0895 ret
01EA .dbsym l Data 3 A[2:2]c
01EA .dbsym r Data2 20 c
01EA .dbsym r Data1 22 c
01EA .dbend
01EA .dbfunc e ZLG7290_SendBuf _ZLG7290_SendBuf fV
01EA ; i -> R20
01EA ; num -> R22
01EA ; display_buf -> R10,R11
.even
01EA _ZLG7290_SendBuf::
01EA 0E940000 xcall push_gset3
01EE 622F mov R22,R18
01F0 5801 movw R10,R16
01F2 .dbline -1
01F2 .dbline 121
01F2 ; char *str_dis;
01F2 ;
01F2 ; ///////////////
01F2 ; void port_init(void)
01F2 .dbline 123
01F2 ; {
01F2 ; PORTA = 0x00;
01F2 4427 clr R20
01F4 09C0 xjmp L75
01F6 L72:
01F6 .dbline 124
01F6 .dbline 125
01F6 F501 movw R30,R10
01F8 2081 ldd R18,z+0
01FA 042F mov R16,R20
01FC 005A subi R16,160 ; addi 96
01FE E0DF xcall _ZLG7290_SendCmd
0200 .dbline 126
0200 C501 movw R24,R10
0202 0196 adiw R24,1
0204 5C01 movw R10,R24
0206 .dbline 127
0206 L73:
0206 .dbline 123
0206 4395 inc R20
0208 L75:
0208 .dbline 123
0208 4617 cp R20,R22
020A A8F3 brlo L72
020C .dbline -2
020C L71:
020C 0E940000 xcall pop_gset3
0210 .dbline 0 ; func end
0210 0895 ret
0212 .dbsym r i 20 c
0212 .dbsym r num 22 c
0212 .dbsym r display_buf 10 pc
0212 .dbend
0212 .dbfunc e ZLG7290_GetKey _ZLG7290_GetKey fc
0212 ; rece -> y+3
.even
0212 _ZLG7290_GetKey::
0212 2497 sbiw R28,4
0214 .dbline -1
0214 .dbline 131
0214 ; DDRA = 0x00;
0214 ; PORTB = 0xF0;
0214 ; DDRB = 0xF0;
0214 ; PORTC = 0x00; //m103 output only
0214 ; DDRC = 0xC0;
0214 ; PORTD = 0x00;
0214 ; DDRD = 0x00;
0214 ; }
0214 .dbline 131
0214 2224 clr R2
0216 2B82 std y+3,R2
0218 .dbline 132
0218 ;
0218 81E0 ldi R24,1
021A 8A83 std y+2,R24
021C CE01 movw R24,R28
021E 0396 adiw R24,3
0220 9983 std y+1,R25
0222 8883 std y+0,R24
0224 21E0 ldi R18,1
0226 00E7 ldi R16,112
0228 37DF xcall _IRcvStr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -