打印

基于PIC12C508的三相电源相序测试仪的设计

[复制链接]
3005|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tbklgt|  楼主 | 2010-5-21 20:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
基于PIC12C508的三相电源相序测试仪的设计
此程序有问题
在下对汇编不懂
各位可以更正下吗
程序代码如下
UA EQU 3 ;A相
UB EQU 4
UC EQU 5
   ORG 000H
   GOTO BO
BO:CLRF 19H
   CLRF 18H
   MOVLW 38H
   NOP
   TRIS 06H
   BSF  06H,0
   BSF  06H,1
   BSF  06H,2
   BSF  06H,3
   BSF  06H,4
   BSF  06H,5
   MOVLW 064H
CALL LAY1MS;有问题
B1:CLRF 12H
   CLRF 19H
   CLRF 18H
   MOVLW 14H
   MOVF 11H
B2:MOVLW 38H
   ANDWF 06H,0
   IORWF 12H,1
   CALL LEST_M_P;有问题
   MOVLW 01H
   CALL LAY1MS;有问题
   DECFSZ 11H,1
   GOTO B2

1.JPG (6.56 KB )

1.JPG

2.JPG (7.27 KB )

2.JPG

3.JPG (8.73 KB )

3.JPG
沙发
yewuyi| | 2010-5-22 11:19 | 只看该作者
检测的频率至少要是A/B/C三相频率的3倍。

然后使用定时读取ABC电平的方式做判断,这个和编码器的信号处理非常类似。

使用特权

评论回复
板凳
headwolf_83| | 2010-5-22 14:31 | 只看该作者
逻辑上应该是先假设一相为A,找到这相的上升沿,之后读B,C相的电平,就可以了。当然,速度要够快。不过如果3相是50HZ的工频,4M的PIC12C508,一个指令1US,又不做其它什么事情,拼命在那检测,应该不是问题。

使用特权

评论回复
地板
yewuyi| | 2010-5-22 15:17 | 只看该作者
逻辑上应该是先假设一相为A,找到这相的上升沿,之后读B,C相的电平,就可以了。当然,速度要够快。不过如果3相是50HZ的工频,4M的PIC12C508,一个指令1US,又不做其它什么事情,拼命在那检测,应该不是问题。 ...
headwolf_83 发表于 2010-5-22 14:31


你这办法是不是太累了?

按照LZ画的波形可得出ABC三相电平变化的规律如下:
A    B     C
0     0     1
1     0     1
1     0     0
1     1     0
0     1     0
0     1     1
把上面的真值表构成一个常量数组sign[3][6],然后MCU以一个固定的频率定时读取ABC三相的电平信号,通电后首先找到当前读取的ABC三相信号在数组中的位置,在下一次读取信号后和当前位置的下一组数据比较,如果发现读取的ABC三相信号和数组数据不一致,则显然是发生了相序错误,可设置为在某一个时间段内检测到N次以上错误就发出相序错误提示,并进行保护动作。
一定要注意读取ABC三相信号的速度够快,50HZ的电源的话,使用250HZ的定时中断就足够了,也就是4MS读取一次ABC电平信号就够了。
另外要注意在每次读取时,都要连读多读几次并做一点抗随机干扰的算法运算,这样才能让产品比较皮实耐用。

使用特权

评论回复
5
yewuyi| | 2010-5-22 15:21 | 只看该作者
不要尝试着去找上升沿或者下降沿,那个反而让人为难,如果使用中断找沿变化的话,还要占一个外部中断资源,而且中断后的响应延迟和后续的处理反而不如上面使用查询方法来的简洁,把他做为一个任务定时调度执行一下即可,代码也便于移植。

使用特权

评论回复
6
crazybee| | 2010-5-22 18:27 | 只看该作者
F508相中断,它都中断不了,哈!yewuyi思路很清晰!

使用特权

评论回复
7
headwolf_83| | 2010-5-23 00:23 | 只看该作者
508没中断的,所以估计这个东西除了不停查,也没什么事情好干的。基于508,我想我的办法虽然笨了点,够用了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

4

帖子

1

粉丝