第十一届蓝桥杯 单片机设计与开发 省赛
在昨天举办了第一波11届蓝桥杯比赛,第2波大概在10月份左右,看了看比赛题目,这次题目对于我来说,程序设计题简单,客观题全靠蒙!
本次比赛涉及:
1.数码管显示
2.矩阵按键
3.AD
4.AT24C02
5. LED
6.定时器

进入正题,先看一下程序设计题目:

  • 猜到了这次考试肯定考矩阵键盘,只不过他没有考全部的,只考了后两列,用电位器模拟电压输入和AT24C02都用到了 IIC,定时器用的是定时器0 , 代码功能全部实现

  • iic.h

#ifndef _IIC_H
#define _IIC_H//函数声明
void IIC_Start(void);
void IIC_Stop(void);
void IIC_Ack(bit ackbit);
void IIC_SendByte(unsigned char byt);
bit IIC_WaitAck(void);
unsigned char IIC_RecByte(void);
void a24c02xie(unsigned char add,unsigned char dat);
unsigned char a24c02read(unsigned char add);
int getad(unsigned char add);
#endif
  • iic.c
/*程序说明: IIC总线驱动程序软件环境: Keil uVision 4.10 硬件环境: CT107单片机综合实训平台 8051,12MHz日    期: 2011-8-9
*/#include "reg52.h"
#include "intrins.h"
#include<iic.h>
#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}    #define SlaveAddrW 0xA0
#define SlaveAddrR 0xA1//总线引脚定义
sbit SDA = P2^1;  /* 数据线 */
sbit SCL = P2^0;  /* 时钟线 *///总线启动条件
void IIC_Start(void)
{SDA = 1;SCL = 1;somenop;SDA = 0;somenop;SCL = 0;
}//总线停止条件
void IIC_Stop(void)
{SDA = 0;SCL = 1;somenop;SDA = 1;
}//应答位控制
void IIC_Ack(bit ackbit)
{if(ackbit) {   SDA = 0;}else {SDA = 1;}somenop;SCL = 1;somenop;SCL = 0;SDA = 1; somenop;
}//等待应答
bit IIC_WaitAck(void)
{SDA = 1;somenop;SCL = 1;somenop;if(SDA)    {   SCL = 0;IIC_Stop();return 0;}else  { SCL = 0;return 1;}
}//通过I2C总线发送数据
void IIC_SendByte(unsigned char byt)
{unsigned char i;for(i=0;i<8;i++){   if(byt&0x80) {   SDA = 1;}else {SDA = 0;}somenop;SCL = 1;byt <<= 1;somenop;SCL = 0;}
}//从I2C总线上接收数据
unsigned char IIC_RecByte(void)
{unsigned char da;unsigned char i;for(i=0;i<8;i++){   SCL = 1;somenop;da <<= 1;if(SDA) da |= 0x01;SCL = 0;somenop;}return da;
}void a24c02xie(unsigned char add,unsigned char dat)
{IIC_Start();IIC_SendByte(0xa0);IIC_WaitAck();IIC_SendByte(add);IIC_WaitAck();IIC_SendByte(dat);    IIC_WaitAck();IIC_Stop();
}
unsigned char a24c02read(unsigned char add)
{unsigned char dat;IIC_Start();IIC_SendByte(0xa0);IIC_WaitAck();IIC_SendByte(add);IIC_WaitAck();IIC_Start();IIC_SendByte(0xa1);IIC_WaitAck();dat=IIC_RecByte();    IIC_Stop();return dat;}
int getad(unsigned char add)
{int dat;IIC_Start();IIC_SendByte(0x90);IIC_WaitAck();IIC_SendByte(add);IIC_WaitAck();IIC_Start();IIC_SendByte(0x91);IIC_WaitAck();dat=IIC_RecByte();  IIC_Stop();dat=dat*1.961;return dat;}
  • main.c
