标题:
用MCU做一个简易记分器,上拉电阻,数码管显示数字的段码表
[打印本页]
作者:
cyq1144398565
时间:
2019-4-3 19:39
标题:
用MCU做一个简易记分器,上拉电阻,数码管显示数字的段码表
proteus仿真图
99.png
(41.42 KB, 下载次数: 20)
下载附件
2019-4-3 19:39 上传
程序完整代码:
#include<reg52.h>
#include <intrins.h>
sbit KEY1=P3^0; //各按键所连io口
sbit KEY2=P3^1;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
sbit KEY5=P3^4;
unsigned char code yyy[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管数字显示段码
unsigned char xxx=0;
unsigned char z=0;
unsigned char y=0;
unsigned char s=0;
void Delay100us() //延迟函数 晶振值@11.0592MHz
{
unsigned char i;
_nop_();
i = 43;
while (--i);
}
void Delay50us() //[color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]延迟函数 [/font][/backcolor][/color][color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]晶振值[/font][/backcolor][/color]@11.0592MHz
{
unsigned char i;
_nop_();
i = 20;
while (--i);
}
void key1() //按键1控制1队的分数“加1”及俩队分数的清零
{
if(KEY1==0)
{
Delay50us();
if(KEY1==0)
{
while(!KEY1);
if(xxx<10)
xxx++;
if(xxx==10)
{xxx=0;z++;}
}
}
if(KEY3==0)
{
if(KEY3==0)
Delay50us();
while(!KEY3)
{
xxx=0;
z=0;
y=0;
s=0;
}
}
}
void key2() //[color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]按键2控制2队的分数“加1”[/font][/backcolor][/color]
{
if(KEY2==0)
{
Delay50us();
if(KEY2==0)
{
while(!KEY2);
if(y<10)
y++;
if(y==10)
{y=0;s++;}
}
}
}
void key4() //控制一队分数“减1”
{
if(KEY4==0)
{
Delay50us();
if(KEY4==0)
{
while(!KEY4) ;
if(xxx==0)
{xxx=9;z--;}
else
xxx--;
}
}
}
void key5() //[color=rgb(37, 37, 37)][backcolor=transparent][font=Tahoma,]控制二队分数“减1”[/font][/backcolor][/color]
{
if(KEY5==0)
{
Delay50us();
if(KEY5==0)
{
while(!KEY5) ;
if(y==0)
{y=9;s--;}
else
y--;
}
}
}
void display() // 使数码管短时间交替显示使人看到数码管4个都是亮的
{
P0=0xff;
Delay100us();
P2=0xfe;P0=yyy[xxx];
Delay100us();
P0=0xff;
Delay100us();
P2=0xfd;P0=yyy[z];
Delay100us();
P0=0xff;
Delay100us();
P2=0xfb;P0=yyy[y];
Delay100us();
P0=0xff;
Delay100us();
P2=0xf7;P0=yyy[s];
Delay100us();
}
main()
{
P3= 0xff; //???????????io???????1
while(1)
{
display(); //??????????????????????
key1();
key2();
key4();
key5();
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1