当前位置:首页 » 编程软件 » 单片机led编程

单片机led编程

发布时间: 2022-05-16 23:29:57

㈠ 用c语言单片机led灯显示数字“28”,如何编程

摘要 给LED编个数组,控制IO口,或者直接控制IO口,不过要看显示的28要多大,会占用比较多的IO口,道理和矩阵键盘差不多。

㈡ 单片机C语言编程点亮LED灯

可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。 具体实现方法可以参考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { // 向左循环点亮LED for(i=0; i<7; i++) { P1=_crol_(P1,1); // 左移一位,点亮下一位LED delay(55); } // 向右循环点亮LED for(i=0; i/ 右移一位,,点亮上一位LED delay(55); } }}// 延时函数,延时a毫秒void delay(uint a){ uint x,y; for(x=a;x>0;x--) for(y=110;y>0;y--);}

㈢ 用c语言单片机led灯显示数字“28”,如何编程

  1. 给LED编个数组,控制IO口,或者直接控制IO口,不过要看显示的28要多大,会占用比较多的IO口,道理和矩阵键盘差不多。

  2. 例程:

    #include<reg52.h>//单片机头文件
    voiddelay1ms(unsignedintms);//延时ms函数声明(可根据实际情况更改)
    unsignedcharcodeled0[]={};//字码表,你自己把你要显示的字码放进去就可以了
    voidmain()
    {
    unsignedcharw,i;
    while(1)
    {
    //显示0
    w=0x01;//行变量为第一行
    for(i=0;i<8;i++)
    {
    P1=w;//行数据送P1口
    P0=led0[i];
    delayms(1);//列数据送P0口
    w<<=1;//向下移动一行
    }

    }
    }
    voiddelay1ms(unsignedintms)
    {
    unsignedinti,j;
    for(i=0;i<ms;i++)
    for(j=0;j<110;j++)
    }

㈣ 用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--);

}

(4)单片机led编程扩展阅读:

单片机应用分类:

通用型:

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

总线型:

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

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

控制型:

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

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

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



㈤ 单片机编程:LED动态显示

不知道你要怎能么动?我就给个数字显示也动,数码馆也流水显示的
#include
#include
//包含流水灯的头文件
#define
uint
unsigned
int
#define
uchar
unsigned
char
uint
temp,aa,num,numwe;
sbit
an=P3^3;
//段控制端定义
sbit
wei=P3^4;
//位控制端定义
uchar
code
tablewe[]={0x01,0x02,0x04,0x08,0x10,0x20};
//6个数码管位码
uchar
code
table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E,};
//数码管段码(共阳)
void
main()
{
//以下为初值:
aa=0;
num=0;
//段码要显示的个数,初始为0
numwe=0;
//位码要移动的位数,初始为0
temp=0x01;
//显示状态为单灯暗涌移动,若改成0xfe则单灯点亮移动
P2=temp;
//LED显示在第一位
an=1;
//选通段
P0=0xC0;
//送段码、从0开始显示
an=0;
//关闭段
wei=1;
//选通位
P0=0x01;
//送位码、从第一位数码管开始显示
wei=0;
//关闭位
TMOD=0x01;
//TO工作方式1,也直接写TMOD=0
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
//赋定时初值50MS
EA=1;
ET0=1;
//开定时器0中断
TR0=1;
//启动定时器0
//以下为循环:
while(1)
{
if(aa==100)
//变化延时
{
aa=0;
temp=_crol_(temp,1);
//单灯左移值
P2=temp;
//显示
num++;
//段加1
if(num==16)//0~F共16个,最多到显示”F"
num=0;
an=1;
//开段
P0=table[num];
//显示
an=0;
numwe++;
//位加1
if(numwe==6)//最多移6位
numwe=0;
wei=1;
//开位
P0=tablewe[numwe];
//显示
wei=0;
}
}
}
void
exter0()
interrupt
1
using
1
//using选通用工作寄存器R0-R7,默认为0组
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
aa++;
}

㈥ 51单片机汇编语言的led亮灯编程题求解,必采纳

LED1 BIT P3.7 ; 程序没有改动,为了配合仿真图只改了端口。

KEY1 BIT P3.2

LJMP MAIN

ORG 0030H

MOV R1,#1 ; 亮灯个数

MAIN: MOV P1,#0FFH

CHECK: JB KEY1,CHECK

MOV P1,#11111111B

MOV R2,#8

LOOP: INC R1 ; 每次亮灯个数r1+1

MOV A,P1

CLR C

RRC A

MOV P1,A ; 亮灯

LCALL DL ; 跳到延迟程序 每次亮间延迟一会

DJNZ R2,LOOP ; 到r2(8次)循环结束

LJMP CHECK


ORG 0100H

DL: MOV R7,#100 ; 延迟程序

L1: MOV R6,#100

L2: MOV R5,#60

L3: NOP

NOP

DJNZ R5,L3

DJNZ R6,L2

DJNZ R7,L1

RET

END

㈦ 单片机编程,从0到9的数字在LED上显示

#include<reg51.h>
#define uchar unsigned char
uchar code ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳级数码管码表0-9
uchar time,dat;
bit flag=1;
sbit la=; //段和位控制位需要你自己填写。
sbit wela=;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time>=20)
{
dat++;
dat%=10;
flag=1;
}
}
main()
{
TMOD0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(flag)
{
flag=0;
la=1;
P0=0xff;
la=0;
wela=1;
P0=0x01;
wela=0;
la=1;
P0=ledtab[dat];
la=0;
}
}
}

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

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

㈨ 单片机C语言LED控制的编程

int i,j;
unsigned char data[]={0xff,0x55,0x80,0x1};
for(i=0;i<4;i++)
{
if(i==0 && i==2)
{
for(j=0;j<5;j++)
{
P1=data[i];
data[i]=~data[i];
delay(500);
}
}
else
{
for(j=0;j<8;j++)
{
P1=data[i];
if(i==2)data[i]>>=1;
else data[i]<<=1;
delay(500);
}
P1=0xff;
delay(500);
}
}

热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:166
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:736
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:148
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:398
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:544
access数据库exe 发布:2025-05-12 12:39:04 浏览:631
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:365