51——DS18B20
1. 单总线介绍
2. 单总线初始化
3. 单总线发送一位
4. 单总线接收一位
5. 单总线发送一个字节(低位在前)
6. 单总线接收一个字节(低位在前)
7. DS18B20温度变换
8. DS18B20温度读取
9. 定时器扫描按键
#include "keytime.h"
unsigned char KeyValue = 0;
//获取按键键码
unsigned char KeyTimeScan(void)
{
unsigned char temp = 0;
temp = KeyValue;
KeyValue = 0;
return temp;
}
//获取当前按键状态
unsigned char KeyGetState(void)
{
unsigned char KeyState = 0;
if (key1 == 0) {KeyState = 1;}
if (key2 == 0) {KeyState = 2;}
if (key3 == 0) {KeyState = 3;}
if (key4 == 0) {KeyState = 4;}
return KeyState;
}
//按键驱动 在中断中调用
void KeyLoop(void)
{
static unsigned char NowState, LastState;
LastState = NowState;
NowState = KeyGetState();
if (LastState == 1 && NowState == 0)
{
KeyValue = 1;
}
if (LastState == 2 && NowState == 0)
{
KeyValue = 2;
}
if (LastState == 3 && NowState == 0)
{
KeyValue = 3;
}
if (LastState == 4 && NowState == 0)
{
KeyValue = 4;
}
}