蓝桥杯单片机省赛题目《全集》之第十届省赛
蓝桥杯从第十届开始程序题就很简单了,直接就很简单
注意好每届的一点点小问题就可以了
加油
#include"reg52.h"
#include"iic.h"unsigned char code SmgNodot[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char code Smgdot[10] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};sbit S4 = P3^3;
sbit S5 = P3^2;
sbit S6 = P3^1;
sbit S7 = P3^0;void SelectHC573(unsigned char channel)
{switch(channel){case 4:P2 = (0x1f & P2) | 0x80;break;case 5:P2 = (0x1f & P2) | 0xa0;break;case 6:P2 = (0x1f & P2) | 0xc0;break;case 7:P2 = (0x1f & P2) | 0xe0;break;case 0:P2 = (0x1f & P2) | 0x00;break;}
}void InitSystem()
{SelectHC573(4);P0 = 0xff;SelectHC573(5);P0 = 0x00;SelectHC573(6);P0 = 0x00;SelectHC573(0);
}void InitTimer()
{TMOD = 0x16;TH0 = 255;TL0 = 255;TH1 = (2^16 - 50000) / 256;TL1 = (2^16 - 50000) % 256;TR1 = 1;TR0 = 1;EA = 1;ET1 = 1;ET0 = 1;
}unsigned int U = 0;
unsigned char dat_v = 0;void Read_RB2()
{IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(0x03);IIC_WaitAck();IIC_Stop();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();dat_v = IIC_RecByte();IIC_SendAck(1);IIC_Stop();U = dat_v * 250 / 255 * 2;//U = dat_v * 2;
}void SetData_DAC(unsigned char dat)
{IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(0x40);IIC_WaitAck();IIC_SendByte(dat);IIC_SendAck(1);IIC_Stop();
}unsigned int count = 0;
unsigned int count_f = 0;
unsigned int Fre =0;void Timer0() interrupt 1
{count_f++;
}void Timer1() interrupt 3
{TH1 = (2^16 - 50000) / 256;TL1 = (2^16 - 50000) % 256;count++;if(count % 10 == 0){Read_RB2();}if(count == 20){count = 0 ;Fre = count_f;count_f = 0;}
}bit stat_s4 = 0;
bit stat_s5 = 0;
bit stat_s6 = 0;
bit stat_s7 = 0;void DisplayL1L2()
{SelectHC573(0);if(stat_s4 == 0){P0 = (P0 | 0x02) & 0xfe;} else if(stat_s4 == 1){P0 = (P0 | 0x01) & 0xfd;;}
}void DisplayL3()
{SelectHC573(0);if(U < 150){P0 = P0 | 0x04;}else if(U < 250){P0 = P0 & 0xfb;}else if(U < 350){P0 = P0 | 0x04;}else{P0 = P0 & 0xfb;}
}void DisplayL4()
{SelectHC573(0);if(Fre < 1000){P0 = P0 | 0x08;}else if(Fre < 5000){P0 = P0 & 0xf7;}else if(Fre < 10000){P0 = P0 | 0x08;}else{P0 = P0 & 0xf7;}
}void DisplayL5()
{SelectHC573(0);if(stat_s5 == 0){P0 = P0 | 0x10;}else if(stat_s5 == 1){P0 = P0 & 0xef;}
}
void DisplayLed()
{if(stat_s6 == 0){DisplayL1L2();DisplayL3();DisplayL4();DisplayL5();SelectHC573(4); }else if(stat_s6 == 1){SelectHC573(4);P0 = 0xff;}
}void Delay(unsigned int t)
{while(t--);
}void DisplaySmg_Bit(unsigned char pos, unsigned char dat)
{P0 = 0xff;SelectHC573(6);P0 = 0x01 << pos;SelectHC573(7);P0 = dat;
}void DisplayFre()
{DisplaySmg_Bit(0,0x8e);Delay(500);if(Fre > 99999){DisplaySmg_Bit(2,SmgNodot[Fre / 100000]);Delay(500);}if(Fre > 9999){DisplaySmg_Bit(3,SmgNodot[(Fre / 10000) % 10]);Delay(500);}if(Fre > 999){DisplaySmg_Bit(4,SmgNodot[(Fre / 1000) % 10]);Delay(500);}if(Fre > 99){DisplaySmg_Bit(5,SmgNodot[(Fre / 100) % 10]);Delay(500);}if(Fre > 9){DisplaySmg_Bit(6,SmgNodot[(Fre / 10) % 10]);Delay(500);}DisplaySmg_Bit(7,SmgNodot[Fre % 10]);Delay(500);DisplaySmg_Bit(7,0xff);
}void DisplayU()
{DisplaySmg_Bit(0,0xc1);Delay(500);DisplaySmg_Bit(5,Smgdot[U / 100]);Delay(500);DisplaySmg_Bit(6,SmgNodot[(U / 10) % 10]);Delay(500);DisplaySmg_Bit(7,SmgNodot[U % 10]);Delay(500);DisplaySmg_Bit(7,0xff);
}void Display()
{if(stat_s7 == 0){if(stat_s4 == 0){DisplayU();}elseDisplayFre();}else{SelectHC573(6);P0 = 0xff;SelectHC573(7);P0 = 0xff;SelectHC573(0);}DisplayLed();Delay(1000);//提高LED指示灯亮度
}void ScanKey()
{if(S4 == 0){Delay(100);if(S4 == 0){stat_s4 = ~stat_s4;while(S4 == 0){Display();}}}if(S5 == 0){Delay(100);if(S5 == 0){stat_s5 = ~stat_s5;while(S5 == 0){Display();}}}if(S6 == 0){Delay(100);if(S6 == 0){stat_s6 = ~stat_s6;while(S6 == 0){Display();}}}if(S7 == 0){Delay(100);if(S7 == 0){stat_s7 = ~stat_s7;while(S7 == 0){Display();}}}
}void main()
{InitSystem();InitTimer();while(1){ScanKey();if(stat_s5 == 0){SetData_DAC(102);}else{SetData_DAC(U);}Display();}
}
蓝桥杯单片机省赛题目《全集》之第十届省赛相关推荐
- 免费资源快来看 蓝桥杯单片机组历届省赛国赛题目解答(省一国二)
蓝桥杯比赛 单片机组 历届国赛题目解答 国赛题目 国赛题目 蓝桥杯省赛之后不到一个月就是国赛了,我先给大家分享到这里,小伙伴们可以先关注收藏然后后续有需要可以再来看看哦,点击下面的文字, ...
- 蓝桥杯单片机第十四届省赛题目和程序答案
目录 1.前言 2.题目 3.程序架构 3.1 display.c 3.2 ds1302.c 3.3 iic.c 3.4 onewire.c 3.5 main.c 主函数文件 3.6 环境配置 4. ...
- 【蓝桥杯单片机国赛 第九届】
蓝桥杯国赛模块讲解 蓝桥杯国赛第九届 题目 做题思路 首先smg测试 独立按键的长短按键 测电压(PCF) 存储数据(AT24C02) DS18B20 NE555 逻辑部分 先写S4控制的1)的三个界 ...
- 【蓝桥杯单片机组】备赛实战问题记录
微信搜索:ReCclay,也可免费阅读博主蓝桥系列所有文章,后台回复"代码"即可获取蓝桥所有备赛代码!关注博主公众号,还可拥有加入博主粉丝群实时沟通技术难题.免费下载CSDN资源等 ...
- 第十一届蓝桥杯 单片机设计与开发省赛试题
第十一届蓝桥杯 单片机设计与开发 省赛 在昨天举办了第一波11届蓝桥杯比赛,第2波大概在10月份左右,看了看比赛题目,这次题目对于我来说,程序设计题简单,客观题全靠蒙! 本次比赛涉及: 1.数码管显示 ...
- 蓝桥杯单片机——第十二届蓝桥杯单片机第一场省赛
蓝桥杯单片机--第十二届蓝桥杯单片机第一场省赛 目录 蓝桥杯单片机--第十二届蓝桥杯单片机第一场省赛 一.赛题分析 二.问题总结 三.代码 一.赛题分析 前两天实验室的学妹把开发板还给我了,刚好今天没 ...
- 蓝桥杯单片机第四届省赛题详细讲解(模拟智能灌溉系统)
看之前强烈建议先自己做一遍!!! 整个工程文件(有注释讲解) 网盘链接 先上演示效果 蓝桥杯单片机第五届模拟智能灌溉系统 首先依旧从赛题的系统框图开始讲起 首先需要做的是将系统框图里的各部分模块提前调 ...
- 蓝桥杯单片机省赛——第五届(模拟智能灌溉系统)
蓝桥杯单片机省赛--第五届(模拟智能灌溉系统) 一.题目内容 二.程序源代码 1.主函数 2.ds1302驱动函数 3.iic驱动函数 注意:驱动代码需要改动一下,可以将原驱动代码按照下面的代码修改 ...
- 蓝桥杯单片机学习过程记录(二十九)第八届国赛超声波测距机
蓝桥杯单片机学习过程记录(二十九)第八届国赛超声波测距机 题目如下: 已完成 应用的内容: EEPROM. 定时器.数码管 led灯,独立按键 DA电压输出 超声波测距 /* ------------ ...
- 第十届蓝桥杯单片机组(省赛)——试题解答
前言 本人曾在第十三届蓝桥杯大赛单片机组中获得国一,以下是我在准备比赛过程中的一些记录,希望能给大家带来帮助 本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共 ...
最新文章
- linux系统内存执行elf的多种方式
- 不懂编程可以自学python吗-会Python的人工作不会太差?编程课真的有必要学吗?...
- TensorFlow2简单入门-加载及预处理文本
- AAAI 2021 | 关键词指导的神经对话模型
- 5个专注于检测和预测异常的Java工具分享
- SQLite移植手记1
- 写java一般用什么系统字体_JavaSE中使用非系统自带的字体
- eclipse打包成jar_SpringBoot系列(三)- 用 jar的方式运行springboot项目
- Python进阶练习题,新手快码起来
- AD9371官网汇总
- wampserver下载以及安装教程
- 2020 年第一届辽宁省大学生程序设计竞赛
- 【Vue3+Vite+TS项目集成ESlint +Prettier实现代码规范检查和代码格式化】
- JAVA中如何实现代码优化(技巧讲解)
- 入门必看!ui设计分类有哪些?【萧蕊冰】
- 轻触开源(二)-Gson项目源码解析_壹
- mac关闭VPN之后,浏览器就不能够正常上网了(图解)
- 【微信小程序】云开发基础设置
- 浅谈抢票软件的危害及模拟分析
- Agile/Scrum
热门文章
- 使用python编写的落网电台下载工具
- IT168 CIO频道11月28日至12月01日文章精选
- python爬取微博热门消息(一)——效果展示
- 【python pypy】pypy安装
- 如何测试光盘的质量?
- python怎么从excel获取数据_python怎么从excel中读取数据?/python 读取 excle
- 【Java SE】SE“细节”知识大总结
- java 数组 取部分_在Java中只获取一部分数组?
- 面试必考之Java基础数据类型
- 计算机专业英语教学重难点,浅析计算机专业英语的教学现状及对策