www.8951.com

进入论坛

淘宝网店

软件下载

返回主页 单片机教程 单片机软件 电路设计 电子基础 网站产品 购买方式  进入论坛 软件下载

系统模块介绍

八路跑马灯

74LS14反向器

红外线遥控 PS2键盘实验

软件安装与使用

继电器控制

74LS138译码器

555硬件振荡器 SD 卡实验
USB驱动安装 8路拨动开关

74LS164串入并出

汉字点阵屏显示 DS1302实时时钟
ISP下载线介绍 

数码管静态,动态扫描

74LS165并入串出

步进电机,93c46 演示

常见问题解答
Keil仿真概述

端口按键判断

模拟/数字转换器

串行+485通信实验

系统配置指南
51MCU引脚说明

小喇叭警报器

24C02储存,8155试验 18B20温度显示 购买方式

 

实验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发光
}
}