前言

本人曾在第十三届蓝桥杯大赛单片机组中获得国一,以下是我在准备比赛过程中的一些记录,希望能给大家带来帮助

本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~

随着距离蓝桥杯举办日期的日益临近,今天才真正完成了第一套真题,基本就考察了几个外设的使用,已经按键和各个外设之间的灵活使用。总的来说第十届蓝桥杯省赛题目不是很难,下面是我的代码,如果有什么问题大家可以积极沟通,一起进步鸭。

# include "reg52.h"# include "iic.h"sbit S4 = P3^3;sbit S5 = P3^2;sbit S6 = P3^1;sbit S7 = P3^0;
unsigned char sin_S5 = 0;
unsigned char sin_S6 = 0;
unsigned char sin_S7 = 0;
int dataint_RB2 ;unsigned char a = 1;unsigned t_cout = 0;unsigned f_cout = 0;unsigned c_cout = 0;unsigned char data_RB2 = 0; unsigned char  SMG_NoDot[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x7f};unsigned char  SMG_Dot[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,};void SMG_delay(unsigned t){while(t--);}void select_HC138(unsigned char n){switch(n){case 4:  P2 = (P2&0x1f)|0x80;  //led break;case 5:P2 = (P2&0x1f)|0xa0;  // 外设break;case 6:P2 = (P2&0x1f)|0xc0; // 数码管 位选 break;case 7:P2 = (P2&0x1f)|0xe0; // 数码管break;case 0 :P2 = P2&0x1f  ;}}void system_init(){select_HC138(4);P0 = 0xff;select_HC138(5);P0 = 0x00;select_HC138(7);P0 = 0xff;    select_HC138(0);            }void SMG_show(unsigned char value , unsigned char pos){P0 = 0xff;select_HC138(6);P0 = 0x01<< pos;select_HC138(7);P0 = value;}void RB2_show(){if (sin_S7){select_HC138(6);P0 = 0x00;select_HC138(7);P0 = 0xff;select_HC138(0);} else{IIC_Start();IIC_SendByte(0x90); // 1001 0000IIC_WaitAck();IIC_SendByte(0x03);     IIC_WaitAck();IIC_Stop();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();    data_RB2 = IIC_RecByte();IIC_SendAck(1);IIC_Stop();dataint_RB2 = (int)data_RB2;dataint_RB2 =     (float)dataint_RB2*500/255;SMG_show(0xc1,0);SMG_delay(500);SMG_show(0xff,1);SMG_delay(500);SMG_show(0xff,2);SMG_delay(500);SMG_show(0xff,3);SMG_delay(500);SMG_show(0xff,4);SMG_delay(500);if(sin_S5){SMG_show(SMG_Dot[2],5);SMG_delay(500);SMG_show(SMG_NoDot[0],6);SMG_delay(500);SMG_show(SMG_NoDot[0],7);SMG_delay(500);}else{SMG_show(SMG_Dot[dataint_RB2/100],5);SMG_delay(500);SMG_show(SMG_NoDot[(dataint_RB2%100)/10],6);SMG_delay(500);SMG_show(SMG_NoDot[dataint_RB2%10],7);SMG_delay(500);}  }}void Time_init() //定时器0计数,定时器1计时{TH0 = 0xff;TH0 = 0xff;TMOD = 0x16;TL1 = 0xB0;        //设置定时初始值TH1 = 0x3C;       //设置定时初始值ET0 = 1;ET1 = 1;EA = 1;TR1 = 1;        //定时器1开始计时TR0 = 1;     //定时器1开始计时}
void time0_server()interrupt 1
{c_cout ++ ; }
void time1_server()interrupt 3
{TL1 = 0xB0;       //设置定时初始值TH1 = 0x3C;       //设置定时初始值t_cout ++;if (t_cout == 20){f_cout = c_cout;t_cout = 0;c_cout = 0;}
}
void  fre_show(){   if (sin_S7){select_HC138(6);P0 = 0x00;select_HC138(7);P0 = 0xff;select_HC138(0);} else{SMG_show(0x8e,0);SMG_delay(500);SMG_show(0xff,1);SMG_delay(500);SMG_show(0xff,2);SMG_delay(500);if(f_cout>9999){SMG_show(SMG_NoDot[f_cout/10000],3);SMG_delay(500);}if(f_cout>999){SMG_show(SMG_NoDot[(f_cout/1000)%10],4);SMG_delay(500);}if(f_cout>99){SMG_show(SMG_NoDot[(f_cout/100)%10],5);SMG_delay(500);}if(f_cout>9){SMG_show(SMG_NoDot[(f_cout/10)%10],6);SMG_delay(500);}SMG_show(SMG_NoDot[f_cout%10],7);SMG_delay(500);}
}void led_cor(){if (sin_S6){select_HC138(4);P0 = 0xff;select_HC138(0);} else{P0 = 0xff;if(a==1){select_HC138(4);P0 = (P0&0xfc)|0x02;}else {select_HC138(4);P0 = (P0&0xfc)|0x01;}if(f_cout<1000) P0 = (P0&0xf7)|0x08;else if((f_cout<5000)&&(f_cout>=1000))P0 = (P0&0xf7)|0x00;else if((f_cout<10000)&&(f_cout>=5000)) P0=(P0&0xf7)|0x08;else if(f_cout>=100000)  P0 = (P0&0xf7)|0x00;if(dataint_RB2<150) P0 = (P0&0xfb)|0x04;else if((dataint_RB2<250)&&(dataint_RB2>=150))P0 = (P0&0xfb)|0x00;else if((dataint_RB2<350)&&(dataint_RB2>=250)) P0=(P0&0xfb)|0x04;else if(dataint_RB2>=350)  P0 = (P0&0xfb)|0x00;if(dataint_RB2 == 200) P0 = (P0&0xef)|0x10;else P0 =(P0&0xef)|0x00;select_HC138(0); }
}
void keyscan()
{   led_cor();if(a==1)RB2_show();else fre_show();if(S4==0){SMG_delay(2000);while(S4 == 0){if(a)RB2_show();else fre_show();}if(a==1) a = 0;else a =1;}if(S5==0){SMG_delay(2000);while(S5 == 0){if(a)RB2_show();else fre_show();}if(sin_S5==1) sin_S5 = 0;else sin_S5 =1;}if(S6==0){SMG_delay(2000);while(S6 == 0){if(a)RB2_show();else fre_show();}if(sin_S6==1) sin_S6 = 0;else sin_S6 =1;}if(S7==0){SMG_delay(2000);while(S7 == 0){if(a)RB2_show();else fre_show();}if(sin_S7==1) sin_S7 = 0;else sin_S7 =1;}
}void main(){system_init();Time_init();while(1){ //RB2_show();keyscan();}}

更多相关资源

【全套完结】蓝桥杯单片机— 从省赛到国赛

https://blog.csdn.net/amimax/article/details/128749109?spm=1001.2014.3001.5501

第十届蓝桥杯单片机组(省赛)——试题解答相关推荐

  1. 第jiu届蓝桥杯单片机省赛真题_第九届蓝桥杯单片机组省赛试题.pdf

    第九届蓝桥杯单片机组省赛试题 "彩灯控制器"的程序设计与调试 (70 分) 一.基本要求 1.1 使用CT107D 单片机竞赛板,完成"彩灯控制器"功能的程序设 ...

  2. 【第十四届蓝桥杯单片机组模拟赛1】

    第十四届蓝桥杯单片机组模拟赛1 距第十四届蓝桥杯单片机还有不到一个月的时间啦,加油 源码 /*------------------------------第十四届蓝桥杯单片机模式赛---------- ...

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

    第一次参加蓝桥杯,线上比赛,记录一下 比赛刚开始了十分钟才做上客观题,做上了之后才发现看一次题警告一次,当时就蚌埠住了,随便做了做就交了,手册也没怎么查(查一下直接给了3次黄牌,就没敢查了)其实老师1 ...

  4. 第十届蓝桥杯JavaB组省赛真题

    试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...

  5. 第十届蓝桥杯JavaC组省赛真题

    试题 A: 求和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包 括 1.2.9.10 至 32.39 和 40,共 28 个,他们的 ...

  6. 2019第十届蓝桥杯CB组国赛心得

    一年一度的传说中的"暴力"杯又过去了,今年是第一次参加蓝桥杯省赛跟国赛,今天刚从北京回来,觉得应该写点东西,觉得不能再叫蓝桥杯暴力杯了当然大佬觉得还是暴力还请忽略,要改名了,今年难 ...

  7. 2016蓝桥杯java试题_2016年第七届蓝桥杯JavaB组省赛试题解析

    题目及解析如下: 题目大致介绍: 第一题到第三题以及第六题.第七题是结果填空,方法不限只要得到最后结果就行 第四题和第五题是代码填空题,主要考察算法基本功和编程基本功 第八题到第十题是编程题,要求编程 ...

  8. 2019蓝桥杯Java决赛题答案_2019第十届蓝桥杯JavaB组省赛真题详解

    目录 题解待更新 第一题:组队 题目描述 做为篮球队教练,你须要从如下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分以下表所示.请你计算 ...

  9. 2019年第十届蓝桥杯A组省赛

    A.平方和(5分) 答案:2658417853 试题 A: 平方和 本题总分:5 分 [问题描述] 小明对数位中含有 2.0.1.9 的数字很感兴趣,在 1 到 40 中这样的数包括 1.2.9.10 ...

最新文章

  1. Java入门—输入输出流
  2. oracle导入到mysql命令_oracle数据库导入导出命令
  3. 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )
  4. Hibernate的延迟检索和立即检索
  5. python处理utf8编码中文,及打印中文列表和字典
  6. JZOJ 4933. 【NOIP2017提高组模拟12.24】C
  7. 什么是对象,为什么要面向对象,怎么才能面向对象?
  8. oracle ora-24247 ACL,ORACLE 11G 存储过程发送邮件(job),ORA-24247:网络访问被访问控制列表 (ACL) 拒绝...
  9. tensorflow 旋转图片_使用TensorFlow对图像进行随机旋转的实现示例
  10. Linux/Mac修改conda源,方便安装pytorch等
  11. 86五笔输入法教程详解
  12. server sql 将出生日期转为年龄_SQL语句如何根据出生日期计算年龄
  13. 论文查重软件怎么选择
  14. 如何利用PyTorch实现一个Encoder-Decoder结构进行英法互译
  15. Unity3D RectTransform中文图文详细-anchors用法pivot分析
  16. Qt5 学习之路及嵌入式开发教程21:QML基础
  17. Ubuntu 14.04 LTS 的安装和配置以及各种问题的解决
  18. 2022CCPC桂林站感想与反思
  19. Wannafly Winter Camp Day 3 G排列(贪心)
  20. 手撕代码deep image matting(6):dataset(1)

热门文章

  1. dblink的创建和使用总结
  2. 行政管理系统-基于php,基于thinkphp,yxcms
  3. 大数据开发之Hive篇17-Hive锁机制
  4. Vue全家桶包含都有哪一些?
  5. String split()
  6. java爬虫webcollector_JAVA爬虫框架:WebCollector
  7. bosun 快速入门
  8. 移动端开发调试工具神器--Weinre使用方法
  9. 20个最流行的3D打印机切片软件
  10. Npoi html导入到excel,.net mvc 利用NPOI导入导出excel