⑴ 单片机编程:P1口P1.1-P1.7接八个LED灯L0-L7。分别用查询方式,中断方式编写一程序,使八个LED灯轮流点亮
点亮子函数:
#include"reg51.h"
#include"intrins.h"
#define uchar unsigned char
void dd()
{
uchar temp=0xfe,i;
for(i=0;i<8;i++)
{
P1=temp;
temp=_crol_(temp,1);//左移函数
delay();
}
}
然后你要什么中断你就在中断函数里面调用这个函数就可以
⑵ 单片机编程,用一个开关控制8个灯轮流亮,再用一个开关控制两个灯一起亮一起灭
简单的啊。思路:8个LED接在一个口,如P1口。再将另外两个LED接在另外某个口(如P2)的两个引脚。然后将两个按键分别接在空闲的口的两个引脚。
按下一个按键,使8个LED的输出状态变化,0xFE循环移位实现,LED低电平亮。另外的按键按下,两个LED状态翻转。
⑶ 单片机编程,求高手指导,1个K1控制9个灯,轮流亮。K1一动灯亮到那盏就停在那盏!!邱编程急!!
先加qq:504111933
⑷ 三位灯轮流点亮间,每隔一秒循环5次,单片机程序设计
#include<reg51.h>
sbitled1=P1^0;
sbitled2=P1^1;
sbitled3=P1^2;
voiddelay(inta)
{
unsignedchari;
while(a--)for(i=0;i<120;i++);
}
main()
{
unsignedchari;
for(i=0;i<5;i++)
{
led1=0;
led2=1;
led3=1;
delay(1000);
led1=1;
led2=0;
led3=1;
delay(1000);
led1=1;
led2=1;
led3=0;
delay(1000);
}
}
⑸ 单片机实现小灯轮流点亮间隔闪亮
这个程序不难实现,很简单,在网上随便下载个教程都有流水灯的控制程序,自己改改就可以实现了!为什么要来问呢!给你个方向,自己去研究吧!那样东西才是你的,不然帮你就是害了你!!!
键控流水灯的程序
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
void mDelay(unsigned int DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++)
{;} }}
uchar Key()
{ uchar KeyV;
uchar tmp;
P3=P3|0x3c; //四个按键所接位置
KeyV=P3;
if((KeyV|0xc3)==0xff) //无键按下
return(0);
mDelay(10); //延时,去键抖
KeyV=P3;
if((KeyV|0xc3)==0xff)
return(0);
else
{ for(;;){ tmp=P3;
if((tmp|0xc3)==0xff)
break;}
return(KeyV);}}
void main()
{ unsigned char OutData=0xfe;
bit UpDown=0;
bit Start=0;
uchar KValue;
for(;;)
{ KValue=Key();
switch (KValue)
{ case 0xfb : //P3.2=0,Start
{ Start=1;
break; }
case 0xf7: //P3.3=0,Stop
{ Start=0;
break; }
case 0xef: //P3.4=0 Up
{ UpDown=1;
break; }
case 0xdf: //P3.5=0 Down
{ UpDown=0;
break; }
}
if(Start)
{ if(UpDown)
OutData=_crol_(OutData,1);
else
OutData=_cror_(OutData,1);
P1=OutData;
}
else
P1=0xff; //否则灯全灭
mDelay(1000);
}
}
⑹ 急需单片机高手帮忙用C语言写一个单片机4个灯轮流闪亮的源程序。 详细内容看补充。
/*对于个单片机的初学者,我希望用最直观的方式来达到你要的要求,程序每一句我已经写好备注,希望对你有帮助*/
#include<reg51.h> //使用51功能头文件
sbit L1=P0^0; //L1对应P0.0,表示第一盏灯
sbit L2=P0^1; //L1对应P0.1,表示第二盏灯
sbit L3=P0^2; //L1对应P0.2,表示第三盏灯
sbit L4=P0^3; //L1对应P0.3,表示第四盏灯
void delay(unsigned int i) //延迟子程序,注意这里的unsigned int i,这里相当于限定了调用时候变量的类型
{
unsigned char j; //局部变量定义
while(i--) //循环i次,主程序main调用时候,i为100,这数值你可随便该,但小于65355
for(j = 200; j > 0; j--) ; //这步的意思是空操作200次,也就是暂用CPU200次的工作时间
}
void main(void) //主函数,这里的viod是无类型,意思是没有给这函数指定数据类型
{
P0=0x00; //将P0口初始化位高电平,如果没有这句,初始化为低电平,这里可根据需要选择
L1=1; //第一盏灯亮
delay(100); //调用延时子程序
L2=1; //第二盏灯亮
delay(100); //调用延时子程序
L3=1; //第三盏灯亮
delay(100); //调用延时子程序
L4=1; //第四盏灯亮
delay(100); //调用延时子程序
while(1); //这里我用了个死循环,目的程序只运行一次,如果需要自动重新运行,可以把这句删掉
}
纯手工书写,并仿真调试过,记得加分哟~
⑺ 单片机:设计一个8灯闪烁控制电路,系统晶振为12HMz,编程实现8灯轮流闪烁,每盏灯点亮时间为2秒 求大神!
LED负极接单片机IO口,本程序接P1,低电平点亮
#include<reg52.h> //52系列单片机头文件
#include<intrins.h>
#defineuintunsignedint //宏定义
#defineucharunsignedchar
voiddelayms(uint); //声明子函数
ucharaa;
voidmain() //主函数
{
aa=0xfe; //赋初值11111110
while(1) //大循环
{
P1=aa;
delayms(2000); //延时2秒
aa=_crol_(aa,1); //将aa循环左移1位后再赋给aa
}
}
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
⑻ 你好我有个单片机程序要求8个灯轮流亮,相隔1分钟亮一个,就是亮一个灭掉等1分钟亮第二个,
#include "reg51.h"
void delayls()
{
unsigned char i;
for(i = 0; i < 20; i++) { //延时1秒
TH1 = 0x3c;
TH1 = 0xb0;
TR1 = 1;
while(!TF1);
TF1 = 0;
}
}
void main()
{
unsigned char i, j, w;
TMOD = 0x10;
while(1){
w = 0x01;
for(i = 0; i < 8; i++) {
P1 = ~w; delayls(); //亮1秒
P1 = 255; //灭
for(j = 0; j < 60; j++) delayls() //60秒
w <<= 1;
}
}
}
试试这个程序,可以实现:
亮一秒、灭一分钟、8个灯轮流循环。
⑼ 用51单片机(汇编语言写)写一个跑马灯程序知道的帮个忙写写。
急用!请教!!!
用汇编语言程序,程序功能:实现方向可控的跑马灯
编程要求:用八个LED发光二极管实现跑马灯(即:8个灯依次轮流发光,每次只亮一个灯),系统启动后,跑马灯右向流转,按下K1键,则反向流转,再按则再反向……。接线方法:流水灯接P0口,按键K1可自选P1~P3任一引脚。