登录
首页 单片机论坛
回帖 发帖
正文

主题:自动长度控制器源程序[原创]

点击:1952 回复:2

发一个自动长度控制器源程序.可以作为技术参考,有些方面稍作改动,望谅解.
程序稍加修改即可使用在各种需要长度控制的场合.比如带.管.布类切断,印刷,标记.
自动长度控制切断器方案:测量为红外线输入,经按装在牵引轮上的分度轮(上边按计算好的角度打与直径相吻合的若干个孔)输入红外信号,测量出挤出机挤出的长度,后于设定的值相比较.发出切断信号.每切断一次产量加一.并在液晶屏显示.
单片机控制 中文液晶显示,显示内容在
1:设定值XXXX 实际值XXXX 2设定值XXXX
归零? 3产量XXXX 归零? 4参数选择 XXXX
确定? 这四个显示内容中切换.
      GEE  EQU 40H
      SHI  EQU 41H
      BEI  EQU 42H
      QIAN EQU 43H    
      GDM  EQU 44H
      SDM  EQU 45H
      BDM  EQU 46H
      QDM  EQU 47H
      SDG  EQU 48H
      SDS  EQU 49H
      SDB  EQU 4AH
      SDQ  EQU 4BH
      DMG  EQU 4CH
      DMS  EQU 4DH
      DMB  EQU 4EH
      DMQ  EQU 4FH
      CLG  EQU 50H
      CLS  EQU 51H
      CLB  EQU 52H
      CLQ  EQU 53H
      CGDM EQU 54H
      CSDM EQU 55H
      CBDM EQU 56H
      CQDM EQU 57H
      BZW  EQU 58H
      BZMC EQU 59H
      XZG  EQU 5AH
      XZS  EQU 5BH
      XZB  EQU 5CH
      XZQ  EQU 5DH
      XDMG EQU 5EH
      XDMS EQU 5FH
      XDMB EQU 60H
      XDMQ EQU 61H
      XZBZ EQU 62H  
      QR   BIT P3.7
      JAO  BIT P3.6
      JIE  BIT P3.3
      GN   BIT P3.2
      RS   BIT P1.7
      RW   BIT P1.6
      E    BIT P1.5
      SDA  BIT P1.3
      SCL  BIT P1.2
      COM  EQU 20H
      DAT  EQU 21H
      PSB  EQU P0.7
      RST  EQU P0.6  
      JSS  BIT P0.3
      QL   BIT P0.5
      ORG  0000H
      LJMP MAIN
      ORG  0030H
MAIN:  SETB JAO
      SETB JIE
      SETB GN
      SETB QR
      SETB JSS
      SETB P3.4
      CLR P3.5
      CLR P3.1
      SETB P3.0
      CLR  P1.0
      LCALL SDG0   ;调用设定归零子程序
      LCALL SJG0   ;调用实际归零子程序  
      LCALL CLG0   ;调用产量归零子程序
      MOV A,#01H
      LCALL RD24
      MOV SDG,A
      MOV A,#02H
      LCALL RD24
      MOV SDS,A
      MOV A,#03H
      LCALL RD24
      MOV SDB,A
      MOV A,#04H
      LCALL RD24
      MOV SDQ,A
      LCALL XSCL     ;调用显示处理子程序
      MOV XZBZ,#00H
LOP:   CLR  PSB
      MOV  SP,#70H
      LCALL D1
      SETB  PSB
      LCALL D1
      MOV  COM,#30H     ;显示功能设定
      LCALL WRI
      LCALL D1
      MOV  COM,#0DH
      LCALL WRI
      LCALL D1
      LCALL CLRYJ
XSA:   MOV R1,#0E8H  
      MOV COM,#80H  
      LCALL WRI
      MOV DAT,#0C9H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD        ;She设
      MOV R1,#0A8H
      MOV COM,#81H
      LCALL WRI
      MOV  DAT,#0B6H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD        ;din定
      MOV R1,#0B5H
      MOV  COM,#82H
      LCALL WRI
      MOV  DAT,#0D6H
      LCALL WRD
      MOV  DAT,R1
      LCALL WRD        ;zhi值  
      MOV     R1,#0B5H
      MOV     COM,#90H      
      ACALL   WRI
      MOV     DAT,#0CAH        
      ACALL   WRD        
      MOV     DAT,R1
      ACALL   WRD      ;Shi实
      MOV     R1,#0CAH
      MOV     COM,#91H
      ACALL   WRI
      MOV     DAT,#0BCH
      ACALL   WRD  
      MOV     DAT,R1  
      ACALL   WRD       ;ji际
      MOV     R1,#0B5H
      MOV     COM,#92H
      ACALL   WRI
      MOV     DAT,#0D6H
      ACALL   WRD
      MOV     DAT,R1
      ACALL   WRD     ;zhi 值  
      MOV     BZW,#01H ;设定标志位#01H
