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

📄 main.lis

📁 一款挂面机的自动化控制源程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -