实验思路:
重定义管脚P0.0为LED1(管脚重定义要有意义,能通过重定义后的名称知道的功能)
给LED1(即P0.0管脚)低电平,点亮LED(开发版LED灯为共VCC,GND端接入P0.0管脚。因此给P0.0管脚低电平即可点亮LED)
完整代码:
/*******************************声明区********************************* * 实验名称:控制1颗LED点亮 * 文件名称:main.c * 版 本:V1.00 * 日 期:2021-11-23 * 编 著:gefon * 说 明:使用普中A7开发版,控制D1编号LED点亮 ***********************************************************************/ #include "reg52.h" sbit LED1=P0^0; //将P0.0管脚定义为LED1 /*******************************主程序********************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 ***********************************************************************/ void main() { LED1=0; //点亮D1灯 while(1) { } }
实验分析:
1、经实验LED1放在while(1)循环内或循环外,皆可实现点亮LED。
2、经实验无while(1)LED也可以点亮,是否可以不要while(1)也可以呢?经网上搜索发现,由于单片机本身的原因,如果没有while(1)程序执行完后可能会出现乱跑的现象,造成main函数无法终止。因此主函数main中有且必须有一个while(1)。