打印

发一个自动长度控制器源程序.可有稍作改动,望谅解.

[复制链接]
2918|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
czha1|  楼主 | 2007-6-23 07:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 czha1 于 2011-4-6 04:06 编辑

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

相关帖子

沙发
conwh| | 2007-6-23 08:32 | 只看该作者

没有尾巴?

使用特权

评论回复
板凳
gyt| | 2007-6-23 09:22 | 只看该作者

谢谢发表

使用特权

评论回复
地板
5880527| | 2007-6-23 20:14 | 只看该作者

最多就当一计米器吧了

最多就当一计米器吧了,还“加以改进可广泛使用在塑料带,塑料管.橡胶带,橡胶管,布类.薄膜类的切断,印刷.标记”呢,没精度和速度可言。不过能把这程序拿出来分享也是值得鼓励的

使用特权

评论回复
5
czha1|  楼主 | 2007-6-24 06:30 | 只看该作者

怎样提高速度和精度

楼上大师你看怎样提高速度和精度呢.我看当然,速度可以利用中断方式.有了速度精度自动产生.已经过验证,我看不光是完成计米的功能吧,有了主程序,其他功能增加是比较方便的

使用特权

评论回复
6
gyt| | 2007-6-24 07:12 | 只看该作者

我看

速度应该是足够的,不需要再提高了吧:)

使用特权

评论回复
7
5880527| | 2007-6-24 09:30 | 只看该作者

或许我们说的精度要求不一样

装一个编码器,比你的分度轮精度高吧,可即使编码器又能达到什么精度呢,定长裁切的精度不是说你计准了就能切准的,重要的部分是对速度的控制,所以LZ的那程序只相当于一个计脉冲数的计米器而已,当然LZ那程序速度慢时实现毫米级别的精度还是有可能,所以精度稍高时无速度可言。
市场上的计米器常对于1K以上的脉冲都识别不了了,而上面的程序也同样会有那毛病,要是不凑巧脉冲来时刚好在显示啊键盘输入什么的就丢脉冲了,也只能识别几百HZ的脉冲,用中断会好些。但想精度很高比如每分钟上百米,精度以丝为单位那是梦想了,而印刷标记常以那为单位的

使用特权

评论回复
8
conwh| | 2007-6-24 09:53 | 只看该作者

LZ的意思就是抛砖引玉,又不是商品,不必要认真。

使用特权

评论回复
9
czha1|  楼主 | 2007-6-24 13:56 | 只看该作者

一并感谢

不管提的是建议还是改进,都一并感谢.产品也要考虑客户的承受能力.市场方向.

使用特权

评论回复
10
czha1|  楼主 | 2007-6-24 14:10 | 只看该作者

机械可以增速

精度控制在0.1没有问题,不要光在电路上考虑,机械可以增速啊,用小齿轮.这样就可以提高分辩率了嘛.

使用特权

评论回复
11
古道热肠| | 2007-6-24 16:43 | 只看该作者

如何识别高速脉冲?

   我觉得这个话题倒可展开侃侃,有实用价值。逻辑分板仪就一高速采样记录的好东东。

使用特权

评论回复
12
czha1|  楼主 | 2007-6-25 05:59 | 只看该作者

你们说说

你们说说,外部电路是不是可以提高分辨率后再按要求细分脉冲.

使用特权

评论回复
13
fsaok| | 2007-6-25 07:35 | 只看该作者

.

源程序的水平太低,广告成分太多,没意思

使用特权

评论回复
14
zxq1234508| | 2007-6-25 09:06 | 只看该作者

感谢LZ

使用特权

评论回复
15
gyt| | 2007-6-25 09:54 | 只看该作者

可以

要提高速度,我觉得还是要靠硬件

使用特权

评论回复
16
5880527| | 2007-6-25 09:55 | 只看该作者

这个话题不是本论坛所讨论的

   用齿轮增速?你那意思就是放大嘛。如果你要达到0.1mm的精度,检测精度在0.05mm?我相信这个还不够,至少要在0.02mm或0.03mm(就这分辨率都需要牛人才控制得到0.1mm),因为你要考虑控制误差,机械误差等等。
   就算很普通的每分钟60米的定长裁切,每秒1米,除去切刀的时间你1秒钟内还有多少时间拖料,切刀你用什么带动呢?气缸还是其他,这要占多少时间?不要告诉我你切几米长的。那脉冲频率至少在4、5十KHZ以上,你的计数器至少需要三字节的,三字节的运算你该知道一个简单的加下来需要消耗多少指令周期吧,然后再和预定的数字比较,再速度处理。那么快的脉冲进来普通单片机除了计数还要进行速度、显示等等的处理,不累趴下才怪。
   前面我说过,这样的定长不是你计准了就能控制得准的,你拖料辊是变频器或是其他带动?那电机能多快的启动和停止速度,能快过步进和伺服?或者说你的加减速处理能胜过后面两者?
  上面分析的这些LZ的程序都没有体现出来,所以那程序只能当一简单的计数器而已,新手能拿来学习学习还是可以的,要达到你所说的效果还差很远很远

使用特权

评论回复
17
5880527| | 2007-6-25 13:28 | 只看该作者

说实在话,这帖子再谈论下去没意思的

LZ那程序还故意把好似很重要的部分给删除了,呵呵,你那程序有什么框架可言,做定长有一丁点参考价值吗,我不知道你这程序是不是真的产品中的部分,如果是那简直佩服你得要命了。不是和LZ有什么仇,而是这么垃圾的程序你不应该留联系方式来做广告

使用特权

评论回复
18
czha1|  楼主 | 2007-6-26 05:48 | 只看该作者

理解能力

楼上的理解能力我也佩服.
没想到这么大本事编码器也搞不定。
水平太高啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

103

帖子

1

粉丝