本文介绍用51单片机做按键控制发光二极管亮灭的实验,很基础也很简单。不过再怎么复杂的控制,其思想和流程也是万变不离其宗的。文中的那段小程序可以灵活地运用到各类控制,在有必要时嵌入它即可。
硬件电路是在51单片机最小系统的基础上多接了2个按键、1个LED、几个电阻,便可实现控制功能。两个按键开关S1、S2分别接在P2.0、P2.1口,按下它们会拉低相应的I/O口的电平;LED接在P0.0口,它的亮灭由P0.0口的电平高低决定,当P0.0口输出低电平时,LED亮。引申一点:如果用P0.0口驱动别的设备,比如继电器,便可实现更加强大的控制功能。

程序代码及注释如下(汇编):
ORG 0 ;程序从0地址开始
START: MOV P2,#FFH ;将P2口设计为输入功能
;按键检测程序=============================================================
LOOP: JNB P2.0,ON ;检测P2.0口,若P2.0为低电平(S1按下),则跳至ON处执行
JNB P2.1,OFF ;检测P2.1口,若P2.1为低电平(S2按下),则跳至OFF处执行
JMP LOOP ;跳至LOOP处形成一个循环
;开灯子程序===============================================================
ON: CLR P0.0 ;使P0.0清零,LED亮
ON1: JB P2.0,LOOP ;检测P2.0口,若P2.0为高电平(S1放开),则跳至LOOP处执行
JMP ON1 ;否则跳至ON1形成一个小循环
;关灯子程序===============================================================
OFF: SETB P0.0 ;使P0.0置位,LED灭
OFF1: JB P2.1,LOOP ;检测P2.1口,若P2.1为高电平(S2放开),则跳至LOOP处执行
JMP OFF1 ;否则跳至OFF1形成一个循环
END ;程序结束
原创文章如转载,请注明:转载自萬用電路板 [ http://www.jiangx.net/ ]