本帖最后由 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 /> |