⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hy.c

📁 跑马灯实验程序
💻 C
字号:
/********************************************************************\
** 程序功能:实现端口D外接的8个LED循环采用三种不同的方式移动点亮 **
         **
\********************************************************************/
//#include <pic.h>
#include <pic18f4520.h>

#define uchar unsigned char //--------------在程序中用uchar置换unsgned char减省录入量
#define uint unsigned int

#define FLASH_LED PORTD    //用FLASH_LED置换PORTD,方便以后移置。
#define LED_TRIS TRISD    //
uchar FlashLed[]={0x18,0x24,0x42,0x81,0x00}; //控制从LED中间向两边移的数组

void init(void);         //PIC芯片资源初始化函数
void RightMovLed(void);  //实现向右单个移动点亮LED(右移) 
void LeftMovLed(void);      //实现向左单个移动点亮LED(左移)
void LedFlash(void);        //实现两个LED从中间跑两边
void crossFlash(void);     //交叉闪烁
void delay(uchar);          //延时函数

//********* 主函数 **********
void main()
{

    init();
    FLASH_LED=0x00;
 
    while(1)
    {
        RightMovLed();
        LeftMovLed();
        LedFlash();
        crossFlash();
    }
}

//********* 资源初始化 ************
void init(void)
{
    LED_TRIS=0x00; //定义端口D为输出
    
    INTCON=0x00;    //关闭所有中断
}

//********* LED点亮后单个右移 *********
void RightMovLed(void)
{
    uchar temp;
    temp=0x80;
    while(temp)
    {
        temp=temp>>1&0x7f;
        FLASH_LED=temp;
        delay(255);
        delay(255);
        delay(255);
    }
}

//********* LED点亮后单个左右移 *********
void LeftMovLed(void)
{
    uchar temp;
    temp=0x01;
    while(temp)
    {
        temp=temp<<1&0xfe;
        FLASH_LED=temp;
        delay(255);
        delay(255);
        delay(255);
    }
}

//********* 实现两个LED从中间跑两边 *********
void LedFlash(void)
{
    uchar i=0;
    while(FlashLed[i])
    {
        FLASH_LED=FlashLed[i];
        i++;
        delay(255);
        delay(255);
    } 
}

//********* 交叉闪烁 *********
void crossFlash(void)
{
    uchar i,temp;
    temp=0x55;
    for(i=0;i<10;i++)
    {
        FLASH_LED=temp;
        temp=~temp;
        delay(255);
    }
}

//*********** 延时函数 ********
void delay(uchar x)
{
    uchar i;
    while(x--)
    for(i=0;i<125;i++)
        continue;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -