P2口控制8只LED,要求这8只LED间隔点亮,每4S闪烁一次?

作者&投稿:逯欧 (若有异议请与网页底部的电邮联系)
使用单片机I/O口控制8只LED灯。 1)点亮8个中的的第任意个LED灯。 使任意一个或多个LED灯闪烁~

举个简单的例子,8个LED灯的正级分别接在P1.0到P.7上面,负极分别接在P2.0到P2.7上面,

P1 = 0xff; (P1口全部高电平) P2 = 0x00; (P2口全部低电平),此时电流通过P1口经LED流向P2口,8个灯全部点亮,如果P1不变,P2 = 0XFF; 此时由于P1与P2的接口全部是高电平,没有电压差也就没有电流,LED全部熄灭,如果想让某一个灯点亮,可以根据8421法则,P2.7 P2.6 P2.5 P2.4是高8位,P2.4 P2.3 P2.2 P2.1 P2.0是低8位
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
8 4 2 1 8 4 2 1
当p1 = 0xff; p2 = 0xfe的时候,就是P2.0那个小灯点亮,其他7个灭,p2 = 0xfe的这个F就是8+4+2+1 =15,对应16进制里的f, 同理E=8+4+2+0 =14,对应16进制里的e。
闪烁的话需要用到定时器,时间到了把当前P2对应的引脚取反一下就行了,比如当前P2.0 = 1; 定时器时间到了以后 ~P2.0 当然实际写程序的时候不能直接这么写,自己多复习下吧

首先搞清LED管是高电平导通还是低电平导通。
如果是低电平导通,P2赋0x00时,发光管全亮,0xff时,全灭。
具体程序:
#define uint unsigned int
#define uchar unsigned char
void delay(uint time_out)
{
uint i,j;
for(i=0;i<time_out;i++)
{
for(j=0;j<110;j++)
{;}
}
}
void main(){
while(1)
{
P2=0xfe; //第1个管亮
delay(500);
P2=0xfd; //第2个管亮
delay(500);
P2=0xfb; //依次类推
delay(500);
P2=0xf7;
delay(500);
P2=0xef;
delay(500);
P2=0xdf;
delay(500);
P2=0xbf;
delay(500);
P2=0x7f;
delay(500);
}
}
程序大致如此,delay函数负责延迟500ms.有问题自己再调试调试

你好,P2空控制八个LED,要求这八个LED灯间隔点亮,每四秒闪烁一次,这个你需要通过代码来实现,我用的代码是C语言来控制单片机的,这个你就要用定时器定义一个四秒的时间

要求这八只led间隔连点亮,每四秒闪烁一次时间的话,要用到AI智能语音控制。

这个控制八个led灯,然后需要要求只有八个led灯,中间间隔点亮的时候,它是需要用程序进行困的,所以的话应该先去编程序。


用51单片机编写程序P1口控制8个二极管交叉点亮。
mov r2,#8 mov a ,#80h mov r0,#80h lp11:mov p1,a mov p2,r0 rr a mov r7,a mov a,r0 rr a mov r0,a mov a,r7 acall delay djnz r2,lp11 mov p1,#0 lp2:mov r2,#8 mov a ,#1 mov r0,#1 lp21:mov p2,a mov p1,r0 rl a mov r7,a mov a,r0 rl a mov r0...

