c语言怎么检测触发信号,C语言测试两个输入信号 判断信号后以编号方式显示

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*******两个输入信号同时输入判断,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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值