⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sheji11.c

📁 投币机程序
💻 C
字号:
//数码管为共阳管,COM高电平时对应的数码管导通
//
#include "AT89X51.H"
#define uchar unsigned char
#define uint unsigned int
uchar code Table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar data i=0,j=0,k=0,q=0;   //i个位,j十位,k百位,q千位
uint data dt=0;

//函数申明
void calc(uint);
display(void);
void delay1ms(void);
start(void);

void main(void)
{start();
display();
while(1);
}

//按键加1中断子程序
void T0add() interrupt 1 using 0
{EA=0;
if(dt!=9999)
{dt++;
calc(dt);
}
else 
{dt=0;
calc(dt);
}
start();
}

//按键减1中断子程序
void T1SUB() interrupt 3 using 1
{EA=0;
if(dt!=0)
{dt--;
calc(dt);
}
else 
{dt=0;
i=j=k=q=0;
}
start();
}

//按键清零中断子程序
void int1zero() interrupt 0 using 2
{EA=0;
dt=0;
i=j=k=q=0;
start();
}

//数码管显示函数
display()
{
while(1)
{P2=0xEF;								
P0=Table[i];
delay1ms();
P2<<=1;
P0=Table[j];
delay1ms();
P2<<=1;
P0=Table[k];
delay1ms();
P2<<=1;
P0=Table[q];
delay1ms();
}
}

//计算数据个、十、百、千位函数
void calc(uint d)
{i=d%10;
j=(d/10)%10;
k=(d/100)%10;
q=d/1000;
}

//延迟1MS函数
void delay1ms(void)
{uint a;
for(a=0;a<1000;a++);
}

//初始化函数
start()
{TMOD=0x66;
TH0=TL0=0xFF;
TH1=TL1=0xFF;
EX0=1;
IT0=0;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
EA=1;
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -