帮忙编个单片机程序,有五个灯,连续点亮,每个灯亮一秒钟。。怎么编呢

2025-04-26 00:08:08
推荐回答(4个)
回答1:

#include"reg52.h"

#include"intrins.h"

#define uchar unsigned char

#define uint unsigned int

sbit key1=P1^1;

uint num;

/*1ms廷时*/

void  delay_ms(uint z)

{

    uint i,j;

    for(i=0;i

        for(j=0;j<110;j++);

}

/*定时器初始化*/

void init_timer0()

{   

    TMOD=0x01;

    TH0=(65535-10000)/256;

    TL0=(65535-10000)%256;

    EA=0;

    ET0=1;

    TR0=1;

}

void main()

{

init_timer0();

P2=0;//一开始让P2口的灯全灭

while(1)

{

    if(key1==0)

{

delay_ms(10);         //延时消抖

if(key1==0)           //再次判断按键是否真的被按下

{

while(key1==0);   //等待释放按键 

P2=1;   //按键按下时,让P2口的0位亮

EA=1;           //开启总中断

}

}

}

}

void timer0() interrupt 1

{   

    TH0=(65535-10000)/256;

    TL0=(65535-10000)%256;         //中断计时10ms,之所以用中断是因为定时比较准确 想改延时就把里面的2000改掉,这个数除以1000得的数就是多少毫秒

num++;

if(num==100)                  //这是判断够1S钟(100*10ms=1s) 用于下面的移位,1S移一位

{     

num=0;

P2=_crol_(P2,1);    //让P2口的灯左移

}

}

回答2:

这个太TMD简单了,先写一个延时函数,设置好IO口,点亮->延时->灭掉->延时。

回答3:

这样简单的问题最好自己学会,不然以后复杂的,你就完了。

回答4:

楼主应该是找入门的