A. 51单片机二极管延时点亮的室验原理
51单片机控制二极管延时点亮的实验原理是基于51单片机的内部计时器和IO口控制二极管的电流流动。具体步骤如下:
将一个二极管连接到51单片机的IO口上,使得该IO口可以控制二极管的电流开关状态。
使用51单片机的内部计时器来延时,计时器可以通过编写程序控制其开始和结束的时间。
在程序中设定一个时间延时,然后将IO口设置为高电平,使得电流可以通过二极管流动,点亮二极管。
延时结束后,将IO口设置为低电平,关闭电流,二极管熄灭。
通过这种方法,可以控制二极管的电流开关状态和延时时间,从而实现延时点亮二极管的效果。同时,由于51单片机的计时器具有较高的精度和可编程性,因此可以实现各种不同的延时效果。
B. 用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)
#include<reg51.h>
voiddelay(void)
{
unsignedinti,j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++)
;
}
voidmain(void)
{
while(1)
{
P3=0xfe;//第一个灯亮
delay();//延时
P3=0xfd;//第二个灯亮
delay();
P3=0xfb;//第三个灯亮
delay();
P3=0xf7;//第四个灯亮
delay();
P3=0xef;//第五个灯亮
delay();
P3=0xdf;//第六个灯亮
delay();
P3=0xbf;//第七个灯亮
delay();
P3=0x7f;//第八个灯亮
delay();
}
}
(2)单片机二极管c语言扩展阅读
单片机C语言16种方式流水灯
voidmain()
{
while(1)
{
P1=0xfe;//点亮第一个发光管
Delay(5000);
P1=0xfd;//点亮第二个发光管
Delay(5000);
P1=0xfb;
Delay(5000);
P1=0xf7;
Delay(5000);
P1=0xef;
Delay(5000);
P1=0xdf;
Delay(5000);
P1=0xbf;
Delay(5000);
P1=0x7f;//点亮第八个发光管
}
}
C. 单片机中怎样根据汇编代码判断二极管是共阴极还是共阳极的
程序中红线标出的,是共阳极LED的段码表,对应的字符依次是0~9。
例如,首个段码是 C0h =1100 0000b,
即a,b,c,d,e,f,脚低电平,对应"笔画"亮,显示“0”字符。
请参阅下图:
D. 设计一个节目彩灯控制器,在单片机的p0口接有8个发光二极管作为指示灯,p1.0~p1.3接有4个按键开关。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar led=0xfe,led1=0x00;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
uchar keyval=0;
{
while(1)
{
if(key1==0);
{
while(key1==0);
keyval=1;
}
if(key2=0);
{
while(key2==0);
keyval=2;
}
if(key3==0);
{
while(key3==0);
keyval=3;
}
if(key4==0);
{
while(key4==0);
keyval=4;
}
switch(keyval)
{
case 1:
P0=led1;
led1=~led1;
delay(100);
break;
case 2:
P0=0xff;
break;
case 3:
P0=led;
led=_crol_(led,1);
delay(100);
break;
case 4:
P0=led;
led=_cror_(led,1);
delay(100);
break;
}
}
}