标题:
单片机蓝球记份牌程序
[打印本页]
作者:
axu2008
时间:
2019-8-26 08:27
标题:
单片机蓝球记份牌程序
自编写并仿真通过,可以记1分,2分,3分,并可删除输入错误分值。
#include <pic.h>
#define INT8U unsigned char
#define _xtal_freq 1000000ul
#define k1_down() (RB4==0)
#define k2_down() (RB5==0)
#define k3_down() (RB6==0)
#define k4_down() (RB7==0)
INT8U count=0;
INT8U t,num=0;
const INT8U SEG_CODE[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
void display()
{
/*if(!show_on)
{
PORTC=0x00;PORTD=0xFF;
return;
}*/
/*PORTD=0xFF;
PORTC=SEG_CODE[count/10];
PORTD=~(1<<0);
__delay_ms(2);
PORTD=0xFF;
PORTC=SEG_CODE[count%10];
PORTD=~(1<<1);
__delay_ms(2);*/
t=count;
for(INT8U i=0;i<2;i++)
{
PORTD=0xFF;
PORTC=SEG_CODE[t%10];
PORTD=0X01<<i;
__delay_ms(2);
t/=10;
}
}
void main(void)
{
TRISC=0x00;TRISD=0x00;
PORTC=0xFF;PORTD=0xFF;
GIE=1;
RBIE=1;
TRISB=0xFF;
RBPU=0;
while (1)
{
display();
}
}
void interrupt RB_port_change()
{
if(RBIF==1)
{
__delay_ms(5);
if(k1_down())
{if(count<99) count++;num=1;}
if(k2_down())
{if(count<99) count+=2;num=2;}
if(k3_down())
{if(count<99) count+=3;num=3;}
if(k4_down())
{
switch (num)
{
case 1: count -=1;break;
case 2: count -=2;break;
case 3: count -=3;break;
}
num=0;
}
RBIF=0;
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1