该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/*******两个输入信号同时输入判断,2019 4 6**********/
/*******桥架机AB系统拉拔选择其中一个先拉进位置*****/
/***AB都在等待区A先前进,B在等待区A在中间B先前进****/
/***其中一个不在等待区拉拔后退PAST L259 CODE640****/
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar code disdt[11]={0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xa3};
sbit CS=P1^2; // 12864PIN4 vala显示缓冲valb加减时间处理缓冲
sbit SID=P1^3; // 12864PIN5
sbit SCLK=P1^4; // 12864PIN6
sbit key1=P3^2; // 设置按键
sbit key2=P1^7; //
uchar k;
uchar kcounter; //按键计数器
uchar counter; //手动按键检测计数器
uchar kstatus; //状态寄存器
bit A_Flag; //A按键按下标志
bit B_Flag; //B按键按下标志
bit Chuange_Flag; //按键输入更新标志
uchar AB_Flag; //按键输入编号标记
/*------------------延时子程序------------------------*/
void delay(unsigned int t)
{
uint i,j;
for(i=0;i
for(j=0;j<500;j++);
}
/*------------------延时子程序------------------------*/
void delay_1ms(uint x)
{
int i, j;
for(i=0;i
for(j=0;j<1500;j++);
}
/****************按键计数器状态寄存器归零*************/
void RstKey()
{
kcounter=0; //按键计数器归零
kstatus=0; //状态寄存器归零
}
/*****************按键低电平检测函数*****************/
void LowVoltKey(void) //按键计数器状态标志加一
{
kcounter++;
kstatus++;
delay(10); //延时
}
/*****************按键高电平检测函数*****************/
void HighVoltKey(void) //按键计数器加一 状态标志归零
{
kcounter++; //按键计数器加一
kstatus=0; //按键状态标志归零
delay(10); //延时
}
/*------------------写命令到LCD-----------------------*/
void write_com(unsigned char cmdcode)
{
uchar i;
uchar i_data,temp_data1,temp_data2;
EA=0;
i_data=0xf8;
delay_1ms(10);
CS=1;
SCLK=0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=cmdcode;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=cmdcode;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
CS=0;
EA=1;
}
/*-------------------写数据到LCD----------------------*/
void write_data(unsigned char Dispdata)
{
uchar i;
uchar i_data,temp_data1,temp_data2;
EA=0;
i_data=0xfa;
delay_1ms(10);
CS=1;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=Dispdata;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=Dispdata;
temp_data1=i_data&0xf0;
temp_data2=i_data&0x0f;
temp_data1>>=4;
temp_data2<<=4;
i_data=temp_data1|temp_data2;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
CS=0;
EA=1;
}