led灯翻转c语言程序,led闪烁灯c语言解析

本文目录一览:

求用C语言编程实现51单片机的LED灯移动

#includereg51.h

#define uchar unsigned char

sbit c10=P1^0;

sbit c11=P1^1;

sbit c12=P1^2;

sbit c13=P1^3;

uchar led1,led3;

void delay(uchar a)

{

uchar i,j;

for(i=0;ia;i++)

for(j=0;j120;j++);

}

main()

{

uchar keyval=0xff;

led1=0xfe;

led3=0xf8;

while(1)

{

if(c10==0)

{

delay(10);

if(c10==0)

{

while(c10==0);

keyval=0;

}

}

if(c11==0)

{

delay(10);

if(c11==0)

{

while(c11==0);

keyval=1;

}

}

if(c12==0)

{

delay(10);

if(c12==0)

{

while(c12==0);

keyval=2;

}

}

if(c13==0)

{

delay(10);

if(c13==0)

{

while(c13==0);

keyval=3;

}

}

switch(keyval)

{

case 0:

P0=led1;

led1=(led11)|0x01;

if(led1==0xff)led1=0xfe;

delay(100);

case 1:

P0=led1;

led1=(led11)|0x80;

if(led1==0xff)led1=0x7f;

delay(100);

case 2:

P0=led3;

led3=(led31)|0x01;

if((led30xf0)==0x30)led3=0x3e;

if((led30xf0)==0x70)led3=0x7c;

if((led30xf0)==0xf0)led3=0xf8;

break;

case 3:

P0=led3;

led3=(led31)|0x80;

if((led30x0f)==0x0c)led3=0x7c;

if((led30x0f)==0x0e)led3=0x3e;

if((led30x0f)==0x0f)led3=0x1f;

break;

default:break;

}

}

}

C语言控制LED灯

//! 没有硬件方案,以下只包含逻辑

int push_count = 0;//记录按钮按下次数

//! 处理亮灯

void light(int led_num)

{

    switch(led_num)

    {

    case 1: 

        {

            ;// 点亮 灯1            

        } break;

    case 2: 

        {

            ;// 点亮 灯1            

        } break;

    default:

        ; //灭 所有 灯

        break;

    }

}

//! 处理按键中断

void push_interrupt()

{

    //判断按键是否有效

   push_count ++;

   if(1 == push_count)    

   {

       light(1);

   }

   else if(2 == push_count)

   {

       light(2);

   }

   else if(8 == push_count)

   {

       light(0);

       push_count = 0;

   }    

}

led旋转显示的c语言编程,基于c51单片机40引脚

#include “reg52.h” //单片机头文件

#include led.h

sfr P4=0xe8;

sbit KEY= P4 ^ 3; //红外感应 A04E

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

字幕数组

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

