标题:
单片机小系统板的花样流水灯
[打印本页]
作者:
陈小手43970
时间:
2017-10-11 23:48
标题:
单片机小系统板的花样流水灯
控制P37 P21 P22 P23 P16 P17控制流水灯
单片机源程序如下:
/***************************************
小系统板的花样流水灯
流水灯只接P37 P21 P22 P23 P16 P17
***************************************/
#include <STC15F2K60S2.H>
#include "intrins.h"
#include "led.h"
#include "delay.h"
/***************************************/
typedef unsigned int uint;
typedef unsigned char uchar;
/***************************************/
void initial();
void Delay1000ms();
void led_dr_light_on(uchar m);
void led_dr_light_off(uchar m);
void writedate(uchar dat1);
void delay(uchar m);
void Delay1000ms();
void Delay500ms();
void Delay300ms();
void Delay100ms();
void Delay500us();
void style_one();
void new();
/***************************************/
uchar code tab_zeor[6]={0x00,0x00,0x00,0x00,0x00,0x00};
uchar code tab[6]={0x01,0x02,0x04,0x08,0x10,0x20};//0000 0001、0000 0010、0000 0100、0000 1000、0001 0000、0010 0000
uchar code tab_new[8]={0x01,0x02,0x04,0x08,0x10,0x20,0X40,0X80};//0000 0001、0000 0010、0000 0100、0000 1000、0001 0000、0010 0000
uchar code tab_one[14]={0xaa,0xaa,0x55,0x55,0xaa,0xaa,0x55,0x55,0xff,0xff,0x00,0x00,0xff,0xff};//1010 1010 aa 0101 0101 55
uchar code tab_two[17]={0x21,0x12,0x0c,0x12,0x21,0x12,0x0c,0x12,0x21,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff};
uchar code tab_three[25]={0x21,0x00,0x12,0x00,0x0c,0x00,0x12,0x00,0x21,0x00,0x12,0x00,0x0c,0x00,0x12,0x00,0x21,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff};
/***************************************/
void main()
{
uint i=0;
initial();
while(1)
{
//new();
style_one();
}
}
/***************************************
函数名:initial
功能:初始化程序
说明:
入口参数:无
返回值:无
***************************************/
void initial()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
P37 = 0;
P21 = 0;
P22 = 0;
P23 = 0;
P16 = 0;
P17 = 0;
P0=0;
}
/***************************************
函数名:led_dr_light_on
功能:控制灯亮
说明:输入m的值,使第m个灯亮
入口参数:m
返回值:无
***************************************/
void led_dr_light_on(uchar m)
{
switch(m)
{
case 0: P37=1; break;
case 1: P21=1; break;
case 2: P22=1; break;
case 3: P23=1; break;
case 4: P16=1; break;
case 5: P17=1; break;
}
}
/***************************************
函数名:led_dr_light_off
功能:控制灯灭
说明:输入m的值,使第m个灯灭
入口参数:m
返回值:无
***************************************/
void led_dr_light_off(uchar m)
{
switch(m)
{
case 0: P37=0; break;
case 1: P21=0; break;
case 2: P22=0; break;
case 3: P23=0; break;
case 4: P16=0; break;
case 5: P17=0; break;
}
}
/***************************************
函数名:writedate
功能:识别输入的字节
说明:输入字节,使该字节对应的1亮,0灭
入口参数:dat1
返回值:无
***************************************/
void writedate(uchar dat1)
{
uint temp1,i=0;
for(i=0;i<6;i++)
{
temp1=dat1 & 0x01;
if(temp1 != 0)
led_dr_light_on (i); //亮
else
led_dr_light_off (i); //灭
dat1 >>= 1;
}
}
/***************************************
函数名:style_one
功能:样式一
说明:花样流水
入口参数:无
返回值:无
***************************************/
void style_one()
{
uint i;
for(i=0;i<6;i++)
{
writedate(tab[i]);
Delay100ms();
}
initial();
Delay100ms();
for(i=0;i<6;i++)
{
writedate(tab[5-i]);
Delay100ms();
}
initial();
Delay100ms();
for(i=0;i<14;i++)
{
writedate(tab_one[i]);
Delay100ms();
}
initial();
Delay100ms();
for(i=0;i<17;i++)
{
writedate(tab_two[i]);
Delay100ms();
}
initial();
Delay100ms();
for(i=0;i<25;i++)
{
writedate(tab_three[i]);
Delay100ms();
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
小系统板.zip
(36.62 KB, 下载次数: 5)
2017-10-11 23:48 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1