我写了一个数码管显示的程序,但显示出来的数据是乱的,不知道是怎么回事,请各位大侠多多指教:
时间设置为1S显示一次,用中断做。数码显示的芯片是51单片机的,当PLC输出是高电平时对应芯片的输入信号是低电平,所以输出要取反,Q0.0输出时钟信号,Q0.2输出数据,输出一位的数据给一个时钟脉冲,连续输出8位,间隔1s后再次输出。
主程序:
NETWORK 1
LD SM0.1 //SM0.1 第一次扫描时打开。
MOVB 5, VB100 //SMB34 定时中断0:时间间隔数值 (以1 ms为增量,从1 ms至255 ms**)。
SEG VB100, VB10 //SMB34 定时中断0:中断号码为10。
MOVB 0, VB20 //启动中断(ENI)指令全局性启用所有附加中断事。
MOVB 250, SMB34
ATCH INT_0, 10
ENI
中断程序:
NETWORK 1
LD SM0.0
INCB VB20
NETWORK 2
LD SM0.0
AB= VB20, 4
FOR VW300, +1, +8
NETWORK 3
LD SM0.0
LPS
A V10.0
NOT
=I Q0.2
NETWORK 4
LD SM0.0
RI Q0.0, 1
SI Q0.0, 1
RRB VB10, 1
NETWORK 5
NEXT
NETWORK 6
LD SM0.0
AW> VW300, +8
AB= VB20, 4
MOVB 0, VB20