• 大小: 34KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签:

资源简介

基于c52单片机温度采集系统,使用传感器18b20,串口通信,点阵lcd等,内容为主从机程序和原理图。

资源截图

代码片段和文件信息

/***********************************************************************
*文件名称:key.c
*说明:本文件为键盘扫描驱动函数文件
*功能:驱动函数实例化
*修改:无
*版本:V1.0.0
*作者:YuanDong
*时间:2009.07.03
*************************************************************************/
#define KEY_GLOBAL  1
#include “Key.h“
uchar keyValueBuff;             // 读取键值的缓冲区 
uchar keyValueOld;              // 前一次的键值 
uchar keyValueTemp;
uint  stillTimes;               // 键按下保持次数 
uint  stillTimesMax;
uchar get_data_1_count(uchar number);
void read_all_key(uchar *buff);
/*****************************************************************************************
* 函数名称:init_key(void)
* 功    能:键盘驱动初始化
* 入口参数:无
* 出口参数:无
*****************************************************************************************/
void init_key(void)
{
    keyValueBuff = 0x00;
    keyValueOld = 0x00;
    keyValueTemp = 0x00;
    stillTimes = 0;
    stillTimesMax = FIRST_TIMES;
}
void read_all_key(uchar *buff)
{
   if(IN_PRESS_UP == KEY_FORCE_VALUE)
   READ_KEY(1KEY_UP*buff);
   else
     READ_KEY(0KEY_UP*buff);
   if(IN_PRESS_DOWN  == KEY_FORCE_VALUE)
     READ_KEY(1KEY_DOWN *buff);
   else
     READ_KEY(0KEY_DOWN *buff);
   if(IN_PRESS_START == KEY_FORCE_VALUE)
     READ_KEY(1KEY_START*buff);
   else
     READ_KEY(0KEY_START*buff);
   if(IN_PRESS_STOP == KEY_FORCE_VALUE)
     READ_KEY(1KEY_STOP*buff);
   else
     READ_KEY(0KEY_STOP*buff);
}
/*****************************************************************************************
* 函数名称:uchar get_key_value(void)
* 功    能:获取键盘的键值
* 入口参数:无
* 出口参数:键盘的键值编码(keyValueTemp)
*****************************************************************************************/
uchar get_key_value(void)
{
    keyValueBuff = 0x00;
    read_all_key(&keyValueBuff);
    keyValueTemp = keyValueBuff;
    delay_us(KEY_DELAY_TIME);
    read_all_key(&keyValueBuff);
    /* 两次读到的键盘值相同 则为有效键盘值 */
    if( keyValueTemp == keyValueBuff )
    {
        if(keyValueTemp == 0)
        {
            keyValueOld = 0;
            stillTimes = 0;
            stillTimesMax = FIRST_TIMES;
            return 0;
        }
        else if(keyValueOld != keyValueTemp)
        {
            stillTimes = 0;
            keyValueOld = keyValueTemp;
            #if CAN_MORE_PRESS
                return keyValueTemp;
            #else
                if( 1 == get_data_1_count(keyValueTemp) )
                {
                    return keyValueTemp;
                }
                else
                {
                    return 0;
                }
            #endif
        }
        else if(keyValueOld == keyValueTemp)
        {
            #if CAN_MORE_PRESS == 0
                if( 1 != get_data_1_count(keyValueTemp) )
                {
                    stillTimes = 0;
                    return 0;
                }
            #endif
            #if CAN_REPEAT
                stillTimes ++;
         

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        556  2010-01-28 21:24  单片机无线多路温度采集系统设计\code\通信控制机代码\Include.h

     文件       5109  2010-01-28 21:28  单片机无线多路温度采集系统设计\code\通信控制机代码\key.c

     文件       2104  2010-01-28 21:27  单片机无线多路温度采集系统设计\code\通信控制机代码\key.h

     文件       6243  2010-01-28 21:29  单片机无线多路温度采集系统设计\code\通信控制机代码\lcd.c

     文件       1549  2010-01-28 21:28  单片机无线多路温度采集系统设计\code\通信控制机代码\lcd.h

     文件       3629  2010-01-28 21:31  单片机无线多路温度采集系统设计\code\通信控制机代码\main.c

     文件       7347  2010-01-28 21:26  单片机无线多路温度采集系统设计\code\通信控制机代码\nRF905.c

     文件       1803  2010-01-28 21:25  单片机无线多路温度采集系统设计\code\通信控制机代码\nRF905.h

     文件       2285  2010-01-28 21:29  单片机无线多路温度采集系统设计\code\通信控制机代码\serial.c

     文件        802  2010-01-28 21:29  单片机无线多路温度采集系统设计\code\通信控制机代码\serial.h

     文件        589  2010-01-28 21:30  单片机无线多路温度采集系统设计\code\通信控制机代码\target.c

     文件        845  2010-01-28 21:30  单片机无线多路温度采集系统设计\code\通信控制机代码\target.h

     文件       5975  2010-01-28 21:35  单片机无线多路温度采集系统设计\code\采集节点代码\ds18b20.c

     文件        857  2010-01-28 21:34  单片机无线多路温度采集系统设计\code\采集节点代码\ds18B20.h

     文件        591  2010-01-28 21:32  单片机无线多路温度采集系统设计\code\采集节点代码\include.h

     文件       3345  2010-01-28 21:36  单片机无线多路温度采集系统设计\code\采集节点代码\main.c

     文件       8011  2010-01-28 21:33  单片机无线多路温度采集系统设计\code\采集节点代码\nRF905.c

     文件       1804  2010-01-28 21:33  单片机无线多路温度采集系统设计\code\采集节点代码\nrf905.h

     文件       2384  2010-01-28 21:36  单片机无线多路温度采集系统设计\code\采集节点代码\serial.c

     文件        835  2010-01-28 21:35  单片机无线多路温度采集系统设计\code\采集节点代码\serial.h

     文件      34335  2010-05-19 19:28  单片机无线多路温度采集系统设计\sch\主机.Sch

     文件      23023  2010-05-19 19:28  单片机无线多路温度采集系统设计\sch\节点.Sch

     目录          0  2012-02-11 12:16  单片机无线多路温度采集系统设计\code\通信控制机代码

     目录          0  2012-02-11 12:16  单片机无线多路温度采集系统设计\code\采集节点代码

     目录          0  2012-02-11 12:16  单片机无线多路温度采集系统设计\code

     目录          0  2012-02-11 12:16  单片机无线多路温度采集系统设计\sch

     目录          0  2012-02-11 12:16  单片机无线多路温度采集系统设计

----------- ---------  ---------- -----  ----

               114021                    27



............此处省略0个文件信息

评论

共有 条评论