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/zh-tw/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

發表回復

登錄後才能評論