资源简介

74HC164扩展按键处理程序集非常详细,难得的好文件!!!

资源截图

代码片段和文件信息

/***************************************************** 
 * main.c 中如此这般: 
 *****************************************************/ 

kd_init(); 

// ...... 

while (1) 

if( should_update_kd ) 

kd_update(); 


// Other code 
// ...... 



//再看显示、键扫源代码: 

/****************************************************** 
 * key_disp-config.h 
 ******************************************************/ 

#ifndef _KEY_DISP_CFG_H_ 
#define _KEY_DISP_CFG_H_ 

#define DIGIT1 B 0 
#define DIGIT2 B 1 
#define DIGIT3 B 2 
#define DIGIT4 B 3 

#define KEY_FB D 6 

#define KD_CLR D 7 
#define KD_CLK B 5 
#define KD_DAT B 4 


#define KEY_NONE (uint8_t)(0xFF) 
#define KEY_S1 (uint8_t)(0x01<<0) 
#define KEY_S2 (uint8_t)(0x01<<1) 
#define KEY_S3 (uint8_t)(0x01<<2) 
#define KEY_S4 (uint8_t)(0x01<<3) 
#define KEY_S5 (uint8_t)(0x01<<4) 
#define KEY_S6 (uint8_t)(0x01<<5) 
#define KEY_S7 (uint8_t)(0x01<<6) 
#define KEY_S8 (uint8_t)(0x01<<7) 


#endif /*_KEY_DISP_CFG_H_*/ 



/****************************************************** 
 * key_disp.h 
 ******************************************************/ 

#ifndef _KEY_DISP_H_ 
#define _KEY_DISP_H_ 

#include  

#include “key_disp-config.h“ 


#define KD_CODE_NONE 10 
#define KD_CODE_PAUSED 11 
#define KD_CODE_CW 12 
#define KD_CODE_CCW 13 
#define KD_CODE_SET_RUN 14 
#define KD_CODE_SET_SLEEP 15 
#define KD_CODE_TIMER_RUN 16 
#define KD_CODE_TIMER_SLEEP 17 
#define KD_CODE_EXTERN_TRIG 18 
#define KD_CODE_EXTERN_CTRL 19 
#define KD_CODE_H 20 
#define KD_CODE_M 21 
#define KD_CODE_S 22 



// Initialize key & display 
void kd_init(); 

// Update key & display MUST be called periodically eg. in timer 
void kd_update(); 

// Get key code 
uint8_t kd_get_key(); 

// Set mode to display 
void kd_display_code(uint8_t digit_id uint8_t code_id); 

// Set display digits dp_pos=-1 means no dp displayed 
void kd_display(uint16_t value uint8_t max_digits const int8_t dp_pos); 


#endif /*_KEY_DISP_H_*/ 



/****************************************************** 
 * key_disp.c 
 ******************************************************/ 

#include “avr/io.h“ 

#include “key_disp.h“ 
#include “config.h“ 

#include “util.h“ 

#define NOP() asm volatile (“nop“) 


static const uint8_t seg_code[] =  

0x3F/*0*/ 0x06/*1*/ 0x5B/*2*/ 0x4F/*3*/ 0x66/*4*/ 
0x6D/*5*/ 0x7D/*6*/ 0x07/*7*/ 0x7F/*8*/ 0x6F/*9*/ 
0x00/*KD_CODE_NONE*/ 
0x73/*KD_CODE_PAUSED*/ 
0x21/*KD_CODE_CW*/ 
0x03/*KD_CODE_CCW*/ 
0x50/*KD_CODE_SET_RUN*/ 
0x6D/*KD_CODE_SET_SLEEP*/ 
0x09/*KD_CODE_TIMER_RUN*/ 
0x36/*KD_CODE_TIMER_SLEEP*/ 
0x79/*KD_CODE_EXTERN_TRIG*/ 
0x39/*KD_CODE_EXTERN_CTRL*/ 
0x76/*KD_CODE_H*/ 
0x20/*KD_CODE_M*/ 
0x22/*KD_CODE_S*/ 
}; 

