声明:1、我发布程序旨在希望大家蓝桥杯单片机比赛可以取得好成绩
2、在看我程序之前希望大家先去B站观看完小蜜蜂老师的蓝桥杯单片机视频讲解
小蜜蜂视频链接:【小蜜蜂笔记】蓝桥杯大赛-单片机设计与开发基础技能与进阶强化教程_哔哩哔哩_bilibili
本程序资源包采用第十三届蓝桥杯资源包
本博客包含第八届到第十三届蓝桥杯单片机真题所有程序
main.c
#include <reg52.h>
#include <ds1302.h>
#include <onewire.h>
sfr P4 = 0xC0;
sbit L1 = P0^0;
sbit L2 = P0^1;
sbit L3 = P0^2;
sbit R1 = P3^0;
sbit R2 = P3^1;
sbit R3 = P3^2;
sbit R4 = P3^3;
sbit C1 = P3^4;
sbit C2 = P3^5;
sbit C3 = P4^2;
sbit C4 = P4^4;
sbit Relay = P0^4;
sbit Buzzer = P0^6;
//变量区
unsigned int count;//继电器5s
unsigned char count1;//0.1s
unsigned int count2;//LED5s
unsigned char state_5 = 0;//0.1s标志位
unsigned char state_4 = 0;//LED5s标志位
unsigned char state_3 = 0;//继电器标志位
unsigned char state_2 = 1;//时间控制
unsigned char mode = 1;//模式控制
unsigned char state_1 = 1;//界面控制
unsigned char number = 23;//参数
unsigned int temp;//温度
unsigned char Write_DS1302_Addr[3] = {0x80,0x82,0x84};
unsigned char Read_DS1302_Addr[3] = {0x81,0x83,0x85};
unsigned char Timer[3] = {0x50,0x59,0x22};//22:59:50
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;
}
//数码管的选择(有点