微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 3个普通IO识别22个按键试验

3个普通IO识别22个按键试验

时间:12-14 来源:互联网 点击:

Bus = 1;

}

while(--i); //延时8us

Bus = 1;

}

//=============== 总线驱动 =================

void Bus_drive()

{

unsigned char i = 0;

unsigned char Sdat;

Send_bit(1); //Bit6消隐

do Bus = 1; while(--i); //延时768us

do Bus = 0; while(--i); //延时768us

Bus = 1;

Sdat = LED_FONT[Disp_buf[Dig++]]; //获取显示数据

Send_bit(Sdat & 0x01); //发送位0

Send_bit(Sdat & 0x02); //发送位1

Send_bit(Sdat & 0x04); //发送位2

Send_bit(Sdat & 0x08); //发送位3

Send_bit(Sdat & 0x10); //发送位4

Send_bit(Sdat & 0x20); //发送位5

Send_bit(Dig & 0x01); //发送位选1

Send_bit(Dig & 0x02); //发送位选2

while(--i); //延时512us

Send_bit(Sdat & 0x40); //发送位6

for (i = 7;i> 0;i--) Send_bit(1); //位6移至Dout

if (Dig == 3) Dig = 0;

}

/*===================================================================

延时 5ms 程序

===================================================================*/

void Delay_5ms()

{

while(!TF1);

TF1 = 0;

TH1 = (- 5000) / 256;

TL1 = (- 5000) % 256;

}

/*===================================================================

主程序

===================================================================*/

void main()

{

TMOD = 0x10; //定时器1,16位模式

TCON = 0xc0; //TR1=1;TF1=1;

while(1) //主循环

{

Bus_drive(); //显示总线驱动

Key_scan(); //检测按键

Delay_5ms(); //延时5MS

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top