ORG 0000H
AJMP START
ORG 0100H
START:
MOV 42H, #88H 先设NA<NB
MOV A, 40H
CJNE A, 50H, LOOP1 NAH-NBH
SJMP NEXT 相等则再去比较低八位
LOOP1:
JCLOOP 不够减,就可以结束了
AJMP LOOP3 转
NEXT:
MOV A, 41H
CJNE A, 51H, LOOP2 NAL-NBL
LOOP2:
JCLOOP 不够减,就可以结束了
LOOP3:
MOV 42H, #0FFH 否则就是NA>=NB
LOOP:
AJMP LOOP
END
先来个抢答器的程序,P1接一个共阳极数码管,P0接8个抢答按键,主持人复位采用单片机复位按钮实现。ORG 0000H
START: MOV A,P0
CJNE A,#0FFH,PL0
SJMP START
PL0: LCALL DELAY
MOV A,P0
CJNE A,#0FFH,PL1
SJMP START
PL1:JNB ACC.0,K1
JNB ACC.1,K2
JNB ACC.2,K3
JNB ACC.3,K4
JNB ACC.4,K5
JNB ACC.5,K6
JNB ACC.6,K7
JNB ACC.7,K8
LJMP START
K1:MOV P1,#0F9H
SJMP $
K2:MOV P1,#0A4H
SJMP $
K3:MOV P1,#0B0H
SJMP $
K4:MOV P1,#99H
SJMP $
K5:MOV P1,#9H
SJMP $
K6:MOV P1,#82H
SJMP $
K7:MOV P1,#0F8H
SJMP $
K8:MOV P1,#80H
SJMP $
DELAY:MOV R6,#15
DEL2: MOV R7,#200
DJNZ R7,$
DJNZ R6,DEL2
RET
END
表决器见下面的链接吧,参考一下:
这么简单的要求,不用大动干戈。看看下面的程序,是不是最简单:
ORG 0000H
SETB TR0 启动T0
MOV R2, #250 定时计数初值
LOOP:
MOV TH0, #(8192 - 8000) / 32 定时8ms
MOV TL0, #(8192 - 8000) MOD 32
JNB TF0, $ 等待8ms
CLR TF0
DJNZ R2, LOOP 每隔8ms,R2减一次一
CPL P1.0 R2为0则LED亮灭转换
LJMP 0000H
END
本程序,已经实验成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)