过零检测代码
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本程序4.4US一个机器周期
过零检测50Hz或60Hz
CHECK_Z_SIG:
CLRWDT //清看门狗,没开狗可不要
BCR STATUS,C
BTRSC PORTA,ZERO_IN
BSR STATUS,C
RLR CZ_TEMP,F //延时消抖
MOVIA 00001111B//更具机器周期所要时间客自行定义数据
ANDAR CZ_TEMP,W //影响标志位Z
BTRSS FLAGS,Z_FG
SUBIA 00001111B //影响标志位Z
BTRSS STATUS,Z
LGOTO CHECK_Z_SIG
HAVE_Z_SIG:
BCR FLAGS,Z_FG //过零标志位清0,下降沿到来
BTRSC CZ_TEMP,0
BSR FLAGS,Z_FG //过零标志位置一,上升沿到来
BTRSC FLAGS,FIRST_Z_FG //去除第一次的上升沿
LGOTO CHECK_Z_SIG_RET //或下降沿
BSR FLAGS,FIRST_Z_FG
LGOTO CHECK_Z_SIG
;上电初始值
CLRR FLAGS
MOVIA 55H
MOVAR CZ_TEMP