首页 > 电脑 > 求51单片机程序,按键启动,时序亮灭两个LED,程序终止,等待下一次按键触发

求51单片机程序,按键启动,时序亮灭两个LED,程序终止,等待下一次按键触发

电脑 2023-07-03

51单片机 C语言 如何写代码。控制2个LED的亮和灭。

比如你的8个灯连在 P0口,如果是阴极的 你只要先定义 sbit P0^0=LED0; .....一定定义下去 然后再定义一个按钮 比如P1.1 sbit P1^1=key; 代码里写 123456789while(true){if(key==1){LED0=0;LED1=0;..//把你要亮的灯置0就行了。阳极的话置1}}

51单片机的按键控制小灯亮灭的问题(程序类型:c语言)怎么解决?

#include #define uint unsigned int sbit LED = P1^0; sbit KEY1 = P1^2; void delay(uint); void main(void) { LED = 1; //初始化LED熄灭 KEY1 = 1; //赋值KEY1高电平 while(1) { if(!KEY1) //检测到按键按下 { LED = ~LED; /*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不 进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循 环,

求一单片机C语言程序:两个按键控制两个LED KEY1按一下LED1亮 再按一下LED1灭 KEY2按下LED2亮 LED1灭

#include sbit key1 = P1^0; sbit key2 = P1^1; sbit led1 = P1^2; sbit led2 = P1^3; void Delay(unsigned int x) { unsigned int i, j; for(i = 0; i < x; i++) for(j = 0; j <= 148; j++); } //KEY1按一下LED1亮 再按一下LED1灭 //KEY2按下LED2亮 LED1灭 main() { while(1) { if (!key2) { led1 = 1; led2 = 0;} else { if(!

按键点灯程序,按一下按键灯亮(一直亮),再按一下灭,51单片机。

1、首先打开编程软件Keil uVision4,新建一个工程文件,在菜单栏中Project—— New uVision Project..。

2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。

3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,输入保存的路径,输入名字。

4、右键单击将这个文件添加到到工程文件夹中。

5、打开新建的文档,在文档中进行写程序。

6、点击下面方框中的图标,在Target项晶振的上写上:12.0代表晶振是12M,然后跳到Output项在生成HEX文件上打勾,点击OK。

7、然后点击三个编译按钮意思分别为:单个文件编译、编译已修改的文件、产生HEX文件,HEX文件用来下载到单片机上的,也可用来做仿真。

8、我们打开ISIS 7 Professional 软件,将程序添加到该电路中,然后按下启动按钮。

求实现51单片机按下按钮LED灯亮1秒后熄灭?

外部中断的优先级是高于定时器中断的。首先是触发外部中断嘛,在外部中断程序里面开定时器中断,定时器设置为50ms,这个直接装初值大概46000(晶振12m)的样子,具体你自己算一下。然后在调用定时器中断程序里面肯定是要有个标志位的,这个标志位会累加n个定时器时间直到8s,然后在这个定时器中断程序里面不断检测3.2口电平就行了,如果变回高电平就把灯在点亮(比如在这句直接将flag赋到设定的技术最大值)就行了。最好用下降沿触发,低电平触发容易出问题总感觉,可能你程序逻辑是完全正确的,但是仿真或者实物的时候会出问题。

标签:单片机 编程语言 51单片机 按键 C语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18