标题:
篮球计分牌Proteus仿真 单片机源程序
[打印本页]
作者:
2362964811
时间:
2020-7-18 17:56
标题:
篮球计分牌Proteus仿真 单片机源程序
篮球计分牌的程序和仿真
51hei.png
(14.12 KB, 下载次数: 60)
下载附件
2020-7-21 01:51 上传
单片机源程序如下:
#include "reg51.h"
sbit SEG1 = P1^7;
sbit SEG2 = P1^6;
sbit SEG3 = P1^5;
sbit SEG4 = P1^4;
sbit MARK1 = P3^0;
sbit MARK2 = P3^1;
sbit MARK3 = P3^2;
unsigned char MARK;
char code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //段码
void delay(unsigned int t)
{
while(t--);
}
void DigDisplay(void)
{
unsigned char i;
for(i = 0;i < 4;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
SEG4 = 0;SEG3 = 1;SEG2 = 1;SEG1 = 1;P2 = table[MARK % 10];break;
case(1):
SEG4 = 1;SEG3 = 0;SEG2 = 1;SEG1 = 1;P2 = table[MARK % 100 / 10];break;
case(2):
SEG4 = 1;SEG3 = 1;SEG2 = 0;SEG1 = 1;P2 = table[MARK % 1000 / 100];break;
case(3):
SEG4 = 1;SEG3 = 1;SEG2 = 1;SEG1 = 1;P2 = table[MARK % 1000 / 1000];break;
}
delay(100); //间隔一段时间扫描
P2 = 0x00;//消隐
}
}
void Points(void)
{
if(MARK1 == 0)
{
delay(500);
if(MARK1 == 0)
{
MARK = MARK + 1;
}
while(!MARK1);
}
if(MARK2 == 0)
{
delay(500);
if(MARK2 == 0)
{
MARK = MARK + 2;
}
while(!MARK2);
}
if(MARK3 == 0)
{
delay(500);
if(MARK3 == 0)
{
MARK = MARK + 3;
}
while(!MARK3);
}
}
void main(void)
{
while(1)
{
Points();
DigDisplay();
}
}
复制代码
所有资料51hei提供下载:
计分牌.zip
(78.96 KB, 下载次数: 27)
2020-7-18 17:55 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
faridzled
时间:
2020-7-26 02:13
Thanks for sharing
作者:
qsfan1
时间:
2024-10-9 09:28
Proteus8.13版本的仿真
作者:
declansang
时间:
2025-4-28 16:40
可以跑起来
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1