导航:首页 > 编程语言 > c51单片机编程实例

c51单片机编程实例

发布时间:2024-09-15 14:07:11

Ⅰ 用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;//关闭

}

}

如果图片看不清,点击“查看大图”,然后保存到你的电脑上,再查看更大的图。

阅读全文

与c51单片机编程实例相关的资料

热点内容
手机proxy服务器地址 浏览:449
吉他清音压缩 浏览:301
简历模板程序员 浏览:881
螺杆压缩机虚标型号 浏览:953
idea开发项目服务器ip地址 浏览:125
串口服务器出现乱码怎么解决 浏览:950
命令按钮的default 浏览:161
战网如何登录其他服务器 浏览:990
中国银行app如何关闭短信 浏览:493
nx120编程技巧 浏览:722
手机也能使用源码公式 浏览:918
怎样把压缩的文件下载 浏览:334
pdf是哪的 浏览:27
群晖服务器如何建立自己数据库 浏览:868
win10怎么查找服务器地址 浏览:506
freepdfsplit 浏览:172
如何更改linux服务器地址 浏览:221
编程求字符串abcdefh长度 浏览:312
座机时间服务器地址 浏览:419
华康宝app是怎么样的 浏览:73