3187 磨床温度补偿系统的设计
3187 磨床温度补偿系统的设计,磨床,温度,补偿,系统,设计
河南机电高等专科学校学生毕业设计说明书中期检查表学生姓名 张 阳 学 号 070212135 指导教师 李 伟课题名称 磨床温度补偿系统的设计难易程度 偏难 适中 偏易选题情况工作量 较大 合理 较小任务书 有 无开题报告 有 无 符合规范化 的要求外文翻译质量 优 良 中 差学习态度、出勤情况 好 一般 差工作进度 快 按计划进行 慢中期工作汇报及解答问题情况优 良 中 差中期成绩评定:所在专业意见:该同学较好的执行了毕业设计计划,选题难易适中、工作量合理、学习态度端正、所做工作符合规范要求,中期检查认为成绩中等。负责人: 2010 年 3 月 30 日 河南机电高等专科学校毕业设计(论文)任务书系 部: 机电工程系 专 业: 机电一体化 学 生 姓 名 : 张 阳 学 号: 070212135 设计(论文) 题目: 磨床温度补偿系统的设计 起 迄 日 期: 2010 年 1 月 15 日 5 月 15 日 指 导 教 师: 李 伟 2010 年 1 月 15 日毕 业 设 计(论 文)任 务 书1本毕业设计(论文)课题来源及应达到的目的:1、利用产品热胀冷缩的特点设计出来的,它能根据工件自身的温度来自动调节工件框架和磨床砂轮之间位移大小,从而提高工件的精度 .2、单片机程序控制,键盘调节更准确.3、磨床温度补偿器设备简单,成本低廉,但却非常实用.这正符合了我们现代时期经济的需要.2本毕业设计(论文)课题任务的内容和要求(包括原始数据、技术要求、工作要求等):以单片机为核心,用热电偶来测量工件的温度,并把测得的温度信号转化为电压信号,经一阶低通滤波放大后,再经过线性化器件进行线性化修整,使输出的电压信号与温度信号成正比.由专用放大器放大修整后的电压信号,经 A/D 转换器进行模/数转换,然后把信号输入单片机中并把采集来的结果用 LED 数码管显示出来.我们通过键盘在单片机中预先设置标准参数 ,设置的这个参数也由 LED 数码管显示出来,并以此参数为基准,采集来的数据与这个参数相比较判断工件是热涨状态还是冷缩状态,得出结论后发出相应的脉冲来调节工件框架与砂轮之间的位移大小所在专业审查意见:负责人: 年 月 日系部意见:系领导: 年 月 日河南机电高等专科学校07 级学生毕业设计说明书选题、审题表系别 机电工程系 姓 名 李 伟高级 中级专业 机电一体化技术选题教师专业技术职 务 申报课题名称 磨床温度补偿系统的设计设计 论文 其它 生产实践 科研 实验室建设 自拟课题类别课题来源课题简介绝大多数的物体都有热胀冷缩这一特性,而在磨床生产过程中,由于磨具的高速旋转和被加工产品的来回移动,双方在接触的过程中产生大量的热,使被加工产品受热膨胀,导致被加工产品的生产不精确,从而产生了次品废品.这就需要我们设计一种能根据被加工产品的温度来控制磨床砂轮进给的自动装置,来提高生产的精确度.这就是我们要设计的磨床温度补偿器.设计说明书要 求(包括应具备的条件)以单片机为核心,用热电偶来测量工件的温度,并把测得的温度信号转化为电压信号,经一阶低通滤波放大后,再经过线性化器件进行线性化修整,使输出的电压信号与温度信号成正比.由专用放大器放大修整后的电压信号,经 A/D 转换器进行模/数转换,然后把信号输入单片机中并把采集来的结果用 LED 数码管显示出来.我们通过键盘在单片机中预先设置标准参数 ,设置的这个参数也由 LED 数码管显示出来,并以此参数为基准,采集来的数据与这个参数相比较判断工件是热涨状态还是冷缩状态,得出结论后发出相应的脉冲来调节工件框架与砂轮之间的位移大小大 适中 小 难 一般 易 是 否课题预计工作量大小 课题预计难易程度 是否是新拟课题 所在专业审定意见:负责人(签名): 年 月 日注:1该表作为学生毕业设计说明书课题申报时专用,由选题教师填写,经所在专业有关人员讨论,负责人签名后生效;2该表的填写只针对 1 名学生做毕业设计说明书时选择使用,如同一课题由 2 名及 2 名以上同学选择,应在申报课题的名称上加以区别(加副标题),并且在“设计说明书要求”一栏中加以体现;3“课题简介”一栏:主要指研究设计该课题的背景介绍及目的、主要内容、意义;4“设计说明书要求(包括应具备的条件)”一栏:主要指本课题技术方面的要求,而“条件”指从事该课题必须应具备的基本条件(如仪器设备、场地、文献资料经费等)。5课题一旦被学生选定,此表须放在学生“毕业设计说明书资料袋”中存档。河南机电高等专科学校毕 业 设 计 说 明 书论文题目:磨床温度补偿系统的设计系 部 机电工程系 专 业 机电一体化技术班 级 机电 071 班 学生姓名 张 阳 学 号 070212135 指导教师 李 伟 2010 年 5 月 15 日河南机电高等专科学校毕业设计说明书摘 要绝大多数的物体都有热胀冷缩这一特性,而在磨床生产过程中,由于磨具的高速旋转和被加工产品的来回移动,双方在接触的过程中产生大量的热,使被加工产品受热膨胀,导致被加工产品的生产不精确,从而产生了次品废品.这就需要我们设计一种能根据被加工产品的温度来控制磨床砂轮进给的自动装置,来提高生产的精确度.这就是我们要设计的磨床温度补偿器. 磨床温度补偿系统的开发和研究,有着重大的社会效益和经济效益。随着工业的发展,科技的进步,改革步伐进一步加大,各个企业为了适应市场的变化,都在不断的进行着技术改革。同时,国际国内市场的积累竞争都不断的要求我们提高产品的质量,但为了保证我们的利益,各生产厂家都在谋求以最小的投入换取最大的收益。磨床温度补偿系统就是为了适应这一变化而提出的研究课题。关键词: 温度补偿,硬件设计,软件编程河南机电高等专科学校毕业设计说明书AbstractThe objects of the great majority all have the hot bulge the cold Contract this chara -cteristic, but in the grinding machine production line, revolve and is process the return am -bulation of the product because of the high speed that whet to have, the both parties produ -ce a great deal of heat in contiguous process, make is process the product is subjected to t -he hot inflation, cause drive process the production of the product not accurate, this produ -ced an article to discard the article.This need we design a kind of ability according to is pr -ocess product of temperature to control the grinding machine emery wheel enter to of auto device, raise the accuracy of the production.This is the grinding machine temperature that we want to design to compensate the machine. The grinding machine temperature compen -sates the development and researches of the system, having the important social performa -nce and economic performances.Along with the development, technological advance of the industry, the reform step further enlargement, each business enterprise for the sake of orientation the variety of the market, all at carry on the technique reform continuously.At the same time, backlog competitions of the international local market all request the quan -tity that we raise the product continuously, but for guaranteeing our benefits, each produc -tion factory houses are all at seek to exchange the biggest income with the minimum dev -otion.In expiation of system of the grinding machine temperature be for the sake of the research topic that adapt this variety but put forward.Keywords: The temperature compensate,The hardware design,software programming 毕业设计档案清单序号 内容 数量 备注1 毕业设计选题、审题表 一份 1 页2 毕业设计任务书 一份 2 页3 中期检查表 一份 1 页4 毕业设计说明书 一份 36 页5 毕业设计图 一份 A26 毕业设计评语 一份 2 页河南机电高等专科学校毕业设计说明书目 录绪论11 磨床温度补偿器的设计原理和技术要求21.1 磨床温度补偿器的设计思想和原理21.2 磨床温度补偿器的技术要求32 磨床温度补偿器的硬件设计42.1 热电偶的选择42.2 线性化器件的选择52.3 放大器的选择62.4 A/D 转化器的选择62.4.1 转换器 AD574A 简介72.4.2 AD574A 在独立运行模式下的电路设计与工作原理82.4.3 设计中应注意的问题102.5 单片机的选择102.5.1 主要特性102.5.2 管脚说明112.5.3 芯片擦除122.5.4 各主要部分电路简述 132.6 步进电机起动及加/减速控制方案152.7 并行 I/O 口的扩展 18 3 磨床温度补偿器的软件支持和编程193.1 显示子程序设计193.2 键盘设计204 结论 21致谢 22附录 23 参考文献36 河南机电高等专科学校毕业设计说明书1磨床温度补偿系统的设计绪 论磨床温度补偿系统的开发和研究,有着重大的社会效益和经济效益。随着工业的发展,科技的进步,改革步伐进一步加大,各个企业为了适应市场的变化,都在不断的进行着技术改革。同时,国际国内市场的积累竞争都不断的要求我们提高产品的质量,但为了保证我们的利益,各生产厂家都在谋求以最小的投入换取最大的收益。磨床温度补偿系统就是为了适应这一变化而提出的研究课题。我们都知道,绝大多数的物体都有热胀冷缩这一特性,而在磨床生产过程中,由于磨具的高速旋转和被加工产品的来回移动,双方在接触的过程中产生大量的热,使被加工产品受热膨胀,导致被加工产品的生产不精确,从而产生了次品废品.这就需要我们设计一种能根据被加工产品的温度来控制磨床砂轮进给的自动装置,来提高生产的精确度.这就是我们要设计的磨床温度补偿器.磨床温度补偿器是利用产品热胀冷缩的特点设计出来的,它能根据工件自身的温度来自动调节工件框架和磨床砂轮之间位移大小,从而提高工件的精度.我们在此设定一个参数, 当然这个参数是我们在实践经验中总结出来的工件温度的标准数字,然后我们测量工件温度来与这个参数相比较,看工件是热涨还是冷缩, 再把结果转换成脉冲,根据脉冲大小来控制磨床砂轮与工件框架之间的位移大小,从而达到提高工件精度的目的.从经济方面来看,磨床温度补偿器设备简单,成本低廉,但却非常实用.这一先正符合了我们现代时常经济的需要.本次毕业设计是在李老师的指导下, 用我们自己的设计思想, 在参考大量有关资料的基础上完成的. 但是由于时间有限和我们的水平有限,在设计过程中缺点和错误在所难免。恳请各位老师和同学予以批评指正。21 磨床温度补偿器的设计原理和技术要求1.1 磨床温度补偿器的设计思想和原理我们都知道,绝大多数的物体都有热胀冷缩这一特性,而在磨床生产过程中,由于磨具的高速旋转和工件的来回移动,双方在接触的过程中产生大量的热,使被加工工件受热膨胀,导致工件的生产不精确,从而产生了次品废品.这就需要我们设计一种能根据工件的温度来控制磨床砂轮进给的自动装置,来提高生产的精确度.这就是我们要设计的磨床温度补偿器.磨床温度补偿器是利用产品热胀冷缩的特点设计出来的,它能根据工件自身的温度来自动调节工件框架和磨床砂轮之间位移大小,从而提高工件的精度.我们在此设定一个参数, 当然这个参数是我们在实践经验中总结出来的工件温度的标准数字,然后我们测量工件温度来与这个参数相比较,看工件是热涨还是冷缩, 再把结果转换成脉冲,根据脉冲大小来控制磨床砂轮与工件框架之间的位移大小,从而达到提高工件精度的目的.在此,我们以单片机为核心,用热电偶来测量工件的温度,并把测得的温度信号转化为电压信号,经一阶低通滤波放大后,再经过线性化器件进行线性化修整,使输出的电压信号与温度信号成正比.由专用放大器放大修整后的电压信号,经 A/D 转换器进行模/数转换,然后把信号输入单片机中并把采集来的结果用 LED 数码管显示出来.我们通过键盘在单片机中预先设置标准参数 ,设置的这个参数也由 LED 数码管显示出来,并以此参数为基准,采集来的数据与这个参数相比较判断工件是热涨状态还是冷缩状态,得出结论后发出相应的脉冲来调节工件框架与砂轮之间的位移大小.系统流程图如下 3传 感 器低通滤波放大 线 性 化 调 整 放 大单 片 机键 盘A/D转换器数码显示器控制步进电机图 1-1 系统流程图1.2 磨床温度补偿器的技术要求磨床温度补偿器其技术性能指标如下:1、 测温范围:0-100 ;oC2、 分辨率为 0.2 ,即 A/D 转换器转换后的二进制数据的最低位每变化一次 代表温度变化 0.2 o3、 系统测温精度 1%FS(满刻度);4、 显示方式:LED 数码管显示;5、 预置参数设置方式:键盘-可以随时设置预定基准参数;6、 转换速率:2030 次 /秒42 磨床温度补偿器的硬件设计2.1 热电偶的选择热电偶是根据热电效应制成的一种测温元件。它结构简单,坚固耐用,使用方便,精度高,测量范围宽,便于远距离、多点、集中测量和自动控制,是应用很广泛的一种温度计。如果取两根不同材料的导体(或半导体)a 和 b 组成一个闭合回路,当两接点温度 T 和 To 不同时,则在该回路中就会产生电动势,这种现象称为热电效应,该电动势称为热电势。这两种不同材料的导体或半导体的组合称为热电偶,导体 A 和 B 称为热电极。两个接点一个称为热端,又称为测量端或工作端,测温时将它置于被测介质中;另一个称冷端,又称为参考端或自由端,它通过导线与显示仪表相连。所产生的热电势有两部分组成:温差电势和接触电势。接触电势是由于两种不同导体的自由电子密度不同而在接触处形成的电动势,其数值取决于两种不同导体的性质和接触点的温度。温差电势是因为两种不同金属的自由电子密度不同,当两种金属接触时在两种金属的交界处,就会因电子密度不同而产生电子扩散,扩散结果在两金属接触面两侧形成静电场即接触电势差。这种接触电势差仅与两金属的材料和接触点的温度有关,温度愈高,金属中自由电子就越活跃,致使接触处所产生的电场强度增加,接触面电动势也相应增高。由此可构成热电偶测温计。几种常用的热电偶的特性数据见下表:表 2-1 常用热电偶特性表注最高使用温度/热电偶名称 型号 分度号100的热电势/mV 长期 短期5铂铑 10-铂镍铬-康铜镍铬-镍硅铜-康铜WRLBWREAWRNWRCKLB-3EA-2EU-2CK0.643 6.954.0954.29130060090020016009001200300由于铜-康铜热电偶在低温下具有较好的稳定性,所以在低温技术,它应用较多,测温范围广,精度高,便于远距离、集中测量和自动控制。目前在 0-100范围内铜-康铜热电偶已经被定为三级标准热电偶,用于检定低温测量仪表的精度,它的误差不超过0.1。它的有关计算如下:热电偶的热电势与它的接触电势和温差电势有关,也可以说是由它们所决定。热电偶的总热电势为接触电势与温差电势的代数和。即Eab(T,To)= Eab(T)+Eb(T,To)- Eab(To)-Ea(T,To)在总电势中,温差电势比接触电势小很多,可忽略不计,则热电偶的热电势表示为 : Eab(T,To)= Eab(T)- Eab(To)= (KT/e)lnNat/Nbt - (KTo/e)lnNato/Nbto从上式中可以看到,若热电极 a 与热电极 b 为同一材料,那么 Na=Nb,则Eab(T,To)=0。若热电偶两端处于同一温度底下,T=T0,T-T0=0,则 Eab(T,To)=0。因此,热电势存在必须具备两个条件即两种不同的金属材料组成的热电偶,它的两端存在温差。对于已选定的热电偶,当参考端温度 To 恒定时,Eab(To)=C 为常数,则总的热电动势就只与温度成单值函数关系,即Eab(T,To)= Eab(T)- C=f(T)从上式可以看到,热电势是 T 和 T0 的温度函数的差,而不是温度差的函数,这是因为,热电势是非线性的。热电偶热电势的大小,只与导体 a、b 的材质有关,与冷、热端的温度有关,而与导体的粗细、长短以及两导体的接触面积无关。由热电偶的几个定则可知:热电偶的总热电势常用表达式为:Eab(T,Tn,To)= Eab(T,Tn)+ Eab(T,To)由上面这一表达式就为热电偶回路中应用补偿导线提供了理论依据。2.2 线性化器件的选择6线性化模块有很多本设计中我们采用线性化模块 SG204J11SG204J11 测量范围 0-750测量精度 1.5%FS输出信号 1mv/工作环境温度:-30-60供电电源:5-15V由其特性可看出 SG204J11 较为适用2.3 放大器的选择通常热电偶的输出都是比较微弱的小信号,需要对这个信号进行放大处理,然后再接入 A/D 转换器中,在本设计中我们采用 INA114 仪用放大器,它尺寸小、精度高、价格低廉,可用于电桥、热电偶、数据采集、RTD 传感器和医疗仪器等。INA114 只需一个外部电阻就可以设置 1 至 10000 之间的任意增益值,内部输入保护能够长期耐受40V,失调电压低(50V) ,漂移小(0.25V/) ,共模抑制比高(G=1000 时为 50dB) ,用激光进行调整,可以在2.25V 的电压下工作,使用电池(组)或 5V 单电源系统,静态电流最大为 3mA。INA114 采用 8 引脚塑料封装或SOL-16 表面封装贴件,使用环境温度为-40+85。其主要电器参数如下:电源电压:18V输入电压范围:40V工作温度:-40+125储存温度:-40+125节点温度:+150引脚温度(软焊,10s):+3007图 2-1 放大器内部电路图其有关计算如下INA114 放大器的增益的计算是通过外接电阻 Rg 来实现的。计算公式如下所列:150/gGkR2.4 A/D 转换器的选择设计中采用12位的AD574A作为A/D转换器,下面对器件、变换电路设计及其工作原理进行详细介绍。2.4.1 转换器AD574A简介AD574A 是一种单片高速 12 位逐次比较型 A/D 转换器,AD574A 内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的 A/D 转换器,AD574A 是美国 AD 公司设计生产的逐次逼近式模数转换器,4 种可选电压范围入:0+10V , 0+20, -5+5V 和-10+10V ,12 位或 8 位可选输出, 单一+5V 供电。他采用低功耗 COMS 工艺和新的电容阵列技术,包含有内部时钟、微处理器接口、三态输出缓冲器以及若干组内部可调阻抗,功耗最大为 120mW,转换时 AD574A 有 5 个输入控制信号(12/8, ,A0, 和 CE),可以与大多数微处理器和其他数字系统直接CS/R相连接。 AD574A 管脚排列及功能说明 : (1). Pin1(+V)+5V 电源输入端。 (2). Pin2( 12/8)数据模式选择端,当为高电平时,输出数据为 12 位;当为 低电平时,数据是作为两个 8 位字输出 8(3). Pin3 ( )片选端 .片选信号,低电平有效。 CS(4). Pin4(A0)字节地址短周期控制端,与端用来控制启动转换的方式和数据输出格式.须注意的是此端 TTL 电平不能直接+5V 或 0V 连接。 (5). Pin5( )读出或转换控制信号,用于控制 AD574A 是转换还是读出.当/R为低电平时,启动 AD 转换;当为高电平时,将转换结果读出。 (6). Pin6(CE)使能端。CE:芯片允许信号,高电平有效。 (7). Pin7(VCC)正电源输入端,输入+15V 电源。 (8). Pin8(REF OUT)10V 基准电源电压输出端。 (9). Pin9(AGND)模拟地端。 (10). Pin10(REF IN)基准电源电压输入端。 (11). Pin(VEE)负电源输入端,输入-15V 电源。 (12). Pin1(V+)正电源输入端,输入+15V 电源。 (13). Pin13(10V IN)10V 量程模拟电压输入端。 (14). Pin14(20V IN)20V 量程模拟电压输入端。 (15). Pin15(DGND)数字地端。 (16). Pin16Pin27(DB0DB11)12 条数据总线。通过这 12 条数据总线向外输出 A/D 转换数据。 (17). Pin28(STS)工作状态指示信号端,STS=0 时,表示转换器正处于转换状态,当 STS=1 时,说明 A/D 转换结束,通过此信号可以判别 A/D 转换器的工作状态,作为单片机的中断或查询信号之用。控制管脚功能描述: AD574A的 CE 和 A0 对其工作状态的控制过程。在 CE=1, =0 同时满足时(只有 和 CECSCS同时有效),AD574A 才会正常工作,在 AD574A 处于工作状态时,当 STS=1 时 A/D 转换,当 STS =1 时进行数据读出。12/8 和 A0 端用来控制启动转换的方式和数据输出格式。A0=0 时,启动的是按完整 12 位数据方式进行的。当 A0=1 时,按 8 位 A/D 转换方式进行。当 STS=1,也即当 AD574A 处于数据状态时,A0 和 12/8 控制数据输出状态的格式。当 12/8=1 时,数据以 12 位并行输出,当 12/8=0 时,数据以 8 位分两次输出。而当 A0=0 时,输出转换数据的高 8 位,A0=1 时输出 A/D 转换数据的低 4位,这四位占一个字节的高半字节,低半字节补零。 9AD574A 可以在两种模式下工作: 一种是工作过程由微处理器控制,即所谓非独立方式; 一种是独立运行工作模式, 即通过 输入触发信号的采样、保持和转换。在/RC磨床温度补偿器系统设计中, 采用的是独立运行模式, 其转换过程只受 信号控/RC制。2.4.2 AD574A在独立运行模式下的电路设计与工作原理选择0+10V 单极性输入, 12位输出, 独立运行模式, AD574A电路设计见总接线原理图所示。图2-2中,CE、12/8接高状态; ,A0接低状态, 接转换启动脉冲输CS/RC入。输出状态信号STATUS连接单片机的P3.1端,输出信号则与锁存器输入相连,锁存器的输出可直接连接到微处理器的数据总线。将12/8 接高电平,也就是要使12数据同时输出。端口12(双向调节)与端口9 (模拟公共地)相连,以实现单向操作。如果要实现双向操作,可将端口12与端口8(+215V参考)相连或与外部参考电压相连。根据状态真值表,AD574A的4个逻辑状态CE, , 和STATUS,当CE为高, 为低,CS/RCS为下降沿,STATUS为高同时出现时, AD574A开始启动转换,此时,输出数据/RC总线处于高阻状态。当CE为高, 为低 ,为 高,STATUS为低时,根据12/8和A0S/的逻辑状态,分两种情况将有效的数据放到数据总线上。当12/8信号线为高电平时,12位输出线(DB0DB11) 同时有效,A0的变化不起作用;当12/8信号线为低电平时, 数据以2个8位字节的形式输出,A0为低电平时,输出高8位有效,当A0为高电平时,输出数据的低4位。AD574A 的设计特点保证了A0的可随时输入,并且不会对转换器造成伤害。8个数据端也可以不同时有效。A0一般由地址线中不重要的位来驱动,输出数据可以存到2个具有连续地址的存储单元中。图2-2,图2-3所示为独立工作模式下, 信号的时序图。/RC10图2-2 R/C低电平时序图图2-3 R/C高电平时序图图2-2 中, 端出现一个低电平时,三态输出门处于高阻状态,转换完毕时, /RC才允许外部器件读取结果。图2-3 显示,当 端出现一个高电平时,前次转换的结果可以从输出端读出。/的下降沿启动新的转换,然后三态输出门重将处于高阻状态,直到下一个 低/R /RC电平出现为止。 信号的下跳沿启动开始转换,在 有一正脉冲且状态标志为/RC/RC高时完成转换,然后可在STATUS负脉冲出现时完成输出,或由 正脉冲完成输出。/在两种情况下,为了使A/D可靠实现采样保持转换, 脉冲的低电平保持时间必须超过25ns。转换完成之后,由状态信号STATUS 进行锁定;锁定输出接微处理器的数据总线,并由微处理器读入内部存储器进行处理。2.4.3 设计中应注意的问题AD574A在使用中有一些需要注意的问题:AD574A的模拟地(9脚)和数字地(15脚)在内部没有连接,在印制板设计中,应用尽可能短的线。分别将这两端与公共地连接起来,将9 脚和模拟地连接,将15脚和数字地连接。如果一个系统的公共地不能明确确定,那么需要将9脚和15脚在AD574A处连接起来,用1根较宽的印制板线将连起来的线引到系统地上。这样可以阻止引起来自输入信号的供电电源的公共返回部分的电压跳变。2.5 单片机的选择AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位微处理器,俗称单片机。是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的器件,片内含4KB可反复擦写的FLASH只读程序存储11器ROM和128B的随机存取数据存储器RAM。该器件采用ATMEL公司的高密度,非易失存储制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,功能强大,灵活应用于各种控制领域。2.5.1 主要特性 与 MCS-51 产品指令系统完全兼容 4KB 可重复擦写 FLASH 闪速烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8B 内部 RAM 32 个可编程 I/O 口线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2.5.2 管脚说明:VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在 FLASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验12时,P1 口作为低八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(定时计数器 0 外部输入)P3.5 T1(定时计数器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行13MOVX,MOVC 指令时 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.5.3 芯片擦除整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE管脚处于低电平 10ms 来完成。在芯片擦除操作中,代码阵列全被写“1” 且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作,但 RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.5.4 各主要部分电路简述冷端补偿电路:根据热电偶测温原理,只有当热电偶的参考端的温度保持不变时,热电动势才是被测温度的单值函数。我们经常使用的分度表及显示仪表,都是以热电偶参考端的温度为 0为先决条件的。但是在实际使用中,因热电偶长度受到一定限制,参考端温度直接受到被测介质与环境温度的影响,不仅难于保持 0,而且往往是波动的,无法进行参考端温度修正。因此,要使变化很大的参考端温度恒定下来,通常采用补偿导线法和参考端温度恒定法。通常,用补偿导线将热电偶的参考端引至显示仪表,而显示仪表放在恒温或温度波动较小的地方。采用某两种导线组成的热电偶补偿导线,在一定温度范围内14(0100)具有与所连接的热电偶相同的热电性能。在本设计中,我们采用补偿电桥法,即利用不平衡电桥进行补偿。 常用的参比端补偿器采用的是这种方法。补偿器为一不平衡电桥,电路如图所示。其中R1 、R2 、R3 为温度系数很小的精密电阻。RCu为铜电阻,它与热电偶的参比端处于同一温度t0 的环境中,当因参比端t0 变化而引起电桥输出电压的变化量与热电偶的变化量相等时,即达到了热电偶参比端温度的完全补偿。当补偿器桥路平衡时,R1=R2=R3=RCu=1,E=4V ,平衡温度t0 通常取20或0。补偿器限流电阻Rs 的大小根据热电偶分度号和温度补偿范围(t0t0)来定。参比端补偿器补偿范围通常为050 ,只在t0与t0两点时才达到全补偿,而在其他温度点只是近似补偿。图2-4 补偿电桥线性化电路:在工业参数测量过程中,需要将测量结果进行线性化显示。通常人们希望测量仪表的结果与被测参数之间呈线性关系,这样对仪表的制造、调校及使用都带来了极大的便利,同时也有利于的分析和处理。但是,在利用传感器将各种物理量变换成电量的过程中,许多传感器的输出与被测物理量之间存在着不同程度的非线性关系。把非线性输入信号转换为线性化信号要采取各种补偿措施。对仪表进行非线性补偿 , 主要做两方面的工作 :根据已知的传感器非线性特性求得所需要的线性化器的非线性特性。非线性特殊的求取可用数学解析表达式 ,也可用图解法求得。根据所求得的线性化器的非线性特性 , 采用非线性补偿电路来实现非线性补偿 , 而对非线性曲线的处理一般都采用折线逼近法。15数据采集电路:数据采集部分由 A/D 转换器 AD574A、地址锁存器 74LS373、单片机 AT89C51 三部分组成。通过改变 A/D 转换器 AD574A 的引脚 8、引脚 10、引脚 12 的外接方式电路,可使 A/D 转换器 AD574A 进行单极性和双极性模拟信号的转换。本设计中采用的是单极性转换电路,可以实现输入信号 010V 或 020V 的转换,其系统模拟信号的地线与引脚 9 相连。原因是 A/D 转换器 AD574A 内部模拟地与数字地没有相连。这样做是为了使 A/D 转换器 AD574A 地线的接触电阻尽可能的小。由于 A/D 转换器 AD574A 片内部有时钟,故无须外加时钟信号。本设计中使用的是单极性输入方式,可对 010V 或 020V 的模拟信号转换。设计中使用的是对010V 的模拟输入信号的转换。转换后的结果的高 8 位从其引脚 20引脚 27 输出,低 4 位从引脚 16引脚 19 输出,并直接和单片机的数据总线相连。设计中采用数据左对齐的原则,引脚 19引脚 16 应接单片机数据总线的高半字节。温度模拟信号输入到 A/D 转换器 AD574A。单片机 AT89C51 控制 A/D 转换器AD574A 的转换。在允许 A/D 转换器 AD574A 转换时,AD574A 进行模拟到数字信号的转换。转换结束时,AD574A 管脚中的 STS 发出一个信号(正脉冲) ,向单片机AT89C51 请求查询,请求单片机 AT89C51 读取 A/D 转换器 AD574A 转换的数据。为了实现启动 A/D 转换和转换结果的读出,A/D 转换器 AD574A 的片选 信号CS由地址总线的次低位 Q1 提供,在读写时,Q1 设置为低电平;A/D 转换器 AD574A 的CE 信号直接由+5V 电源提供;A/D 转换器 AD574A 的 由单片机的 RD 和地址锁存/RC器的 Q7 经过一与非门控制。可见在读写时,Q7 亦应为低电平。输出状态信号 STS接单片机的 P3.1 端,以供单片机查询,判断 A/D 转换是否结束。12/8 端直接接地,A/D 转换器 AD574A 的 A0 由地址总线的最低位 Q0 控制,以实现 A/D 全 12 位数据转换,并将 12 位数据分两次送入数据总线上。键盘输入电路:采样电路由按键和单片机 AT89C51 组成。键盘输入电路,键盘设有 3 只键盘。其中,K1 键盘为加键盘,K2 为减键盘,K3 为参数设置确定键盘。K1、K2 是为了设计标准参数而设的;K3 键盘是针对 K1、K2 键盘而设置的。当用 K1 或 K2 设置标准参数后,须按下 K3 确定新设置的参数。只有这样,单片机 AT89C51 系统才接受新设16置的参数。否则,新设置的参数是无效的。显示电路显示器电路主要由 7 段 LED 数码管、移位寄存器 74LS614 组成。显示系统采用串行静态扫描显示方式。由软件编程将二进制数据转换成 BCD 码,用移位寄存器74LS164 输出。显示器只用 7 只 LED 数码管组成。其中,3 只用来显示由键盘设置的标准参数。另外 4 只 LED 数码管用来显示单片机 AT89C51 采集的数据所表示的温度值。其显示程序见附录。2.6 步进电机起动及加/减速控制方案步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。本设计采用永磁式步进电机。步进电动机的最高起动频率(突跳频率)一般为 0.1KHz 到 4KHz,而最高运行频率则可以达到 N*102 KHz。以超过最高起动频率的频率直接起动,将出现失步现象,甚至无法起动。较为理想的起动曲线,应是按指数规律起动。但实际应用对起动段的处理可采用按直线拟合的方法,即阶梯升速法。可按两种情况处理,已知突跳频率则按突跳频率分段起动,分段数 n=f/fq。未知突跳频率,则按段拟合至给定的起动频率,每段频率的递增量(后称阶梯频率)f=f/8,即采用 8 段拟合。在运行控制过程中,将起始的速度(频率)分为 n 份作为阶梯频率,采用阶梯升速法将速度连续升到所需要速度,然后锁定,按预置的曲线运行。如图 2-5 所示。图 2-5 阶梯升速起动17用单片机实现步进电机的加/减速控制,实际上就是控制发脉冲的频率,升速时,使脉冲频率增高,减速时相反。如果使用定时中断来控制电机的速度,加减速控制就是不断改变定时器的初值。速度从 V1V2 如果是线性增加,则按给定的斜率升/降速;如果是突变,则按阶梯升速法处理。在此过程中要处理好两个问题: 速度转换时间应尽量短;为了缩短速度转换的时间,可以采用建立数据表的方法。,结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据表,并通过转换程序将其转换为定时初值表。通过在不同的阶段调用相应的定时初值,控制电机的运行。定时初值的计算是在定时中断外实现的,并不占用中断时间,保证电机的高速运行。 保证控制速度的精确性;要从一个速度准确达到另外一个速度,就要建立一个校验机制,以防超过或未达到所需速度。 按上面的分析,改变转速,只要改变线圈轮流变低电平的时间即可达到要求,这个时间不应采用延时来实现,因为会影响到其他功能的实现。这里以定时的方式来实现。下面首先计算一下定时时间。表 2-2 35BY48S03 型步机电机参数型号 步距角 相数 电压 电流 电阻 最大静距 定位转距 转动惯量35BY48S03 7.5 3 12 0.26 47 180 65 2.5要求开机后,电机不转,按下启动键,电机旋转,速度为 25 转/分,按下加 1键,速度增加,按下减 1 键,速度降低,最高速度为 100 转/分,最低转带为 25 转/分,按下停止键,电机停转。速度值要求在数码管上显示出来,因步进电机最低转速为 25 转/分,而上述步进电机的步距角为 7.5,即每 48 个脉冲为 1 周,即在最低转速时,要求为 1200 脉冲/分,相当于 50ms/脉冲。而在最高转速时,要求为 100 转/分,即 48000 脉冲/分,相当于 12.5ms/脉冲。可以列出下表表 2-3 步进电机转速与定时器定时常数关系速度 单步时间(us) TH1 TL1 实际定时(us)25 50000 76 0 49996.81826 48077 82 236 48074.1827 46296 89 86 46292.6128 44643 95 73 44640.155 100 12500 211 0 12499.2表中不仅计算出了 TH1 和 TL1,而且还计算出了在这个定时常数下,真实的定时时间,可以根据这个计算值来估算真实速度与理论速度的误差值。表中 TH1 和 TL1 是根据定时时间算出来的定时初值,这里用到的晶振是 11.0592M。有了上述表格,程序就不难实现了,使用定时/计数器 T1 为定时器,定时时间到后切换输出脚即可。2.7 并行 I/O 口的扩展 并行 I/O 口的扩展采用 8155 芯片,是一种可编程接口,此接口是指其功能可由计算机的指令来加以改变的接口芯片,可编程 I/O 接口芯片可以通过编程来执行多种不同点接口功能,因此使用十分灵活。8155 片内资源有:(1)256 字节的静态 RAM(2)两个可编程的 8 位并行 I/O 口 PA,PB(3)一个可编程的 6 位并行 I/O 口 PC(4)一个可编程的 14 位定时/计数器作片外 RAM 使用:当 CE=0,IO/M=0 时,8155 只能做片外 RAM 使用,共 256 B。其寻址范围由以及AD0AD7 的接法决定,这和前面讲到的片外 RAM 扩展时讨论的完全相同。当系统同时扩展片外 RAM 芯片时,要注意二者的统一编址。对这 256 B RAM 的操作使用片外 RAM 的读/ 写指令 “MOVX”。 作扩展 I/O 用:19当 CE=0,IO/M=1 时,此时可以对 8155 片内 3 个 I/O 端口以及命令/ 状态寄存器和定时/计数器进行操作。与 I/O 端口和计数器使用有关的内部寄存器共有 6 个,需要三位地址来区分。3 磨床温度补偿器的软件支持和编程3.1 显示子程序设计LED 数码管显示方式有两种方式:一种是动态显示方式;另一种是静态显示方式。动态显示方式时,LED 数码管的显示的数字是动态的,即单个的一个一个的显示出来,这不符合我们的需要。另外,动态显示时,单片机的 CPU 必须是一直得工作着。否则,LED 数码管在动态显示的情况下根本不显示数据,亦即 LED 数码管不处于工作状态,也就是说此时显示不出温度数值。由于以上这两种原因,我们的选择是使用静态显示的方式。使用静态显示方式可以弥补动态显示的两种情形的不足之处。由于单片机 AT89C51 的串行口不作通信使用时,即使在做通信使用,我们也可以用别的 I/O 口进行数据的传输。如果本次设计使用的不是串行通信口,而是别的I/O 口,这样的做法,一样能显示出要显示的数据,其效果是和使用串行通信专用口的效果是一样的。这样一来,就不必拘泥于非使用串行通信口不可的做法。20具体的做法是,用移位寄存器 74LS164 来驱动 LED 数码管进行静态显示。这样,就可以充分利用串行口,而将别的并行 I/O 口用到最需要的地方去;同时软件程序不需要对 LED 数码管显示器进行扫描。这样一来,单片机就有足够的时间去处理其它的事情。这种方法用于显示位数较少、显示亮度大的地方,效果较好。串行静态驱动方式的 LED 数码管显示电路原理如附录中的原理图中所示。它与串行键盘输入类似,可以使用 74LS164 这种移位寄存器进行串行输入并行输出的 8 位移位寄存器作为 LED 数码管的段选选通端。每一位 LED 数码管用一片74LS164,LED 数码管的公共端阳极连接在一起并接高电平。七片 74LS164 串联起来,即可构成一个七位的八段 LED 数码管显示器。单片机 AT89C51 的 RXD 接最高为的移位寄存器 74LS164 的串行输入引脚(Pin1,2 即 A,B 端) ,单片机的 TXD 接各位移位寄存器 74LS164 的外部时钟引脚(Pin8) 。七位移位寄存器 74LS164 从高位到低位依次串接,低的一位的并行输出的最低位接相邻的高位的串行输入引脚。各位 74LS164 的并行输出脚接相应位的 LED数码管的段驱动输入端,其相关的程序在附录中。3.2 键盘设计由温度补偿器的作用可知,温度补偿器必须得设定功能键,以满足不同工件的属性的需要,同时还为了增大温度补偿器的应用范围。因此设定功能键是非常必要的。本设计中的功能键相对较少,且功能简单,故不需要使用矩阵式键盘。只需使用独立键盘即可满足要求。功能键一共设有三个:其中,K1 键盘是为实现加键盘功能而设置的。其具体设计方法是:在参数设定过程中,存在从某一确定的参数加上某一数值后才是我们所需要设定的参数。这样,设置加键盘这一功能是十分必要的。当主程序确定是 K1 键盘按下时,那么该键盘未按下之前,LED 数码管所显示的数据立即加上“1” 。并且经过 2s 的时间延时后,再判断该键盘是否还在按下。若此时没有按下,那么停止加功能。否则,则进行快速加“1”这一功能中去。连续快速加“1”,此功能是为实现快速调整参数即粗调功能。因为如当前的参数比要设定的参数小的多的多,那么执行此种快速加“1”进行粗调,能够很快地实现目的参数的设定。K2 键盘是为实现减键盘功能而设置的。其具体设计方法为:在参数设定过程中,21由于存在从某一个确定的参数上减去某一定的数值后,才是我们所将要设定的参数。由此看来,设减功能这一键盘也是十分必要的。当主程序确定有实现减功能的键盘K2 按下时,那么首先进行减“1”这一功能。但是减“1”只进行一次操作,就立即进入 2s 延时的子程序,经过 2s 的时间延时后,再次判断是否该键还在按下。若此时该键盘 K2 没有被按下,则只进行一次减“1”操作就结束了。否则,就立即进入快速减“1”这一操作功能。连续快速减“1” ,此功能是为实现快速调整参数即粗调功能。因为如当前的参数比要设定的参数大的多的多,那么执行此种快速减“1”进行粗调,能够很快地实现目的参数的设定。K3 键盘的设置,是针对 K1、K2 这两种一为实现加“1” ,一为实现减“1”功能而设置的。K3 键盘的功能是确定由 K1、K2 键盘所设定的参数。没有按下 K3 键盘进行操作的确定,那么这种此次参数的设定是非法的,单片机不接受此次设定的参数。只有经过按下 K3 键盘进行确定操作后,单片机 AT89C51 系统才可以接受新设定的参数。这样做的好处是,当有人进行了误操作,或者参数设定错了。但没有按下 K3 键盘,那么单片机系统只执行以前设置的参数。不影响单片机的输出结果。4 结 论毕业之际,毕业设计是一项很好的学习机会,通过本次学习我心中有些平衡感,我并不是很笨,我能通过自己的努力完成毕业设计.本次毕业设计主要分两个环节:一是学习理论知识;二是运用理论知识解决实际问题。毕业设计过程是一个对所学知识综合运用的过程,也是一个学习新知识的过程。其中理论联系实践环节中,提高了自己运用所学知识实际问题的能力。毕业设计过程是对自己素质全面提升的过程,不仅学到大量新知识,而且也学到一些书本上没有的东西。在此过程也体会到与同伴合作与交流的重要性,这为今后的学习和工作提供了一个良好的开端。经过努力,我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。我所选择的是磨床温控系统的设计,通过这次毕业设计使我明白了自己原来22知识还比较欠缺,我明白学习是一个系统工程,是一个长期积累的过程,在以后的工作,生活中都应该不断的学习,努力提高自己知识和综合素质。因为能力和时间有限这些错误有待在以后的学习中克服。在以后的生活中我也会努力学习,增加自己的知识,提高自己的价值。致 谢在我们的人生道路上, 老师是我们的向导, 你们使我们知道做人的价值,做人的道理和做人的意义. 你们使我们树立了自信, 也对生活充满了激情,使我们在未来的生活中充满了自信.我们感谢我们的老师!在河南机电高等专科学校日子不知不觉已经将近三年了。在毕业之际我们深深感谢你们给我们无微不至的照顾.感谢河南机电高等专科学校这一培养人才的沃土,赋予我知识,赐给我荣誉,铸造我人格,指引我道路。深深感谢机电系系的各位恩师的教诲和关心!还要感谢所有关心我、帮助我、支持我,但这里还没有提及的人们,谢谢你们!所有这些都将会使我在今后的人生道路上更加信心百倍的挑战自我、挑战人生追求卓越、创造辉煌!23附 录附录 A 静态显示子程序:(备注:静态显示模块由译码模块和显示码移位输出模块组成,本系统采用共阳极型LED七段数码管,人口条件为将待显数符依次存放在007FH007CH单元中,出口条件为007FH007CH单元存放的是待显数符的显示码。译码模块编程如下:DISP: NOP NOP TRANS: MOV R0,#7;七只 LED 数码管MOV R1,#007FHLOOP: MOV A,R1MOV A,A+PCDB C0H,F9H,A4H,B0H;不带小数点显示码24DB 99H,92H,82H,F8HDB 80H, 90H, 88H, 83HDB C6H, A1H, 86H, 8EHDB 40H, 79H, 24H, 30H;带小数点的显示码DB 19H, 12H, 02H, 78HDB 00H, 10H, 08H, 03HDB 46H, 21H, 06H, 0EHDB FF;熄灭 LED 管MOV R1,ADEC R1DJNZ R0,LOOPRET显示码移位输出模块:人口条件为待显数符的显示码存于007FH007CH,出口条件为LED静态的显示出数符。编程如下:PUTOUT: MOV R0,#7MOV R1,#007FHSERVE1: MOV A,R1MOV R2,#8;每个字符8个数据位SERVE2:RLC AMOV P3.0,C; 位送RXD准备输出ANL P3,#FDH; TXD清零,脉冲初始态为低NOPNOPORL P3,#02H;形成脉冲上升沿,触发74LS164移位DJNZ R2, SERVE2DEC R1DJNZ R0 SERVE1RET数据采集程序设计:模拟数字的信号转换, (计算口地址时设不用的地址25线置为 0,则 8080H 为输入通道地址)具体程序如下:DP: NOPNOPMOV DPTR,#8080H;高八位通道地址JX: MOVX DPTR, A;置任意值启动 A/DLOP: NOPJB P3.1,LOP;等待转换结果MOVX A,DPTR;读取结果MOV R6,ADEC DPLSJMP JXMOV R5,ARET采集数据的 BCD 码转换子程序:具体程序如下:DV :NOPNOP MOV A,R6MOV B,#10DIV ABMOV DPTR,#007FHMOVX DPTR,AMOV A,BDEC DPLMOVX DPTR,AMOV A,R5MOV B,#10DIV ABDEC DPLMOVX DPTR,A26MOV A,BDEC DPLMOVX DPTR,ALCALL DISPNOPNOPRET加键盘子程序:KEY1: NOPNOP MOV A,49HINC AMOV 47H, ACJNE A, #0AH, NT0NT0: JNC L9 MOV 50H,AMOV 51H,#0MOV 52H,#0AJMP K1L9: LCALL DVBK1: LCALL DISPLCALL DL2SJB P1.0, K2K4: MOV R6, #2L11: LCALL ICCJNE A,#0AH,NT1NT1: JNC L10MOV 50H,AMOV 51H,#027MOV 52H,#0AJMP K3L10: LCALL DVBK3: LCALL DISPDJNZ R6,L11JNB P1.0,K4K4: SETB P1.2NOPNOPRET减键盘子程序(P1.1):KEY2: NOPNOPMOV A,49HDEC AMOV 46H,ACJNE A,#0AH,NT3NT3: JC K5MOV 50H,AMOV 51H,#0MOV 52H,#0AJMP K6K5: LCALL DVBK6: LCALL DISPLCALL DL2S JB P1.1,K7M2: MOV R6,#2M1: LCALL DCCJNE A,#0AH,NT428NT4: JC K8MOV 50H,AMOV 51H,#0MOV 52H,#0AJMP M0K8: LCALL DVBM0: LCALL DISPDJNZ R6,M1JNB P3.2,M2K7: SETB P1.2NOPNOPRET快加子程序(P1.0):IC: NOP NOPMOV A,47HMOV R7,#3L4: INC A CJNZ A,#OFFH,L3MOV A,#0SJMP ST0L3: DJNZ R7,L4ST0: MOV 47H,A NOPNOPRET快减子程序(P1.1):具体程序如下:DC: NOP29NOP MOV A,46HMOV R7,#3L6: DEC ACJNE A,#0,L5MOV A,#0FFHSJMP ST1L5: DJNZ R7,L6 ST1: MOV 46H,ANOPNOPRET键盘 BCD 码转换:具体程序如下:DVB: NOPNOP MOV B,#10DIV ABMOV R1,AMOV DPTR,#0079HMOVX DPTR,AMOV A,R1CJNE A,#0AH,NT5NT5: JNC L7MOV DPTR,#007AHMOVX DPTR,AINC DPLMOV A,BMOVX DPTR,ALJMP L830L7: MOV B,#10DIV ABMOV DPTR,#007AHMOVX DPTR,AINC DPLMOV A,BMOVX DPTR,AL8: LCALL DISPNOPNOPRET获取键值的程序:KEY: SETB F0;置 F0,表示无键按下。 ORL P3,#00000111B;将 P3 口的接有键的三位置 1MOV A,P3;取 P3 的值ORL A,#11111000B;将其余五位置 1CPL A;取反JNZ K_RET;如果为 1 则一定无
收藏