基于AM-209M芯片的视频16画面分割器
[10-10 20:38:44] 来源:http://www.88dzw.com 电子制作 阅读:8555次
文章摘要:有键按下时,P2.7变为0。P2.6发送串行数据0XFE到74LS164,若此时P2.7输入仍为0,则表示SW1键已按下(见图5);否则0XFE左移1位(即0xFD),若P2.7输入仍为0,则表示SW2键已按下;依此类推…,否则0XFE左移7位(即0X7F),若此时P2.7输入为0,则表示SW8键按下。左读取键值并释放按键后,系统会点亮LED以指示键按下。例如,当SW1按下再释放后,P2.6发送数据0XFE,此时P2.4置为0,将点亮D501以指示SW1按下。键盘扫描子程序如下://键盘扫描子程序,键值保存在key_value中sbit led_on=P2^4; //LED点亮使能,低有效sb
基于AM-209M芯片的视频16画面分割器,标签:电子小制作,http://www.88dzw.com有键按下时,P2.7变为0。P2.6发送串行数据0XFE到74LS164,若此时P2.7输入仍为0,则表示SW1键已按下(见图5);否则0XFE左移1位(即0xFD),若P2.7输入仍为0,则表示SW2键已按下;依此类推…,否则0XFE左移7位(即0X7F),若此时P2.7输入为0,则表示SW8键按下。左读取键值并释放按键后,系统会点亮LED以指示键按下。例如,当SW1按下再释放后,P2.6发送数据0XFE,此时P2.4置为0,将点亮D501以指示SW1按下。键盘扫描子程序如下:
//键盘扫描子程序,键值保存在key_value中
sbit led_on=P2^4; //LED点亮使能,低有效
sbit key_clk=P2^5; //串行移位时钟
sbit shift_data=P2^6; //移位数据输入
sbit scan_data=P2^7; //键扫描数据输入
void Key_read_service()
{
uchar temp,temp1,temp2;
uchar i,j;
Key_flag=0; //键标志清零
scandata=1;
led_on=1; //关闭LED
for(i=0;i<8;i++) //74LS164并行输出置为0
{
shift_data=0;
_nop_();
key_clk=0;
_nop_();
key_clk=1;
}
if(scandata= =0)
{ //有键按下
temp=0xfe;
for(j=0;j<8;j++) //发送8个数据字节
{
temp1=temp;
temp2=~temp;
for=(i=0;i<8;i++)//串行移位1个字节
{
if(temp1 & 0x80==0x80)
shift_data=1;
else
shift_data=0;
_nop_();
key_clk=0;
_nop_();
key_clk=1;
}
delay_10ms();//延时10ms去抖
if(scandata==0)//再次判断是否按键?
{ //键有效
key_value=temp2;//存储值
key_flag=1;//置键有效标志位
break;
}
temp2=temp2<<1;//不是当前键按下
temp=~temp2; 按下,左移一位判断下一个键
}
}
}
Tag:电子制作,电子小制作,维修教程知识 - 电子制作
- 上一篇:便携式电子设备中的立体声
《基于AM-209M芯片的视频16画面分割器》相关文章
- › 基于AM-209M芯片的视频16画面分割器
- 在百度中搜索相关文章:基于AM-209M芯片的视频16画面分割器
- 在谷歌中搜索相关文章:基于AM-209M芯片的视频16画面分割器
- 在soso中搜索相关文章:基于AM-209M芯片的视频16画面分割器
- 在搜狗中搜索相关文章:基于AM-209M芯片的视频16画面分割器
编辑推荐
最新更新
热门排行