蓝桥杯单片机第九届省赛题详细讲解(彩灯控制器)

您所在的位置:网站首页 bf8805a控制器视频讲解 蓝桥杯单片机第九届省赛题详细讲解(彩灯控制器)

蓝桥杯单片机第九届省赛题详细讲解(彩灯控制器)

2024-07-02 16:01| 来源: 网络整理| 查看: 265

看之前强烈建议先自己做一遍!!! 演示视频题目讲解完整程序main.ciic.ciic.h 工程文件

演示视频

题目讲解

首先还是从题目的程序框图准备起。 在这里插入图片描述 将程序框图的PCF8591(模拟输入),按键,数码管,EEPROM都先调试好。 在这里插入图片描述 在这里插入图片描述 然后看一下基本功能,让自己对整个流程有一个了解。再将彩灯控制的LED的四种模式准备好。这里我建议是用数组把状态保存起来

uchar LED1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //模式1 uchar LED2[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //模式2 uchar LED3[4]={0x7e,0xbd,0xdb,0xe7}; //模式3 uchar LED4[4]={0xe7,0xdb,0xbd,0x7e}; //模式4

然后继续看题,这里亮度调节需要调节pwm占空比来实现,所以先放一下,先把Rb2电压转化为4个等级。 在这里插入图片描述

uchar SMG_mode=0,move; //数码管模式定义,滑动变阻器Rb2定义 uchar shine_mode=0; //定义光强 void main(void) { move=IIC_read(PCF8591_address,Move_address); //读取Rb2电阻阻值 move=move*1.9608; //500/255 将255转换到500 if(move=1200)gap=1200; //限幅 if(led_mode>=4)led_mode=4; //限幅 break; case 0x07: //S4 if(SMG_mode==1)led_mode--; else if(SMG_mode==2)gap-=100; if(gap


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3