单片机应用题,用c或汇编编程都可以。请把程序编写出来!谢谢!

如下图所示单片机的P1口接八个LED,INT0(P3.2)、INT1(P3.3)接开关S1与S2,当开关合上时INT0与INT1即接地。当两个开关都断开时单片机控制P1口所接的八个LED灯一秒钟亮一秒暗地闪烁,当开关S1合上D1~D4LED灯亮另四个暗,当S2合上D5~D8LED灯亮另四个暗(如果S1、S2同时合上S1有优先控制权),focs=6MHZ,要求定时器完成1秒定时,用中断来响应S1与S2动作。

第1个回答  推荐于2016-09-06
单片机的P1口接八个LED,
INT0(P3.2)、INT1(P3.3)接开关S1与S2,当开关合上时INT0与INT1即接地。

当两个开关都断开时单片机控制P1口所接的八个LED灯一秒钟亮一秒暗地闪烁,
当开关S1合上D1~D4LED灯亮另四个暗,
当S2合上D5~D8LED灯亮另四个暗(如果S1、S2同时合上S1有优先控制权),
focs=6MHZ,要求定时器完成1秒定时,用中断来响应S1与S2动作。
==============
主程序,
……
初始化:
……

三个中断:
……
……
……

规模较大。需要编写一段时间。追问

帮帮忙啊!把具体程序写出来。

追答

;-------------------------
ORG 0000H
AJMP START
ORG 000BH
;-------------------------
MOV TH0, #3CH
MOV TL0, #0B0H
DJNZ R2, T0_END
MOV R2, #20
JNB P3.2, T0_2
JNB P3.3, T0_3
XRL 30H, #255
MOV P1, 30H
T0_END:
RETI
;--------------------
T0_2:
XRL 31H, #15
MOV P1, 31H
RETI
T0_3:
XRL 32H, #240
MOV P1, 32H
RETI
;-------------------------
START:
MOV TMOD, #01H
MOV TH0, #3CH
MOV TL0, #0B0H
MOV IE, #82H
SETB TR0
MOV 30H, #255
MOV 31H, #255
MOV 32H, #255
MOV R2, #20
SJMP $
END
;-------------------------

本回答被提问者采纳
第2个回答  2015-05-27
翻译延时函数部分:
DELAY:
DL0: MOV R6,#100;
DL1: DJNZ R6,DL1
DL2: DJNZ R7,DL0;
RET
举例:
if(JCBZ==1) //解除状态
{
DHKZ=0; //发动机点火允许
CMBF=0; //关闭车门开启检测
}
翻译为:
JB JCBZ ,L_JIECHU
LJMP NEXT
JIECHU:
CLR DHKZ ;
CLR CMBF;
NEXT: .....本回答被网友采纳
相似回答