声明:1、我发布程序旨在希望大家蓝桥杯单片机比赛可以取得好成绩
2、在看我程序之前希望大家先去B站观看完小蜜蜂老师的蓝桥杯单片机视频讲解
小蜜蜂视频链接:【小蜜蜂笔记】蓝桥杯大赛-单片机设计与开发基础技能与进阶强化教程_哔哩哔哩_bilibili
本程序资源包采用第十三届蓝桥杯资源包
main.c
#include <reg52.h>
#include <iic.h>
sbit S7 = P3^0;
sbit S6 = P3^1;
sbit S5 = P3^2;
sbit S4 = P3^3;
//变量区
unsigned char denji;//等级
unsigned int count_08s = 0;//0.8s
unsigned char flag_08s = 0;//转换标志位
unsigned char flag_sm = 0;//0.8s闪灭标志位
signed char mode = 1;//模式
unsigned char LED_start = 0;//LED启动
unsigned char PWM_duty;//LED亮度
unsigned char count_PWM = 0;
unsigned char PWM_flag;
unsigned int Rb2 = 0;//Rb2
unsigned char mode_LED = 0;//LED模式
unsigned char state_LED = 1;//LED流转
unsigned int LED_count = 0;
signed int time[4];//流转间隔
unsigned char SMG_Val[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//锁存器的选择
void SelectHC573(unsigned char channel)
{
switch(channel)
{
case 4: P2 = (P2 & 0x1f) | 0x80; break;
case 5: P2 = (P2 & 0x1f) | 0xa0; break;
case 6: P2 = (P2 & 0x1f) | 0xc0; break;
case 7: P2 = (P2 & 0x1f) | 0xe0; break;
}
}
//数码管的选择
void Select_SMG(unsigned char pos,val)
{
SelectHC573(7);
P0 = 0xff;
SelectHC573(6);
P0 = 0x01 << pos;
SelectHC573(7);
P0 = val;
}
//关闭所有
void CloseAll()
{
SelectHC573(6);
P0 = 0xff;
SelectHC573(7);
P0 = 0xff;
}
//延迟函数
void Delay(unsigned int