绕线机计数器程序

合集下载

CNC200A绕线机使用说明

CNC200A绕线机使用说明

1. 前言 (2)2. 主要特征 (2)3.面板说明 (3)4. 编辑绕线资料 (5)5. 绕线方式选择 (6)6. 执行绕线功能 (9)7. 装机设定 (10)8. 安装与接线 (12)9.简易保养及故障排除 (16)/ 、八—1.前言CNC-200A是本公司新开发的一款绕线机控制器,由于控制机能完整,广为绕线业界所爱用,已成为绕线机的标准配备。

此款新型控制器采用更精密、功能更强大、运算速度更快、抗干扰能力更强的单晶片微处理器,不但保留了与原机型相容之操作方式及所有功能,更提升了控制器之运转效率及稳定性。

2 . 主要特征♦采用单晶片微处理器设计,功能更强,体积更小,抗干扰能力强。

♦记忆体使用FLASH ROM,容量大,可储存1000步序之绕线资料,每一步序可分别设定9 种绕线资料,5种功能选择,切断电源后绕线资料不会流失。

♦可针对不同机型及使用场合更改运转及操作模式,使用范围更广泛。

♦绕线轴提供100段绕线速度选择,每一步序的高速及低速可分别设定。

♦绕线轴提供100段加速斜率选择,使绕线轴运转更为流畅。

♦计数分辨率高,可达0.05圈。

♦排线轴步进马达驱动器以定电流驱动,提供高速度、高扭力、高精度之定位。

♦排线轴位置可以用教导或按键设定,资料显示窗可以显示排线轴当前位置。

♦排线轴提供99段定位速度选择。

♦排线轴位移单位设置范围广,适用各类规格的螺杆。

♦具有断电记忆功能,绕线过程中突然断电,可记录当前的状态、参数并保存,待上电,启动继续绕制产品,减少原材料浪费。

♦ 一组编辑密码设定,以防止设定资料被任意更改。

♦兼容性强,可直接替代同类型控制器。

♦电源可分AC 100〜120V 及220V 〜240V 等机种供选择。

I^IPI H序MI A IMI産定Ifill 01110B |兩;||自|| I 0 II清除|門|輸入|自動I 丘車I I 跳段I I 退段3.1 .电源:附有指示灯之电源开关,管制本控制器之 AC 电源3.2 .按键厘用: 共十键,用来输入数值之用 寵:用来进入或离开资料设定状态C 翦:用来设定目标产量。

具有加减识别功能的绕线机电子计数器

具有加减识别功能的绕线机电子计数器

目录摘要................................................................................................................................ 错误!未定义书签。

前言................................................................................................................................ 错误!未定义书签。

第一章设计方案 .. (4)1.1设计目的 ......................................................................................................... 错误!未定义书签。

1.2设计要求 ......................................................................................................... 错误!未定义书签。

1.3总原理框图..................................................................................................... 错误!未定义书签。

1.3各单元框图电路设计................................................................................... 错误!未定义书签。

(1)信号采集电路 ......................................................................... 错误!未定义书签。

CNC自动绕线机控制器说明书精编版

CNC自动绕线机控制器说明书精编版

C N C自动绕线机控制器说明书公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-CNC自动绕线机控制器说明书控制器说明书说明书CNC210-S(简要版)控制面板Key pads按键[ 0]~[9]用来输入数字[步序设定] :打开程序设置界面[产量设定] :设置目标产量[起始步序] :设置开始步序[结束步序] :设置结束步序[资料选择] :打开不同程序界面,以做设置[排线方向] :设置排线杆排线方向[绕线方向] :设置绕线的正反向[两端停车] :排线到端面时暂停,方便检查起绕点和幅宽设置的准确性[自动复位] :绕完当下的步序后,排线杆自动进入下一程序的起绕点[自动启动] :灯亮时说明不需按启动键,程序会自动启动[━] : 调机时,如要改变原有的参数,必须先按下此键。

此时被调的参数会闪烁,按下新设定的数字再按输入键,新的参数就被设置[清除] :调机时,将参数清除的按键[复制] :调机时,复制上一步的参数[输入] :将参数输入并记忆[转速] :将显示在转速和产量之间轮换[归零] :按住2秒钟,产量数变为0[自动] :启动功能在自动和手动间转换[煞车] :当绕线轴停止时,刹车器即启动将绕线轴刹住[跳段] :跳入下一段绕线程序[退段] :退入上一段绕线程序[复归] :任何时候,按此键将终止当下的程序并回到待机状态[停车] :暂停绕线[启动] :启动绕线或在绕线中暂停绕线数字显示段落显示:显示现在绕线的段落号资料显示:调机时,用来显示程序的内容.绕线或待机时,显示已绕圈数或排线杆的位置产量显示:显示产量或转速其他面板上的LED灯,点亮时显示该功能正在起效,否则,熄灭时则该功能不生效。

1.设置绕线参数MEMORYRANGE SELECTION·设置起始步序:待机状态下按【起始步序】【0-999】【输入】譬如,欲设第二段为起始段。

按【起始步序】【2】【输入】即可·设置结束步序待机状态下按【结束步序】【0-999】【输入】譬如,欲设第四段为结束段。

手摇绕线机设备操作指导书

手摇绕线机设备操作指导书

