为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

电子膨胀阀

2017-09-25 23页 doc 53KB 14阅读

用户头像

is_358746

暂无简介

举报
电子膨胀阀电子膨胀阀 电子膨胀阀.txt ;******************************************************; .INCLUDE .\include\stepmoter.inc .SECTION ROMCODE ;------------------------------------------------------ ;********************************************************** ; stepmoter initial ...
电子膨胀阀
电子膨胀阀 电子膨胀阀.txt ;******************************************************; .INCLUDE .\include\stepmoter.inc .SECTION ROMCODE ;------------------------------------------------------ ;********************************************************** ; stepmoter initial program ;********************************************************** fstepmoter_initial: lda P0 ora #0f0h sta P0 lda P0D ora #0f0h sta P0D lda #0 sta onestepsp sta onestepno sta stepmotorflag00 sta stepmotorflag01 sta stepmtoermode ;开机复位 == 0 ldm #00h,stepmotoraimpl ldm #00h,stepmotoraimph ldm #0f4h,stepmotorcurpl ldm #001h,stepmotorcurph ldm #0f4h,stepmotorsetpl ;500 ldm #001h,stepmotorsetph lda #1 sta stepmotorpin clb negatflg clb aimequcurflag clb poweronflag clb bfnaaflag clb bfnbbflag clb bfnccflag seb restflag ;开机复位标志--1 seb poweroffflag ; ;================================================================== ldm #04h,stepmotorsp ldm #064h,empal ;100 p0 ldm #00h,empah ldm #0c8h,empbl ;200 p1 ldm #00h,empbh ldm #02ch,empcl ;300 p2 ldm #01h,empch ldm #090h,empdl ;400 p3 ldm #01h,empdh ldm #02ch,ramminl ;#058h,ramminl ldm #01h,ramminh ;#02h,ramminh ldm #15,tmph ldm #10,tmpm ldm #5,tmpl rts ;********************************************************** ; main program ;********************************************************** ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& fstepmoter_progm: jsr fstepmotormodepro jsr fstepmotoraimpro rts ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ;-------------------------------------------------------------- ; get mode ;-------------------------------------------------------------- fstepmotormodepro: ;--------8--- power off 4ms, ------------------ bbc poweroffflag,_fgsmmd_poweron ldm #8,stepmtoermode ;6 ; off md 00 ldm #50,stepmotorsp ;4ms '''''''''''''''''''''''''''''''''''''''''''''' ldm #00h,stepmotoraimph ldm #00h,stepmotoraimpl jmp _fgsmmd_modeext ;--------7---- power on 4ms ------------------- _fgsmmd_poweron: bbc poweronflag,_fgsmmd_strrest ldm #7,stepmtoermode ; on md 01 ldm #50,stepmotorsp ;4ms \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ldm #001h,stepmotoraimph ; ldm #0f4h,stepmotoraimpl ; jmp _fgsmmd_modeext ;---------6---- rest mode p2 5 --------------------------- _fgsmmd_strrest: bbc restflag,_fgsmmd_restdel ldm #6,stepmtoermode ;P2 ldm #50,stepmotorsp ;4ms \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ lda empch ;ldm #02ch,empcl ;300 p2 sta stepmotoraimph lda empcl ;ldm #01h,empch sta stepmotoraimpl jmp _fgsmmd_modeext ;---------5---- rest delay ------------------------ _fgsmmd_restdel: lda keymode cmp #0 beq _fgsmmd_restdelxx clb bdelaymin ;lda stepmtoermode ;??????????????????????????????????????????????????? _fgsmmd_restdelxx: bbc bdelaymin,_fgsmmd_keymd ldm #200,stepmtoermode ;P2 ldm #50,stepmotorsp ;4ms \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ lda empch ;ldm #02ch,empcl ;300 p2 sta stepmotoraimph lda empcl ;ldm #01h,empch sta stepmotoraimpl jmp _fgsmmd_modeext ;---------4---- keymode --------------------------- ;0 auto 1 manual 2 f 001 - f 003 ;3 auto 闪烁 4 manual 闪烁 5 f 001 - f 003 闪烁 ;------------ hand ------------------------------ _fgsmmd_keymd: lda keymode cmp #1 bne _fgsmd_cdfin ldm #4,stepmtoermode ldm #50,stepmotorsp ;4ms \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ lda stepmotorsetph sta stepmotoraimph lda stepmotorsetpl sta stepmotoraimpl clb bfnaaflag clb bfnbbflag clb bfnccflag jmp _fgsmmd_modeext ;------------- pin ------------------------------- _fgsmd_cdfin: cmp #2 beq _fgsmd_finaa jmp _fgsmd_nochg ;------------ p001 -----------------; stepmotorpin _fgsmd_finaa: lda stepmotorpin cmp #1 bne _fgsmd_finbb ldm #1,stepmtoermode ldm #200,stepmotorsp ;4ms \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ bbs bfnaaflag,_fgsmd_finaa_ou lda empbh ;empbl ;200 p1 sta stepmotoraimph lda empbl ;,empbh sta stepmotoraimpl clb bfnbbflag clb bfnccflag jmp _fgsmmd_modeext _fgsmd_finaa_ou: lda empal ; p0 sta R3 lda empah ; sta R4 lda empcl ; p2 sta R5 lda empch ; sta R6 jsr ftmp_adc jmp _fgsmmd_modeext ;------------ p002 --------------------------------- _fgsmd_finbb: cmp #2 bne _fgsmd_fincc ldm #2,stepmtoermode ldm #200,stepmotorsp ;4ms \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ bbs bfnbbflag,_fgsmd_finbb_ou lda empch ;empcl ;300 p2 sta stepmotoraimph lda empcl ;empch sta stepmotoraimpl clb bfnaaflag clb bfnccflag jmp _fgsmmd_modeext _fgsmd_finbb_ou: lda empbl ; p1 sta R3 lda empbh ; sta R4 lda empdl ; p3 sta R5 lda empdh ; sta R6 jsr ftmp_adc jmp _fgsmmd_modeext ;------------ p003 --------------------------------- _fgsmd_fincc: cmp #3 bne _fgsmd_nochg ldm #2,stepmtoermode ldm #200,stepmotorsp ;4ms \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ bbs bfnccflag,_fgsmd_fincc_ou lda empdh ;empdl ;400 p3 sta stepmotoraimph lda empdl ;empdh sta stepmotoraimpl clb bfnaaflag clb bfnbbflag jmp _fgsmmd_modeext _fgsmd_fincc_ou: lda empcl ; p2 sta R3 lda empch ; sta R4 lda #0f4h ;empdl ; 500 sta R5 lda #01h ;empdh ; sta R6 jsr ftmp_adc jmp _fgsmmd_modeext ;------------------------------------------------------------- _fgsmd_nochg: ;-------------------------------------------------------------- _fgsmmd_modeext: rts ;-------------------------------------------------------------- ;************************************************************** ; get aim ;************************************************************** ;-------------------------------------------------------------- fstepmotoraimpro: ; ----------------- mode 8 PMV 00 4ms --------------------- lda stepmtoermode cmp #8 bne _fgsmap_1 jsr fgsmap_cmp bbc aimequcurflag,_fgsmap_nchg ; 相等,清标志108 clb poweroffflag _fgsmap_nchg: jmp _fgsmmap_epro ; ------------mode 7 PMV 500 4ms ----------------- _fgsmap_1: ; --108度-1228.8步(4cdh) cmp #7 bne _fgsmap_rest jsr fgsmap_cmp ;check aim , cur bbc aimequcurflag,_fgsmap_ce ; 相等,清标志108 clb poweronflag _fgsmap_ce: jmp _fgsmmap_epro ;-------------mode 6 rest p2 ----------------------------- _fgsmap_rest: cmp #6 ;#05h bne _fgsmap_restdel jsr fgsmap_cmp bbc aimequcurflag,_fgsmap_resce ; 相等,清标志108 clb restflag seb bdelaymin lda ramminl sta tmminl lda ramminh sta tmminh _fgsmap_resce: jmp _fgsmmap_epro ;------------mode 5 delay ----------------------------- _fgsmap_restdel: cmp #5 bne _fgsmap_sethd jmp _fgsmmap_epro ;------------mode 4 set hand --------------------------- _fgsmap_sethd: cmp #4 bne _fgsmap_setpin jmp _fgsmmap_epro ;------------mode 2 pin --------------------------- _fgsmap_setpin: ;-----------1- p001 --------------------------------- cmp #01h bne _fgsmap_setpinbb jsr fgsmap_cmp bbc aimequcurflag,_fgsmap_setpnaou ; 相等,清标志108 seb bfnaaflag _fgsmap_setpnaou: jmp _fgsmmap_epro ;-----------2- p002 --------------------------------- _fgsmap_setpinbb: cmp #02h bne _fgsmap_setpincc jsr fgsmap_cmp bbc aimequcurflag,_fgsmap_setpnabu ; 相等,清标志108 seb bfnbbflag _fgsmap_setpnabu: jmp _fgsmmap_epro ;-----------3- p003 --------------------------------- _fgsmap_setpincc: cmp #02h bne _fgsmap_2 jsr fgsmap_cmp bbc aimequcurflag,_fgsmap_setpnacc ; 相等,清标志108 seb bfnccflag _fgsmap_setpnacc: jmp _fgsmmap_epro _fgsmap_2: ;-------------------------------------------------------------- _fgsmmap_epro: rts ;============================================================== ;-------------------------------------------------------------- ; stepmoter aim =?=cur change aimequcurflag ; == aimequcurflag =1 ;-------------------------------------------------------------- fgsmap_cmp: clb aimequcurflag lda stepmotoraimph cmp stepmotorcurph bne _fgsmap_cpe ; rts lda stepmotoraimpl cmp stepmotorcurpl bne _fgsmap_cpe seb aimequcurflag _fgsmap_cpe: rts ;************************************************************** ;input: adcipipe 回气 trueadciair 传感器 ; tmph,tmpm,tmpl ;change : stepmotoraimph stepmotoraimpl ;************************************************************** ftmp_adc: lda adcipipe sta R0 lda trueadciair sta R1 cmp #R0 ;r1 < R0 ,c=0 bcc _ftmp_adc_rr jmp _ftmp_adc_ff ;--------- R0-R1 ------------------- _ftmp_adc_rr: sec lda R0 sbc R1 sta R2 ;jmp ; t < T1 ;_ftmp_adc_out jsr ftmp_decpro jmp _ftmp_cmp_out ;--------- R1-R0 ------------------- _ftmp_adc_ff: sec lda R1 sbc R0 sta R2 ;--------check inc or dec -------------------- _ftmp_adc_out: ; t < T1 lda R2 cmp tmpl ;<,c=0 bcs _ftmp_cmpm jsr ftmp_decpro ;dec PMV jmp _ftmp_cmp_out ;----------------------------------------- _ftmp_cmpm: ;T1 =< t < T2 cmp tmph bcs _ftmp_cmph ;no chang jmp _ftmp_cmp_out ;--------------------------------------- _ftmp_cmph: ;t >= T2 ;inc PMV jsr ftmp_incpro jmp _ftmp_cmp_out ;-------------------------------------- ;================================================= _ftmp_cmp_out: rts ;************************************************* ; ; t < T1 aim -- ;************************************************* ftmp_decpro: lda R4 cmp stepmotoraimph ;r4< ,c=0 beq _ftmp_cheneb bcs _rtmp_rsrtd jmp _ftmp_dec_pro ;raim c=1 beq _ftmp_equ bcs _ftmp_rda ;< c=0 jmp _ftmp_dec_pro ;---------------------------- _ftmp_equ: jmp _ftmp_chnend ;------------------------ _ftmp_rda: lda R3 sta stepmotoraimpl jmp _ftmp_chnend ;---------dec pro-------------- _ftmp_dec_pro: clc lda #0ffh adc stepmotoraimpl sta stepmotoraimpl lda #0ffh adc stepmotoraimph sta stepmotoraimph jmp _ftmp_chnend ;-------------------------------------------------------------- _ftmp_chnend: rts ;************************************************* ; ; t >= T2 aim ++ ;************************************************* ftmp_incpro: lda R6 cmp stepmotoraimph ;r4< ,c=0 beq _ftmp_chenebxx bcc _rtmp_xxsrtd jmp _ftmp_inc_pro ;raim c=1 beq _ftmp_equxx bcc _ftmp_rdaxx ;< c=0 jmp _ftmp_inc_pro ;---------------------------- _ftmp_equxx: jmp _ftmp_nind ;------------------------ _ftmp_rdaxx: lda R5 sta stepmotoraimpl jmp _ftmp_nind ;---------dec pro-------------- _ftmp_inc_pro: clc lda #01h adc stepmotoraimpl sta stepmotoraimpl lda #00h adc stepmotoraimph sta stepmotoraimph jmp _ftmp_nind ;_ftmp_chnend ;-------------------------------------------------------------- _ftmp_nind: rts ;************************************************************** ; timer1 调用 4ms 步进机走一步 ;************************************************************** ;-------------------------------------------------------------- ;input: stepmotorsp stepmotoraimpl stepmotoraimph ;output: stepmotorcurpl stepmotorcurph ;change: onestepsp onestepno ;register: X ;stepmotorflag bit: negatflg ;------------------------------------------------------------- fstepmotoronestep: cld ;binary clt ;------------------------------------------------------------- ; ? 4ms ;------------------------------------------------------------- inc onestepsp ;onestepsp 4ms lda onestepsp cmp stepmotorsp ; 4ms =/= z=0 beq _fs_onestepnet jmp _fs_onestepe ;z=0 时间未到返回 jmp rts _fs_onestepnet: ldm #0,onestepsp ;------------------------------------------------------------- ; cmp cur ? aim ;------------------------------------------------------------- ;扫描时间到了,和目标转动角度比较 lda stepmotorcurph cmp stepmotoraimph ; == , z=1 ; a>=#,c =1 beq _fs_equh ; == z=1 , jmp 继续判断低字节 ; 不等,> , < ;------------------------------------------------------------- ; lda stepmotorcurph ; cmp stepmotoraimph ; == , z=1 ; a>=#,c =1 ;------------------------------------------------------------- bcs _fs_chaxxx ;_fs_cha ; > c=1 , jmp 高于目标角度,当前角度减一次, 扫描步进机指针++ jmp _fs_cla ; < c=0 ,低于目标角度,当前角度加一次,然后扫描 步进机指针-- _fs_chaxxx: jmp _fs_cha _fs_equh: ; lda stepmotorcurpl cmp stepmotoraimpl beq _fs_equl ; == z<-1 ,jmp 电机<- 00 ;------------------------------------------------------------- ; lda stepmotorcurpl ; cmp stepmotoraimpl ;------------------------------------------------------------- bcs _fs_cha ; > c=1 jmp _fs_cla ;------------------------------------------------------------- ;stepmotorcurph/l = stepmotoraimph/l _fs_equl: ldm #0,onestepno clb negatflg jmp _fs_out ;扫描步进机 ;------------------------------------------------------------- ;stepmotorcurph/l > stepmotoraimph/l _fs_cha: seb negatflg lda stepmotorcurpl sec sbc #1 sta stepmotorcurpl lda stepmotorcurph sbc #0 sta stepmotorcurph jmp _fs_onestppc ;------------------------------------------------------------- ;stepmotorcurph/l < stepmotoraimph/l ; < c=0 _fs_cla: clb negatflg lda stepmotorcurpl clc adc #1 sta stepmotorcurpl lda stepmotorcurph adc #0 sta stepmotorcurph jmp _fs_onestppc ;step moter pointer ++ ;------------------------------------------------------------- _fs_onestppc: ;step moter pointer ++ =?= 9 lda onestepno clc adc #1 sta onestepno cmp #9 bne _fs_clae ldm #1,onestepno _fs_clae: jmp _fs_out ;扫描步进机 ;------------------------------------------------------------- _fs_out: ;控制 步进机 转动 lda onestepno ;表格指针 pha tax ;a -> x bbc negatflg,stepmotorflag00,_stpm_negative ;negatflg = 1 转 移到反转 lda tabstepff,X jmp _fs_onestpnex _stpm_negative: lda tabstepzz,X _fs_onestpnex: sta onestepno lda P0 and #0fh ora onestepno sta P0 pla sta onestepno _fs_onestepe: rts ;============================================================= ;------------------------------------------------------------- tabstepff: .BYTE 00h,80H,0c0h,40H,60H,20H,30H,10H,90H ;正转 0,1,2,3,4,5,6,7,8 tabstepzz: .BYTE 00h,90h,10h,30h,20h,60h,40h,0c0h,80h ;反转 0,1,2,3,4,5,6,7,8 .END ;*************************************************************
/
本文档为【电子膨胀阀】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索