#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tade0[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
sbit K1=P3^0;
sbit K2=P3^1;
sbit K3=P3^3;
sbit k4=P3^4;
sbit RS=P3^5;
sbit RW=P3^6;
sbit E=P3^7;
int speed;
uchar num;
uint m=0;
uint xms;
void delayMS()
{
TF0=0;TR0=1;
while(TF0==0);
TR0=0;
TL0=(65536-40)/256;
TH0=(65536-40)%256;
}
void delay(uchar xms)
{
uchar a;
while (xms--)
for(a=125;a>0;a--);
}
void write_com(uchar com)
{
RS=0;
RW=0;
P0=com;
delay(5);
E=1;
delay(5);
E=0;
}
void write_data(uchar date)
{
RS=1;
RW=0;
P0=date;
delay(5);
E=1;
delay(5);
E=0;
}
void LCD1602_init()
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void display()
{
LCD1602_init(); //速度显示在LCD上
write_com(0x80);
write_data(0x20);
write_data(0x53);
write_data(0x3a);
write_data(0x20);
write_data(0x3d);
write_data(0x30+speed/100);
write_data(0x30+speed/10%10);
write_data(0x2e);
write_data(0x30+speed%10);
write_data(0x72);
write_data(0x2f);
write_data(0x73);
}
void main()
{
uchar i=1,j;
EA=1;
EX0=1;
IT0=1;
ET0=1;
TMOD=0X01;
TL0=(65536-40)/256;
TH0=(65536-40)%256;
TR0=1;
P1=0X00;
switch(m)
{
case 0x30: speed=0;break; //速度选择1,2,3,4档
case 0x31: speed=100;break;
case 0x32: speed=125;break;
case 0x33: speed=155;break;
case 0x34: speed=208;break;
default:break;
}
while(1)
{
if(m==0) break;
else if(m==1)
{
num = 60;
for(;i<9;i++)
{
P1=tade0[i-1];