資源簡介
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]; //刷新前一次的備份值
}
}
}
{
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++)???//把長整型數轉換為
- 上一篇:基于51單片機的計算器
- 下一篇:模擬電子技術基礎華為.pdf
評論
共有 條評論