实验3
8路指示灯读出8路拨动开关的状态
8路拨动开关一端接地,另外一端8路通过JP40引出。
相关原理图:

实验目的: 通过设置不同的8路拨动开关的状态,使对应的8路指示灯亮灭。从而理解单片机中数和位的概念以及数据传递的概念。
把八路拨动开关的JP40用一条8PIN的数据排线引入到CPU的P0口JP51,然后用一条8PIN的数据排线把CPU部份的P1口(JP44)连接到八路指示灯部份的JP32。
程序运行照片:

程序流程图:

汇编语言参考程序:
org 0080h ;开始
ajmp loop
org 0030h ;到0030h处避开00-30之间的敏感地址
loop: MOV A,P0 ; P0口的状态(开关)读到A
MOV P1,A ;把A的数据送到P1口(指示灯)
JMP LOOP ;重新开始
END
c语言参考程序:
#include<reg51.h> //头文件
#define uchar unsigned char //宏定义,为方便编程
#define uint unsigned int
#define KEY P0 //宏定义,将P0口定义为按键KEY
#define LED P1 //宏定义,将P1口定义为LED
uchar keyvalue=0; //定义变量,存放按键值
char code SST516[3] _at_ 0x003b; //仿真器保留
main() //主函数
{
while(1)
{
keyvalue=P0; //取按键值,存入keyvalue
P1=keyvalue; //将按键值赋给P1口,驱动相应LED发光
}
}