利用单片机、1个按钮(注意是按钮,不是开关)、8个LED发光二极管,要求:

按一次按钮,LED往下点亮1个(原来亮的熄灭),如果已经到最下面,则从最上面LED重复上述动作。

你是要程序还是要思路?
-
要硬件还是软件?
要原理图还是吗?
你计划用什么芯片型号?
假设你用的是C51单片机-
思路
-
利用外部中断0或者外部中断1-(引脚P3.3或者P3.2连接一个按钮-按钮另一端接地-)
8个LED灯连续分别接P1.0-P1.7这8个引脚-
硬件粗糙连接完毕!能直接使用!(单片机能直接驱动普通小型LED的,大的LED话,就用三极管之类的!)
-
软件思路
打开外部中断0或者1,或者同时打开!
打开总中断-
当按键按下时(不管你松开与否)-系统会自动进入中断服务程序-
-
中断服务程序如下-
清除外部中断标志-
P1口的值左移或右移一位,再返回给P1口-
中断结束-
-
程序结束
-
你想要汇编还是要C语言啊?
如果不懂,可以继续问哦!
希望能给你帮助!追问

能不能写下 程序啊,AT89S51的单片机,汇编语言的,谢谢了

追答

-
使用P3.2外部中断0,接按钮,P1口接8个LED灯-LED等另一端接地-
.ASM
-
ORG 0000H
LJMP MAIN
ORG 0003H //预留外部中断0口-
LJMP INT_0
ORG 0030H
MAIN: MOV A,01H
MOV P1,A
SETB IT0 //设置边沿触发-外中断0-
SETB EX0 //开放外部中断-
SETB EA //开放总中断-
SJMP $ //原地等待-
INIT_0: RRC A //右移动-
MOV P1,A //流水灯亮-
RETI
END
-
现场编写,难免有错哦,你拿去试试-不行的话,再回来找我!

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-03
不需要单片机,用集成电路就行了,加QQ:154136818到我空间看原理图。
第2个回答  2012-11-10
good point

十二、利用单片机、1个按钮(注意是按钮,不是开关)、8个LED发光二极管(水...
代码如下:希望对你有所帮助

利用单片机、1个开关、8个LED发光二极管(水平排列)和定时器,实现开关控 ...
2 每当定时时间到中断 在中断服务程序中软件计数器减1(初始值为20)3 当软件计数器减到0时,表示0.5秒时间到 这时可以判断开关状态 开关合上 可以让8个LED左移一位 开关断开 可以让8个LED右移一位 呵呵 按上诉算法 编写程序 就可以实现你的要求(指导可以见百度知道的消息 ...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
具体步骤如下:1. 全部LED初始状态:P0 = 0x00 2. 点亮P0.0和P0.1:P0 = 0xc0,延时1000毫秒 3. 点亮P0.2和P0.3:P0 = 0x30,延时1000毫秒 4. 点亮P0.4和P0.5:P0 = 0x0c,延时1000毫秒 5. 点亮P0.6和P0.7:P0 = 0x03,延时1000毫秒 文章还提到了另一种方法,使用定时...

要求用51单片机控制8个LED亮灭的原理图+程序+解说?
2、奇偶号灯间隔亮灭:隔一个灯亮一个灯亮灯时间为1s,没有灯全灭的时候 3、依次闪烁、切换时间为3秒,闪烁时间为2秒,我理解的是,没三秒钟有一个灯在闪烁,其中有一秒钟是灭灯状态 程序中使用了P1口与8个发光二极管相连,具体电路图你百度一下吧,还有使用了一个按键,该按键与P3.7相连,低...

设置一个按键,功能是切换任务 任务1,8个发光二极管每隔1秒依次点亮_百...
设置一个按键,功能是切换任务任务1,8个发光二极管每隔1秒依次点亮,循环显示任务2,8个led灯每隔2s依次点亮,循环显示任务三,8个led灯每隔1秒同时闪烁... 设置一个按键,功能是切换任务任务1,8个发光二极管每隔1秒依次点亮,循环显示任务2,8个led灯每隔2s依次点亮,循环显示任务三,8个led灯每隔1秒同时闪烁 展开 ...

51单片机控制八个发光二极管怎么编程
\/\/ 51单片机控制八个发光二极管 左右循环。include<reg52.h> define uchar unsigned char define uint unsigned int unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; \/\/ 改变这里 LED 各种花样 uchar t...

用单片机设计8个led灯同时闪烁的程序!!
1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。流水灯参考程序 include include define uchar unsigned char uchar j,temp;void delay(unsigned int ms){ uchar t;while(ms--)for(t=0;t<123;t++);} void ...

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P0.1;delay(1000);\/\/延时1秒 P0 = 0x30;\/\/点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、include <reg52.h>...

利用单片机控制8个发光二极管,实现8个灯同时闪烁的控制程序
以51位例,使用P1的八个IO口控制。先定义:sbit LED0=P1^0;sbit LED1=P1^1;...以此类推,定义八个。然后在主循环中:LED0=0;延时一段时间;LED0=1;就可以看到闪烁了。

单片机P1接口接了8个发光二极管,P2.0接了一个开关,编写程序
sbit switch sbit =P1^0; \/\/位定义,提前声明一下 void mian( ){ while(1){ if(switch)P2=0XFF;else P2=0X00;} }

相似回答
大家正在搜