第十六章 直流电动机多参数检测和调速控制系统 209_第1页
第十六章 直流电动机多参数检测和调速控制系统 209_第2页
第十六章 直流电动机多参数检测和调速控制系统 209_第3页
第十六章 直流电动机多参数检测和调速控制系统 209_第4页
第十六章 直流电动机多参数检测和调速控制系统 209_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十六章 直流电动机多参数检测和调速控制系统 209_Y= -XY= -XY= 由此可见,数据转换A子程序的程序设计思想是:先将滤波结果乘以一个系数,得到一个双字节数,后将该双字节数右移n次即可。由于乘的系数和右移次数各不相同,本来要编制4个子程序以分别实现转换。为使程序简洁,现仍以一个子程序实现转换,其具体方法是以查表得到的每次乘的系数和右移次数。程序中双字节数右移一位专门用一个CHAS子程序完成,右移n次只要n次调用改子程序即可。4次转换结果一次存入68H-6FH单元(每个转换结果占两个字节)。(4)数据转换B子程序(CHAB) 该子程序的功能是将二进制数的工程量(存68H-6FH)转换或

2、所对应的十进制数的工程量(仍存68H-6FH)。本程序的设计思想是采用“权值相加”的方法,双字节二进制数各位的权值如图16-7所示。由于本课题中各参数的最大值均不超过1000,故双字节数高位字节的前六位恒为0。程序设计中把双字节数逐位向左移至C标志,后判C标志的内容。若为1,则把该位所对应的的权值加入累计单元(工作寄存器R5、B6做累计单元);若为0,则不加。000000XXXXXXXXXX 各位权值: 512 256 128 64 32 16 8 4 2 1 图16-7 双字节二进制数各位权值由于各数据高位字节的前6位恒为0,所以在对数据的高位字节进行处理时,先空移6次,不做判断。仅对后两位

3、处理,而低位字节的8位则全部作处理。判别C标志的内容及进行累加由专门的子程序CAK完成。该子程序据C标志的内容确定是否要对权值进行相加,若要加,则通过两次查表,先后找到权值的低位和高位分别累加到B6(置累加和的低位),B5(置累加和的高位)中。需要强调的是为使累加和为十进制数,所以在两次执行加法指令后均需进行二-十进制调整。另外,考虑到在低位字节相加时可能对高位字节产生进位,故在第二次相加时,需采用ADDC指令。当累加完成后,需将累加的结果送目标单元(68H-6FH),并通过4次循环,完成对4个数据的处理。参考程序如下: OBG 0460H PBOC:JBC FO, PRJ ;数据处理子程序

4、RET PRI: LCALL RANG :;调排队子程序 LCALL LOAD ;调中值(滤波结果)传送子程序 LCALL CHAA ;调数据变换(采样值二进制数工程量)子 ;程序 LCALL CHAB ;调数据变换(二进制数十进制数工程量) ;子程序210 单片机应用系统设计入门向导与设计实例_ RET ORG 0470HRANG:: MOV R2,#04H ;四组数据排队RAN1: MOV R3,#04HRAN2: MOV A,R3 MOV R4.,A MOV R0,7CHRAN3: MOV A,RO MOV R5,A LNC RO MOV A,RO CLB C SUBB A,R5 JNC

5、 RANA MOV A,R5 XCH A,RD DEC RO MOV RO,A LNC RORAN4:DJNZ R4,RAN3 DJNZ R3,HAN2 MOV A,7CH ;以下三条,7CH单元内容加5,指向下组数据 ;首址 ADD A,#O5H MOV 7CH,A DJNZ R2,RAN1 MOV 7CH,#5OH ;四组数据排队后,7CH单元内容恢复为5OH RET ORG O4AOHLOAD:MOV RO,#52H ;各中值传送至滤波结果单元 MOV R1,#64H ;64H-67H置滤波结果 MOV R2,#04HLD1::MOV A,ROMOV R1,AMOV A,RO ;以下三条

6、,RO内容加5ADD A,#05HMOV RO,ALNC R1DJNZ R2,LD1第十六章 直流电动机多参数检测和调速控制系统 211_RETORG 04COHCHAA:MOV RO,#64H ;数据变换,将4个采样值变成二进制数工程 ;量 ;程序设计思想:乘X除YMOV R1,#68HMOV DPTR,#TAB2MOV R2,#04H CH1:CLR A MOVC A,+DPTR MOV B,A MOV A,RO MUL AB MOV R3,A ;乘积低位暂存R3 LNC DPTR CLR A MONC A,A+DPTR XCH A,R3 ;乘积低位传送回A,循环次数送R3 LCALL C

