导航:首页 > 操作系统 > 单片机连接8个按键

单片机连接8个按键

发布时间:2024-11-28 02:48:15

① 需要基于8051单片机的8键电子琴的C代码!

首先你得编出8个键相应的音高和音调,分别对应信号的幅度和频率。需要键盘中断模块,用到51的外部中断来确定按键的序号,进入相应的中断处理程序,并驱动蜂鸣器发出对应频率的声音。大概步骤是这样的,具体的频率实现就是定时器那些,得反复调试才能出来合适的声音,c代码网上应该很多,大同小异!

② 单片机中用矩阵键盘的8个按键分别控制8个LED,当按下时亮,松手时灭,用switch语句

#include<reg51.>
#define uchar unsigned char
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
uchar kbscan(void)
{
unsigned char sccode,recode;
P1=0x0f; //发0扫描,列线输入
if ((P2 & 0x0f) != 0x0f) //有键按下
{
delay(20); //延时去抖动
if ((P1&0x0f)!= 0x0f)
{
sccode = 0xef; //逐行扫描初值
while((sccode&0x01)!=0)
{
P1=sccode;
if((P1&0x0f)!=0x0f)
{
recode=(P1&0x0f)|0xf0;
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
P0=0xff;
return 0; //无键按下,返回0
}

main()
{
unsigned char key;
while(1)
{
key=kbscan();
switch(key)
{
case 0x11:P0=0xfe;break;
case 0x12:P0=0xfd;break;
case 0x14:P0=0xfb;break;
case 0x18:P0=0xf7;break; //+
case 0x21:P0=0xef;break;
case 0x22:P0=0xdf;break;
case 0x24:P0=0xbf;break;
case 0x28:P0=0x7f;break; //-
default:break;
}
}
}

阅读全文

与单片机连接8个按键相关的资料

热点内容
怎么把pdf导入iphone 浏览:565
7z后缀文件解压缩 浏览:904
服务器为什么禁用三叉戟 浏览:934
解压小视频卸妆或化妆 浏览:554
太监程序员 浏览:56
java编译选项包括 浏览:432
安卓手机如何导其他手机的通讯录 浏览:931
离心式压缩机品牌 浏览:167
plc编程推荐什么电脑 浏览:935
安卓最新什么系统版本 浏览:193
甜颜app真人交友在哪里下载 浏览:335
电脑里好乱很多文件夹都是空 浏览:352
数学一窍不通可以学模具编程吗 浏览:271
退休程序员练字 浏览:693
海光服务器什么架构 浏览:138
战斗命令要素 浏览:953
app上哪里可以开鞋子盲盒 浏览:82
python多线程计划 浏览:384
华为模拟加密门id禁卡 浏览:555
华为od服务器广播算法 浏览:354