FHA:   LCALL   SDZXS   ;调用设定参数显示子程序
      LCALL   SJZXS   ;调用实际参数显示子程序
FHA1:  NOP
XSB:   JB GN,MCSRA ;功能键未按下跳转脉冲输入检测
      LCALL DD1      
      JB GN,MCSRA
      AJMP XSB1  ;跳转加减确认归零处理程序    
MCSRA: LJMP MCSR  ;脉冲输入检测
XSB1:  MOV BZW,#02H   ;设定标志位#02H
      LCALL CLRYJ    ;调用清除显示子程序        ?  
      MOV R1,#0E8H   ; 加减确认键按下调用    
      MOV COM,#80H   ;显示一次子程序
      LCALL WRI      ;未按下跳转继续循环
      MOV DAT,#0C9H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD    ;she设
      MOV R1,#0A8H
      MOV COM,#81H
      LCALL WRI
      MOV DAT,#0B6H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;Din定
      MOV R1,#0B5H
      MOV COM,#82H
      LCALL WRI
      MOV DAT,#0D6H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;zhi值
      MOV R1,#0CEH
      MOV COM,#90H
      LCALL WRI
      MOV DAT,#0B2H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;cai参
      MOV R1,#0FDH
      MOV COM,#91H
      LCALL WRI
      MOV DAT,#0CAH
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;shu数
      MOV R1,#0E9H
      MOV COM,#92H
      LCALL WRI
      MOV DAT,#0B9H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;gu归
      MOV R1,#0E3H
      MOV COM,#93H
      LCALL WRI
      MOV DAT,#0C1H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;lin零
      MOV R1,#0BFH
      MOV COM,#94H
      LCALL WRI
      MOV DAT,#0A3H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD      ; 问号
      LCALL SDZXS    ;调用设定参数显示子程序
FHB:   NOP
JCJA:  JB JAO,JCJE    ;加键未按下跳转减处理程序
      LCALL DD1
      JB JAO,JCJE    ;检测加显示子程序
      MOV A,SDG      ;查标志位后显示一次设定子程序
      INC A          ;后跳转FHB继续循环,设定标志位#02H
      CJNE A,#0AH,GJD ;检测个位为十
      AJMP SDJ1       ;跳转十位加一
GJD:   MOV SDG,A
      LCALL XSCL      ;跳转显示处理程序
      AJMP  SDXSA     ;跳转设定显示程序
SDJ1:  MOV SDG,#00H   ;gwg0个位归零
      CLR P3.4
      LCALL D1
      SETB P3.4
      MOV A,SDS
      INC A
      CJNE A,#0AH,SDJ   ;十位为十
      AJMP BDJ1         ;百位加一
SDJ:   MOV SDS,A
      LCALL XSCL        ;显示处理程序
      AJMP  SDXSA       ;跳转设定显示程序
BDJ1:  MOV SDS,#00H    ;swg0十位归零
      MOV A,SDB  
      INC A
      CJNE A,#0AH,BDJ  ; 百位为十
      AJMP QDJ1        ; 千位加一
BDJ:   MOV SDB,A
      LCALL XSCL        ;调用显示处理程序
      AJMP  SDXSA       ;跳转设定显示程序
QDJ1:  MOV SDB,#00H    ;bwg0百位归零
      MOV A,SDQ
      INC A
      CJNE A,#0AH,QDJ  ; 千位为十
      MOV SDG,#00H     ; 个位归零
      MOV SDS,#00H     ; 十位归零
      MOV SDB,#00H     ; 百位归零
      MOV SDQ,#00H     ; 千位归零
      AJMP SDXSA
QDJ:   MOV SDQ,A
SDXSA: MOV A,#01H
      MOV B,SDG
      LCALL WT24
      MOV A,#02H
      MOV B,SDS
      LCALL WT24
      MOV A,#03H
      MOV B,SDB
      LCALL WT24
      MOV A,#04H
      MOV B,SDQ
      LCALL WT24
      LCALL XSCL      ;调用显示处理子程序
      LCALL SDZXS     ;调用显示设定子程序
