普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 6386|回复: 2

[已解决] 那位大神帮忙写个51单片机程序?

[复制链接]

1

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2020-5-10 21:31:13 | 显示全部楼层 |阅读模式
1金钱
那位大神帮忙写个51单片机程序?
功能是:
k1=P3^1;
led1=P2^0;
led2=p2^1;
led3=p2^2;
当k1按下时
led1延时0.1秒后亮,保持0.3秒后灭。
led2延时0.2秒后亮,保持0.2秒后灭。
led3延时0.3秒后亮,保持0.8秒后灭。


最佳答案

#include "reg52.h"   typedef unsigned int u16;   typedef unsigned char u8; sbit led1=P2^0; sbit led2=P2^1; sbit led3=P2^2; sbit k1=P3^1;   u8 flag=0; ...

最佳答案

查看完整内容

#include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; sbit led1=P2^0; sbit led2=P2^1; sbit led3=P2^2; sbit k1=P3^1; u8 flag=0;//t=0; static u16 i; void Timer0() interrupt 1 { TH0=0Xdc;//10MS-0.01s TL0=0X08; i++; //led1=~led1; } void Timer0Init() { TMOD|=0X01; TH0=0Xdc;//11.0592Mhz;0xdc08-10ms; TL0=0X08; ET0=1; //EA=1; TR0=1; } void m ...
回复

使用道具 举报

0

主题

49

帖子

242

积分

中级会员

Rank: 3Rank: 3

积分
242
发表于 2020-5-10 21:31:14 | 显示全部楼层
#include "reg52.h"  
typedef unsigned int u16;  
typedef unsigned char u8;
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit k1=P3^1;  
u8 flag=0;//t=0;
static u16 i;

void Timer0() interrupt 1
{
        TH0=0Xdc;//10MS-0.01s
        TL0=0X08;
        i++;
        //led1=~led1;
}

void Timer0Init()
{
        TMOD|=0X01;
        TH0=0Xdc;//11.0592Mhz;0xdc08-10ms;
        TL0=0X08;
        ET0=1;
        //EA=1;
        TR0=1;  
}
void main()
{
        Timer0Init();
        led1=1;led2=1;led3=1;
        while(1)
        {
                if(k1==0)
                {
                        if(flag==0)//当k1按下时led1延时0.1秒后亮,
                        {
                          i=0;flag=1;EA=1;
        while(i<=10){;}//延时0.1秒
                                       
                                i=0;led1=0;//i=0;flag=1;EA=1;
                        }
                        if(i>30&&flag==1)//led1保持0.3秒后灭。
                        {
                          i=0;led1=1;//灭;
        while(i<=20){;}//灭0.2秒
                                       
                                i=0;led2=0;flag=2;//led2亮
                        }
                        if(i>20&&flag==2)//led2亮0.2s
                        {
                          i=0;led2=1;//灭
                                while(i<=30){;}//灭0.3秒
                                       
                                i=0;led3=0;flag=3;//led3亮
                        }
                        if(i>80&&flag==3)//led3亮0.8s
                        {
                          led1=1;led2=1;led3=1;//灭
                                flag=0;EA=0;
                        }
                       
                }
                else{led1=1;led2=1;led3=1;}//灭
        }
}


回复

使用道具 举报

1

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
 楼主| 发表于 2020-5-21 19:31:18 | 显示全部楼层
xuyaqi 发表于 2020-5-18 21:43
#include "reg52.h"  
typedef unsigned int u16;  
typedef unsigned char u8;

程序下载能够运行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-6 21:56 , Processed in 0.086544 second(s), 34 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表