单片机 8个按键分别控制8个LED灯 c语言代码
单片机八个灯依次亮的编程汇编语言
单片机八个灯依次亮的编程汇编语言哎呀,这可是个不小的挑战啊!不过,既然咱们已经走到了这一步,那就得好好想想怎么才能让单片机的八个灯依次亮起来。
别着急,我会尽力帮助你的。
我们得了解一下单片机的基本知识。
单片机就是一种集成电路芯片,它可以把所有的功能都集成在一个小小的芯片里。
而这次的任务就是要让单片机控制八个灯依次亮起来。
听起来好像很简单,但其实还是有很多细节需要注意的。
那么,我们现在就开始吧!我们需要了解单片机的输入输出端口是什么样子的。
通常情况下,单片机的输入输出端口都是通过一些小电阻和电容来实现的。
我们可以通过这些电阻和电容来控制电流的流动,从而实现对灯的控制。
接下来,我们需要了解一下单片机的时钟信号是什么。
时钟信号就是单片机工作的基础,它决定了单片机每秒钟可以执行多少次指令。
因此,在编写程序的时候,我们必须要考虑到时钟信号的影响。
好了,现在我们已经准备好了所有的工具和材料,可以开始动手做实验了!我们需要把单片机连接好电路图中的引脚。
这里要注意一下,每个引脚都要连接正确无误才行哦!
接下来,我们需要编写一个简单的程序来控制单片机的工作。
这个程序应该包括以下几个部分:首先是初始化程序,用来设置单片机的各个参数;然后是循环程序,用来控制灯的亮灭;最后是延时函数,用来控制灯亮的时间间隔。
写完程序之后,我们就可以把它烧录到单片机里面去了。
这个过程也很重要哦!如果烧录失败了,那么我们的努力可就白费了。
我们只需要把开关一打开,就可以看到八个灯依次亮起来了!哇塞,真是太神奇了吧!这一切都是因为我们用智慧和汗水创造出了这样一个奇迹!。
单片机8个led灯循环点亮程序
单片机8个led灯循环点亮程序一、前言单片机是一种非常重要的电子元件,它可以通过编程来实现各种功能。
其中,点亮LED灯是最基础的操作之一。
本文将介绍如何使用单片机8个LED灯循环点亮。
二、硬件准备1. 单片机:STC89C52RC或其他8051系列单片机;2. LED灯:8个;3. 电阻:8个(220欧姆);4. 面包板:1个;5. 杜邦线:若干。
三、程序设计首先,我们需要了解一些基本的概念和知识:1. 端口:单片机的I/O口被称为端口,其中P0、P1、P2、P3四个端口分别对应着不同的引脚。
2. 输出:通过控制端口输出高电平或低电平来控制外部设备。
3. 延时函数:为了让程序在执行时停留一段时间,需要使用延时函数。
接下来,我们开始编写程序。
具体步骤如下:1. 定义引脚首先,我们需要定义每个LED所对应的引脚。
这里我们将8个LED分别连接到P0口的0~7引脚上。
sbit led0=P0^0;sbit led1=P0^1;sbit led2=P0^2;sbit led3=P0^3;sbit led4=P0^4;sbit led5=P0^5;sbit led6=P0^6;sbit led7=P0^7;2. 定义延时函数为了让程序在执行时停留一段时间,我们需要定义一个延时函数。
这里我们使用循环来实现延时。
void delay(unsigned int i){while(i--);}3. 循环点亮LED灯接下来,我们就可以开始循环点亮LED灯了。
这里我们使用for循环来实现。
void main(){while(1){for(int i=0;i<8;i++){switch(i){case 0:led0=1;break;case 1:led1=1;break;case 2:led2=1;break;case 3:led3=1;break;case 4:led4=1;break;case 5:led5=1;break;case 6:led6=1;break;case 7:led7=1;break;}delay(50000);switch(i){case 0:led0=0;break;case 1:led1=0;break;case 2:led2=0;break;case 3:led3=0;break;case 4:led4=0;break;case 5:led5=0;break;case 6:led6=0;break;case 7:led7=0;break;}}}}四、总结通过以上步骤,我们就可以实现单片机8个LED灯循环点亮的程序了。
单片机二进制八个led灯计数
单片机二进制八个led灯计数以下是一种可能的实现方式:```c#include <reg52.h>sbit LED1 = P1^0; // 定义 LED1 连接的引脚sbit LED2 = P1^1; // 定义 LED2 连接的引脚sbit LED3 = P1^2; // 定义 LED3 连接的引脚sbit LED4 = P1^3; // 定义 LED4 连接的引脚sbit LED5 = P1^4; // 定义 LED5 连接的引脚sbit LED6 = P1^5; // 定义 LED6 连接的引脚sbit LED7 = P1^6; // 定义 LED7 连接的引脚sbit LED8 = P1^7; // 定义 LED8 连接的引脚unsigned char count = 0; // 计数器变量void delay() {unsigned int i, j;for(i = 0; i < 100; i++) {for(j = 0; j < 1000; j++) {}}}void main() {while(1) {LED1 = count & 0x01; // 判断计数器的最低位是 0 还是 1LED2 = (count >> 1) & 0x01; // 判断计数器的第二位是 0 还是 1 LED3 = (count >> 2) & 0x01; // 判断计数器的第三位是 0 还是 1 LED4 = (count >> 3) & 0x01; // 判断计数器的第四位是 0 还是 1 LED5 = (count >> 4) & 0x01; // 判断计数器的第五位是 0 还是 1 LED6 = (count >> 5) & 0x01; // 判断计数器的第六位是 0 还是 1 LED7 = (count >> 6) & 0x01; // 判断计数器的第七位是 0 还是 1 LED8 = (count >> 7) & 0x01; // 判断计数器的最高位是 0 还是 1count++; // 计数器加 1delay(); // 延时一段时间}}```这段代码使用了 P1 口的 8 个引脚分别连接到 8 个 LED 灯,通过不断改变P1 口的引脚状态来实现二进制计数。
实验2 流水灯控制的C语言实现
实验2 流水灯控制的C语言实现一、实验目的1、应用PROTEUS仿真工具软件绘制硬件连接图2、使用Keil C 完成程序的编写和调试3、初步了解C51程序的编写与调试二、实验内容本任务就是在单片机电路板上安装电路,以P1作为输出口,控制8个LED灯(可发红、绿或黄光),模拟流水灯控制。
三、实验电路原理图图4-1 流水灯控制电路原理图四、实验步骤1、在PROTEUS中画好电路原理图。
2、在KEIL中编写流水灯控制的程序。
编好后调试产生HEX文件。
编程要求如下:状态1:8个LED,从左到右逐个点亮,状态2:8个LED,从右到左逐个点亮,状态3:8个LED,从左到右依次点亮,状态4:8个LED,从右到左依次熄灭。
转至状态1循环该程序对应的流程图如图4-2所示。
3、将HEX文件写入电路图中的单片机,仿真出流水灯控制的现象。
五、实验源代码1、汇编程序:ORG 0000HLJMP MAINORG 0040HMAIN: MOV SP,#60HLOOP1:MOV R0,#8MOV A,#0FEHLP1: MOV P1,AMOV R3,#5LCALL DELAYRL ADJNZ R0,LP1LOOP2:MOV R0,#8MOV A,#7FHLP2: MOV P1,ALOOP3:MOV R0,#8MOV A,#0FEHLP3: MOV P1,AMOV R3,#5LOOP4:MOV R0,#8MOV A,#80HLP4: MOV P1,AMOV R3,#5LCALL DELAYSETB CRRC ADJNZ R0,LP4LJMP LOOP1DELAY: MOV R2,#0FFH ; 延时子程序DELAY1: MOV R1,#0C3HRETEND2、C51程序:#include<reg51.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint n) /*1ms延时函数*/ { uint k,j;for(k=0;k<n;k++)for(j=0;j<121;j++);}main(){ uchar i;uint aa;while(1){ aa=0xfe;for(i=0;i<8;i++){P1=aa;delay(500);aa=(aa<<1)|0x01;}aa=0x7f;for(i=0;i<8;i++){P1=aa;delay(500);aa=(aa>>1)|0x80;}aa=0xfe;for(i=0;i<8;i++){P1=aa;delay(500);aa=aa<<1;}aa=0x80;for(i=0;i<8;i++){P1=aa;delay(500);aa=(aa>>1)|0x80;}}}图4-2 程序流程图。
单片机课程设计 八路抢答器(C语言)
单片机课程设计8路抢答器指导老师:宋*******学号:************ 班级:12电子卓越班目录一绪论 (3)二基本设计方案 (4)三具体设计 (5)四电路板的制作 (7)五电路功能测试与调试 (7)六心得体会 (8)附录 (9)一绪论1.1单片机抢答器的背景二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
在知识竞赛中,特别是做抢答题时,在抢答过程中,为了更确切的知道哪一组或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。
若在抢答中,只靠人的视觉(或者是听觉)是很难判断出哪一组(或哪一个选手)先抢答到题的。
利用单片机编程来设计抢答器,可以使以上问题得以解决,即使两组的抢答时间相差几微秒,也能轻松的分辨出哪一组(或哪个选手)先抢答到题的。
本文主要介绍了抢答器的工作原理及设计,以及它的实际用途。
1.2设计要求:一、基本功能:1、六路抢答,抢答有效时相应的灯亮,并有音乐提示;2、每轮抢答需主持人按“开始”后,抢答才有效;3、抢答无效时,有相应的灯及音乐提示;二、扩展功能:1、扩展到8路或以上;2、抢答倒计时提示;3、各路的参赛者有得分显示;4、其他自行增加的功能;二基本设计方案2.1 单片机的选择我选择STC89C52单片机芯片的理由如下:1、在设计过程中可能会出现很多问题,89C52可重复烧程序;2、是80C51的增强型,功能与我们所学的51单片机基本相同;3、学校配套发的单片机开发板用的就是89C52,有很多相关教程,程序的测试与烧写都十分方便;4、器材室很方便就能领到。
单片机课程设计—8个按键控制8个LED自动设定控制流水灯
单片机课程设计—8个按键控制8个LED自动设定控制流水灯东北石油大学实习总结报告实习类型生产实习实习单位东北石油大学实习基地实习起止时间 7月7日至 7月16日指导教师刘东明、孙鉴所在院(系)电子科学学院班级电子科学与技术15-2 学生姓名学号7月 16日目录第1章按键控制流水灯设计 (1)1.1 实习目的 ..................................................... 错误!未定义书签。
1.2 实习要求 ..................................................... 错误!未定义书签。
第2章电路工作原理 (2)2.1 STC89C52单片机工作原理 (2)2.2 LED工作原理 (3)2.3按键工作原理 (3)2.4整体电路图 (5)2.5 本章小结 (6)第3章 C程序设计 (7)3.1 程序设计流程图 (7)3.2实验结果 (8)3.3 本章小结 (9)总结及体会 (10)参考文献 (11)附录 (12)第1章按键控制流水灯设计1.1实习目的本次实习以STC89C52单片机为控制核心。
经过它实现对八盏LED灯的亮灭进行设定,并在设定完成之后能够按照之前的设定实现流水灯效果。
外部电路为按键控制流水灯。
P0口控制八盏灯,P1口控制矩阵键盘,P2口控制独立按键,程序利用单片机内部计时器中断实现流水效果。
要求流水灯能够自行设定、暂停、复位,工作稳定,可靠性高。
生产实习的主要目的是培养理论联系实际的能力,提高实际动手操作能力。
本专业的生产实习旨在广泛了解实际单片机电子产品工作的全过程,熟悉电子产品的主要技术管理模式,并在实习的操作过程中学习掌握电子产品的焊接安装调试的实际操作技能。
巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素质大学本科人才打下必要的基础。
透过学习,是理论与实际相结合,能够使学生加深对所学知识的理解,并为后续专业课的学习带给必要的感性知识,同时直接了解本业的生产过程和生产资料,为将来走上工作岗位带给必要的实际生产知识。
单片机控制LED灯点亮(C语言)
将0xfe赋给P1口,然后使用移位函数来改变P1口的值,达到流水灯的效果 移位函数: _crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回 。 _crol_,_cror_: c51中的intrins.h库函数
程序如下:
随后会弹出一个对话框,要求选择单片机的型号。在该对话框中显示了Vision2的器件数据库,从中可以根据使用的单片机来选择。
PART ONE
AT89S52
8051 based Full Static CMOS controller with Three-Level Program Memory Lock, 32 I/O lines, 3 Timers/Counters, 8 Interrupts Sources, Watchdog Timer, 2 DPTRs(DATA POINTER REGISTERS ), 8K Flash Memory, 256 Bytes On-chip RAM 基于8051全静态CMOS控制器、 三级加密程序存储器 、 32个I/O口 、三个定时器/计数器 、八个中断源 、看门狗定时器、2 个数据指针 寄存器、8k字节Flash,256字节片内RAM
十六进制整常数
十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。 以下各数是合法的十六进制整常数: 0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535) 以下各数不是合法的十六进制整常数: 5A (无前缀0X) 0X3H (含有非十六进制数码)
各种进位制的对应关系
十进制
二进制
十六进制
十进制
二进制
十六进制
0
0
0
9
1001
单片机控制LED灯点亮(C语言)
单片机控制LED灯点亮在嵌入式系统开发中,单片机控制LED灯是入门阶段必不可少的实验。
本文将介绍如何在单片机中使用C语言编程控制LED灯点亮。
硬件准备本实验所需硬件材料如下:•单片机主板•LED灯•杜邦线根据图示,将单片机主板上的引脚和LED灯连接起来。
单片机引脚 LED灯P0.0 +端GND -端软件准备我们选择Keil uVision作为编程环境来编写代码。
在开始编写代码之前,需要下载并安装Keil uVision软件。
新建工程在Keil uVision软件中,通过菜单Project -> New µVision Project新建一个工程。
新建工程新建工程在弹出的对话框中,选择保存工程的路径,命名工程名字,选择MCU型号并确定。
选择MCU型号选择MCU型号添加源文件在Keil uVision软件中,将编写的源代码文件添加到工程中。
选择菜单Project -> Add New Item,在弹出的对话框中选择新建一个源文件。
添加源文件添加源文件编写代码以下是控制LED灯点亮的C语言代码#include <STC89C5xRC.H>int main(void){while(1) {P0 = 0x01; // P0.0 点亮LED灯}}程序的执行流程如下:1.定义一个无限循环,反复执行控制LED灯点亮的操作。
2.将P0.0 IO口设为高电平,点亮LED灯。
编译和烧录完成编写代码之后,可进行编译和烧录。
选择菜单Project -> Build Target进行编译,将生成的hex文件烧录到单片机上即可。
本文介绍了如何在单片机中使用C语言编程控制LED灯点亮的操作。
通过对硬件和软件的介绍,读者可以学习到单片机的基础知识与相关编程知识,对深入学习嵌入式系统和单片机开发有很大的帮助。
【8个流水灯来回点亮设计程序】
单片机C语言如何实现8个LED流水灯来回流动?第一部分参考程序#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int//--------------------------------void DelayMS(uint ms){uchar t;while(ms--) for (t=0;t<120;t++);}//----------------------------------void main(){P2= 0xfe;while (1){P2 =_crol_(P2,1);DelayMS(200);}}2012-06-14 17:06 芯DZ|分类:C/C++|浏览267次现在只能从左到右循环流动,怎么才能从左到右再从右到左流动呢?#include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit beep=P2^3;uchar p1e;void delay(uint a);void main(){p1e=0xfe;P1=p1e;while(1){p1e=_crol_(p1e,1);delay(55);P1=p1e;beep=0;delay(55);beep=1;delay(55);}}void delay(uint a){uint x,y;for(x=a;x>0;x--)for(y=150;y>0;y--); }提问者采纳2012-06-14 17:51char i;while(1){for(i=0; i<7; i++){p1e=_crol_(p1e,1);delay(55);P1=p1e;beep=0;delay(55);beep=1;delay(55);}for(i=0; i<7; i++){p1e=_cror_(p1e,1);delay(55);P1=p1e;beep=0;delay(55);beep=1;delay(55);}}CYF0316|六级p1e=_cror_(p1e,1);追问这个只是向右移吧...我是说向左移动到第8个LED后再从第8个向左移,实现来回流动回答1,赋值2,右移动3,再赋值4,左移动你程序都写出了只是把程序COPy 粘帖到下面把p1e=_crol_(p1e,1); 改成p1e=_cror_(p1e,1); 就好了呀第二部分参考、归纳、总结得正确程序(仅供参考)#include <AT89X51.H>#include <intrins.h>#define uchar unsigned char#define uint unsigned intvoid DelayMS(uint ms) {uchar t;while(ms--) for (t=0;t<120;t++);}void main(){ char i;P2= 0xfe;while (1){for(i=0; i<7; i++){P2 =_crol_(P2,1);DelayMS(200);}for(i=0; i<7; i++){P2 =_cror_(P2,1);DelayMS(200);}}}以下是附加文档,不需要的朋友下载后删除,谢谢班主任工作总结专题8篇第一篇:班主任工作总结小学班主任特别是一年级的班主任,是一个复合性角色。
8个流水灯来回点亮设计程序
单片机C语言如何实现8个LED流水灯来回流动?第一部分参考程序#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int//--------------------------------void DelayMS(uint ms){uchar t;while(ms--) for (t=0;t<120;t++);}//----------------------------------void main(){P2= 0xfe;while (1){P2 =_crol_(P2,1);DelayMS(200);}}2012-06-14 17:06 芯DZ|分类:C/C++|浏览267次现在只能从左到右循环流动,怎么才能从左到右再从右到左流动呢?#include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit beep=P2^3;uchar p1e;void delay(uint a);void main(){p1e=0xfe;P1=p1e;while(1){p1e=_crol_(p1e,1);delay(55);P1=p1e;beep=0;delay(55);beep=1;delay(55);}}void delay(uint a){uint x,y;for(x=a;x>0;x--)for(y=150;y>0;y--); }提问者采纳2012-06-14 17:51char i;while(1){for(i=0; i<7; i++){p1e=_crol_(p1e,1);delay(55);P1=p1e;beep=0;delay(55);beep=1;delay(55);}for(i=0; i<7; i++){p1e=_cror_(p1e,1);delay(55);P1=p1e;beep=0;delay(55);beep=1;delay(55);}}CYF0316|六级p1e=_cror_(p1e,1);追问这个只是向右移吧...我是说向左移动到第8个LED后再从第8个向左移,实现来回流动回答1,赋值2,右移动3,再赋值4,左移动你程序都写出了只是把程序COPy 粘帖到下面把p1e=_crol_(p1e,1); 改成p1e=_cror_ (p1e,1); 就好了呀第二部分参考、归纳、总结得正确程序(仅供参考)#include <AT89X51.H>#include <intrins.h>#define uchar unsigned char#define uint unsigned intvoid DelayMS(uint ms) {uchar t;while(ms--) for (t=0;t<120;t++);}void main(){ char i;P2= 0xfe;while (1){for(i=0; i<7; i++){P2 =_crol_(P2,1);DelayMS(200);}for(i=0; i<7; i++){P2 =_cror_(P2,1);DelayMS(200);}}}。
单片机课程设计—8个按键控制8个LED自动设定控制流水灯之令狐文艳创作
令狐文艳东北石油大学令狐文艳实习总结报告实习类型生产实习实习单位东北石油大学实习基地实习起止时间 2018年7月7日至2018年7月16日指导教师刘东明、孙鉴所在院(系)电子科学学院班级电子科学与技术15-2 学生姓名学号 15090124022018年 7月 16日目录第1章按键控制流水灯设计 (1)1.1 实习目的 ....................................................................... 错误!未定义书签。
1.2 实习要求 ....................................................................... 错误!未定义书签。
第2章电路工作原理. (2)2.1 STC89C52单片机工作原理 (2)2.2 LED工作原理 (3)2.3按键工作原理 (3)2.4整体电路图 (5)2.5 本章小结 (6)第3章 C程序设计 (7)3.1 程序设计流程图 (7)3.2实验结果 (8)3.3 本章小结 (9)总结及体会 (10)参考文献 (11)附录 (12)第1章按键控制流水灯设计1.1实习目的本次实习以STC89C52单片机为控制核心。
通过它实现对八盏LED灯的亮灭进行设定,并在设定完成之后能够按照之前的设定实现流水灯效果。
外部电路为按键控制流水灯。
P0口控制八盏灯,P1口控制矩阵键盘,P2口控制独立按键,程序利用单片机内部计时器中断实现流水效果。
要求流水灯能够自行设定、暂停、复位,工作稳定,可靠性高。
生产实习的主要目的是培养理论联系实际的能力,提高实际动手操作能力。
本专业的生产实习旨在广泛了解实际单片机电子产品工作的全过程,熟悉电子产品的主要技术管理模式,并在实习的操作过程中学习掌握电子产品的焊接安装调试的实际操作技能。
巩固和加深理解所学的理论,开阔眼界,提高潜力,为培养高素质大学本科人才打下必要的基础。
51单片机控制P2口8位LED灯左移C语言程序
51单片机控制P2口8位LED灯左移C语
言程序
此程序控制P2.0~P2.7口8个LED(P2.0~P2.7)灯逐个依次点这,又从(P2.7~P2.0)这样的顺序一直到全部被点亮。
#include ;//头文件
void delay(unsigned int x)//延时函数
{
while(x--);
}
void main(void)
{
unsigned char i;//定义一个无符号字型局部变量i 取值范围0~255
delay(50000);
P2=0xfe;
for(i=0;i<8;i++)//加入for循环,表明for循环大括号中程序循环执行8次
{
delay(50000);//调用延时函数,更改延时的x变量的值可以更改延时长短,用于改变闪烁频率
P2<<=1;
}
}
知识要点:
1、<<符号。
这个是左移符号,P2<<=1;等效于
P2=P2<<1;
例如:temp=15;
temp<<=1;
15二进制为00001111,左移1位后,右端自动补0,变
成00011110,此时temp=30;数值左移一位相当于乘以2,反之右移一位相当于除以2.。
单片机C语言LED灯点亮程序完全版
1例子1第二个灯亮#include<reg52.h>void main(){P1=0xfd;}#include<reg52.h>Sbit D1=P1^0;Void main(){D1=0}注意:稍微改程序时需重新hex化例子2第一个灯亮#include<reg52.h> //52单片机头文件sbit led1=P1^0; //单片机管脚位声明void main() //主函数{led1=0; //将单片机P1.0口清零while(1); //程序停止在这里,在后面会讲到为什么这样写。
}例子3第一个灯亮#include<reg52.h> //52单片机头文件void main() //主函数{P1=0xfe; //将单片机P1口的8个口由高到低分别赋值为11111110 while(1); //程序停止在这里,在后面会讲到为什么这样写。
}2例子1第三个灯闪烁fir循环#include<reg52.h>sbit D2=P1^2;unsigned int a;void main(){D2=0;for(a=0;a<=10000;a++){};D2=1;for(a=0;a<=10000;a++){};}例子2第三个闪烁while循环#include<reg52.h>sbit D2=P1^2;unsigned int a;void main(){a=5000;D2=0;while(a--);a=5000;D2=1;while(a--);}2.#include<reg52.h> //52单片机头文件sbit led1=P1^0; //单片机管脚位声明void main() //主函数{unsigned int i; //定义一个int型变量while(1){i=50000; //变量赋初值为50000led1=0; //点亮灯while(i--); //延时i=50000;led1=1; //熄灭灯while(i--);}}3例子1 3 5 7灯同时亮#include<reg52.h> //52单片机头文件sbit led1=P1^0; //单片机管脚位声明sbit led3=P1^2; //单片机管脚位声明sbit led5=P1^4; //单片机管脚位声明sbit led7=P1^6; //单片机管脚位声明void main() //主函数{led1=0; //将单片机P1.0口清零led3=0; //将单片机P1.2口清零led5=0; //将单片机P1.4口清零led7=0; //将单片机P1.6口清零while(1); //程序停止在这里,在后面会讲到为什么这样写。