Ⅰ 用c51单片机控制一个闪光灯循环闪光5次以后熄灭不再闪光,用C语言编程,求程序……
用C语言编程,求程序的方法:
#include//包含单片机寄存器的头文件
/****************************************函数功能:延迟一段时间
*****************************************/
Voiddelay(Void)蚂肢//Void表示没有返回值,也没有传递参数。
{
Unsignedint我;定义一个最大值为65535的无符号整数。
For (I = 0;我< 20000;i++) //执行20000个空循环。
;//什么也不做,等待一个机器周期。
}
/*******************************************************
函数函数:主函数(C语言规则必须有且只能有一个主函数)。
********************************************************/空白主要(空白)
{
而(1)//无限循环。
{
P0=0xfe;//P1=11111110B,P0.0输出低电平。
延迟();//推迟一段时间。
P0=0XFF;//P1=11111111B,P0.0输出高电平。
延迟();//推迟一段时间。
}
}
单片机驱动LED光源程序:
#include//头文件。
定义uint无符号int
#定义uchar无符号字符
SbitLED1=P1^7;//定义。
空白delay_ms(单位);//带参数的ms级延时函数。
Voidmain()
{
而(1)
{
LED1=0;
Delay_ms(1000);
LED1=1;
Delay_ms(1000);
}
}
Voiddelay_ms(uintz)//delay子例程
{
使用Uintx,y;
For (x = z;X > 0;X -)
For (y = 110;Y > 0;Y -);
}
(1)c51单片机编程实例扩展阅读:
单片态盯机应用分类:
一般类型:
这是关于微控制器的。例如80C51通用型单片闷闭世机,它并不是为特定的目的而设计的;专用单片机是为某一类产品甚至某一种产品而设计生产的。例如,为了满足电子体温计的要求,芯片中集成了具有ADC接口的温度测量控制电路等功能。
主线:
这是由微控制器是否提供并行总线来区分的。总线微控制器一般安装有并行地址总线、数据总线、控制总线,这些引脚扩展并行外围设备可以通过串口与单片机连接。
另外,很多单片机都需要将外围设备和外围设备的接口集成在一块,所以在很多情况下不能并行扩展总线,大大降低了封装成本和芯片体积,这种单片机被称为非总线单片机。
控制类型:
这是关于微控制器的一般应用。一般来说,工业控制寻址范围大,计算能力强。家用电器的单片机大多是专用的。
它通常是小包装、低价格、高集成的外围设备和外围接口。显然,上述分类并不独特和严格。例如,80C51类单片机既是通用的,又是总线的,还可以用于工业控制。
Ⅱ 求单片机c51的C语言编程:设当开关为1时,控制2个led交替闪烁,闪烁时间为5秒
#include#,led;sbitkey1=P1^0;sbitkey2=P1^1;voidt0isr()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;times++;}voidrolled(){P0=led;led=(led>>1)|0x80;if(led==0xff)l
Ⅲ C51单片机编程,按键控制流水灯
#include "reg51.h"
unsigned char led[]={0xfe,0xfd,0xfb,0xf7}; //LED灯的花样数据
void delay(unsigned char time){ //延时函数
unsigned int j=15000;
for(;time>0;time--)
for(;j>0;j--);
}
void main(){
bit dir=0,run=0; //标志位定义及初始化
char i;
while(1){
switch (P0 & 0x0f){ //读取键值
case 0x0e:run=1;break; //K1动作,设run=1
case 0x0d:run=0,dir=0;break; // K2动作,设run=dir=0
case 0x0b:dir=1;break; //K3动作,设dir=1
case 0x07:dir=0;break; //K4动作,设dir=0
}
if (run) //若run=dir=1,自上而下流动
if(dir)
for(i=0;i<=3;i++){
P2=led[i];
delay(200);
}
else
for(i=3;i>=0;i--){ //run=1,dir=0,自下而上流动
P2=led[i];
delay(200);
}
else P2=0xff; //若run=0,全部灯灭
}
}
Ⅳ 求一个c51单片机的程序
很简单,柄24个led接P0,P2,P3,三个口,占24个io口,上面5个花状因为同一圆圈led同时亮
可以并在一起,占8个io口,刚好32个io口。
我们从下到上将led定义为1~24号,扩散从中心往外定义为25~32号led。
1~32号lde,分别接到P0,P2,P3,P1的P0_0~P0_7号脚,P2_0~P2_7号脚,P3_0~P3_7号脚,P1_0~P1_7号脚
下面给出程序:
#include<reg52.h>
unsignedinti=0;
unsignedcharcodedis1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//正向
unsignedcharcodedis2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//反向
voiddelay()//;//单个led延时
{unsignedintj,k;
for(j=0;j<400;j++)
for(k=0;k<20;k++);
}
voidmain()
{
while(1)
{
i=0;
for(i=0;i<7;i++)//最底8个逐个显示
{P0=dis1[i];delay();}//单个延时
P0=255;//关闭
for(i=0;i<7;i++)//上移8个
{P2=dis1[i];delay();}
P2=255;
for(i=0;i<7;i++)//再上移8个
{P3=dis1[i];delay();}
P3=255;
for(i=0;i<7;i++)//中心向外扩散
{P1=dis1[i];//上面5组8个向外扩散
P3=dis2[i];//下面柄自中心向下扩散
delay();
}
P1=P3=255;//关闭
}
}
如果图片看不清,点击“查看大图”,然后保存到你的电脑上,再查看更大的图。