7、HAS ;调双字节右移子程序 XCH A,B ;乘除后结果送相应单元 MOV R1,A LNC R1 XCH A,B MOV R1,A LNC R1 LNC DPTR LNC RO DJNZ R2,CH1 RET TAB2: DB 7DH,05H,7DH,07H ;乘的系数和右移次数表 DB 19H,,05H,7DH,06H ORG 0500H CHAS:: XCH A,B ;双字节右移 CLR C RRC A XCH A,B RRC A DJNZ R3,CHAS RET 212 单片机应用系统设计入门向导与设计实例_ ORG 0510HCHAB: MOV RO,#68H ;二进制数(双字节)

8、变换为十进制数 MOV R2,#04HCHB1: MOV R6,#00H ;R6(低位)、R5(高位)做累计单元 MOV R5,#00H MOV DPTR,#TAB3 MOV R3,#06H MOV A,RO ;取高位字节 CLR CCHB2: RLC A ;先左移6次(因前6为肯定为0,不必处理) DJNZ R3,CHB2 MOV R3,#02H ;处理高位字节最后2位 LCALL CAK ;调累加子程序 LNC RO MOV A,RO ;,取低位字节 MOV R3,#08H LCALL CAK ;再调累加子程序 MOV A,R6 ;下5条指令将转换结果送元单元 MOV RO,A DEC R

9、O MOV A,R5 MOV RO,A LNC RO LNC RO DJNZ R2,CHB1 RET ORG 0540HCAK:: RLC A ;累加子程序 JNC CAK1 MOV B,A ;保护A内容 CLR A MONC A,A+DPTR ADD A,R6 DA A MOV R6,A LNC DPTR CLR A MOVC A,A+DPTR ADDC A,R5第十六章 直流电动机多参数检测和调速控制系统 213_DA AMOV R5,AMOV A,BSJMP CAK2CAK1: LNC DPTBCAK2: LNC DPTR DJNZ R3,CAK RETTAB3: DB 12H,05H,

10、56H,02H ;二进制数各位权值表 DB 28H,01H,64H,00H DB 32H,00H,16H,00H DB 08H,00H,04H,00H DB 02H,00H,01H,00H3、报警子程序(ALM)报警子程序是本程序中较为复杂的一个子程序。其设计思想是将4个参数的转换结果分别与各参数的上下限进行比较,也即做8次双字节减法(各参数的上下限通过查表取得),并由C标志得到8个报警信息。各参数的转换结果在与下限相减时,若有借位(C标志为1)需报警;而在与上限相减时,无错位(C标志为0)需报警。根据本课题要求,各参数不管是超过上限,还是低于下限均用同一个报警灯报警,故在程序设计中还需将8个

11、报警信息合并成4个报警信息(详见程序注解)。最后调用报警信息输出子程序A LOT实现报警。由系统扩展图可知,报警灯由8155C口的低4位控制,故A LOT子程序的关键是将经过上述处理后的7DH内容自8155C口输出。参考程序如下: ORG 0580H ALM:: MOV DPTR,#TAB4 ;报警 MOV R2,#02HALM1: MOV R0,#68H MOV R3,#04HALM2: CLR A MOVC A,A+DPTR MOV B,A LNC R0 MOV A,R0 CLR C SUBB A,B ;先取低位字节相减 LNC A MOVC A,A+DPTR MOV B,A DEC R0

12、 213 单片机应用系统设计入门向导与设计实例_ MOV A,ROSUBB A,B ;再取高位字节相减LNC ROLNC ROLNC DPTRMOV A,7DH ;将C标志内容逐位移入报警模型单元RRC AMOV 7DH,ADJNZ R3,ALM2DJNZ R2,ALM1MOV A,7DH ;低4位为1报警,高4位为0报警CPL A ;下8条指令做调整SWAP AANL A,#OFHMOV B,A ;高4位报警信息存BMOV A,7DHANL A,#OFH ;低4位报警信息存AORL A,B ;合并高、低4位报警信息MON 7DH,ALCALL A LOT ;调报警信息输出子程序RETTAB4

13、:DB 50H,07H,00H,02H ;各下限值 DB 90H,00H,30H,03H DB 50H,08H,40H,02H ;各上限值 DB 10H,01H,30H,04H ORG 05EOHA LOT:MOV DPTR,#5FFBH ;5FFBH为8155C口地址,报警信息自C口输出 MOV A,7DH MOVX DPTR,A RET4、控制算法及控制值输出子程序(CONT)CONT子程序本应设计一个PLD控制程序,本课题暂不作要求(PLD程序设计详见本篇第十七章),故设置一个虚拟的程序段模拟,假设通过PLD运算,控制输出值存放在7EH单元中,后通过DAOT子程序,将控制输出值由DACO832输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论