资源简介
“流速”可控的彩灯控制器
1、8个发光二极管,当按下“开始键”,发光二极管按照自然数序列(1、2、3、4、5、6、7、8)、奇数序列(1、3、5、7)、偶数序列(2、4、6、8、)和音乐符号序列(1、2、3、4、5、6、7、1)四种样式不断循环;
2、用一个数码管上显示当前亮灯的数字;
3、另外设置1个按键,修改流速,第一次按下按键每个二极管点亮的时间为1s,连续二次按下按键每个二极管点亮的时间为0.5s;
4、按下开始按键,四种样式循环;
5、通过4个按键分别选择自然数序列、奇数序列、偶数序列、音乐序列单独样式循环。(按键由遥控器键盘实现)
压缩包包含源码,仿真图,报告,PPT

代码片段和文件信息
#include
#define GPIO_KEY P3
typedef unsigned char uint8;
sbit KeyOut1 = P1^3;
sbit IRIN=P3^2;
unsigned char Time;
unsigned char IrValue[6];
unsigned char code LedChar[] = {0xFF0xF90xA40xB00x990x920x820xF80x80}; //用数组来存储数码管真值表
/*******************************************************************************
* 函数名 : delayms()
* 函数功能 : 彩灯延时
* 输入 : x
* 输出 : 无
*******************************************************************************/
void delayms(unsigned int c) // 延时子程序 对应12M晶振
{
unsigned int i;
while(c--) //每一次循环1ms
{
for(i = 0; i < 120; i++);
}
}
/*******************************************************************************
* 函数名 : led x()
* 函数功能 : 彩灯序列
* 输入 : x
* 输出 : 无
*******************************************************************************/
void led1(unsigned int c) //自然数序列
{
uint8 jk;
for(j=0k=1;j<=8k<=8; j++k++)
{
P0 = ~(1 << j);
{
P2=LedChar[k];
}
delayms(c);
}
}
void led2(unsigned int c) //奇数序列
{
uint8 jk;
for(j=0k=1;j<=8k<=7; j+=2k+=2)
{
P0 = ~(1 << j);
{
P2=LedChar[k];
}
delayms(c);
}
}
void led3(unsigned int c) //偶数序列
{
uint8 jk;
for(k=0j=2;k <=8j<=8; k+=2j+=2)
{
P0 = ~(2 << k);
{
P2=LedChar[j];
}
delayms(c);
}
}
void led4(unsigned int c) //音乐序列
{
uint8 jk;
for(j=0k=1;j<=7k<=7; j++k++)
{
P0 = ~(1 << j);
{
P2=LedChar[k];
}
delayms(c);
}
}
/*******************************************************************************
* 函数名 : dispay()
* 函数功能 : 循环显示彩灯序列
* 输入 : x
* 输出 : 无
*******************************************************************************/
void dispay(unsigned int x){
led1(x);
led2(x);
led3(x);
led4(x);
}
/*******************************************************************************
* 函数名 : Delayns()
* 函数功能 : 红外延时
* 输入 : x
* 输出 : 无
*******************************************************************************/
void Delayns(unsigned int x) //0.14ms误差 0us
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++)
{}
}
}
/*******************************************************************************
* 函数名 : IrInit()
* 函数功能 : 初始化红外线接收
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void IrInit()
{
IT0=1;//下降沿触发
EX0=1;//打开中断0允许
EA=1; //打开总中断
IRIN=1;//初始化端口
}
/*******************************************************************************
* 函数名 : ReadIr()
* 函数功能 : 读取红外数值的中断函数
* 输入 : 无
* 输出 : 无
*****************************************************************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7658 2014-07-17 16:25 src\pro
文件 5145 2014-07-17 16:25 src\pro.c
文件 2146 2014-07-17 16:25 src\pro.hex
文件 39 2014-07-17 16:25 src\pro.lnp
文件 12914 2014-07-17 16:25 src\pro.LST
文件 13888 2014-07-17 16:25 src\pro.M51
文件 8482 2014-07-17 16:25 src\pro.OBJ
文件 159 2014-07-20 21:04 src\pro.plg
文件 55652 2014-07-17 17:41 src\pro.uvopt
文件 13393 2014-06-21 23:29 src\pro.uvproj
文件 55654 2014-07-10 00:04 src\pro_uvopt.bak
文件 0 2014-06-21 23:14 src\pro_uvproj.bak
文件 6376 2009-05-07 14:37 src\STARTUP.A51
文件 14048 2014-06-21 23:16 src\STARTUP.LST
文件 749 2014-06-21 23:16 src\STARTUP.OBJ
文件 99416 2014-07-09 09:37 仿真图\流水灯.DSN
文件 11096 2014-06-23 17:39 仿真图\流水灯.EDF
文件 768 2014-07-09 21:31 仿真图\流水灯.PWI
文件 2846208 2014-12-15 20:57 单片机课程设计.ppt
文件 156827 2014-12-15 20:58 “流速”可控的彩灯控制器.doc
目录 0 2014-12-15 20:54 src
目录 0 2014-12-15 20:54 仿真图
----------- --------- ---------- ----- ----
3310618 22
相关资源
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
评论
共有 条评论