• 大小: 3.72KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-02-22
  • 标签: 显示  按键  

资源简介

void KeyDriver()
{
    uchar i;
    static uchar backup[4] = {1, 1, 1, 1}; //按键值备份,保存前一次的值
    
    for (i=0; i<4; i )  //循环检测4按键
    {
      if (backup[i] != KeySta[i])    //检测按键动作
        {
            if (backup[i] != 0)           //按键按下时执行动作
            {
KeyAction(KeyCodeMap[i]); //调用按键动作函数
            }
            backup[i] = KeySta[i];     //刷新前一次的备份值
        }
    }
}

资源截图

代码片段和文件信息

#include “STC12C5A60S2.H“
//#include “REG52.H“
#include “intrins.h“
typedef unsigned char uchar;
typedef unsigned int uint;

sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
sbit KEY1 = P3^2;
sbit KEY2 = P3^3;
sbit KEY3 = P3^4;
sbit KEY4 = P3^5;
uchar code LedChar[]={0xc00xf90xa40xb00x990x920x820xf80x800x90};//共阳数字编码  0.1.2.3.4....9
uchar LedBuff[4]={0xFF 0xFF 0xFF 0xFF}; //数码管显示缓冲区
uchar KeySta[4] = {1 1 1 1}; //全部矩阵按键的当前状态
uchar KeyCodeMap[4] = {0x310x320x330x34};
uchar TL = 0xCD; //2mS  2毫秒@11.0592MHz 1T Mode
uchar TH = 0xF8;
uint cnt = 0;
uint count = 0;
void KeyDriver();
void Timer0_Init()
{
AUXR  = 0x7F; //Timer0 set as 1T 16 bits timer auto-reload80 1T;7F 12T
TMOD |= 0xF0; //设置定时器模式 
TH0 = TH; //
TL0 = TL;
TF0 = 0;
ET0 = 1; //Timer0 interrupt enable
TR0 = 1; //Tiner0 run
}

void ShowNumber(uint num)
{
    static signed char i;
    uchar buf[4];    
    for (i=0; i<4; i++)   //把长整型数转换为

评论

共有 条评论