1.独立按键控制LED灯
原发布者:一阵寒冰1
项目五独立按键控制LED灯1.设计独立按键控制LED的硬件电路2.编写程序分别实现按下按键1和按键2,LED灯闪烁方式不同3.下载程序到单片机中,运行程序观察结果并进行软硬件的联合调试键盘是常见的计算机输入设备,在单片机应用中,按键可以设置电子钟的时间;简易计算器中,按键可以输入数字;按键还可以实现单片机中两个不同功能程序切换。本项目要求两个按键分别实现LDE灯的不同闪烁方式,按键1按下时,8个LED灯从右向左依次点亮,按键2按下时,8个LED灯从左向右依次点亮。本项目只需2个按键实现LED灯闪烁方式控制,因此按键接口电路设计成独立按键。独立按键即每个按键直接与单片机I/O端口连接,当按键按下和弹开时,单片机I/O端口呈现不同的电平。独立按键接口电路可以设计成当按键按下时,单片机I/O端口为高电平或者低电平,读者可以根据自己的需求自行设计。单片机应用中的独立按键多是机械弹性开关,在按键按下和弹开时,由于按键的机械特性,有抖动产生。消除抖动有硬件方式和软件方式,软件方式就是编程读取I/O端口电平时,产生一个5ms~10ms延时后,再次读取I/O端口电平,以确认按键是否按下或弹开。1.独立按键与矩阵按键键盘是实现人机交互的重要计算机输入设备,其中按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。按键按照接口原理可分为编码键盘和非编码键盘,编码
2.用按键实现LED的控制
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define led P1
sbit key1=P2^0;
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
uint num;
void delay(uint);
display()
{
if(key1==0)
{
if(key1==0)
{
num++;
if(num==9)
num=0;
switch(num)
{
case 1:led=0x01;break;
case 2:led=0x03;break;
case 3:led=0x07;break;
case 4:led=0x0f;break;
case 5:led=0x1f;break;
case 6:led=0x3f;break;
case 7:led=0x7f;break;
case 8:led=0xff;break;
}
}
while(!key1);
}
}
display1()
{
if(key2==0)
{
if(key2==0)
{
led=0x0f;
}
}
}
display2()
{
if(key3==0)
{
if(key3==0)
{
led=0xf0;
}
}
}
display3()
{
if(key4==0)
{
if(key4==0)
{
led=0x00;
}
}
}
void main()
{
led=0x00;
while(1)
{
display();
display1();
display2();
display3();
}
}
void delay(uint x)
{
uint i,j;
for(i=0;i<100;i++)
for(j=0;j<x;j++);
}
3.单片机C语言按键控制LED灯
其实是一样的,也没什么哪个规范这一说,这个看个人习惯了
首先if(SW13==0)是判断此引脚是否为0 (按键按下)
然后一个delay用于按键防抖动
没被注释的那部分是靠if在次判断是否为0按下按下后执行LED_ON函数使LED亮
然后通过while判断按键是否松开,如果松开的话就继续执行LED_OFF将LED关闭
而注释掉的那段是依靠while函数直接判断按键是否处于按下状态
是的话就循环执行LED_ON函数直至判断按键松开(SW13=1)后在继续执行到LED_OFF函数使LED 关闭
不过这两种写法的有个共同缺点就是按键判断是while死循环,如果你这个按键按下后,单片机就只是在判断这个条件成立与否,期间不在进行其他工作
4.单片机按键控制led灯
假设led连在P0口,高电平点亮,按键在P3.0口,低电平有效,则
MAIN:
MOV P0,#00
MOV R0,#00
LOOP:
MOV A,R0
MOV P0,A
JB P3.0,LOOP ;按键
LKEY1:
JB P3.0,L2;;等待弹起
MOV A,R0
MOV P0,A
AJMP LKEY1
L2:
MOV A,R0
CJNE A,#0FFH,L3
MOV A,#0
AJMP L4
L3:
MOV A,R0
SETB C
RLC A ;循环左移1位,逐位点亮
L4:
MOV R0,A
MOV P0,A
AJMP LOOP
5.汇编语言按键控制LED程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
这个图无法编程的,以下以51单片机为例编程给你参考:
LED BIT P1.0
KEY BIT P1.4
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB ET0
SETB EA
CLR A
LOOP:
JB KEY,LOOP
JNB KEY,$
INC A
CJNE A,#1,LOOP1
CLR LED
SJMP LOOP
LOOP1:
CJNE A,#2,LOOP2
SETB TR0
MOV R2,#10
SJMP LOOP
LOOP3:
CJNE A,#3,LOOP
CLR A
CLR TR0
SETB LED
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E
MOV R2,#10
CPL LED
T0E:
RETI
END
6.51单片机 按键控制LED循环控制点亮
设置一个delay_2s()就是:
delay_2s()
{
for(i=0;i<200;i++)
{
for(j=0;j<200;j++)
}
} 具体要看你的晶振大小
然后
void main()
{
uchar temp = 0x01;
while(1)
{
Keyscan();
if(KEY)
{
delay_2s();
P0 = temp
delay_2s();
temp <<=1;
i++;
if(i>=7)
{
i = 0;
temp = 0x01
}
}
}
}
很容易理解就是让0X01一直左移赋值给P0口然后循环,还有就是入口你得做按键扫描程序Keyscan();
7.求一篇关于单片机的毕业论文
1.绪 论
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。它的出现是近代计算机技术发展史上的一个重要里程碑,因为它体积小,通常都藏在被控机械的“肚子”里。它在这个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。
现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。
单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。
需要完整的我可以传给你
转载请注明出处众文网 » 按键控制led毕业论文(独立按键控制LED灯)