这个是传送带产品计数器,想要在下列代码上,再加设计一个矩形键盘设置预值的部分,我是新手,求大神指教
单片机源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit STAR_KEY =P3^6;
sbit STOP_KEY =P3^7;
sbit L0=P1^0;
sbit L1=P1^1;
sbit L2=P1^2;
sbit L3=P1^3;
sbit L4=P1^4;
sbit L5=P1^5;
sbit L6=P1^6;
sbit L7=P1^7;
sbit L8=P2^0;
sbit L9=P2^1;
sbit L10=P2^2;
sbit L11=P2^3;
sbit L12=P2^4;
sbit LED4=P2^5;
sbit LED3=P2^6;
sbit LED2=P2^7;
sbit LED1=P3^0;
sbit MOTOR=P3^5;
uchar n[2]={1,0};
uchar code
dispcode[]= {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff};
void delayms(uint x)
{
uchar y;
while(x--)
{
for (y=0;y<123;y++) {;}
}
}
uchar Keynum()
{
uchar KEY=0;
STAR_KEY=1;STOP_KEY=1;
if (STAR_KEY==0) {delayms (10);if(STAR_KEY==0)n[0]=0;n[1]=1;}
if (STOP_KEY==0) {delayms (10);if(STOP_KEY==0)n[0]=1;n[1]=0;}
return n[2];
}
void xianshi(uint o)
{
P0=0xff;
P0=dispcode[o/1000];LED4=1 ;LED3=0;LED2=0;LED1=0;delayms(5);
P0=0xff;
P0=dispcode[(o/100)%10];LED4=0;LED3=1;LED2=0;LED1=0;delayms(5);
P0=0xff;
P0=dispcode[(o/10)%10];LED4=0;LED3=0;LED2=1;LED1=0;delayms(5);
P0=0xff;
P0=dispcode [o%10];LED4=0;LED3=0;LED2=0;LED1=1;delayms(5);
}
}
void main(void)
{
uint q;
IT0=1;
EA=1;
EX0=1;
TMOD=0X05;
TL0=0x00;
TH0=0x00;
while(1)
{
q=qiuzhi();
if (MOTOR==1){xianshi(q);} else{xianshi(TL0);Keynum();TR0=n[1];}
if (TL0==q){TR0=0;MOTOR=1;} else{Keynum();MOTOR=n[0];}
}
}
void Int0(void) interrupt 0
{TL0=0x00;TR0=1;}
|