1. 为什么单片机上第一个发光二极管是0xfe还有其他的灯呢分别是什么
和发光二极管的接法有关,二极管阴极端连单片机,输出低电平0就会点亮,0xfe对应的引脚信号为11111110,其中的0就是输出给第一个发光二极管阴极端的低电平信号。其他的灯对应的输出低电平编码信号同样点亮。
例如:假设单片机的P0口接了八个LED,其中JPP0接的是高电平5V,而L0.0到L0.7接的分别是P0.7到P0.0这样的话如果P0.7到P0.0上电平是高电平,那么这个led的压降就是0,led不亮,如果P0.7到P0.0上电平是低电平,那么led上就会产生压降,led就会亮。
#include<reg51.h> /*包含单片机寄存器的头文件*/
void main(void){while(1){P0=0xfe; /*第一个灯亮*/ P0=0xff; /*第一个灯灭*/}}
P0=0xfe,相当于P0=11111110,这时候P0.0=0,灯L0.7亮,然后P0=0xff,相当于P0=11111111,这时候P0.0=1,灯L0.7灭,然后由于这两句是放在while(1)中的由于其中1是while{}中的语句执行的条件,由于1始终为真,所以这两句循环执行。灯L0.7就在不断闪烁,亮灭。
(1)跑马灯单片机原理扩展阅读:
相关发光二极管引脚点亮编码:
原理:给二极管阳极和阴极加上正向电压时,二极管导通。 当给阳极和阴极加上反向电压时,二极管截止。 因此,二极管的导通和截止,则相当于开关的接通与断开。
0XFE=1111 1110 表示一个灯亮。0xfd = 1111 1101 第二个灯亮。0xfb = 1111 1011 第三个灯亮。0xf7 = 1111 0111 第四个灯亮。0xef = 1110 1111 第五个灯亮。0xdf = 1101 1111 第六个灯亮。0xbf = 1011 1111 第七个灯亮。0x7f = 0111 1111 第八个灯亮。
2. 流水灯如何制作
一、材料准备。
LED流水灯套件,可以在网上购买,都很便宜,10元以下,至于电烙铁之类的,学生可以去电子实验室或者自己购买,网上/电子市场有卖,成本不过二、三十元,而且一次投资,终身使用,以后可以再制作其他的电子产品。
二、制作流程。
1、器件清点及测量。 将买来的材料全部摆在桌子或试验台,按照制作说明书逐一清点器件。测量各电阻阻值,有万用表的用表测,没有的可以通过电阻上标的电阻环,对应计算电阻值。
(附色环电阻说明)
(1) 五道色环电阻:第一环表示阻值的第一位数字;第二环表示阻值的第二位数字;第三环表示阻值的第三位数字;第四环表示幂的次方;第五环表示误差。
(2)四道色环电阻:第一环表示阻值的第一位数字;第二环表示阻值的第二位数字;第三环表示幂的次方;第四环表示误差。
(3)表示误差的色环间距较其他色环间距大些。并且颜色一般为棕、金、银色。
2、阅读说明书准备焊接。 仔细阅读说明书,看明白套件电路功能以及原理图,将电烙铁接电预热,把器件正确插入基板。
3、焊接工艺 烙铁预热后,将焊锡丝送到引脚与电烙铁焊接前,注意使电烙件头加锡。焊接的时候,要使电烙铁头同时与元件引脚、铜板紧密接触,把锡送到引脚头所成的夹角处。待锡熔化后,把焊锡丝成45度角拿开(注意:加锡不要太多,以免浪费和影响美观)。整个焊接过程一般在3-5秒内完成。4、检查电路 焊接完毕,仔细检查电路是否有虚焊、假焊和短路的地方。电阻是否有阻值正确,电容、发光二极管是否正负极接反,三极管的e、b、c脚是否正确。 逐步分析,发现错误及时纠正,以免通电后烧坏元件。
5、安装电池测试。 LED心形流水灯需要3节5号电池,将电池放入电池槽中(注意正负极不要接反),观察流水灯,若有七彩的心形图案不断按照顺时针方向旋转闪亮,说明焊接成功。
三、制作心得。 通过简单的DIY小作品可以培养我们动手实践的能力,可以让我们把课堂学到的与实际联系起来,让枯燥的学习充满乐趣。如果要送给别人,这样的简单制作不仅代表了你的一片真心,而且可以体现一定的技术能力,是不是倍有面子?
3. 单片机跑马灯实验中,改变延时其的常数,使用全速运行命令,显示发生什么变化
单片机跑马灯的流动速度与延时长短有关,延时越长,跑的越慢。反之,延时越短,跑的越快,所以并没有什么全速运行命令,当流动速度快到一定程度后,看剧的效果就是全亮了。这与多位数码管动态显示是一个原理,如果每一位显示延时也和流水相近,同样,看到的效果是数字在跑,而延时足够短,看起来就全亮了,其实还是在流动,只是因为太快了,看不出流动了。
4. 单片机跑马灯0.5秒亮0.5秒灭 依次循环
你找的这段代码是流水灯的程序。你要做到0.5秒亮0.5秒灭,要给出电路原理图,不然谁知道你用的哪个端口,是高电平点亮还是低电平点亮,要控制几个灯。
5. 请问这个控制跑马灯的单片机的工作原理是什么呀 刚刚学习不久 不知道如何分析硬件电路的工作原理
跑马灯程序,就是通过定时,控制输出口变化的程序。
在第二张硬件图中,发光二级管符号就代表灯,只要p1口任何一个低电位时候就会亮。
分析硬件需要知道硬件符号和硬件知识,否则根本无从分析。
这需要学习硬件原理很多年。
如果没基础做不到,就考虑放弃软硬件同时开发吧。
做个软件工程师。
6. 问有关用C语言单片机做的流水灯的问题
这个核心的东西是单片机控制的原理,代码比较简单。
我想你不明白的是管脚是如何被控制的:
单片机的通用端口可以通过控制输出高、低电平,想输出高电压那就给控制此管脚的寄存器赋值1,低电压那么就给值0。
这里P1寄存器控制着8个管脚,每个管脚控制着一个灯。同样P0也控制着8个灯。这里P1即表示寄存器。
硬件电路上,灯的两个脚接的都是高电平,那么没有电流通过,不亮。当有一个脚电平变低,那么有了电压降,灯亮了。
P1=0xFE,2进制是1111 1110,表示p1.0=0,即第一个管脚是0值,低电平,而其他的管脚都是高。那么第一个灯亮了。
通过延时,让第一个灯亮了一会。
P2=0xFD,即1111 1101,关了第一个灯,然后让第二灯亮了。
其他同理。
从数组的值,可以看出灯亮灭的顺序:
1111 1110
1111 1101
1111 1011
1111 0111
1110 1111
1101 1111
1011 1111
0111 1111
....
此数组值是先让灯亮一个,从头到尾灯挨个亮,接着再从头跑一遍。
然后反方向跑一遍,再1遍。
最后全亮,全灭,全亮,全灭
再从头循环..........
你如果设计8个,那么就用P0或者p1中的一个即可。
即删除程序中的:
P0=table[i];//P0灯亮
或者
P1=table[i];//P0灯亮
流程如下:
开始
进入主循环
判断是否到一次跑马灯结束
是结束就将i值为0,即从头开始又一轮的跑马灯。
否就继续本轮的跑马灯
先让给P1赋值让P1上指定的灯亮。
然后延时让这个灯亮一会。
接着给P0赋值让P0上指定的灯亮。
继续主循环
7. 单片机 跑马灯 代码详解
ORG
0000H
;开机上电主程序入口
AJMP
START
;系统一进来就转到主程序
ORG
0030H
;主程序地址
START:
MOV
A,
#0FFH
;主程序开始,A中初始化成全1
CLR
C
;c清零
MOV
R2,
#08H
;R2左转循环计数器
LOOP:
RLC
A
<<C+A+C<<带进位循环左移,A中的内容在8此循环中从0位到7位依次变0
MOV
P2,
A
;送到P2,使P2从0位到7位依次点亮LED
CALL
DELAY
;单片机运行很快,为了能看到灯的变化,必须延迟,把速度降下来
DJNZ
R2,
LOOP
;R2每次减1后判断是否=0,8次后=0程序才会下行,否则会跳回LOOP
MOV
R2,#07H
;R2右转循环计数器
LOOP1:
RRC
A
>>C+A+C>>带进位循环右移,A中的内容在8此循环中从7位到0位依次变0
MOV
P2,
A
;送到P2,使P2从7位到0位依次点亮LED
CALL
DELAY
;和上个循环一样,延时
DJNZ
R2,
LOOP1
;R2每次减1后判断是否=0,7次后=0程序才会下行,否则会跳回LOOP1
JMP
START
;跳回程序起始位置重复下一个循环
DELAY:
MOV
R3,
#20;延时子程序,这个应该不用解释了吧
D1:
MOV
R4,
#200
D2:
MOV
R5,
#248
DJNZ
R5,
$
DJNZ
R4,
D2
RET
END
8. 用单片机原理,编一个跑马灯,要用到定时器,而且是0.5s闪一下,再3s闪一下,依次
定时器设置的延时时间是0.5s,然后用一个循环语句,就能实现3s的延时了。剩下的就简单啦