JCJE:  JB JIE,QRJC1    ;跳转归零键输入检测
      LCALL DD1
      JB JIE,QRJC1
      MOV A,SDG       ; 查标志位后显示一次设定子程序
      CJNE A,#00H,GWJ1 ;跳转个位减一
      AJMP SWJ         ;跳转十位减一
GWJ1:  DEC SDG
      AJMP SDXSB   ;跳转设定显示
SWJ:   MOV A,SDS
      CJNE A,#00H,SWJA ;十位减一
      AJMP BWJ         ;跳转百位减一
SWJA:  DEC  SDS
      MOV  SDG,#09H     ;
      AJMP SDXSB   ;跳转设定显示
BWJ:   MOV A,SDB
      CJNE A,#00H,BWJ1 ;百位减一
      AJMP QWJ     ;跳转千位减一
BWJ1:  DEC  SDB    
      MOV  SDG,#09H ;
      MOV  SDS,#09H ;
      AJMP SDXSB   ;跳转设定显示
QWJ:   MOV A,SDQ
      CJNE A,#00H,QWJ1
      MOV  A,#09H
      MOV  SDG,A
      MOV  SDS,A
      MOV  SDB,A
      MOV  SDQ,A
      AJMP SDXSB    ;跳转设定显示
QWJ1:  DEC SDQ
      MOV SDG,#09H
      MOV SDS,#09H
      MOV SDB,#09H
SDXSB: MOV A,#01H
      MOV B,SDG
      LCALL WT24
      MOV A,#02H
      MOV B,SDS
      LCALL WT24
      MOV A,#03H
      MOV B,SDB
      LCALL WT24
      MOV A,#04H
      MOV B,SDQ
      LCALL WT24
      LCALL XSCL    ;调用显示处理子程序
      LCALL SDZXS   ;调用显示设定子程序
QRJC1: JB QR,GNJC1    ; 确认归零键输入检测      
      LCALL DD1
      JB QR,GNJC1    ;跳转功能检测
      LCALL SDG0    ;调用设定归零子程序
      MOV A,#01H
      MOV B,SDG
      LCALL WT24
      MOV A,#02H
      MOV B,SDS
      LCALL WT24
      MOV A,#03H
      MOV B,SDB
      LCALL WT24
      MOV A,#04H
      MOV B,SDQ
      LCALL WT24
      LCALL XSCL    ;调用显示处理子程序
      LCALL SDZXS   ;调用设定显示子程序
FHC:   NOP           ;查标志位后显示一次设定子程序
GNJC1: JB GN,JJP  ;功能键未按下跳转脉冲输入检测
      LCALL DD1      
      JB GN,JJP
      AJMP KKK
JJP:   LJMP FHE
KKK:   MOV BZW,#03H
      LCALL CLRYJ    ;调用清除显示子程序
      MOV R1,#0FAH   ;显示产量归零界面
      MOV COM,#80H
      LCALL WRI
      MOV DAT,#0B2H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;cai产
      MOV R1,#0BFH
      MOV COM,#81H
      LCALL WRI
      MOV DAT,#0C1H
      LCALL WRD
      MOV DAT,R1
      LCALL  WRD     ;lian量
      MOV R1,#0FAH
      MOV COM,#90H
      LCALL WRI
      MOV DAT,#0B2H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;cai 产
      MOV R1,#0BFH
      MOV COM,#91H
      LCALL WRI
      MOV DAT,#0C1H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;Liang量
      MOV R1,#0E9H
      MOV COM,#92H
      LCALL WRI
      MOV DAT,#0B9H
      LCALL WRD      
      MOV DAT,R1    
      LCALL WRD      ;gu归
      MOV R1,#0E3H
      MOV COM,#93H
      LCALL WRI
      MOV DAT,#0C1H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD      ;lin零
      MOV R1,#0BFH
      MOV COM,#94H
      LCALL WRI
      MOV DAT,#0A3H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD      ; 问号
      LCALL CLXS     ;调用产量显示子程序
FHE:   JB QR,GNN      ;跳转FHC检测确认键
      LCALL DD1
      JB QR,GNN    ;归零键输入检测  
QRG0:  LCALL CLG0      ;调用产量归零显子程序
      LCALL XSCLC     ;调用显示代码处理子程序3
      LCALL  CLXS         ;调用产量显示子程序
GNN:   JB GN,MCSRI      
      LCALL DD1
      JB GN,MCSRI     ;设定参数并检测加减按键
      AJMP  LOPB     ;////////////