unsigned char code zimu[] = {// (取码:从上到下从左到右,纵向8位下高位 )

//空格

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//”仙”,

0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x00,0x40,0x00,0x40,

0x00,0x40,0xFF,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0xF0,0xFF,0x00,0x00,0x00,0x00,

//”剑”,

0x40,0x00,0x20,0x20,0x50,0x61,0x48,0x2E,0x44,0x20,0x43,0x2F,0x64,0x10,0x48,0x1C,

0x10,0x13,0x20,0x00,0xF8,0x0F,0x00,0x40,0x00,0x80,0xFF,0x7F,0x00,0x00,0x00,0x00,

//”奇”,

0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x3E,0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12,

0x4C,0x3F,0x54,0x42,0x74,0x80,0xC6,0x7F,0x44,0x00,0x60,0x00,0x40,0x00,0x00,0x00,

//”侠”,

0x80,0x00,0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x81,0x08,0x41,0x28,0x21,0x48,0x11,

0x08,0x0D,0xFF,0x03,0x08,0x0D,0x48,0x11,0x2C,0x61,0x88,0xC1,0x00,0x41,0x00,0x00,

//”传”,

0x80,0x00,0x40,0x00,0x20,0x00,0xF8,0xFF,0x47,0x00,0x48,0x00,0x48,0x02,0x48,0x0B,

0xC8,0x12,0x7F,0x62,0x48,0xD2,0x48,0x0A,0x4C,0x06,0x68,0x02,0x40,0x00,0x00,0x00,

//”四”,

0x00,0x00,0xFC,0x7F,0x04,0x20,0x04,0x28,0x04,0x24,0xFC,0x23,0x04,0x20,0x04,0x20,

0x04,0x20,0xFC,0x21,0x04,0x22,0x04,0x22,0x04,0x22,0xFE,0x7F,0x04,0x00,0x00,0x00,

//空格

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//”谪”,

0x40,0x00,0x42,0x00,0xCC,0x7F,0x00,0x20,0x04,0x10,0xE4,0xFF,0x24,0x01,0x2C,0x7D,

0x35,0x25,0xE6,0x27,0x34,0x25,0xAC,0x7D,0x24,0x81,0xF6,0x7F,0x24,0x00,0x00,0x00,

//”仙”,

0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,0x00,0x00,0xF0,0xFF,0x00,0x40,0x00,0x40,

0x00,0x40,0xFF,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0xF0,0xFF,0x00,0x00,0x00,0x00,

//空格

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//空格

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

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

函数名:LED显示用延时函数

调 用:delay0();

参 数:无

返回值:无

结 果:占用CPU方式延时500微秒时间

备 注:晶振11.0592m

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

void delay0(void) //误差 -0.46875us

{

unsigned char a,b;

for(b=1;b0;b–)

for(a=227;a0;a–);

}

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

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

函数名:CPU延时函数

调 用:delay1();

参 数:无

返回值:无

结 果:占用CPU方式延时4000微秒时间

备 注:晶振11.0592M

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

void delay1(void) //误差 -0.000000000005us

{

unsigned char b,c;

for(c=126;c0;c–)

for(b=13;b0;b–);

}

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

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

函数名:关闭所有LED灯(操作硬件)

调 用:DISPLAY_OFF();

参 数:无

返回值:无

结 果:所有LED灯熄灭

备 注:

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

void DISPLAY_OFF (void){

delay0();//显示停留

P0 = 0xff;

P3 = 0xff;

}

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

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

函数名:单帧数据送入显示(操作硬件)

调 用:display(?,?);

参 数:16位显示数据(下高位)(d:上面8位,e:下面8位)

返回值:无

结 果:点亮对应数据的LED灯

备 注:

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

void display(unsigned char d,unsigned char e){ //第1列横向显示程序

P3=~d;

P0=~e;

DISPLAY_OFF();

}

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

函数名:初始化程序

调 用:init();

参 数:无

返回值:无

结 果:IO接口全部置1

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

void init (void){

P1 = 0xff; //初始IO接口状态

P0 = 0xff;

P2 = 0xff;

P4 = 0xff;

}

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

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

函数名:主函数

调 用:无

参 数:无

返回值:无

结 果:程序开始处,无限循环

备 注:

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

void main (void){

unsigned char a;

unsigned int c=0;//数据指针

init();//初始程序

while(1){

if(KEY== 0)

{

delay1();

while(KEY== 0);

for(a=0;a160;a++){

if(c1279)c=c-1280;

display(tab1[c],tab1[c+1]);

c=c+2;//产生显示一列移位

}

if(c316)c=c+964; //防止指针溢出c=c+1280-316并实现字幕首尾无缝对接

else c=c-316; //调节滚动速度,转一圈产生384-376=8列位移

}

}

}

tab1[]和tab_love[]放在一个点H文件里面 里面是去摸的数组 不行再说 同样的硬件

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/159696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-20 00:15
下一篇 2024-11-20 00:15

相关推荐

  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python一元二次方程求解程序

    本文将详细阐述Python一元二次方程求解程序的相关知识,为读者提供全面的程序设计思路和操作方法。 一、方程求解 首先,我们需要了解一元二次方程的求解方法。一元二次方程可以写作: …

    编程 2025-04-29

发表回复

登录后才能评论