Ⅰ 为什么单片机上第一个发光二极管是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单片机扩展阅读:
相关发光二极管引脚点亮编码:
原理:给二极管阳极和阴极加上正向电压时,二极管导通。 当给阳极和阴极加上反向电压时,二极管截止。 因此,二极管的导通和截止,则相当于开关的接通与断开。
0XFE=1111 1110 表示一个灯亮。0xfd = 1111 1101 第二个灯亮。0xfb = 1111 1011 第三个灯亮。0xf7 = 1111 0111 第四个灯亮。0xef = 1110 1111 第五个灯亮。0xdf = 1101 1111 第六个灯亮。0xbf = 1011 1111 第七个灯亮。0x7f = 0111 1111 第八个灯亮。
Ⅱ 89C52单片机P1=0xfe,oxfe的作用和意义
P1=0xfe:P大写,是0x不是ox,0xfe是十六进制数。0x是C语言里面十六进制数的标识,十六进制数0xfe转化为2进制就是1111 1111,分别对应I/O的8个口线,所以0xff的意思为P1口8个口线全为1也就是高电平。
在运行p1=0xfe的语句之后,引脚p1.0将被置为0,即处于低电平状态,其它引脚被置为1,即高电平状态。
0xfe的作用就是将2进制转为十六进制,意义就是让单片机转为低电平状态。
(2)0xfe单片机扩展阅读
单片机引脚置高,P1代表了端口1,端口1有8个引脚,P1.0~P1.7。可以P1=0;或P1=1。即P1口输出为0V或5V。单片机引脚置高时,一般只有内部弱上拉,要想有稳定的5V电压,就需要加外部的上拉,或使用推挽输出。
oxff是16进制数,ff是值,16进制中用f表示15。oxfe也是16进制数,16进制中用e表示14。
以0x开头的数字都是十六进制,例如0x ff,ff是值。2进制,8进制,10进制,16进制,还是其它进制,解析的方式都是一样的,只是基数不一样而已。2进制基数是2,8进制是8,10进制是10,16进制是16。