想用51单片机PO口控制8个以上的LED流水怎么操作?比如九个,(PO口只有八...
看看这个 最多 可以控制 16 个, 不过P0 口需要加上拉电阻。http:\/\/zhidao.baidu.com\/question\/512829477.html

跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从左向右移动,时间间隔0.5秒。 最好加上注释每一步在做什么,急用,好人一生平安!萌...;假设通过P0口置低位控制二极管点亮MAIN: CLR CMAIN1: RRC A; MOV P0,A LCALL wait2 LJMP MAIN1;延时程序11.0592M的精震wait2: ;0.5s mov r5,...

8051单片机,用P0口控制8个LED实现循环彩灯。
跑马灯。网上一大把。我就解释下间隔一秒的那个,时间常数。看你用的定时器方式。一般用方式1。若频率是24mhz,机器周期为0.5us。所以计数次数为1s\/0.5us=200000次超过了范围。所以用循环。可以50000循环4次或其他次数。算出技术初值。

单片机4个按键控制8个led灯,我编写的代码在keil上查不出问题,但无法达...
改好了,试试看:include <reg52.h> \/\/包括一个52标准内核的头文件 void display();int b0=0x00, b1=0xc0,b2=0x30,b3=0x0c,b4=0x03;sbit S16 = P3^5; \/\/接在P30口的按钮 sbit S15 = P3^4;sbit S14 = P3^6;sbit S13 = P3^7;\/\/有按键控制时要加防抖动处理 void main ...

单片机只能做流水灯只能控制8个led吗?
2.引申一下,多个io口则是可以控制多个开关,如果简单点直接一个io口外接1个led的话,则是多少个io口就对应多少个led。3.再引申的话,多个io口既然可以控制多个开关,则可以利用二进制的原理,通过各个开关的不同状态的排列组合,可以有n个io口控制n个开关(可以是“数字电路”里面的3-8解码器类似...

实现P0口驱动8个发光二极管流水灯点亮,设置三个按键 c51单片机 急用...
sbitkey2=P2^2;sbitkey3=P2^3;unsigned long q;unsigned char led;\/\/--- void YJ_Init(void);void SPI0_Init (void);void Write_CHAR(unsigned char yjchar);unsigned char key_in(void);\/\/--- void delay(void){ int a=1000;while(a!=0){ a--;} } \/*---*\/ \/\/按键连接...

请用C语言编写程序:让8只发光二极管第一次亮1只,第二次亮2只,直至8只...
应该是单片机吧 不知道你是要汇编还是要c 还有你那发光二极管是高电平亮还是低电平亮 还有你的输出引脚是哪个I\/O口 假设P0 高电平亮 define LED P0 int i = 0;int j = 0;unsigned char a = 0;char delay = 20;for (i = 0; i < 8; i++){ a = a*2+1;\/\/引脚电平 开始...

单片机实验利用定时器控制八个LED灯每隔1S每四个为一组轮流点亮_百度知 ...
03 8只LED左右来回点亮 \/* 名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果 \/ include<reg51.h> include<intrins.h> define uchar unsigned char define uint unsigned int \/\/延时 void DelayMS(uint x){ uchari;while(x--){ for(i=0;i<120;i+...

8个 LED 灯循环闪烁。 要求:首先是 1,3,5,7 号 LED 灯依次亮 1 秒钟...
条件太过于笼统(频率,晶振,IO口,语言),只提供思路:端口赋值00000001 delay() 延时子程序 端口赋值00000100 delay() 延时子程序 端口赋值00010000 delay() 延时子程序 端口赋值01000000 for(i=0;i<5;i++){ 端口赋值01010101 sdelay() 短延时 端口赋值00000000 sdelay() 短延时 } 端口赋值...

钦州市13637368444: 单片机 8个按键分别控制对应的8个led的亮灭 程序设计 -
岑到培欣: 八个灯接在单片机的P1口(P0,P2,P3,P4都一样) while(1) { delay(你想要延时的时间); P1=0xff; delay(你想要延时的时间); P1=0; } 注意led最好加驱动,不然单片机会坏的.

钦州市13637368444: 用单片机的p1口控制8个低电平有效的Led,要求8个LED 逐个循环点亮,画出电路图,编写对应c语 -
岑到培欣: 单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4程序:ORG 00HSTART: MOV A,P1ANL A,#0F0HRR ARR ARR ARR AORl A,#0F0HMOV P1,ASJMP START可以检测单个按键,也可以同时检测多个按键过程:开始--读P1口数据到A--A中的数据右移4次--A中的内容和F0H相或--A中的数据送到P1口--回到开始

钦州市13637368444: 51单片机用汇编语言写下这个程序,谢谢!用8颗LED接在P2口,要求:第一颗灯先亮起来,同时第二颗 -
岑到培欣: String s1 = "xy" + "z"; String s2 = s1.intern(); System.out.println( s1==s1.intern() );System.out.println( s1+" "+s2 );System.out.println( s2==s1.intern() );*/

钦州市13637368444: 关于花样流水灯单片机程序. -
岑到培欣: #include<reg51.h> unsigned char a=0x80; void delay(unsigned int t) {unsigned int i,j; for(i=t;i>0;i--) for(j=110;j>0;j--);} void main() {while(1){P2=_crol_(a,1); if(P3.3==0) {delay(10); if(P3.3==0) {while(!P3.3) {P2=0xaa;delay(200);P2=0x...

钦州市13637368444: 单片机C语言 的循环左右移动 函数问题. -
岑到培欣: 首先对比一下 左边与右边 那里有不同 同时 程序不同对应的输出结构有哪些不同.. P2口 连接8个LED 低电平驱动使其发光. P2=0xfe //上电 P2.0连接的 LED发光. 其余的熄灭. 对比一下程序 void main() //主函数 { P2=0xfe; //P2初始化 while...

钦州市13637368444: 用swtich语句的控制8个按键用来使p2口8位led的点亮或者关闭 -
岑到培欣: 八个按键可以用00-ff表达就是说如果按键为P2的话就可以P2=0x00此时无按键输出,0x01为第一个按键按下.但是要按照具体的外围情况来写 switch(local) { case 0: P2=0x01; P3=0x01; break; case 1: P2=0x02; P3=0x02; break; case 2: P2=0x04; P3=0x04; break; case 3: P2=0x08; P3=0x08; break;//依次类推// default:break; }

钦州市13637368444: 51单片机用汇编语言写下这个程序,谢谢!小弟新手.有8个LED接在P2口,让第一颗灯珠一直亮不灭, -
岑到培欣: ORG 000H (1亮,0灭) go ret :MOV P2 #0000 0001 第一个灯一直亮 0000 0001 表示第一个灯,0000 0010第二个灯 MOV P2 #0000 0011 第一个灯一直亮 ACALL DELAY(延时2S) MOV P2 #0000 0101 第1、3个灯一直亮,同时灭第二个灯 ACALL DELAY(延时2S) MOV P2 #0000 0101 ACALL DELAY(延时2S) 以下同理,MOV P2 #0 全灭 ACLL go ret 循环下一次 END

钦州市13637368444: 为什么我用89c52单片机P2口点亮8个LED左移,在开发板上可以.在我自己焊接的板上就不行了(焊接没错). -
岑到培欣: 可能是你的口焊的不同,led灯你焊到P1口,要在P1口上赋值,P2口上要在P2口上赋值,检查一下你的led灯的接口看是和单片机那个口连起来的,或者你的LED灯的正负极焊反了,或者你中间没加电阻或电阻失效了.细心检查一下,查看原理图,一下子就清楚了.

钦州市13637368444: 使用单片机I/O口控制8只LED灯. 1)点亮8个中的的第任意个LED灯. 使任意一个或多个LED灯闪烁 -
岑到培欣: 举个简单的例子,8个LED灯的正级分别接在P1.0到P.7上面,负极分别接在P2.0到P2.7上面,P1 = 0xff; (P1口全部高电平) P2 = 0x00; (P2口全部低电平),此时电流通过P1口经LED流向P2口,8个灯全部点亮,如果P1不变,P2 = 0XFF; 此时...

钦州市13637368444: 51单片机如何控制8个led程序 -
岑到培欣: #include<reg51.h> 包含单片机专用头文件 #include<intrins.h> 这个是什么俺也不知道,但这个程序不需要这个头文件 void Delay10ms(unsigned int c); 自定义的延时函数声明 main() 主函数 {unsigned int LED; 建立一个数值型变量,变量名...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网