十三届蓝桥杯单片机组省赛真题程序解析

十三届蓝桥杯单片机组省赛真题程序解析,第1张

第一次参加蓝桥杯,线上比赛,记录一下

比赛刚开始了十分钟才做上客观题,做上了之后才发现看一次题警告一次,当时就蚌埠住了,随便做了做就交了,手册也没怎么查(查一下直接给了3次黄牌,就没敢查了)其实老师10点的时候说这个没影响了,但是当时腾讯会议监考老师说话噪声很大,也没听清

最后开考40分钟才做完客观题(其实大部分都不会,都是蒙的,真想不到当时咋做半小时的),收到30个黄牌警告,刚才对答案好像就对了三四个选择,哎~

不过还好这次程序题占比大一点,写的也比较顺利,中间基本没有卡,花了近三小时写完的

厕所战神应该对单片机组影响比较小吧,希望能拿个省一,保佑了!保佑了!保佑了!

//代码是十三届蓝桥杯单片机组省赛比赛的时候写的,当时验证的要求都实现了,也许还有一些没发现的BUG,欢迎指出哦,比赛给的ONEWIRE函数要改一下时序和声名,DS1302直接不变
#include 
#include 
#include 

bit flag=0,X1,Y1,X2,Y2,X3,Y3,X4,Y4,RELAY,RELAY1,MODE1=0,L1,L3;
unsigned char KEY,flag_k,MODE,VALUE=23,LED_COUNT;
unsigned int Temper,COUNT;
unsigned char code Nixie[23]={0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF
,0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0XBF,0XC1};
//数码管段码值,按顺序分别是0~9,分隔符,全灭,带小数点0~9,字母U
unsigned char Nixie_Buffer[8]={11,11,11,11,11,11,11,11};
//数码管显示值缓存数组,第0~8位对应数码管0~8位
unsigned char DS1302_Buffer[7]={0X30,0X25,0X23,0X09,0X04,0X06,0X22};
//DS1302时间值存储数组
void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;

	_nop_();
	_nop_();
	i = 23;
	j = 205;
	k = 120;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void HL138(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;
	}
	P2=P2&0X1F;
}//锁存器选择函数
void Nixie_change(unsigned char d1,d2,d3,d4,d5,d6,d7,d8){
	Nixie_Buffer[0]=d1;
	Nixie_Buffer[1]=d2;
	Nixie_Buffer[2]=d3;
	Nixie_Buffer[3]=d4;
	Nixie_Buffer[4]=d5;
	Nixie_Buffer[5]=d6;
	Nixie_Buffer[6]=d7;
	Nixie_Buffer[7]=d8;
}
//数码管缓存数组值改写函数
void Nixie_scan(){
	unsigned char number;
	P0=0XFF;HL138(7);
	P0=0X01<=VALUE){
				RELAY=1;
			}
			else if(Temper/10

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/578194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)