在蓝桥杯单片机比赛中,有几个常用外设,只要将这些外设学会就可以应对比赛。
省赛考点:LED、蜂鸣器、继电器、数码管、独立键盘、矩阵键盘、实时时钟、数模\模数转换、EEPROM储存器、温度传感器、定时计数器、中断等
国赛考点:LED、蜂鸣器、继电器、数码管、独立键盘、矩阵键盘、实时时钟、数模\模数转换、EEPROM储存器、温度传感器、定时计数器、中断、超声波距离传感器、NE555、串口通信(第十届)等
#include "reg52.h"
#include "iic.h"
#include "onewire.h"
#include "ds1302.h"
//矩阵按键
sfr P4 = 0xc0;
sbit R1 = P3^0;
sbit R2 = P3^1;
sbit R3 = P3^2;
sbit R4 = P3^3;
sbit C1 = P4^4;
sbit C2 = P4^2;
sbit C3 = P3^5;
sbit C4 = P3^4;
void scankeys()
{
R1 = 0;
R2 = R3 = R4 = 1;
C1 = C2 = C3 = C4 = 1;
if (C1 == 0)
{
delay(1000);
if (C1 == 0)
{
//添加所需功能
while(C1 == 0);
}
}
else if (C2 == 0)
{
delay(1000);
if (C2 == 0)
{
//添加所需功能
while(C2 == 0);
}
}
else if (C3 == 0)
{
delay(1000);
if (C3 == 0)
{
//添加所需功能
while(C3 == 0);
}
}
else if (C4 == 0)
{
delay(1000);
if (C4 == 0)
{
//添加所需功能
while(C4 == 0);
}
}
R2 = 0;
R1 = R3 = R4 = 1;
C1 = C2 = C3 = C4 = 1;
if (C1 == 0)
{
delay(1000);
if (C1 == 0)
{
//添加所需功能
while(C1 == 0);
}
}
else if (C2 == 0)
{
delay(1000);
if (C2 == 0)
{
//添加所需功能
while(C2 == 0);
}
}
else if (C3 == 0)
{
delay(1000);
if (C3 == 0)
{
//添加所需功能
while(C3 == 0);
}
}
else if (C4 == 0)
{
delay(1000);
if (C4 == 0)
{
//添加所需功能
while(C4 == 0);
}
}
R3 = 0;
R1 = R2 = R4 = 1;
C1 = C2 = C3 = C4 = 1;
if (C1 == 0)
{
delay(1000);
if (C1 == 0)
{
//添加所需功能
while(C1 == 0);
}
}
else if (C2 == 0)
{
delay(1000);
if