多路开关状态指示1.docx
《多路开关状态指示1.docx》由会员分享,可在线阅读,更多相关《多路开关状态指示1.docx(9页珍藏版)》请在冰点文库上搜索。
多路开关状态指示1
多路开关状态指示电路
一、实验任务
如图4.3.1所示,AT89S52单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。
(开关闭合,对应的灯亮,开关断开,对应的灯灭)。
二、电路原理图
三、系统板上硬件连线
(1)把“单片机系统”区域中的P1.0-P1.3用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上;
(2)把“单片机系统”区域中的P1.4-P1.7用导线连接到“四路拨动开关”区域中的K1-K4端口上;
四、程序设计内容
(1)开关状态检测
对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P1.X,REL或JNB P1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用MOV A,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示。
(2)输出控制
根据开关的状态,由发光二极管L1-L4来指示,我们可以用SETBP1.X和CLR P1.X指令来完成,也可以采用MOV P1,#1111XXXXB方法一次指示。
五、程序框图
六、方法一(汇编源程序)
ORG00H
START:
MOVA,P1
ANLA,#0F0H
RRA
RRA
RRA
RRA
XORA,#0F0H
MOVP1,A
SJMPSTART
END
七、方法一(C语言源程序)
#include
unsignedchartemp;
voidmain(void)
{
while
(1)
{
temp=P1>>4;
temp=temp|0xf0;
P1=temp;
}
}
八、方法二(汇编源程序)
ORG00H
START:
JBP1.4,NEXT1
CLRP1.0
SJMPNEX1
NEXT1:
SETBP1.0
NEX1:
JBP1.5,NEXT2
CLRP1.1
SJMPNEX2
NEXT2:
SETBP1.1
NEX2:
JBP1.6,NEXT3
CLRP1.2
SJMPNEX3
NEXT3:
SETBP1.2
NEX3:
JBP1.7,NEXT4
CLRP1.3
SJMPNEX4
NEXT4:
SETBP1.3
NEX4:
SJMPSTART
END
九、方法二(C语言源程序)
#include
voidmain(void)
{
while
(1)
{
if(P1_4==0)
{
P1_0=0;
}
else
{
P1_0=1;
}
if(P1_5==0)
{
P1_1=0;
}
else
{
P1_1=1;
}
if(P1_6==0)
{
P1_2=0;
}
else
{
P1_2=1;
}
if(P1_7==0)
{
P1_3=0;
}
else
{
P1_3=1;
}
}
}
心得体会
这次的单片机实训,真是让我们受益匪浅啊。
学到了很多东西,不管怎么样,先感谢学校给我们这么多的机会,让我们真正的从理论知识到实践的过渡。
此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力。
对于我们应用电子技术的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍。
本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提。
单片机是我们最难学的一门课程,所以很多专业知识都不懂。
不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了。
其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了。
最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机实训没有浪费,我们从中学到了很多知识,也让我们对单片机有了更深一步的了解。
虽然最后结果是出来了,可这与老师的精心指导是分不开的,他引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以说老师是功不可抹的。
总而言之,单片机实训对于我们有很大的帮助,我们从中受益匪浅。
参考文献
(1)杨将新、李华军、刘东俊、单片机及应用{M},电子工业出版社。
2006
(2)彭为、黄科、单片机典型系统设计及应用{M},电子工业出版社。
2007
(3)何书森、何华斌、实用电子线路设计速成{M},福建科学技术出版社。
2005
(4)陈永莆,实用无线电遥控电路{M},人民邮电出版社。
2007
(5)侯玉宝,Proteus的51系列单片机设计与仿真,电子工业出版社。
2008
附录一(原理图):
附录二(PCB图):
附录三(装配图):