导航:首页 > 源码编译 > 库函数编译led灯闪烁

库函数编译led灯闪烁

发布时间:2023-06-09 17:15:50

A. 用keil编一个led灯闪烁程序

点亮 小灯的程序我们第二课完成了,就是让 LED = 0。熄灭小灯的程序也很简单,就是 LED = 1。点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点亮和熄灭小灯,就成了闪烁了。

我们首先复习一下 Keil 写程序的过程,建立工程-->保存工程-->建立文件-->添加文件到工程-->编写程序-->编译-->下载程序。

LED 对于有 C 基础的同学来说很简单,那我先写出来,大家可以先看下。没有C 语言基础的同学也可以跟着抄一遍,下节课我会补充部分 C 语言基础知识,这样你先抄一遍后,再跟着看 C 语言基础知识的时候也比较容易理解透彻。

纯文本复制

#<reg52.h>

sbit LED = P0^0;

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

main(){ //void 即函数类型

//以下为声明语句部分

unsigned int i = 0; //定义一个变量 i,并赋初值 0

//以下为执行语句部分

ENLED = 0; //U3、U4 两片 74HC138 总使能

ADDR3 = 1; //使能 U3 使之正常输出

ADDR2 = 1; //经 U3 的 Y6 输出开启Q16

ADDR1 = 1;

ADDR0 = 0;

(1){

LED = 0; //点亮小灯

for (i=0; i<30000; i++); //延时一段时间

LED = 1; //熄灭小灯

for (i=0; i<30000; i++); //延时一段时间

}

}

大家把这个程序编译一下,下载到里,就会发现 LED2 这个小灯会闪烁了。

B. 利用C51自带的库函数_crol_,以间隔500ms实现10个LED灯亮灭循环的C语言程序

先发一个8 个灯的。
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num;
void delay(uint);
void main()
{

temp=0xfe;
while(1)
{
for(num=0;num<8;num++)
{
P1=temp;
delay(100);
temp=_crol_(temp,1);
P1=0xff;
delay(100);
}

}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

/****************************************************************************
再发一个10个灯的,不过函数是IROL
*******************************************************************************/
_crol_不好实现,我用_irol_实现的。
//P2低两位,P1全部8位分别接LED,共十只LED
#include <reg51.h>
#include <intrins.h>

void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

main()
{
unsigned int j;
unsigned char i;
while(1)
{
j=0xfffe;
for(i=0;i<10;i++)
{
P2=j/256;
P1=j%256;
delay(500);
j=_irol_(j,1); //整数循环左移
}
}
}

C. 用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!

C语言实现LED灯闪烁控制配套51单片机开发板。

#include //包含单片机寄存器的头文件

/****************************************
函数功能:延时一段时间

*****************************************/

void delay(void) //两个void意思分别为无需返回值,没有参数传递。

{

unsigned int i; //定义无符号整数,最大取值范围65535。

for(i=0;i<20000;i++) //做20000次空循环。

; //什么也不做,等待一个机器周期。

}

/*******************************************************

函数功能:主函数 (C语言规定必须有也只能有1个主函数)。

********************************************************/
void main(void)

{

while(1) //无限循环。

{

P0=0xfe; //P1=1111 1110B, P0.0输出低电平。

delay(); //延时一段时间。

P0=0xff; //P1=1111 1111B, P0.0输出高电平。

delay(); //延时一段时间。

}

}

单片机驱动LED灯的源程序:

#include<reg52.h> //头文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定义。

void delay_ms(uint);//mS级带参数延时函数。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延时子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(3)库函数编译led灯闪烁扩展阅读:

单片机应用分类:

通用型:

这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型:

这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。

另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

控制型:

这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。

通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

参考资料来源:网络-单片机



D. 单片机 8个LED灯随机闪烁怎么做

1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。

阅读全文

与库函数编译led灯闪烁相关的资料

热点内容
万达电影院用英语怎么说 浏览:123
伊朗人购买加密货币 浏览:373
杭州哪儿找程序员 浏览:268
警察卧底监狱韩国电影叫什么电影 浏览:607
app激活小米移动网络连接到服务器地址 浏览:84
决策树归纳算法 浏览:873
欧美以小孩为主角的电影 浏览:432
肉写得好的古言作者 浏览:187
韩国电影失踪国语在线观看 浏览:39
盗墓电影免费大全 浏览:177
内地大尺度电影 浏览:296
日历女孩女二的扮演者李熙3围 浏览:219
韩国电影弟弟帮哥哥找工作条件是嫂子在自己家 浏览:818
安卓手机怎么重新变流畅 浏览:419
佑山爱 浏览:392
可以我的小米云服务器地址 浏览:893
血恋图片 浏览:510
胖熊网站 浏览:5
电影《喜旺》完整版 浏览:365
linuxsource命令 浏览:745