간단한 타이머로 버튼의 떨림을 해소할 수 있으니 여러분의 많은 조언을 바랍니다!
/********************************
1
********************************/
#include
#define uchar unsigned char
sbit KEY = P1 ^ 0; //
bit KEYSTA = 1; //
uchar code DispCode[] = {0xc0,0xf9,0xa4,0xb0, //
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
void Timer0Init(); //
void KeyProcess(); //
void main()
{
Timer0Init();
KeyProcess();
}
void Timer0Init()
{
TMOD |= 0x01;
TH0 = 0xF8; // 2MS
TL0 = 0xCD;
EA =1;
ET0 = 1;
TR0 = 1;
}
void KeyProcess()
{
bit lasttime = 1; // , 1;
uchar count = 0; // 0;
KEY = 0x01; // ;
P0 = DispCode[count]; // ;
while(1)
{
if (KEYSTA != lasttime) // “ ” “ ” , ;
{
if (lasttime == 1) // , “ ”(lasttime == 1), , ;
{
count++;
if (count >= 16) // 16 , ;
{
count = 0;
}
P0 = DispCode[count]; // ;
}
lasttime = KEYSTA; // , ;
}
}
}
void Timer0IRQ() interrupt 1 //2MS
{
static keybuf = 0xFF; // , FF; ;
TH0 = 0xF8; // ;
TL0 = 0xCD;
keybuf = (keybuf <
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 출력 포인터 변수 주소(16진수)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.