標(biāo)題:
單片機(jī)藍(lán)球記份牌程序
[打印本頁(yè)]
作者:
axu2008
時(shí)間:
2019-8-26 08:27
標(biāo)題:
單片機(jī)藍(lán)球記份牌程序
自編寫(xiě)并仿真通過(guò),可以記1分,2分,3分,并可刪除輸入錯(cuò)誤分值。
#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;
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1