我的51单片机之 拨码开关 的 C语言与汇编的编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拨码开关实验
一、功能:
拨码开关打上某一位,点亮一只对应的指示灯。
二、电路图:
三、C程序:
//************************************************************** //用四只发光二极管指示拨码开关每一位的状态。made by luqichao
//************************************************************** #include
#include
#define LEDCODE P1
sbit B1=P3^2;
sbit B2=P3^3;
sbit B3=P3^4;
sbit B4=P3^5;
sbit LD1=P1^0;
sbit LD2=P1^1;
sbit LD3=P1^2;
sbit LD4=P1^3;
void main()
{
P1=0xFF;
P3=0xFF;
if(B1==0){LD1=0;};//b1
if(B2==0){LD2=0;};//b2
if(B3==0){LD3=0;};//b3
if(B4==0){LD4=0;};//b4
}
四、汇编程序:
;************************************************************** ;用四只发光二极管指示拨码开关每一位的状态。made by luqichao
;************************************************************** ORG0000H
AJMP MAIN
ORG0030H
LEDCODE EQU P1
B1EQU P3.2;
B2EQU P3.3;
B3EQU P3.4;
B4EQU P3.5;
LD1EQU P1.0;
LD2EQU P1.1;
LD3EQU P1.2;
LD4EQU P1.3;
MAIN:
MOV P1,0xFF;
MOV P3,0xFF;
START:
JNB B1,A1;
JNB B2,A2;
JNB B3,A3;
JNB B4,A4;
AJMP START;
A1:CLR LD1;//b1
AJMP START;
A2:CLR LD2;//b2
AJMP START;
A3:CLR LD3;//b3
AJMP START;
A4:CLR LD4;//b4
AJMP START;
END;