#include<stc15f2k60s2.h>
#include<iic.h>typedef unsigned int uint;
typedef unsigned char uchar;int yi,er,san,si,wu,liu,qi,ba;uchar code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc1,0x8c,0xc8,0xff,
0xc0&0x7f,0xf9&0x7f,0xa4&0x7f,0xb0&0x7f,0x99&0x7f,0x92&0x7f,0x82&0x7f,0xf8&0x7f,0x80&0x7f,0x90&0x7f};int dianya,jishu,diancp,jiemian,flag,t,tt,liang,wuxiao,flagg,wuu;
void delay1ms(int ms);
void display1();
void display2();
void shangdian();
void Timer0Init(void)   ;   //1毫秒@12.000MHz
void juzhen();
main()
{shangdian();Timer0Init();diancp=a24c02read(0);diancp=diancp*10;while(1){juzhen();dianya=getad(0x03);if(jiemian==0)//数据界面{yi=10;er=san=si=wu=13;liu=dianya/100+14;qi=dianya%100/10;ba=dianya%10;}else if(jiemian==1)//参数界面{yi=11;er=san=si=wu=13;liu=diancp/100+14;qi=diancp%100/10;ba=diancp%10;}else if(jiemian==2)//计数界面{yi=12;er=san=si=wu=liu=13;qi=jishu/10;ba=jishu%10;}if(dianya>diancp){flag=1;t=tt=0;TR0=0;liang=0;flagg=0;}else if(dianya<diancp){TR0=1;flagg=1;}if((flag==1)&&(flagg==1)){jishu++;flag=0;flagg=0;}if((liang==0)&&(jishu%2==0)&&(wuu==0)){P2=0X80;P0=0XFF;  }else if((liang==0)&&(jishu%2==0)&&(wuu==1)){P2=0X80;P0=~(0X04);}else if((liang==0)&&(jishu%2==1)&&(wuu==0)){P2=0X80;P0=~(0X02);}else if((liang==0)&&(jishu%2==1)&&(wuu==1)){  P2=0X80;P0=~(0X04|0x02);}else if((liang==1)&&(jishu%2==0)&&(wuu==0)){P2=0X80;P0=~(0X01);}else if((liang==1)&&(jishu%2==0)&&(wuu==1)){P2=0X80;P0=~(0X01|0x04);}else if((liang==1)&&(jishu%2==1)&&(wuu==0)){P2=0X80;P0=~(0X01|0x02);}else if((liang==1)&&(jishu%2==1)&&(wuu==1)){ P2=0X80;P0=~(0X01|0x02|0x04);}display1();display2();}}
void shangdian()
{P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;P2=0XC0;P0=0XFF;P2=0XE0;P0=0XFF;
}
void delay1ms(int ms)
{int i;for(;ms>0;ms--){for(i=845;i>0;i--) ;}}
void Timer0Init(void)       //1毫秒@12.000MHz
{AUXR |= 0x80;     //定时器时钟1T模式TMOD &= 0xF0;       //设置定时器模式TL0 = 0x20;       //设置定时初值TH0 = 0xD1;        //设置定时初值TF0 = 0;       //清除TF0标志TR0 = 0;      //定时器0开始计时EA=1;ET0=1;
}
void time0() interrupt 1
{t++;if(t==1000){ t=0;tt++;if(tt==5){liang=1;}}}void display1()
{P2=0XC0;P0=0X01;P2=0XE0;P0=smg[yi];delay1ms(1);P2=0XC0;P0=0X02;P2=0XE0;P0=smg[er];delay1ms(1); P2=0XC0;P0=0X04;P2=0XE0;P0=smg[san];delay1ms(1);P2=0XC0;P0=0X08;P2=0XE0;P0=smg[si];delay1ms(1);
}
void display2()
{P2=0XC0;P0=0X10;P2=0XE0;P0=smg[wu];delay1ms(1);P2=0XC0;P0=0X20;P2=0XE0;P0=smg[liu];delay1ms(1);    P2=0XC0;P0=0X40;P2=0XE0;P0=smg[qi];delay1ms(1);P2=0XC0;P0=0X80;P2=0XE0;P0=smg[ba];delay1ms(1);P2=0XC0;P0=0X80;P2=0XE0;P0=0xff;
}
void juzhen()
{uchar temp;P44=1;P42=1;P3=0XdF;temp=P3;temp=temp&0x0f;if(temp!=0x0f){delay1ms(5);temp=P3;temp=temp&0x0f;if(temp!=0x0f){temp=P3;switch(temp){case 0xdb:if(jiemian==2){wuu=0;jishu=0;}else {wuxiao++;if(wuxiao==3){    wuu=1;wuxiao=0;}}break;case 0xd7:wuu=0;jiemian++;if(jiemian==2){ a24c02xie(0,diancp/10);delay1ms(5);}if(jiemian==3) jiemian=0;break;}while(temp!=0x0f){temp=P3;temp=temp&0x0f;         }}}P44=1;P42=1;P3=0XeF;temp=P3;temp=temp&0x0f;if(temp!=0x0f){delay1ms(5);temp=P3;temp=temp&0x0f;if(temp!=0x0f){temp=P3;switch(temp){case 0xeb:if(jiemian==1){wuu=0;diancp=diancp-50;if(diancp==-50){diancp=500;}}else {wuxiao++;if(wuxiao==3){wuu=1;wuxiao=0;}}break;case 0xe7: if(jiemian==1){    wuu=0;diancp=diancp+50;if(diancp==550){diancp=0;}}else {wuxiao++;if(wuxiao==3){   wuu=1;wuxiao=0;}}break;}while(temp!=0x0f){temp=P3;temp=temp&0x0f;          }}}}

第十一届蓝桥杯 单片机设计与开发省赛试题相关推荐

  1. 第十一届 蓝桥杯 单片机设计与开发项目 决赛

    第十一届 蓝桥杯 单片机设计与开发项目 决赛 题目 源码 赛题总结 1.界面切换 2.参数生效 3.LED显示 题目 源码 #include <STC15F2K60S2.H> #inclu ...

  2. 最新 2021年 第十二届 蓝桥杯 单片机设计与开发 省赛 客观试题 个人答案

    第十二届蓝桥杯单片机设计与开发项目省赛 第一部分客观试题(30分) 不定项选择(3分/题) (1)MCS-51单片机外部中断1的中断请求标志是( B ).     A.ET1        B.IE1 ...

  3. 第十一届 蓝桥杯 单片机设计与开发项目 省赛 程序设计试题及源码

    一.试题 1. 基本要求 1.1 使用大赛组委会提供的国信长天单片机竞赛实训平台,完成本试题的程序设计 与调试. 1.2 选手在程序设计与调试过程中,可参考组委会提供的"资源数据包" ...

  4. 蓝桥杯单片机设计与开发_标准模板

    蓝桥杯单片机设计与开发_标准模板 一.前言 首先,这篇文章是笔者第一次在 CSDN 上写博文,较为生疏,读者若有任何意见,欢迎大家在评论区交流! 笔者目前为一名大二学生,参加了2021年蓝桥杯单片机设 ...

  5. 蓝桥杯单片机设计与开发历届客观题答案

    该页面由pdf转换而来,阅读效果不佳,你可以在这里下载pdf原件:https://download.csdn.net/download/dvs_dn/19373128 你也可以在百度文库免费下载该文档 ...

  6. 蓝桥杯——单片机设计与开发初学者必备资料

    蓝桥杯--单片机设计与开发初学者必备资料 国信长天 大赛官方指定电子类比赛硬件提供方,可能大家只知道他们提供硬件,殊不知还有一些免费的视频讲解(只是老师可能说话带一点方言,嘻嘻),感兴趣的可以去看看, ...

  7. 蓝桥杯单片机设计与开发题目分析与源码(智能门锁)

    蓝桥杯单片机设计与开发(智障门锁) 内附完整工程 代码仅供参考,如有建议疑问欢迎留言讨论 程序设计部分 智能门锁-任务指导书 开发环境 Keil5 Stc-isp 国兴天长开发板 任务分析 任务逻辑梳 ...

  8. 蓝桥杯单片机设计与开发笔记(一)

    近期和我们实验室的小伙伴一起参加了第七届蓝桥杯单片机开发与设计组省赛,在这里将备赛期间的一些资料和经验总结一下,并分享给大家. 蓝桥杯单片机开发板是国信长天的CT107D单片机综合训练平台,个人感觉这 ...

  9. 蓝桥杯单片机设计与开发⑫ ---超声波模块

    一.基本原理 超声波发射模块向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时. 二.计算公式 距离 = 声速 × 发 ...

最新文章

  1. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...
  2. ax.spines——matplotlib坐标轴设置
  3. html5的所有标签页,HTML5所有标签总集
  4. php分片数据库,4、PHP测试分片集群
  5. 计算机配置文件损坏,怎样修复Windows 10的用户配置文件无法加载错误?
  6. 网页浏览器主要通过ftp协议同网页服务器,FTP协议的工具、网页浏览器和命令
  7. JSP项目引入Vue.js进行项目开发(工程搭建)
  8. Vb 6.0 ado连接mysql_VB使用ADO操作Access数据库
  9. c语言et1tr1怎么用,TMOD=0x11;ET0=1;TR0=0;ET1=1;TR1=0;EA=1;这是什么意思啊??谢谢啦
  10. oracle优化技巧
  11. histogram函数 python_Python numpy.histogram函数方法的使用
  12. python声音识别歌曲_听歌识曲--用python实现一个音乐检索器
  13. 【ValueError: could not convert string to float: ‘young‘】python利用pandas对string类型的数据序列化
  14. 2021年「博客之星」参赛博主:尔嵘
  15. 2022年淘宝618活动时间和天猫618有什么优惠活动
  16. 电脑上打印准考证照片不清楚咋办
  17. Delphi FireDAC 出现[FireDAC][DatS]-32. Variable length column [*] overflow. Value length - [*]
  18. idea批量替换一个变量(不同类也能实现)
  19. 指挥控制智能化现状与发展
  20. 计算机应用中同场所讲的OA代表什么,疾控中心OA协同办公系统的应用-计算机应用技术论文-计算机论文.docx...

热门文章

  1. 大型仪器一般都是用计算机,问题:大型仪器一般都使用计算机进行控制,对该计算机除了在性能上能满足要求,在使用方面原则上有何要求。...
  2. UE使用(UltraEdit)
  3. 收集了一些Weblogic监控工具
  4. 树莓派 linux 私有云,树莓派搭建私有云服务器
  5. 服务器系统安装——以Dell R710为例
  6. 如何入门独立开放游戏
  7. 安兔兔跑分UX视频兼容性分值为0
  8. 中国红客联盟、编程爱好者、中国站长网等追加
  9. 清风算法对seo不是打击而是好事
  10. pdf怎么转换成jpg或png图片?