单片机按按键每按下数码管加1(单片机按一次按键加一)

海潮机械 2022-12-21 00:22 编辑:admin 91阅读

1. 单片机按一次按键加一

工作过程:

首先上电之后先调整定时时间,每按一次加键定时加十分钟,减键同理,当设置好分钟之后按下设置键等到数码管闪动后松开按键进入小时设置,每按一次加键定时增加一小时,设置好分钟和小时后再次按下设置键就会启动定时,此时控制三极管的I/O口为1,等到定时完毕之后数码管显示000,闪动五次,之后就会将接到三极管的I/O口置零三极管关断输出继电器断开。

2. 单片机按一次按键加一程序

如果这两个功能都是一个死循环,可以考虑用中断,这样就不必在两个独立的功能中插入按键检测了 while(1) { while(flag==1){死循环1} while(flag==2){死循环2} } 如果这两个功能不是死循环,就 简单了 while(1) { if(key1==0) {延时消抖 功能1} if(key2==0) {延时消抖 功能2} }

3. 单片机按一次按键加一 加到50

这个只要将两个按键接到P3.2和P3.3也就是外部中断0和外部中断1上就可以了。 8个按键都接到一个8输入的与门,与门输出接单片机中断管脚。 8个按键同时接到8个单片机普通管脚。

4. 单片机按一次按键加一代码

不发代码的,modbus是协议按寄存器来的0x_,1x_,4x_等,通讯双方通过修改寄存器来通讯。

5. 单片机按一次按键加一,按三次灯亮一次

今天做回好人,闲着给你写一个做参考。 按键按一次LED灯灭,在按一次按键LED灯亮。 程序如下:

/************************************************************************************************************* #include "REG52.H" sbit LED1_01 = P1^1; //LED灯 sbit KEY0_01 = P1^2; //按键 void Delay_1ms(unsigned int Time) { unsigned int x, y; for(x = Time; x > 0; x--) for(y = 120; y > 0; y--); } int main(void) { LED1_01 = 1; //打开LED灯点亮 while(1) { if(KEY0_01 == 0) //检测按键是否按下 { Delay_1ms(10)

; //延时去抖动 if(KEY0_01 == 0) //确定按键按下 { LED1_01 = ~ LED1_01; //取反LED灯 [ 亮 . 灭 ] } while(KEY0_01 == 0)

; //检测松手 } } } *****************************************************************************************************************/

6. 单片机按一次按键加一减一

1、创建项目文件。

2、按键:S1=P3^2,点亮:led=P1^5。

3、创建C语言主函数。

4、创建循环效果,检测效果。while(1) {}。

5、选择输出的效果。

6、当按下一个按键时,关闭灯,整个程序运行,再按一次,程序停止。

7. 单片机按一次按键加一汇编

这个比较好实现,不过你题目没说清楚,以下程序实现P1.1和P1.0与P2.1和P2.0保持状态一致。

ORG 00H LJMP STA ORG 30H STA: MOV C,P2.0 MOV P1.0.C MOV C,P2.1 MOV P1.1,C SJMP STA END

8. 单片机按一次按键加一飞思卡尔

一般来说,8位单片机最常用的是三个系列:

1、51系列:以intelMCS51为核心,很多公司都买了它的核心,生产自己的51单片机,主要有ATMEL公司(AT89S52等等),STC公司的(比如STC89C52RC),华邦,摩托罗拉,ST都有生产。

2、AVR系列:以ATMEL公司的ATmega16为代表。

3、PIC系列:以MICROCHIP公司的PIC16F877为代表。另外,还有专用的工业单片机,平时看到得比较少,比如台湾的合泰、义隆,三星,这些单片机往往体积小,功能很强但比较专一,价格很便宜,比如开发设备很贵,一般人用不起。前两年出现的STM8实力也非常强。16位单片机,比较有名的是MSP430以及飞思卡尔系列的诸多产品。32位的单片机也比较多,不过一般都包含了ARM内核,已经开始向ARM过渡了,比如STM32等等。

9. 单片机按一次按键加一次电源

一般单片机的外接按键有三种接法:

1、每个I/O端口接一个按键:按键接另一端通常是接地,I/O口通常还应该接一个上拉电阻,有些单片机的I/O口可以配置成内部上拉,就不需要外接上拉电阻了。这种接法的优点是电路简单、编程方便。缺点是按键数比较多时占用的I/O口多,而有些单片机I/O口资源有限,或者系统外设复杂的情况下,如果需要较多按键,用这种方式难以满足要求;

2、扫描矩阵式按键阵列:多个按键组成矩阵形式接到I/O口上,单片机通过一定的扫描规则扫描按键状态。这种方式可以通过较少I/O口挂接很多按键,主要是解决方式1的端口有限问题。比如,8X8的键盘矩阵可以实现64个按键,而只占用16个I/O口,用方式1则需要64个I/O口;

3、用一个ADC端口外接多个按键,每个按键接一个特定阻值的电阻到地,公共接一个电阻到基准电压或接一个恒流源到电源端。这种方式只需要占用一个ADC通道,却可以实现外接很多按键,是最为经济的一种接法,但需要编写相应的软件,并且仅适用于带有ADC的单片机,最大外接按键数量取决于电阻精度、按键接触电阻变化范围以及单片机的ADC分辨精度。

10. 单片机按一次按键加一仿真电路图

0 0

1 1

1 0

0 1

是这样的四种状态吗? 这样很简单的,, 主要还是检测按键, 按键按下 你把一个变量+1, 比如

if(Key == 0)

{

delay(); //延时10ms,延时函数 自己写吧

if(Key == 0)

{

num++;

if(num >= 4)

num = 0;

while(!Key);

}

}

然后根据num 的值 对Led进行状态刷新就好了。

switch(num)

{

case 0: Led1 = 1; Led2 = 0; break;

case 1: Led1 = 0; Led2 = 1; break;

case 2: Led1 = 0; Led2 = 0; break;

case 3: Led1 = 1; Led2 = 1; break;

default : break;

}

就可以了,,,顺序的话 可以按照具体要求更换下位置就可以了。