任务实施
一、任务分析
单片机P3.0连接一个独立控键,P1.0连接发光二极管。当按键按下时,单片机P3.0端口将会检测到一个低电平(0),可以用if语句进行判断,完成按键控制LED灯亮灭的目的。
二、程序设计
程序设计流程如图5-1-8所示。

图5-1-8 程序流程图
参考程序:
#include<reg51.h> //头文件,调用文件名为"reg51.h"的文件
#define uint unsigned int //定义uint=unsigned int(无符号整型)
#deifne uchar unsigned char //定义uchar=unsigned char(无符号字符型)
sbit led=P1^0; //定义符号led为单片机的P1.0引脚
sbit key=P3^0; //定义符号key为单片机的P3.0引脚
/*延时函数*/
void delayms(uint x) //当晶振为12 MHz时,延时xms
{ //当晶振为11.0592 MHz时,延时12x/11ms

三、电路仿真(https://www.daowen.com)
1.绘制电路仿真图
打开Proteus软件,创建“独立按键控制LED亮灭”文件,放置元器件。所需元件见表5-1-1。绘制完成的电路图如图5-1-9所示。
表5-1-1 元件清单


图5-1-9 绘制电路图
2.编写程序
打开Keil软件,新建“独立按键控制LED”工程文件,新建“key.c”文件,编写程序并生成hex文件。编写完成的程序如图5-1-10所示。

图5-1-10 编写程序
3.电路仿真
双击单片机,打开“Edit Component”对话框,加载“key.hex”文件。单击“仿真”按钮仿真电路,并观看仿真结果。仿真结果如图5-1-11所示。
仿真结果显示:当KEY按下时,发光二极管D1亮;当KEY松开时,发光二极管D1灭。

仿真视频

图5-1-11 仿真结果