一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器,使用按键、LED模块、74HC595模块等。
主要功能:
系统运行后,按下K1键,流水灯启动运行,内置3种花样显示效果。
二、软件设计
/*
作者:嗨小易(QQ:3443792007)
*/
//系统数据显示
void sys_data_show(void)
{
//花样模式1
if(sys_ctrl.mode==0)
{
if(sys_ctrl.cnt<8)//第1块595输出
{
hc595_write_data(led_show1[sys_ctrl.cnt],0x00,0x00,0x00);
}
else if(sys_ctrl.cnt<16)//第2块595输出
{
hc595_write_data(0xFF,led_show1[sys_ctrl.cnt-8],0x00,0x00);
}
else if(sys_ctrl.cnt<24)//第3块595输出
{
hc595_write_data(0xFF,0xFF,led_show1[sys_ctrl.cnt-16],0x00);
}
else if(sys_ctrl.cnt<32)//第4块595输出
{
hc595_write_data(0xFF,0xFF,0xFF,led_show1[sys_ctrl.cnt-24]);
}
}
//花样模式2
else if(sys_ctrl.mode==1)
{
if(sys_ctrl.cnt<8)//第1块595输出
{
hc595_write_data(~led_show1[sys_ctrl.cnt],~0x00,~0x00,~0x00);
}
else if(sys_ctrl.cnt<16)//第2块595输出
{
hc595_write_data(~0xFF,~led_show1[sys_ctrl.cnt-8],~0x00,~0x00);
}
else if(sys_ctrl.cnt<24)//第3块595输出
{
hc595_write_data(~0xFF,~0xFF,~led_show1[sys_ctrl.cnt-16],~0x00);
}
else if(sys_ctrl.cnt<32)//第4块595输出
{
hc595_write_data(~0xFF,~0xFF,~0xFF,~led_show1[sys_ctrl.cnt-24]);
}
}
//花样模式3
else if(sys_ctrl.mode==2)
{
hc595_write_data(led_show1[sys_ctrl.cnt],led_show1[sys_ctrl.cnt],led_show1[sys_ctrl.cnt],led_show1[sys_ctrl.cnt]);
}
}
//应用控制程序
void app_ctrl_demo(void)
{
sys_parm_init();//系统参数初始化
key_init();
exti0_init();
hc595_init();
hc595_write_data(0x00,0x00,0x00,0x00);
time2_init(10);//定时10ms
MsTimer2::start();
while(1)
{
sys_data_show();//系统数据显示
}
}
//定时器2中断函数
void timer2Isr(void)
{
static u8 i=0;
i++;
if(i>=10)
{
i=0;
if(sys_ctrl.mode<2)
{
sys_ctrl.cnt++;
if(sys_ctrl.cnt>31)
{
sys_ctrl.cnt=0;
hc595_write_data(0x00,0x00,0x00,0x00);//清屏
}
}
else
{
sys_ctrl.cnt++;
if(sys_ctrl.cnt>7)
{
sys_ctrl.cnt=0;
hc595_write_data(0x00,0x00,0x00,0x00);//清屏
}
}
}
}
三、实验现象
B站演示视频:https://space.bilibili.com/444388619
联系作者
视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。