汇编语言,两个单片机,一个接开关,一个接灯,按下开关,灯亮,请问怎么编程

汇编语言,两个单片机,一个接开关,一个接灯,按下开关,灯亮,请问怎么编程,第1张

从出题者的动机来说,应该就是通过串口通讯,让一个单片机检测开关,来间接控制另个单片机的灯。
甲:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
SETB TR1
MOV SCON,#40H
LOOP:
JB P10,LOOP1
MOV SBUF,#5AH
JNB TI,$
CLR TI
SJMP LOOP
LOOP1:
MOV SBUF,#0A5H
JNB TI,$
CLR TI
SJMP LOOP
END
乙:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV SCON,#50H
SETB TR1
LOOP:
JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#5AH,LOOP1
CLR P10
SJMP LOOP
LOOP1:
CJNE A,#0A5H,LOOP
SETB P10
SJMP LOOP
END

程序的基本框架如下
ORG 0000H
LJMP START ;需要跳过中断服务程序入口地址,
ORG 0100H
START:
MOV SP,#50H ;设堆栈区起始地址,一般不可少

SETB P00
SETB P03

LOOP:
SETB P15 ;设定P15为输入状态
JB P15, NEXT ;假设P15为高是未达到既定值
CLR P00 ;达到既定值
NEXT:
LCALL DELAY30MS
SETB P17 ;设定P17为输入状态
JB P17, LOOP ;假设P17为高是未达到要求
CLR P00
CLR P03
SETB P02
LJMP LOOP
DELAY30MS:
(此处编写一段延时30ms的程序,很简单的,循环一定次数即可)
RET

JMP START 就是一个死循环呗,跳转到START那句,为的是可以多次读取开关的状态。你要是想让这个程序执行一次就退出当然也可以跳转到别的地方, 但是你没有定义STOP, 就没办法JMP了
我估计你是不是把START这个标号理解成别的什么东西了,在这里START就是个标号,代表那句“MOV DX,01F2H”的地址,没有什么别的意思, 并不是你所理解的"程序开始"
程序写的肯定不对,问题很大,没有原题没法改,最起码你第一次IN之后得把AL保存一下吧,或者每次TEST AL之前重新IN一下,要不AL都让你给改了,你TEST它有什么用啊?
之所以说没有原题没法改是因为如下原因:
一 不知道开关Ki闭合对应的是0还是1, 你的程序把我搞糊涂了
二 不知道你所谓的"其他情况,不做任何处理" 是 真的什么都不做 还是 让二极管全都不发光
三 假设开关闭合为1, 那如果开关状态是11111010的话, 我是应该让高四位的二极管发光呢还是什么都不做呢 按照我对题目的理解好像应该是让高四位发光, 如果这样的话, 楼上 zsq0325 同学的程序就有问题了, 用CMP是不行的

8位拨码开关一端接在某一并口上,另一端接地,然后读这个口,就可读到8位拨码开关每一位的状态了,再根据每一位的状态执行相应的 *** 作的。
读指令,假设拨码开关在P1口上:
MOV A,P1

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV B,#0FFH
LOOP:
MOV P0,A
MOV P2,B
LCALL DELAY
JB P10,LOOP1
CLR 00H
SJMP LOOP2
LOOP1:
JB P11,LOOP2
SETB 00H
LOOP2:
JB 00H,LOOP3
RLC A
XCH A,B
RLC A
XCH A,B
MOV ACC0,C
LJMP LOOP
LOOP3:
XCH A,B
RRC A
XCH A,B
RRC A
XCH A,B
MOV ACC7,C
XCH A,B
LJMP LOOP
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET
END

标志名
设置 nv(清除) ov(溢出)
方向 dn(减) up(增)
中断 ei(启用) di(禁用)
正负 ng(负) pl(正)
零 zr(0) nz(非0)
辅助进位 ac(进位) na(不进位)
奇偶校验 pe(偶校验) po(奇校验)
进位 cy(进位) nc(不进位)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12702267.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存