MCSRI: LJMP  MCSR1
LOPB:  MOV BZW,#04H    ;
      LCALL CLRYJ
      MOV R1,#0CEH
      MOV COM,#80H
      LCALL WRI
      MOV DAT,#0B2H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;cai参
      MOV R1,#0FDH
      MOV COM,#81H
      LCALL WRI
      MOV DAT,#0CAH
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;shu数
      MOV R1,#0A1H
      MOV COM,#82H
      LCALL WRI
      MOV DAT,#0D1H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;选
      MOV R1,#0F1H
      MOV COM,#83H
      LCALL WRI
      MOV DAT,#0D4H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;择
      LCALL XZCS
      LCALL XX   ;调用选择参数显示子程序AA
      MOV R1,#0B7H
      MOV COM,#90H
      LCALL WRI
      MOV DAT,#0C8H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;确
      MOV R1,#0CFH
      MOV COM,#91H
      LCALL WRI
      MOV DAT,#0C8H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;认
      MOV R1,#0BFH
      MOV COM,#92H
      LCALL WRI
      MOV DAT,#0A3H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;?
FHD:   NOP           ;
JCJAX: JB JAO,JCJEX     ;跳转检测选择减
      LCALL DD1
      JB JAO,JCJEX
      MOV A,XZBZ
      INC A
      CJNE A,#14H,ZXJ  ;?<19跳转选择加
      MOV XZBZ,#00H    ;min
      LCALL XZCS      ;调用选择参数显示子程序AA
      LCALL XX
      LJMP JCJEX       ;跳转选择减
ZXJ:   MOV XZBZ,A
      LCALL XZCS    ;调用选择参数显示子程序AA
      LCALL   XX  ;调用设定参数显示子程序        
JCJEX: JB JIE,QRJCI
      LCALL DD1
      JB JIE,QRJCI   ;跳转选择确认
      AJMP  LKP
QRJCI: LJMP QJI
LKP:   MOV A,XZBZ
      DEC A
      CJNE A,#00H,XZL
      MOV XZBZ,#13H   ;max
      LCALL XZCS      ;调用选择参数显示子程序AA
      LCALL XX
      AJMP QJI     ;?????
XZL:   MOV XZBZ,A
      LCALL XZCS     ;调用选择参数显示子程序AA
      LCALL XX    ;调用设定参数显示子程序    
QJI:   JB QR,XGAA  ;选择功能
      LCALL DD1
      JB QR,XGAA    ;选择参数确认
      AJMP SXA
XGAA:   LJMP XZGN      ;跳转功能检测
SXA:   LCALL XZQR    ;选择参数确认;;;;;;
      LCALL CLRYJ
      MOV R1,#0A1H
      MOV COM,#80H
      LCALL WRI
      MOV DAT,#0D1H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;选
      MOV R1,#0F1H
      MOV COM,#81H
      LCALL WRI
      MOV DAT,#0D4H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;择
      MOV R1,#0C9H
      MOV COM,#82H
      LCALL WRI
      MOV DAT,#0B3H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;cheng
      MOV R1,#0A6H
      MOV COM,#83H
      LCALL WRI
      MOV DAT,#0B9H
      LCALL WRD
      MOV DAT,R1
      LCALL WRD     ;gong
      MOV R3,#10H
NNN:   LCALL DLE
      DJNZ R3,NNN
      LCALL SDXSC
      LCALL CLRYJ
      LJMP XSA
XZGN:  JB GN,LOPP
      LCALL DD1
      JB GN,LOPP
      LJMP XSA
LOPP:  NOP   ;跳转检测脉冲
MCSR1: NOP     ;
MCSR:  MOV A,BZMC
      CJNE A,#0FH,HMA  ;脉冲标志
      AJMP HM
HMA:   JNB JSS,CBZWO
      LCALL DK
      JNB JSS,CBZWO    ; 跳查显示标志处理程序
      MOV BZMC,#0FH
HM:    JB JSS,CBZWO
      LCALL DK
      JB JSS,CBZWO
      MOV BZMC,#0AH
      MOV A,GEE       ; 脉冲输入检测处理程序
      INC A
      CJNE A,#0AH,GJ
      AJMP SJ1
程序长,有兴趣可联系
czha1@yahoo.com.cn
13775061792
07-06-18 14:42
可以搞牵引机么?
20-04-08 14:53
用C语言搞,容易多了
20-04-09 09:13

工控新闻

更多新闻资讯