失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 单片机旋转led程序c语言 基于单片机POV的旋转LED灯程序

单片机旋转led程序c语言 基于单片机POV的旋转LED灯程序

时间:2022-07-07 15:57:17

相关推荐

单片机旋转led程序c语言 基于单片机POV的旋转LED灯程序

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

*Name:旋转LED

*Version:1.0

*Date:

*BY:C

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

#include //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int uint; //对数据类型进行声明定义

typedef unsigned char uchar;

sbit HR_Sensor= P3^2; //霍尔传感器

sbit Beep = P2^0; //蜂鸣器

sbit Key_Wake = P2^1; //唤醒按键

sbit Led_H = P0; //所有Led正极接一起接VCC

sbit Led_L = P1;

uchar Select = 0;

//阳码

uchar code ASCII0[32] = {0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x00,0xFE,0xFD,0xFE,0x7B,0xFA,

0xB7,0xF6,0xDF,0xEE,0xEF,0xDE,0xF7,0xBE,0xFB,0xFE,0xFB,0xFE,0xFD,0xFE,0xFD,

0xFF,0xFF}; //“长”

uchar code ASCII1[32] = {0xFD,0xDF,0xDD,0xDF,0xD5,0xBF,0xD5,0x7F,0xD4,0x80,0xD5,0xB6,0xD1,0xB6,0x05,

0xB6,0xD5,0xB6,0xD5,0xB6,0xD4,0x80,0xD5,0x7F,0xD5,0xBF,0xDD,0xDF,0xFD,0xDF,

0xFF,0xFF}; // “春”

uchar code ASCII2[32] = {0xDF,0xFB,0xDE,0xF9,0xDE,0xFB,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xFF,0xFD,0x80,

0xDD,0xB6,0xDD,0xB6,0xDD,0x80,0x01,0xB6,0xDD,0xB6,0xDD,0x80,0xDD,0xFF,0xFD,

0xFF,0xFF}; //“理”

uchar code ASCII3[32] = {0xFF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xC0,

0x03,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xFF,0xFB,

0xFF,0xFF}; //“工”

uchar code ASCII4[32] = {0xFB,0xFE,0xFB,0xFE,0xFB,0xFD,0xFB,0xFB,0xFB,0xF7,0xFB,0xCF,0xFB,0x3F,0x00,

0xFF,0xFB,0x3F,0xFB,0xCF,0xFB,0xF7,0xFB,0xFB,0xFB,0xFD,0xFB,0xFE,0xFB,0xFE,

0xFF,0xFF}; //“大”

uchar code ASCII5[32] = {0xFD,0xDF,0xF3,0xDF,0x77,0xDF,0x96,0xDF,0xF6,0xDF,0xF6,0xDD,0x76,0xDE,0x96,

0x81,0xF6,0x9F,0xF6,0x5F,0xE6,0xDF,0xD7,0xDF,0x37,0xDF,0xF5,0xDF,0xF3,0xDF,

0xFF,0xFF}; //“学”

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

* 函 数 名 : delayxms

* 函数功能 : 延时函数

* 输入:

* 输出:

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

void Delayxms(uint xms)

{

uchar a = 0,b = 0;

uint i = 0;

for(i=xms;i>0;i--)

{

for(b=199;b>0;b--)

for(a=1;a>0;a--)

;

}

}

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

* 函 数 名 : delayxms

* 函数功能 : 延时函数

* 输入:

* 输出:

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

void Beep_Test(uint xms)

{

Beep = 1;

Delayxms(xms);

Beep = 0;

}

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

* 函 数 名 : Key_Scan

* 函数功能 : 延时函数

* 输入:

* 输出:

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

void Key_Scan()

{

if(Key_Wake==0)

{

Delayxms(12);

if(Key_Wake==0)

{

Beep_Test(200);

Select++;

if(Select>1)

{

Select = 0; //清零

}

}

}

}

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

* 函 数 名 : Int0_Init()

* 函数功能 : 设置外部中断0

* 输 入 : 无

* 输 出 : 无

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

void Int0_Init()

{

IT0 = 1;//跳变沿出发方式(下降沿)

EX0 = 1;//打开INT0的中断允许。

EA = 1;//打开总中断

}

void main()

{

uchar i,j;

Int0_Init(); //打开外部中断0

Beep_Test(1000); //启动测试

P0 = 0X00; //全亮测试

P1 = 0X00;

Delayxms(3000);

while(1)

{

Key_Scan();

if(Select==0)//显示字符

{

for(i=0;i<6;i++)

{

switch(i)

{

case 0: //第一个字

{

for(j=0;j<31;j++)

{

P0 = ASCII0[j];

P1 = ASCII0[j+1];

}

break;

}

case 1: //第二个字

{

for(j=0;j<31;j++)

{

P0 = ASCII1[j];

P1 = ASCII1[j+1];

}

break;

}

case 2:

{

for(j=0;j<31;j++)

{

P0 = ASCII2[j];

P1 = ASCII2[j+1];

}

break;

}

case 3:

{

for(j=0;j<31;j++)

{

P0 = ASCII3[j];

P1 = ASCII3[j+1];

}

break;

}

case 4:

{

for(j=0;j<31;j++)

{

P0 = ASCII4[j];

P1 = ASCII4[j+1];

}

break;

}

case 5:

{

for(j=0;j<31;j++)

{

P0 = ASCII5[j];

P1 = ASCII5[j+1];

}

break;

}

}

}

}

if(Select==1) //待机模式

{

P0 = 0;

P1 = 0;

}

}

}

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

* 函 数 名 : Int0() interrupt 0

* 函数功能 : 外部中断0的中断函数

* 输 入 : 无

* 输 出 : 无

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

void Int0() interrupt 0//外部中断0的中断函数

{

P0 = 0XFF; //消影

P1 = 0XFF;

}

如果觉得《单片机旋转led程序c语言 基于单片机POV的旋转LED灯程序》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。