#include
#define uchar unsigned char
#define uint unsigned int
sbit we1=P2^2; //数码管位
sbit s1=P2^1; //轻触开关
uchar a=0; //显示数值
uchar code table[]={ //这里面根据硬件接法自己填写0到9的断码
0xa0,0xbb,0x86,0x92,
0x99,0xd0,0xc0,0xba,
0x80,0x90
};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void xianshi() //数码管显示
{
we1=1;
P0=table[a/10];
delay(8);
}
void key()
{
if(s1==0)
{
delay(5);
if(s1==0)
{
a++;
if(a==10)
a=0;
while(!s1); //等待松开
}
}
}
void main()
{
while(1)
{
xianshi();
key();
}
}
刚刚写的 应该可以用的; 硬件应该自己会了吧``
数码管段通过上拉电阻接P0口;(怕亮度不够可以加三极管)
轻触开关接P2.1
数码管位接P2.2
至于单片机外接电路那些晶振电容 书上有吧` ``希望帮的到你
#include
#define uchar unsigned char
#define uint unsigned int
sbit we1=P2^2; //数码管位
sbit s1=P2^1; //轻触开关
uchar a=0; //显示数值
uchar code table[]={ //这里面根据硬件接法自己填写0到9的断码
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void xianshi() //数码管显示
{
we1=1;
P3=table[a]; //这个楼下的因该是写错了,还有我用的是P3口
delay(5); //还有这个不要太大,不然延时有点久
}
void key()
{
if(s1==0)
{
delay(5);
if(s1==0)
{
a++;
if(a==10)
a=0;
while(!s1); //等待松开
}
}
}
void main()
{
while(1)
{
xianshi();
key();
}
}
一百元以内的成品和论文,行的话就找我