#define SEG_DP 0x80 


static volatile uint8_t _key_code = 0xFF; 
static volatile uint8_t _digits[4]; 

void kd_init() 

PORT_DDR_SET(DIGIT

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

     文件        682  2011-04-22 17:22  74HC164扩展按键的处理程序集\164.txt

     文件      58394  2011-04-22 15:42  74HC164扩展按键的处理程序集\164扫描按键程序.pdf

     文件       6957  2011-04-21 15:42  74HC164扩展按键的处理程序集\164按键.c

     文件       4046  2009-02-23 10:07  74HC164扩展按键的处理程序集\74HC164\74HC164.aps

     文件        701  2009-02-23 10:07  74HC164扩展按键的处理程序集\74HC164\74hc164.aws

     文件       1189  2009-02-23 10:05  74HC164扩展按键的处理程序集\74HC164\74HC164.c

     文件      87378  2009-02-23 10:07  74HC164扩展按键的处理程序集\74HC164\74HC164.DSN

     文件       1197  2009-02-23 10:07  74HC164扩展按键的处理程序集\74HC164\74HC164.PWI

     文件       5731  2009-02-23 10:05  74HC164扩展按键的处理程序集\74HC164\default\74HC164.elf

     文件       2055  2009-02-23 10:05  74HC164扩展按键的处理程序集\74HC164\default\74HC164.hex

     文件       4464  2009-02-23 10:05  74HC164扩展按键的处理程序集\74HC164\default\74HC164.o

     文件       1049  2009-02-23 10:05  74HC164扩展按键的处理程序集\74HC164\default\dep\74HC164.o.d

     文件       1821  2009-02-23 10:05  74HC164扩展按键的处理程序集\74HC164\default\Makefile

     文件      87378  2009-02-23 10:07  74HC164扩展按键的处理程序集\74HC164\Last Loaded 74HC164.DBK

     文件     209463  2010-01-04 19:09  74HC164扩展按键的处理程序集\74HC164_按键_数码管\74HC164键扫+显示实例.pdf

     文件     508560  2010-01-04 22:43  74HC164扩展按键的处理程序集\74HC164_按键_数码管\74HC164键扫+显示实例,已经过项目验证 .mht

     文件        739  2010-01-29 00:11  74HC164扩展按键的处理程序集\74HC164_按键_数码管\key_disp-config.h

     文件       4513  2010-01-29 00:09  74HC164扩展按键的处理程序集\74HC164_按键_数码管\key_disp.c

     文件       1045  2010-01-29 00:11  74HC164扩展按键的处理程序集\74HC164_按键_数码管\key_disp.h

     文件     209463  2010-01-04 19:09  74HC164扩展按键的处理程序集\74HC164键扫+显示实例.pdf

     文件     508560  2010-01-04 22:43  74HC164扩展按键的处理程序集\74HC164键扫+显示实例,已经过项目验证 .mht

     文件        739  2010-01-29 00:11  74HC164扩展按键的处理程序集\key_disp-config.h

     文件       4513  2010-01-29 00:09  74HC164扩展按键的处理程序集\key_disp.c

     文件       1045  2010-01-29 00:11  74HC164扩展按键的处理程序集\key_disp.h

     目录          0  2009-02-22 13:13  74HC164扩展按键的处理程序集\74HC164\default\dep

     目录          0  2009-02-23 10:05  74HC164扩展按键的处理程序集\74HC164\default

     目录          0  2009-02-23 10:07  74HC164扩展按键的处理程序集\74HC164

     目录          0  2010-02-12 21:44  74HC164扩展按键的处理程序集\74HC164_按键_数码管

     目录          0  2011-06-10 15:33  74HC164扩展按键的处理程序集

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

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

评论

共有 条评论