导航:首页 > 操作系统 > 单片机键模数组

单片机键模数组

发布时间:2024-04-11 20:26:37

1. 51单片机键盘输入

用不着数组。

只要增加一个数字vlaue,再让 key 从keyscan()函数中,得到0~9,

最后如下计算到vlaue中: vlaue = vlaue * 10 + key;

以后,每得到一个按键数值(0~9),都执行一遍上面的算式,即可。

2. 怎么用单片机按键控制循环跑马灯

我刚好写过一个这样的程序,参考一下吧,希望对你有帮助
/*硬件电路连接:流水灯接在P0口, 阳极接高电平,
阴极接P0口,4个按键分别接P3.4,P3.5, P3.6,P3.7 ,按下时是低电平 */
#include <regx51.h>
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//左流水灯数组
int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//右流水灯数组
int c[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; //逐盏点亮,逐盏灭掉数组
//************************************************************************************************************
void delay()

//延时子程序
{int i;
for(i=0;i<30000;i++);
}

//**********************************************************************************************************
void aa() //实现要求(1)的子程序(key1按下时流水灯,弹开时全灭)
{ int i=0;
while(!key1) //判断是否有键按下
{P0=a[i];delay();i++;if(i==8)i=0;}//流水灯

}

//*************************************************************************************************************
void bb() // 实现要求(2)的子程序(key2按下时实现计数功能,弹开时停止计数;)
{
while(!key2){P0--;delay();if(P0==0)P0=0xff;} //判断是否有键按下,按下则计数器加1

}

//*************************************************************************************************************
void cc() // 实现要求(3)的子程序(key3按下时实现逐盏点亮,逐盏灭掉)
{ int i=0;

P0=0xff ;// 发光二极管全灭
while(!key3) //判断是否有键按下
{P0=c[i];delay();i++;if(i==16)i=0;}//逐盏点亮,逐盏灭掉
}

//*************************************************************************************************************
void dd() // 实现要求(4)的子程序(key4按第一次按下,左流水,第二次按下,右流水,第三次按下,熄灭)
{ int i=0,j=0,k=0,h=0;
loop:P0=0xff;
if(key4==0)
//第一次判断是否有键按下
{for(i=0;i<30000;i++); //延时防抖动
if(key4==1)
//判断按键是否弹起
while(1){P0=a[j];delay();j++;if(j==8)j=0; //左流水灯
if(key4==0)
//第二次判断是否有键按下
{for(i=0;i<30000;i++);
//延时防抖动
if(key4==1)
//判断按键是否弹起
while(1){P0=b[k];delay();k++;if(k==8)k=0; //右流水灯
if(key4==0)
//第三次判断是否有键按下
{for(i=0;i<30000;i++);
//延时防抖动
if(key4==1)
//判断按键是否弹起
goto loop;
//跳转到LOOP处,即P3=0xff,此时灯全灭
}}}}}}

//****************************************************************************************************************

main()
{while(1){P0=0xff;
while(!key1)aa();

while(!key2)bb();
while(!key3)cc();

while(!key4)dd();

}}

3. c51单片机按键每按一次同时数码管显示数字加一是什么

-x0dx0a建立孝镇一个数组,用于存放 0-9的段码。x0dx0aint Shuzu[]={---------};x0dx0a如果会用指针x0dx0aint *P;x0dx0aP=Shuzu; //指针指向数组!x0dx0a用外部中断,x0dx0a每中断一次,中断服务程序将数组元素加一P0=Shuzu[ax++](或指针加一:P0=*P++)x0dx0a以上假设P0口驱动数码管!x0dx0a至于数码管使用的是共阳还是共阴,就把相对的数值存在数组中!x0dx0a-x0dx0a外部中断0的中断程序入口x0dx0avoid TI_0() interrupt 0x0dx0a{x0dx0a --------x0dx0a}x0dx0a都提示到这里了,下面自己该会吧?x0dx0a如果是新手的新手---想要我帮你写全部程序--x0dx0a那至少你得把你单片机芯片型号说给我巧亏粗才能帮你!x0dx0a还有数码管是用单片机哪个IO口!x0dx0a数码管是怎么空含连接的?(串/并)

4. 关于51单片机键盘输入定时

给个提示,在按键扫描程序里,将扫描按键的值给一个数组table[2] 按入2个键 后,将table[2]的两个元素组合成一个变量a,启动定时器,将定时时间设为a,时间到后运行加热器驱动程序

阅读全文

与单片机键模数组相关的资料

热点内容
虚拟机执行命令 浏览:444
cctv16奥林匹克频道加密播出 浏览:899
c盘微信文件夹隐私 浏览:229
asp压缩mdb 浏览:670
node开源论坛源码 浏览:8
单片机比手机芯片还贵 浏览:35
java课表 浏览:555
如何在pdf里面修改 浏览:929
橙光制作器档案框在哪个文件夹 浏览:991
php如何抓取网页数据 浏览:642
计数器单片机 浏览:966
游戏aoi算法 浏览:845
phpmysqlint 浏览:914
怎么从appstore商城买东西 浏览:186
大秀直播平台源码 浏览:426
java视屏 浏览:936
电脑中如何给程序加密 浏览:240
java排序容器 浏览:944
职称证书在哪个app下载 浏览:363
四九算法算男女 浏览:660