蓝桥杯省赛考试需要使用的所有模块

蓝桥杯单片机组24号就要考试了,是时候把考试用到的每个模块做一个总结了。其实对于省赛来说用到的模块总共就那么几个:

1、数码管

2、按键(独立按键和矩阵按键)

3、DS18B20(温度传感器)

4、DS1302(时钟)

5、AD

6、EEPROM

7、蜂鸣器和继电器

8、LED灯

一共八个模块,在这八个模块里面每年都考的是:按键、数码管、LED灯

下面就来一个一个模块的说一下(纯属个人总结,仅供参考):

1、数码管:

从往届的题目要求我们可以看出来,数码管要求显示的是:数字1~~9,、字母C(大写)、—(中斜杠),还有一个比较冷门的就是显示数字的时候第八段数码管也要求点亮(就是右下角那一点)。从这里我们可以看出来真正有困难的不在数码管的显示,而是数码管和按键结合的显示。当然了现在我们写的函数肯定都是封装好的了,具体如何封装就看你自己个个人习惯了。

下面给大家看一下我写的函数代码:

#include "shuma.h"
u8 shu_tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};//0XC6是英文C
uchar yi,er,san,si,wu,liu,qi,ba;
void Display1_2(uchar yi,uchar er)
{
		P2=0XC0;
		P0=0X01;
		P2=0XFF;
		P0=shu_tab[yi];
		Delay1ms();Delay1ms();
		
		P2=0XC0;
		P0=0X02;
		P2=0XFF;
		P0=shu_tab[er];
		Delay1ms();Delay1ms();
}	
void Display4_5(uchar si,uchar wu)
{
		P2=0XC0;
		P0=0X08;
		P2=0XFF;
		P0=shu_tab[si];
		Delay1ms();Delay1ms();
		
		P2=0XC0;
		P0=0X10;
		P2=0XFF;
		P0=shu_tab[wu];
		Delay1ms();Delay1ms();
}
void Display3_6(uchar san,uchar liu)
{
		P2=0XC0;
		P0=0X04;
		P2=0XFF;
		P0=shu_tab[san];
		Delay1ms();Delay1ms();
		
		P2=0XC0;
		P0=0X20;
		P2=0XFF;
		P0=shu_tab[liu];
		Delay1ms();Delay1ms();
}
void Display7_8(uchar qi,uchar ba)
{
		P2=0XC0;
		P0=0X40;
		P2=0XFF;
		P0=shu_tab[qi];
		Delay1ms();Delay1ms();
		
		P2=0XC0;
		P0=0X80;
		P2=0XFF;
		P0=shu_tab[ba];
		Delay1ms();Delay1ms();
		P2=0XFF;
		P0=0XFF;
}
void Delay1ms()		//@11.0592MHz
{
	unsigned char i, j;

	_nop_();
	_nop_();
	_nop_();
	i = 11;
	j = 190;
	do
	{
		while (--j);
	} while (--i);
}
void Display3_4(uchar san,uchar si)
{
		P2=0XC0;
		P0=0X04;
		P2=0XFF;
		P0=shu_tab[san];
		Delay1ms();Delay1ms();
		
		P2=0XC0;
		P0=0X08;
		P2=0XFF;
		P0=shu_tab[si];
		Delay1ms();Delay1ms();
}
void Display5_6(uchar wu,uchar liu)
{
		P2=0XC0;
		P0=0X10;
		P2=0XFF;
		P0=shu_tab[wu];
		Delay1ms();Delay1ms();
		
		P2=0XC0;
		P0=0X20;
		P2=0XFF;
		P0=shu_tab[liu];
		Delay1ms();Delay1ms();
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值