标题:
stc15单片机键控计数器代码
[打印本页]
作者:
fengxiao323
时间:
2023-6-16 12:34
标题:
stc15单片机键控计数器代码
#include <stc15.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit KEY2=P3^0;
sbit KEY3=P3^1;
sbit KEY4=P3^2;
sbit KEY5=P3^3;
void SEG_Display(SEG_Num);
void Delay10ms();
uchar code SegeTable[] = {
0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e, 0xff
};
uchar disNum[4]={0,0,9,9};
uchar disScan[4]={0xff,0xff,0xef,0xdf};
uchar SEG_Num=03;
void main()
{
uchar i=0;
P2M0=0X00;P2M1=0X00;
P4M0=0X00;P4M1=0X00;
while(1)
{
SEG_Display(SEG_Num);
if(KEY2==0)
{
Delay10ms();
while(!KEY2);
SEG_Num++;
if(SEG_Num>99)
{
SEG_Num=0;
}
}
if(KEY3==0)
{
Delay10ms();
while(!KEY3);
if(SEG_Num>0)
{
SEG_Num--;
}
else
{
SEG_Num=99;
}
}
if(KEY4==0)
{
if(KEY4==0)
{
while(!KEY4);
SEG_Num=0;
}
}
}
}
void Delay10ms() //@11.0592MHz
{
unsigned char i, j;
i = 108;
j = 145;
do
{
while (--j);
} while (--i);
}
void SEG_Display(uint Num)
{
uchar i,qian,bai,shi,ge;
qian=Num/1000;
bai=(Num%1000)/100;
shi=(Num%100)/10;
ge=Num%10;
disNum[0]=qian;
disNum[1]=bai;
disNum[2]=shi;
disNum[3]=ge;
if((disNum[0]==0)&&(disNum[1]!=0))
{disNum[0]=16;}
if((disNum[0]==0)&&(disNum[1]==0)&&(disNum[2]!=0))
{disNum[0]=16;disNum[1]=16;}
if((disNum[0]==0)&&(disNum[1]==0)&&(disNum[2]==0)&&(disNum[3]!=0))
{disNum[0]=16;disNum[1]=16;disNum[2]=16;}
for(i=0;i<4;i++)
{
P4|=0X36;
P4&=disScan[i];
P2=SegeTable[disNum[i]] ;
Delay10ms();
}
}
复制代码
作者:
wl20020807
时间:
2024-9-16 16:37
楼主有电路图吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1