位选不是接在数码管得公共端吗,他是共阴极的,只有接低电平,这样阳极与公共端才能有压差 才能选中这个数码管,再把段选给高电平这样数码管不就亮了吗

一开始就要让P0.0发光二极管至P0.7七个灯全亮,延时一段时间后,全灭,再延时一段时间,全亮

单片机0xfe是什么意思?0xfe是一个十六进制数,其对应的十进制数是254。在单片机中,0xfe通常用来代表错误码或结束标志。比如,某些通信协议中,当单片机接收到0xfe时,就会认为这个数据包传输完毕,可以进行后续处理了。作为

0x表示十六进制数,通常用于赋值。例如P1=0xfe,化作二进制,就是11111110,就是让第一个发光二极管亮,在十六进制中,a表示10,以此类推,f表示15。

51单片机的P1口有8个端口。0xfe表示最后一位为低电平也就是11111110.小灯当然会亮。然后a变量左移一位就是11111101,表示第二个灯亮其他灭。以此类推,不就是流水灯吗?还有,你的蜂鸣器和灯设置延迟50毫秒?那就相当于

P1=0xfe:P大写,是0x不是ox,0xfe是十六进制数。0x是C语言里面十六进制数的标识,十六进制数0xfe转化为2进制就是1111 1111,分别对应I/O的8个口线,所以0xff的意思为P1口8个口线全为1也就是高电平。在运行p1=0x

p1=0xfe;完成8个管脚中最低位对应管脚输出低电平(点亮指示灯?),其他均输出高电平的功能,你可以设置断点在这句话后面,然后程序执行到断点后,用示波器或万用表实际去测量一下单片机p1各管脚输出电平,看是否起到作用。

为什么单片机上第一个发光二极管是0xfe???还有其他的灯呢?分别是什么

第三个程序同理.还有,关于0点亮灯还是1点亮,这和电路板设计有关,LED灯两个引脚(假设为+、-),当电路设计时+引脚接5V,-引脚接单片机I/O口,则led=0为点亮;若当+引脚接I/O口,-引脚接地,则led=1点亮,

你的问题应该是LS138没有正确使能;E1、E2的逻辑使能要求电平是相反的,不能连接在一起;修改如下:ENLED 连接 E1,ADDR3 连接 E2、E3(即E2、E3连接在一起);

P1 = 0xfe,则对应p1.0为0,其他引脚输出1.你的LED,必然是共阳极。所以P1.0对应的灯亮。(如果是共阴极,那么P1.7~P1.1共7个LED亮,P1.0上的LED不亮)

// 51单片机控制八个发光二极管 左右循环。include define uchar unsigned char define uint unsigned int unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf

要式连接51单片机的LED灯被点亮,拢共需要三步:搭建好51单片机运行的最小系统,并连接好下载线。LED灯的正极经过470Ω电阻连接在电源正极上,LED灯的负极连接在单片机的某个接口上,例如连接I/O口P1.0上。编程使P1.0输

include // 导入51单片机头文件 void main() { while (1) { // 死循环 P1 = 0x55; // 将二进制01010101写入P1,点亮LED1、3、5、7 Delay(500); // 延迟0.5秒 P1 = 0xAA; // 将二进

51单片机 点亮led灯

估摸着是点亮流水灯的代码吧,首先delay();是延时这能明白吧!while(1){ temp=0xfe;P1=temp; //先让P1口值为0xfe,估计是先点亮一个LED灯 delay();for(i=1;i<8;i++){ a=temp<>(8-i); //temp右

P1初值1111 1110 做一个左移1位 那么需要一个中间数, 不能直接用P1, 可以写 x=0xfe;x=x<<1;P1=x;

和发光二极管的接法有关,二极管阴极端连单片机,输出低电平0就会点亮,0xfe对应的引脚信号为11111110,其中的0就是输出给第一个发光二极管阴极端的低电平信号。其他的灯对应的输出低电平编码信号同样点亮。例如:假设单片机的P0

带前缀o的代表八进制,带前缀ox的代表十六进制。temp(temporary 临时的)是变量名,把0xfe赋给它,以二进制为 11111110。

你的程序的意图是用i2c总线向24C02写入一个数据0xfe,然后在读回,将读回的值赋给P1口从而驱动led发光。正是因为你的程序没有错误,所以第一个灯才不亮。注意,你给P1的值是0xfe (1111 1110),也就是P1.0=0,它

temp=0xfe 中的0xfe 就是变量temp中的值,,十六进表示法,,二进是01111111, 最高位为0,,,送到P0口,,,那个P0.7为低电平,,,LED就亮了

这是个单片机控制流水灯的c程序,但是我还个弱智问题为什么让temp=0xfe;第一个灯就能亮呢???

include //包含单片机寄存器的头文件#include "intrins.h"#define uchar unsigned char#define uint unsigned int sbit CLK=P1^0; sbit IN =P1^1;//uchar code a[]={0xfe,0xfd,0xfb,0xf7,0xef,0x

define uchar unsigned char sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;uchar led1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar led2[]={0xe7,0xdb,0xbd,0x7e};bit flag;void delay(u

unsigned char led[]={0xfe,0xfd,0xfb,0xf7}; //LED灯的花样数据 void delay(unsigned char time){ //延时函数 unsigned int j=15000;for(;time>0;time--)for(;j>0;j--);} void main(){ bit dir=0

十六进制:0xf7 对应二进制:0b11110111 二进制位为0时点亮对应的灯,这样看上面:流水灯程序是左移点亮的。

单片机:如图,键控流水灯C51程序里第二行的“LED花样数据0Xfe,0xfd,0xfb,0xf7

0xfe=1111 1110b 0xfd=1111 1101b 0xfb=1111 1011b 0xf7=1111 0111b.......看出规律来了吗 这是一个流水灯的程序吧!? P1=fang[i]; 就是说分别给单片机的P1的各个口赋值低电平,然后点亮LED灯!
11111110 11111101 11111011 11110111 11101111 11011111 看这个排列象是一排6个灯从右亮到左边
p1端口对应8个管脚,当p1设置成输出时,p1对应的数据寄存器中的取值,就对应这8个管脚的输出电平状态,p1=0xfe;就是给这个寄存器进行赋值,也就是修改p1对应管脚状态。 p1=0xfe;完成8个管脚中最低位对应管脚输出低电平(点亮指示灯?),其他均输出高电平的功能,你可以设置断点在这句话后面,然后程序执行到断点后,用示波器或万用表实际去测量一下单片机p1各管脚输出电平,看是否起到作用。
带前缀o的代表八进制,带前缀ox的代表十六进制。temp(temporary 临时的)是变量名,把0xfe赋给它,以二进制为 11111110。
根据你第一个led程序可以看出,led点亮的条件是led=0,至于你后面的第二个程序,其实(10101010)的最低位,也就是最右边的0,是对应(亮灭亮灭亮灭亮灭)的第一个状态的,也就是亮(最左边状态),没有错,第三个程序同理. 还有,关于0点亮灯还是1点亮,这和电路板设计有关,LED灯两个引脚(假设为+、-),当电路设计时+引脚接5V,-引脚接单片机I/O口,则led=0为点亮;若当+引脚接I/O口,-引脚接地,则led=1点亮,
什么语言,硬件怎么接? 用c语言,假设低电平LED亮 #include sbit led=P1^0; void main(void) { led=0; while(1); } 还要看你是否会用编译软件,并下载程序,这才是首要的