制订日期
Date 页 次Page NO 1一一
BQ-
74-核准
(Appr 审核(Checke 手摇绕线机
四,此设备工作时为动力设备,小心误伤
五,如有异常时请立即知会工程相关人员
设备名称
Equipment name 手摇绕线机一,操作界面说明:
二,轴心治具: 不同的产品要用不同的治具2019/9/23一,计数器: 可记录制作时圈数
二,操作步骤:
XX 电 子 科 技 有 限 公 司
文件类型
File type
设备操作指导书文件编号File No 版 本Version 图 示 说 明(illuminate)1.00BQ-73-186设 备 操 作 指 导 书
制表(Prepared): ,反之为减)
三,注意事项:(保养)
一,设备规格:最大转速350次/分钟,计数范围0-9999.9二,装上对应的轴心治具和产品→将计数器按右键归零→摇动摇柄(顺时针圈数为加三,使用过程中,应定期对设备添加润滑油进行润滑,保证最佳使用效果二,使用前必需对所使用的设备进行检查(如:计数器有无损坏)一,使用前检查设备有无异常,
1 计数器
2 传动链条
3 传动轴
4 摇柄
5 轴心治具和产品
放置处。

田中绕线机 编程快速入门

田中绕线机 编程快速入门

田中精机(嘉兴)有限公司田中绕线机快速入门1:程序命令与讲解HM: 程序原点设定 ( 如:HM 23.55 10.11 12.31 CW )程序原点命令X轴坐标Y轴坐标Z轴坐标主轴顺时针绕线CW: 主轴顺时针旋转CC: 主轴逆时针旋转VH: 主轴最高速度及加减速设定(如下:)主轴转速命令最高速度加速度减速度主轴顺时针绕线DF: 绕线开始的位置(由外向里) (如下:)DR: 绕线开始的位置(由里向外) (如下:)RF: 绕线结束后导针强行停留在人侧(如下:)RR: 绕线结束后导针强行停留在机器侧(如下:)RX: 绕线结束后导针强行停留的位置(如下:)注:定位是在执行RF或者RR命令同时进行的,如果没有RFRR命令,就不能设定这个命令。

(如: RX 5.00{X}轴任意位置)RZ: 绕线结束后导针强行停留的位置(如下:)注:定位是在执行RF或者RR命令同时进行的,如果没有RFRR命令,就不能设定这个命令。

(如: RX 5.00{Z}轴任意为置)WF:起绕点(如下:)WW: 幅宽(如下:)WP: 线径(如下:)起绕点产品幅宽铜线线径从外向里排线导针停留位置排线变量AV: 主轴旋转速度 ( 默认AV60,最高AV500 )AL: 主轴逆时针旋转 ( 每按一下按键为30度 )SHIFT1 + SPINDLEAR: 主轴顺时针旋转 ( 每按一下按键为30度 )SPINDLEWC: 绕线开始圈数设定(如下:)TVA: TV加减速(最高速度为25000,常用8000)TV: X/Y/Z轴移动速度(默认TV20,最高速度为250)P: X/Y/Z轴移动命令PX: X轴坐标PY: Y轴坐标PZ: Z轴坐标YL: Y轴不变,X/Z轴逆时针绕圆,如下画圆命令分解:YR: Y轴不变,X/Z轴顺时针绕圆 (如下:)ZL: Z轴不变,X/Y轴逆时针绕圆 (如下:)ZR: Z轴不变,X/Y轴顺时针绕圆 (如下:)TV80 YL 0.00 0.00 0.00 2.5 5 -0.15 3 0.10绕圆速度绕圆方向命令X轴Y轴Z轴绕圆半径绕圆圈数负变量圈数正变量LU1: 上料板- 前 ( SHIFT2 + X-R )LU0: 上料板- 后LP1: 上料板- 上 ( SHIFT2 + Y-F )LP0: 上料板- 下LO1: 接料盒- 前 ( SHIFT2 + X-L )LO0: 接料盒- 后UF: 退料片- 前 (SHIFT4 + NOZZLE)UR: 退料片- 后NO: 剪刀- 开 ( SHIFT4 + Y-R )NC: 剪刀- 关NE: 剪刀- 上 ( SHIFT4 + Y-F )NF: 剪刀- 下CA: 手指- 前 ( SHIFT1 + Y-F )CB: 手指- 后CL: 手指- 开 ( SHIFT1 + X-L )CH: 手指- 关CT: 手指- 左 ( SHIFT1 + Y-R )CF: 手指- 右CE: 手指- 倒下180度 ( SHIFT1 + INDEX )CR: 手指- 上翻0度TN2: TAPE反张力- 打开 ( SHIFT1 + Z-D )TF2: TAPE反张力- 关闭注:TN2 、TF2命令在包胶带机(艾科)为拉带左右动作。

NZ-8A 电脑编程电动绕线机使用说明书

NZ-8A 电脑编程电动绕线机使用说明书

NZ-8A交直流二用型电脑编程电动绕线机V4.0版本使用说明书上海亿立科技发展有限公司 上海亿立电子设备制造有限公司上 海 绕 线 机 厂操 作 说 明一、概述NZ-8A是本公司开发的一系列电脑编程电动绕线机之一,主要适用于电讯、电器、仪表行业,绕制各种电感线圈、仪表线圈、继电器、定时器、家用电器、低压电器的各种平绕线圈,特适用于小型变压器、微型小电机的定子线圈等多绕组线圈的绕制。

该机具有性能稳定、操作方便、工效高、计数准确,断电保护数据、操作简单、手退可逆计数等优点。

二、主要技术数据1、记忆容量: 0~30段(即30组)2、记忆保持: ≥100年3、圈数: 0~99999圈(或0~9999.9圈)任意设定4、滑行圈数(当使用直流电机时,滑行圈数代表停止慢车):0~999圈(或0~99.9圈)任意设定5、启动模式: 双启动(或单启动)任意设定6、计数模式; 相对零点(或绝对零点)任意设定7、圈数自动校准功能;即自动设定滑行圈数(使用交流电机时)8、电源电压: 220V±22V 50Hz三、数字显示器7位数字显示器的前二位显示段位(即绕组编号),后五位显示圈数或产量。

1、状态指示灯● 圈数:亮表示当前可进行圈数设定。

● 滑行圈数:亮表示当前可进行滑行圈数设定。

● 产量:亮表示显示当前产量,按《复位》键可清除。

2、辅助状态指示● 圈数计数小于0,圈数闪烁显示。

四、键盘说明1、 《0》~《9》:共十键,用来输入数值之用。

2、 《设置》键:按一下进入圈数设定,再按一下退出圈数设定。

3、 《输入》键:在圈数设定时,输入已设定的圈数。

在待机状态下,显示器可切换为产量显示。

4、 《跳段》键:放弃本段绕组,跳到下一段绕组。

5、 《复位》键:当前圈数置0。

在产量显示时,可清除产量。

6、 《启/停》键:待机状态下,按一下开始运转;运转中,按一下停止运转。

7、 外接脚踏开关:当设置为双启动时,按一下开始运转;再按一下 停止运转。

绕线机计数器电路设计

绕线机计数器电路设计

绕线机计数器电路设计摘要绕线机:顾名思义绕线机是把线状的物体缠绕到特定的工件上的机器。

凡是电器产品大多需用漆包铜线(简称漆包线)绕制成电感线圈,就需要用到绕线机。

例如:各种电动机,日光灯镇流器,各种大小变压器,电视机。

收音机用的中周、电感线圈,行输出变压器(高压包),电子点火器、灭蚊器上的高压线圈,喇叭,耳机,麦克风的音圈,各种电焊机等不能一一举例,这些里面的线圈都需要用绕线机来绕。

纺织行业多用棉纱线,人造纤维线等绕制各种适合纺织机用的纱团、绽这些都需要用一款绕线机来绕。

绕线机绕的转数一般比较多,圈数的要求在精密器件中要求十分严格,单一的靠人工计圈数是很麻烦也是不可能完成的。

绕线机需要一个能自动计数的装置------绕线机计数器。

本课题是利用DN834霍尔传感器、CD40110 十进制可逆计数器/锁存器/译码器/驱动器以及共阴极数码显示器设计一个可以加减的绕线机计数器。

首先用霍尔传感器收集绕线机转轴运转数据(每转一圈产生一个负脉冲)然后经过非门放大反相后便形成了计数正脉冲,然后送入CD40110,CD40110工作计数开始,并在数码管上显示计数结果。

本文将讲述DN834霍尔传感器、CD40110十进制可逆计数器/锁存器/译码器/驱动器、共阴极数码显示器以及CD4069反相器的基本原理和特点,并对绕线机计数器的设计原理及功能做了详细介绍。

然后又采用数电课本上提到到集成电路74192、4511来代替CD40110进行绕线机计数器的设计,复习和熟练自己在数字电路课程所学到的集成电路及其应用。

关键词:绕线机, 霍尔DN834, CD40110, CD4069, 数码显示器74192目录1 绪论 (1)1.1课题描述 (1)1.2基本工作原理、框图、电路图及元器件(基于40110) (2)2 相关芯片及硬件电路设计(基于40110) (3)2.1霍尔DN834芯片 (3)2.1.1 霍尔元件的工作原理及应用 (3)2.1.2 DN834的主要功能 (4)2.2转动信号采集 (5)2.3计数脉冲生成电路 (5)2.4计数、译码电路 (6)2.4.1 CD40110芯片功能、参数介绍 (6)2.4.2 数码显示器简介 (8)3 绕线机计数器的另一种设计(基于74192、4511) (10)3.1基本工作原理、电路图及元器件简介 (10)3.1.1基本工作原理、电路图 (10)3.1.2 74LS192简介123.1.3 CD4511简介13 4绕线机计数器安装注意事项 (14)总结 (16)致谢 (17)参考文献 (18)1 绪论1.1 课题描述绕线机:顾名思义绕线机是把线状的物体缠绕到特定的工件上的机器。

CNC自动绕线机控制器说明书

CNC自动绕线机控制器说明书

CNC自动绕线机控制器说明书CNC自动绕线机控制器说明书说明书CNC210-S(简要版)控制面板Keypads按键[0]~[9]用来输入数字[步序设定]:打开程序设置界面[产量设定]:设置目标产量[起始步序]:设置开始步序[结束步序]:设置结束步序[资料选择]:打开不同程序界面,以做设置[排线方向]:设置排线杆排线方向[绕线方向]:设置绕线的正反向[两端停车]:排线到端面时暂停,方便检查起绕点和幅宽设置的准确性[自动复位]:绕完当下的步序后,排线杆自动进入下一程序的起绕点[自动启动]:灯亮时说明不需按启动键,程序会自动启动[━]:调机时,如要改变原有的参数,必须先按下此键。

此时被调的参数会闪烁,按下新设定的数字再按输入键,新的参数就被设置[清除]:调机时,将参数清除的按键[复制]:调机时,复制上一步的参数[输入]:将参数输入并记忆[转速]:将显示在转速和产量之间轮换[归零]:按住2秒钟,产量数变为0[自动]:启动功能在自动和手动间转换[煞车]:当绕线轴停止时,刹车器即启动将绕线轴刹住[跳段]:跳入下一段绕线程序[退段]:退入上一段绕线程序[复归]:任何时候,按此键将终止当下的程序并回到待机状态[停车]:暂停绕线[启动]:启动绕线或在绕线中暂停绕线数字显示段落显示:显示现在绕线的段落号资料显示:调机时,用来显示程序的内容.绕线或待机时,显示已绕圈数或排线杆的位置产量显示:显示产量或转速其他面板上的LED灯,点亮时显示该功能正在起效,否则,熄灭时则该功能不生效。

1.设置绕线参数1.1MEMORYRANGESELECTION·设置起始步序:待机状态下按【起始步序】【0-999】【输入】譬如,欲设第二段为起始段。

按【起始步序】【2】【输入】即可·设置结束步序待机状态下按【结束步序】【0-999】【输入】譬如,欲设第四段为结束段。

按【结束步序】【4】【输入】即可*注意:起始步序必须小于结束步序!1.2设置起绕点或幅宽时使用的“教导式”点按【跳段】按键,可使排线杆向外微动,点按【退段】按键,可使排线杆向内微动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

声明:本程序已经调好并已投入实际生产中。

此公开的目的是给单片机初学者的一个简单的实例,供学习用。

本人的宗旨是:“人人为我,我为人人”。

大家共同分亨学习及改证,如转贴请注明出处。

请勿用于商业途径!2006-2-10整理以下程序请”大虾”不吝指正!!!!;***********************************;; 绕线机计数器程序;;CPU : 89C2051 版本: V2.7 ;;可预置数--电机车间专用;;创建:2005-02-01 修改于:2005.09.29 ;;作者:孙世林;;; E-mail:sunlin137@ ;;***********************************;;;****************;; 伪定义;;****************;LED0 EQU 3AH; 存放显存的小数LED1 EQU 3BH; 存放个位数LED2 EQU 3CH; 存放十位数LED3 EQU 3DH; 存放百位数LED4 EQU 3FH; 存放千位数SLOW0 EQU 40H; 存放减速预置数小数SLOW1 EQU 41H; 存放减速预置数个位SLOW2 EQU 42H; 存放减速预置数十位SLOW3 EQU 43H; 存放减速预置数百位SLOW4 EQU 44H; 存放减速预置数千位TOEND0 EQU 45H; 存放预置数小数位TOEND1 EQU 46H; 存放预置数个位TOEND2 EQU 47H; 存放预置数十位TOEND3 EQU 48H; 存放预置数百位TOEND4 EQU 49H; 存放预置数千位L1BIT1 EQU 4AH; 存放相应键位中的预置数L1L1BIT2 EQU 4BH;L1BIT3 EQU 4CH;L1BIT4 EQU 4DH;L2BIT1 EQU 4EH; 存放相应键位中的预置数L2 L2BIT2 EQU 4FH;L2BIT3 EQU 50H;L2BIT4 EQU 51H;L3BIT1 EQU 52H; 存放相应键位中的预置数L3 L3BIT2 EQU 53H;L3BIT3 EQU 54H;L3BIT4 EQU 55H;L4BIT1 EQU 56H; 存放相应键位中的预置数L4 L4BIT2 EQU 57H;L4BIT3 EQU 58H;L4BIT4 EQU 59H;MOVD EQU 5EH;MOVE EQU 5FH;MOVDA T4 EQU 60H; 存放寄存数L0-L4 MOVDA T3 EQU 61H;MOVDA T2 EQU 62H;MOVDA T1 EQU 63H;MOVDA T0 EQU 64H;RUNOVER EQU 65H;L1ORL2 EQU 5CH;L1ORL EQU 5DH;;************;; 中断入口;;************;ORG 0000H ;程序执行开始地址LJMP START ;跳至START执行ORG 0003H ;外中断0中断入口地址LJMP INTEXT0 ;ORG 000BH ;定时器T0中断入口地址RETI ;中断返回ORG 0013H ;外中断1中断入口地址LJMP INTEXT1 ;ORG 001BH ;定时器T1中断入口地址RETI ;中断返回ORG 0023H ;串行口中断入口地址RETI ;中断返回ORG 002BH ;定时器T2中断入口地址RETI ;中断返回;************;; 初始化程序;;************;START: LJMP LODLED; 进入开机显示信息程序MOV TMOD,#90H;MOV SP,#70H;SETB PX0;START0: MOV LED4,#0DH; 清零时显示"CLR" 并为不限制计数范围、清除循环计数标志MOV LED3,#0FH;CMOV LED2,#0AH;LMOV LED1,#010H;RMOV LED0,#0DH;START1: ACALL DISPLAY; 等待键释放JNB P1.7, START1CLEAR: MOV TOEND0,#0AH; 初始化预置数值及减速数值MOV TOEND1,#0AHMOV TOEND2,#0AHMOV TOEND3,#0AHMOV TOEND4,#0AHMOV SLOW1,#0AHMOV SLOW2,#0AHMOV SLOW3,#0AHMOV SLOW4,#0AHMOV L1ORL2,#00H; 不循环计数标记MOV L1BIT1,#0H;*L1-10 载入初始默认数MOV L1BIT2,#1H;MOV L1BIT3,#0H;MOV L1BIT4,#0H;MOV L2BIT1,#0H;*L2-20MOV L2BIT2,#2H;MOV L2BIT3,#0H;MOV L2BIT4,#0H;MOV L3BIT1,#5H;*L3-15MOV L3BIT2,#1H;MOV L3BIT3,#0H;MOV L3BIT4,#0H;MOV L4BIT1,#0H;*L4-30MOV L4BIT2,#3H;MOV L4BIT3,#0H;MOV L4BIT4,#0H;CLEARP: ACALL CLRALL; 调用清零程序ACALL CLRMOV;LJMP MAIN; 跳到主程序开始计数CLRALL: MOV A,#00H; 将LED0至LED4计数显存置0 MOV LED0,AMOV LED1,AMOV LED2,AMOV LED3,AMOV LED4,ACLR C;MOV P3,#0FFHMOV P1,#0FFHRETCLRMOV: MOV A,#00H; 暂存器置零MOV MOVDA T4,AMOV MOVDA T3,AMOV MOVDA T2,AMOV MOVDA T1,AMOV MOVDA T0,ARET;************************;; 快速预置数程序L1~L4 ;;************************;CLEAR1: MOV TOEND0,#0H; 载入预置数到寄存器L1 MOV TOEND1,L1BIT1MOV TOEND2,L1BIT2MOV TOEND3,L1BIT3MOV TOEND4,L1BIT4MOV R1,L1BIT1; 处理减速数值MOV R2,L1BIT2;MOV R3,L1BIT3;MOV R4,L1BIT4;MOV L1ORL,#00H; 建立循环标记AJMP CLEPOG;CLEAR2: MOV TOEND0,#0H; 载入预置数到寄存器L2 MOV TOEND1,L2BIT1MOV TOEND2,L2BIT2MOV TOEND3,L2BIT3MOV TOEND4,L2BIT4MOV R1,L2BIT1; 处理减速数值MOV R2,L2BIT2;MOV R3,L2BIT3;MOV R4,L2BIT4; 建立循环标记MOV L1ORL,#05H;AJMP CLEPOG;CLEAR3: MOV TOEND0,#0H; 载入预置数到寄存器L3MOV TOEND1,L3BIT1MOV TOEND2,L3BIT2MOV TOEND3,L3BIT3MOV TOEND4,L3BIT4MOV R1,L3BIT1; 处理减速数值MOV R2,L3BIT2;MOV R3,L3BIT3;MOV R4,L3BIT4;AJMP CLEPOG;CLEAR4: MOV TOEND0,#0H; 载入预置数到寄存器L4MOV TOEND1,L4BIT1MOV TOEND2,L4BIT2MOV TOEND3,L4BIT3MOV TOEND4,L4BIT4MOV R1,L4BIT1; 处理减速数值MOV R2,L4BIT2;MOV R3,L4BIT3;MOV R4,L4BIT4;CLEPOG: DEC R1; 减速数值是终值的前一圈进行CLR C; 清进位标致CJNE R1,#0FFH,CLEOUT;MOV R1,#09H;DEC R2;CLR C; 清进位标致CJNE R2,#0FFH,CLEOUT;MOV R2,#09H;DEC R3CLR C; 清进位标致CJNE R3,#0FFH,CLEOUT;MOV R3,#09H;DEC R4CLR C; 清进位标致CJNE R4,#0FFH,CLEOUT;MOV R4,#09H;CLEOUT: MOV SLOW1,R1; 载入减速数到寄存器MOV SLOW2,R2;MOV SLOW3,R3;MOV SLOW4,R4;LJMP CLEARP; 跳到初始化程序CLEAREX:MOV TOEND0,#0AH; 解除锁定电机控制,且不清零继续计数MOV TOEND1,#0AHMOV TOEND2,#0AHMOV TOEND3,#0AHMOV TOEND4,#0AHACALL CLEARPX;AJMP MAINCLEARPX:MOV SLOW1,#0AH; 不减速时载入的数MOV SLOW2,#0AHMOV SLOW3,#0AHMOV SLOW4,#0AHMOV P3,#0FFHMOV P1,#0FFHRET;**************************************;; 主程序;;**************************************;MAIN: MOV A,SLOW4; 判断是否到减速的数值(千位)MOV MOVD,LED4CJNE A,MOVD,LOOP0MOV A,SLOW3; 判断是否到减速的数值(百位)MOV MOVD,LED3CJNE A,MOVD,LOOP0MOV A,SLOW2; ...................十位MOV MOVD,LED2CJNE A,MOVD,LOOP0MOV A,SLOW1; ...................个位MOV MOVD,LED1CJNE A,MOVD,LOOP0MOV A,LED0; 减速(使P1.7口电压下降约0.6V)MOVC A,@A+DPTR; 递增减速MOV P1,ACLR P3.5; 高位高亮显示发出提示,并断开慢起动电路ACALL D1MSSETB P1.7LOOP0: MOV A,TOEND4; 判断是否到预置数了(千位)MOV MOVD,LED4CJNE A,MOVD,LOOPMOV A,TOEND3; ................百位MOV MOVD,LED3CJNE A,MOVD,LOOPMOV A,TOEND2; ................十位MOV MOVD,LED2CJNE A,MOVD,LOOPMOV A,TOEND1; ................个位MOV MOVD,LED1CJNE A,MOVD,LOOPMOV A,TOEND0; ................小数位MOV MOVD,LED0CJNE A,MOVD,LOOPCLR P1.7; 控制电机停车LCALL DLS3; 延时约0.5秒MOV A,#05H;CJNE A,L1ORL2,LOOP1; 如标记位不是07则跳至LOOP1AJMP ACTION_X; 到预置数时,跳到循环L1-L2计数LOOP1: AJMP ACTION; 跳到停机等待按键处理程序LOOP: ACALL DISPLAY; 调用显示程序MOV P1,#0FFH; 置P1口为输入状态MOV P3,#0FFH; 置P3口为输入状态JNB P1.0,NUMNOW; 显示当前的预置数并将标志位置数JNB P1.1,NOTSLOW; 不减速JNB P1.7,ALLCLR; 如清零键按下跳至清零序清除所有已设定数JNB P3.7,SELSA VE0; 如设置键按下跳到到点程序选数JNB P1.6,LED_L1; 显示相应键位值是多少JNB P1.2,LED_L2;JNB P1.5,LED_L3;JNB P1.3,LED_L4;JNB P1.4,LED_L5;SELOD: SETB IT0;SETB EX0;SETB IT1;SETB EX1;SETB EA; 开总中断AJMP MAIN; 返回主程序重复LED_L1: AJMP LOOKL1; 跳至显示当前键位的预置数是多少L1 LED_L2: AJMP LOOKL2; 跳至显示当前键位的预置数是多少L2 LED_L3: AJMP LOOKL3; 跳至显示当前键位的预置数是多少L3 LED_L4: AJMP LOOKL4; 跳至显示当前键位的预置数是多少L4 LED_L5: AJMP LOOKL5;ALLCLR: LJMP START0;NUMNOW: AJMP LOOKNOWNOTSLOW: ACALL LOOKLX;NOTSLOW1:ACALL DISPLAY0LCALL DLS1SETB P1.1JNB P1.1,NOTSLOW1LCALL CLEARPX; 调用不减速程序MOV SLOW4,#0FHMOV LED4,#0EH; 高位显示PXXXXAJMP MAINSELSA VE0:ACALL LOOKLX; 将当前数寄存在指定单元SELSA VE: JB P3.7,SELOD5LCALL DLS1JNB P3.7,SELOD2; 若按下大于1秒则跳LCALL SELOD3SELOD1: AJMP SELOD5SELOD2: ACALL LOOKLX;MOV LED4,#013H; 显示“-----”MOV LED3,#013H;MOV LED2,#013H;MOV LED1,#013H;MOV LED0,#013H;SELOD21: ACALL DISPLAY0SETB P3.7JNB P3.7,SELOD21LJMP SELNUM; 跳到设置预置数状态SELOD3: MOV A,LED2MOV MOVD,#011H; 如为T则返回避免在显示SET时出错CJNE A,MOVD,SELOD5AJMP SELODSELOD5: CLR P1.7CLR EA; 关总中断MOV LED4,#0DH; 设置键按下时显示"SET"MOV LED3,#05HMOV LED2,#011HMOV LED1,#012HMOV LED0,#0DHACALL DISPLAY0SETB P3.7JNB P3.7,SELOD5;ACTION: CLR P1.7ACALL DISPLAY0MOV P1,#0FFH; 置P1.0至P1.6为输入状态CLR P1.7SETB P3.7JNB P1.0,KBSET3; 执行超程计数JNB P1.1,KBSET0;RETF: JNB P1.2,KBOUT22; L2 只有L1至L4与SET\SEL键输入有效JNB P1.3,KBOUT40; L4JNB P1.4,KBOUT0; L--------rel--------NEXTJNB P1.5,KBOUT3; L3JNB P1.6,KBOUT11; L1JNB P3.7,KBSET1; SETAJMP ACTION;KBSET0: AJMP ACTION;KBSET1: MOV A,LED2MOV MOVD,#011H; 如为E则返回CJNE A,MOVD,KBSET12;AJMP ACTION;KBSET12: ACALL DISPLAY0LCALL DLS1JNB P3.7,KBSET11; 若按下大于1秒则跳AJMP ACTION;KBSET11: AJMP SELSA VE;KBSET3: MOV A,LED2MOV MOVD,#011H; 看是否为SETCJNE A,MOVD,KBOUT60; 如不为SET就执行超程计数AJMP RETF; 是SET则返回KBOUT60: LJMP KBOUT6;KBOUT0: AJMP KBOUT5;KBOUT40: AJMP KBOUT4;KBOUT11: MOV A,#05H;CJNE A,L1ORL2,KBOUT1; 如标记位不是05则跳MOV RUNOVER,#08H; 建立循环次数8次KBOUT1: MOV LED4,#0AH; 当K1按下时显示“L 1”MOV LED3,#0DHMOV LED2,#01HMOV LED1,#0DHMOV LED0,#0DHACALL DISPLAY0SETB P1.6JNB P1.6,KBOUT1; 延时消抖ACALL DISPLAY0LCALL DLS3LJMP CLEAR1; 如松开键时跳至CLEAR1置数程序KBOUT22: MOV A,#05H;CJNE A,L1ORL2,KBOUT2; 如标记位不是05则跳,(不循环计数)MOV RUNOVER,#06H; 建立循环次数6次KBOUT2: MOV LED4,#0AH; .L 2MOV LED3,#0DH; .MOV LED2,#02H; .MOV LED1,#0DHMOV LED0,#0DHACALL DISPLAY0SETB P1.2JNB P1.2,KBOUT2ACALL DISPLAY0LCALL DLS3LJMP CLEAR2KBOUT3: MOV LED4,#0AH; L 3MOV LED3,#0DHMOV LED2,#03HMOV LED1,#0DHMOV LED0,#0DHACALL DISPLAY0SETB P1.5JNB P1.5,KBOUT3ACALL DISPLAY0LCALL DLS3LJMP CLEAR3KBOUT4: MOV LED4,#0AH; L 4MOV LED3,#0DHMOV LED2,#04HMOV LED1,#0DHMOV LED0,#0DHACALL DISPLAY0SETB P1.3JNB P1.3,KBOUT4ACALL DISPLAY0LCALL DLS3LJMP CLEAR4KBOUT5: ACALL DISPLAY0SETB P1.4JNB P1.4,KBOUT5LJMP LOOKL5KBOUT6: MOV LED4,#011H; E.... 解除电机锁定并继续计数,同时高位用E显示ACALL DISPLAY0LCALL DL05SSETB P1.0JNB P1.0,KBOUT6LJMP CLEAREXACTION_X:ACALL DISPLAY0; 循环数判别CLR C; 清进位标致LCALL DLS3; 延时约1秒LCALL DLS3DJNZ RUNOVER,NEXT; 是否计完8/6次?不是则再继续循环LJMP ACTION; 跳到停机状态,等待按键处理NEXT: MOV A,#05H;CJNE A,L1ORL,GOL2; 如是L1则转L2、如是L2则转L1LJMP KBOUT1;GOL2: LJMP KBOUT2;;***************************;; 显示当前键位中的预置数;;***************************;LOOKL1: ACALL LOOKLX;MOV LED4,L1BIT4;MOV LED3,L1BIT3;MOV LED2,L1BIT2;MOV LED1,L1BIT1;AJMP LOOKALLLOOKL2: ACALL LOOKLX;MOV LED4,L2BIT4;MOV LED3,L2BIT3;MOV LED2,L2BIT2;MOV LED1,L2BIT1;AJMP LOOKALLLOOKL3: ACALL LOOKLX;MOV LED4,L3BIT4;MOV LED3,L3BIT3;MOV LED2,L3BIT2;MOV LED1,L3BIT1;AJMP LOOKALLLOOKL4: ACALL LOOKLX;MOV LED4,L4BIT4;MOV LED3,L4BIT3;MOV LED2,L4BIT2;MOV LED1,L4BIT1;AJMP LOOKALLLOOKL5: ACALL LOOKLX;ACALL DISPLAY0SETB P1.4JNB P1.4,LOOKL5MOV A,LED2MOV MOVD,#011H; 如为E则返回CJNE A,MOVD,LOOKL51;AJMP ACTION;LOOKL51: MOV L1ORL2,#05H; -REL-MOV LED4,#013H;MOV LED3,#010H;MOV LED2,#011H;MOV LED1,#0AH;MOV LED0,#013H;AJMP LOOKA1;LOOKNOW: ACALL LOOKLX;MOV LED4,TOEND4;MOV LED3,TOEND3;MOV LED2,TOEND2;MOV LED1,TOEND1;LOOKALL: MOV LED0,#010H;LOOKA1: ACALL DISPLAY0;LCALL DLS2LCALL DLS3ACALL LOOKLB;AJMP MAIN;LOOKLX: MOV MOVDA T4,LED4; 送数入寄存器MOV MOVDA T3,LED3;MOV MOVDA T2,LED2;MOV MOVDA T1,LED1;MOV MOVDA T0,LED0;CLR P1.7; 置电机停止工作RETLOOKLB: MOV LED4,MOVDA T4;MOV LED3,MOVDA T3;MOV LED2,MOVDA T2;MOV LED1,MOVDA T1;MOV LED0,MOVDA T0;RET;*****************;; 设置预置数程序;;*****************;SELNUM: MOV LED4,#013H; 显示“-----”MOV LED3,#013H;MOV LED2,#013H;MOV LED1,#013H;MOV LED0,#013H;ACALL DISPLAYLCALL DLS1ACALL LEDOFF; 调用灭灯程序MOV P1,#0FFH;MOV P3,#0FFHJNB P3.2,SELNUM1JNB P1.0,SELNUM1JNB P3.7,GOMAINAJMP SELNUMSELNUM1: ACALL CLRALL; 调用清零程序SELNUM2: ACALL DISPLAYMOV P1,#0FFH;JNB P1.6,SA VEL1;JNB P1.2,SA VEL2;JNB P1.5,SA VEL3;JNB P1.3,SA VEL4;JNB P1.4,SA VEL5;JNB P1.0,ADDONE0;JNB P1.1,DECONE0;JNB P3.7,GOMAIN;AJMP SELNUM2;ADDONE0: AJMP ADDONE;DECONE0: AJMP DECONE;GOMAIN: ACALL DISPLAY;JNB P3.7,GOMAIN;LCALL CLRALLLCALL LOOKLBACALL DISPLAYLJMP MAINSA VEL1: LCALL DLS1JB P1.6,SELNUM2; L1MOV L1BIT1,LED1; 将显示的数存到相应键位的寄存器中MOV L1BIT2,LED2; 小数不保存MOV L1BIT3,LED3;MOV L1BIT4,LED4;LJMP KBOUT1SA VEL2: LCALL DLS1JB P1.2,SELNUM2; L2MOV L2BIT1,LED1;MOV L2BIT2,LED2;MOV L2BIT3,LED3;MOV L2BIT4,LED4;LJMP KBOUT2SA VEL3: LCALL DLS1JB P1.5,SELNUM2; L3MOV L3BIT1,LED1;MOV L3BIT2,LED2;LJMP KBOUT3SA VEL4: LCALL DLS1JB P1.3,SELNUM2; L4MOV L4BIT1,LED1;MOV L4BIT2,LED2;MOV L4BIT3,LED3;MOV L4BIT4,LED4;LJMP KBOUT4SA VEL5: LCALL DLS1JB P1.4,SELNUM21LJMP LOOKA1;ADDONE: ACALL ADD1; 按键加1CLR P1.0JB P1.0,ADDONE1;LCALL DLS1;SETB P1.0JNB P1.0,ADDONE2; 若按下大于1秒则跳到快速加1程序SELNUM21:AJMP SELNUM2;ADDONE1: LCALL DISPLAYLCALL DL1SLCALL DL1SAJMP ADDONEADDONE2: ACALL ADD1; 按键快速加1程序ACALL DISPLAYLCALL DL1SLCALL DL1SLCALL DL1SSETB P1.0JNB P1.0,ADDONE2AJMP SELNUM2DECONE: ACALL DEC1; 按键减1CLR P1.1JB P1.1,DECONE1;LCALL DLS1;SETB P1.1JNB P1.1,DECONE2; 若按下大于1秒则跳AJMP SELNUM2;DECONE1: LCALL DISPLAYLCALL DL1SLCALL DL1SAJMP DECONEDECONE2: ACALL DEC1; 按键快速减1ACALL DISPLAYLCALL DL1SLCALL DL1SLCALL DL1SSETB P1.1JNB P1.1,DECONE2;AJMP SELNUM2; 退回;************;; 中断0 加1程序;;************;INTEXT0: PUSH ACC; 进栈PUSH PSW;INC LED0; 寄存单元LED0加1MOV A,LED0; 小数加1CJNE A,#0AH,INT0OUT; LED0数是否在10内0-9MOV LED0,#00H; 如到了则将LED0置0ACALL ADD1; 调用加1程序整数部分INT0OUT: POP PSW; 出栈POP ACCRETI; 中断返回;************;;中断1 减1程序;;************;INTEXT1: PUSH ACC; 进栈PUSH PSWDEC LED0; LED0减1MOV A,LED0 ;CLR C; 清进位标致CJNE A,#0FFH,INT1OUT; 判断LED0是不在0-9中MOV LED0,#09H; 不是将LED0置9ACALL DEC1; 调用减1程序INT1OUT: POP PSWPOP ACCRETI; 中断返回;*************;; 加1程序;;*************;ADD1: INC LED1; LED1加1MOV A,LED1CJNE A,#0AH,ADD1OUT; 显存单元在0-9MOV LED1,#00H; 如是10时则置零INC LED2; LED2加1MOV A,LED2CJNE A,#0AH,ADD1OUT; .MOV LED2,#00HINC LED3MOV A,LED3CJNE A,#0AH,ADD1OUT; .MOV LED3,#00HINC LED4MOV A,LED4CJNE A,#0AH,ADD1OUTMOV LED4,#00HADD1OUT: RET;**************;; 减1程序;;**************;DEC1: DEC LED1; LED1减1MOV A,LED1CLR C; 清进位标志CJNE A,#0FFH,DEC1OUT; .MOV LED1,#09H; .DEC LED2;MOV A,LED2CLR C;CJNE A,#0FFH,DEC1OUTMOV LED2,#09HDEC LED3MOV A,LED3CLR C;CJNE A,#0FFH,DEC1OUTMOV LED3,#09HDEC LED4MOV A,LED4CLR C;CJNE A,#0FFH,DEC1OUTMOV LED4,#09HDEC1OUT: RET;************;; 显示程序;;************;DISPLAY: MOV DPTR,#NUMTAB; 指针指向数据字符码MOV A,LED0MOVC A,@A+DPTR; 查表MOV P1,ASETB P1.7CLR P3.0; 选中小数位显示ACALL D1MSSETB P3.0MOV A,LED1MOVC A,@A+DPTRMOV P1,ASETB P1.7CLR P3.1; 选中个位数显示ACALL D1MSSETB P3.1MOV A,LED2MOVC A,@A+DPTRMOV P1,ASETB P1.7CLR P3.4; 选中十位数显示ACALL D1MSSETB P3.4MOV A,LED3MOVC A,@A+DPTRMOV P1,ASETB P1.7CLR P3.7; 选中百位数显示ACALL D1MSSETB P3.7MOV A,LED4MOVC A,@A+DPTRMOV P1,ASETB P1.7CLR P3.5; 选中千位数显示ACALL D1MSSETB P3.5RET;**************************************************************************;; 显示程序2 因电机控制引脚和显示输出引脚共用,所以在到预置数时再处理一次; ;**************************************************************************; DISPLAY0: MOV DPTR,#NUMTABMOV A,LED0MOVC A,@A+DPTRMOV P1,ACLR P1.7; 保持锁定电机CLR P3.0ACALL D1MSSETB P3.0MOV A,LED1MOVC A,@A+DPTRMOV P1,ACLR P1.7CLR P3.1ACALL D1MSSETB P3.1MOV A,LED2MOVC A,@A+DPTRMOV P1,ACLR P1.7CLR P3.4ACALL D1MSSETB P3.4MOV A,LED3MOVC A,@A+DPTRMOV P1,ACLR P1.7CLR P3.7ACALL D1MSSETB P3.7MOV A,LED4MOVC A,@A+DPTRMOV P1,ACLR P1.7CLR P3.5ACALL D1MSSETB P3.5RET;*************;; 显示灭灯程序;;*************;LEDOFF: MOV LED0,#0DH; 灭灯MOV LED1,#0DHMOV LED2,#0DHMOV LED3,#0DHMOV LED4,#0DHACALL DISPLAYLCALL DLS1RET;*******;;延时程序;;*******;D1MS: MOV R7,#2; 显示延时程序DJNZ R7,$RETDL1S: LCALL DL05S; 延时程序,用作按键时间的长短判断LCALL DL05SRETDL05S: MOV R5,#80HDL05S1: LCALL DISPLAY0DJNZ R5,DL05S1RETDLS1: SETB P1.7; 开机显示延时程序JNB P1.7,STAR; 如清零键按下跳至清零确认程序MOV R6,#50HDLS2: LCALL DL05SLCALL DISPLAY0DJNZ R6,DLS2RETDLS3: MOV R6,#40HDLS4: LCALL DL05SLCALL DISPLAY0DJNZ R6,DLS4RETSTAR: LJMP CLEARLODLED: MOV P1,#0FFH;MOV P3,#0FFHMOV LED4,#0DH;MOV LED3,#0DHMOV LED2,#0DHMOV LED1,#0DH MOV LED0,#0AH ACALL DISPLAY0 LCALL DLS3MOV LED1,#0AH MOV LED0,#0BH ACALL DISPLAY0 LCALL DLS1MOV LED2,#0AH MOV LED1,#0BH MOV LED0,#0CH ACALL DISPLAY0 LCALL DLS3MOV LED3,#0AH MOV LED2,#0BH MOV LED1,#0CH MOV LED0,#013H ACALL DISPLAY0 LCALL DLS3MOV LED4,#0AH; MOV LED3,#0BH; MOV LED2,#0CH; MOV LED1,#013H; MOV LED0,#0EH; LCALL DLS1 LCALL DLS1 MOV LED4,#2H; MOV LED3,#0H; MOV LED2,#0H; MOV LED1,#5H; MOV LED0,#3H; LCALL DLS1 LCALL DLS1MOV LED4,#0DH; MOV LED3,#0DH MOV LED2,#0DH MOV LED1,#0DH MOV LED0,#0EH ACALL DISPLAY0 LCALL DLS3MOV LED1,#0EH MOV LED0,#0FH ACALL DISPLAY0LCALL DLS3MOV LED2,#0EHMOV LED1,#0FHMOV LED0,#013HACALL DISPLAY0LCALL DLS3MOV LED3,#0EHMOV LED2,#0FHMOV LED1,#013HMOV LED0,#2HACALL DISPLAY0LCALL DLS3MOV LED4,#0EH;MOV LED3,#0FH;MOV LED2,#013H;MOV LED1,#2H;MOV LED0,#7H;LCALL DLS1LCALL DLS1LJMP CLEAR;*********;; 查表程序;;*********;NUMTAB: DB 03FH;0DB 006H;1DB 05BH;2DB 04FH;3DB 066H;4DB 06DH;5DB 07DH;6DB 007H;7DB 07FH;8DB 06FH;9DB 038H;LDB 030H;IDB 037H;NDB 000H;DB 073H;PDB 058H;cDB 050H;rDB 079H;EDB 078H;tDB 040H;-END21。

相关文档
最新文档