如:SET
S3,那么STL
S3将导通,并执行这个STL
S3内的程序,达到或完成程序内的SET
S90条件后,
跳到STL
S90执行该段程序。
注:S**是有常开常闭触点的,用与不用自己根据程序决散仔定,步进触点指令与STL指令是有区别的,如果STL
S3步进指令换是LD
S3,那么冲散汪程序状态掘源不是跳转到下一步进状态,而变为同时执行了。
完全一样的题目呀侍握,真幸运,看我的吧(我的是8052的,没关系的):
汇编程序:
S1 EQU 30H
S2 漏芦 EQU 31H
ORG 0000H
AJMP MAIN
ORG 001BH
AJMP INTT1
ORG 0100H
MAIN: ANL TMOD,#0FH
ORL TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB EA
SETB ET1
SETB TR1
MOV DPTR,#TABLE
MOV S1,#00H
MOV S2,#00H
LP: MOV A,S2
MOVC A,@A+DPTR
MOV P1,A
AJMP LP
INTT1: PUSH ACC
INC S1
MOV A,S1
CJNE A,#20,NEXTT1
MOV S1,#00H
INC S2
ANL S2,#07H
NEXTT1: POP ACC
RETI
TABLE: DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,00H
C语言程序:
#include<reg52.h>
unsigned 老搜庆char s1=0,s2=0
unsigned char code table[]=
{
0x05,0x0A,0x50,0xA0,0x55,0xAA,0xFF,0x00
}
void main()
{
TMOD=(TMOD&0X0F)|0X10
TH1=0X3C
TL1=0XB0
EA=1
ET1=1
TR1=1
while(1)
{
P1=table[s2]
}
}
void t1(void) interrupt 3 using 0
{
s1++
if(s1==20)
{
s1=0
s2++
s2=s2&0x07
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)