导航菜单
首页 >  蓝桥杯历年真题解析单片机的设计与开发  > 第十届蓝桥杯单片机省赛题目解析

第十届蓝桥杯单片机省赛题目解析

话不多说,我们一起来看看第十届(2019)的题目吧。

题目

 这次的题目还是三大模块(数码管、LED、按键),还用到了ADC、DAC、NE555,除了NE555之前没有见过,其他也都是一些常见的外设,只要平常都练习过,也就不难,最重要的还是编程逻辑。 

1 数码管显示

数码管有电压测量界面和频率测量界面。

2 LED

界面为电压测量界面L1亮,频率测量界面L2亮,电压在[1.5,2.5)或者>=3.5V时L3亮,频率在[1k,5k)或者>=10k时L4亮,当输出固定电压时L5灭,否则L5亮。

3 按键模块

使用的是独立按键,s4是电压测量界面和频率测量界面的切换,s5是DAC固定输出电压或者DAC输出随电压器输出电压变化而变化,s6是LED的开关,s7是数码管显示的开关。

4 NE555

NE555就是使用两个定时器,一个用来计数,一个用来定时。其中定时1ms看计数记录了多少,转动RB3,频率会改变。

5 ADC

就是改写底层驱动代码部分(IIC)。

6 DAC

就是改写底层驱动代码部分(IIC)。

IIC.c #include"IIC.h"#define DELAY_TIME 5#define SlaveAddrW 0xA0#define SlaveAddrR 0xA1sbit SDA = P2^1; sbit SCL = P2^0; void IIC_Delay(unsigned char i){do{_nop_();}while(i--);}void IIC_Start(void){SDA = 1;SCL = 1;IIC_Delay(DELAY_TIME);SDA = 0;IIC_Delay(DELAY_TIME);SCL = 0;}void IIC_Stop(void){SDA = 0;SCL = 1;IIC_Delay(DELAY_TIME);SDA = 1;IIC_Delay(DELAY_TIME);}bit IIC_WaitAck(void){bit ackbit;SCL = 1;IIC_Delay(DELAY_TIME);ackbit = SDA;SCL = 0;IIC_Delay(DELAY_TIME);return ackbit;}void IIC_SendByte(unsigned char byt){unsigned char i;for(i=0; i

相关推荐: