求STC 89C52单片机程序

要求如下:
硬件上需要一个复位按钮和开始按钮
当按一下开始按钮后
P1.0输出高电平
两秒后
P2.0输出高电平
两秒后
P1.0和P2.0同时输出高电平
两秒后
停止输出
下一次需要在按一下开始开关 以此循环
我说的高电平是能使发光二极管亮
求高手 非常感谢!

#include<reg52.h>
sbit LED1 = P1^1; //LED1
sbit LED2 = P2^1; //LED2
sbit Key1 = P3^6; //按键
unsigned char Flag = 0; //标志
/*
* 延时1MS子函数
*/
void Delay_1ms(unsigned int Time)
{
unsigned int x,y;
for(x = Time; x > 0; x--)
for(y = 120; y > 0; y--);
}
/*
* 按键子函数
*/
void Key_Scong(void)
{
if(Key1 == 0) //判断按键按下
{
Delay_1ms(10); //延时去抖动
if(Key1 == 0) //确定按键按下
{
Flag = 1; //标志直位
}
while(Key1 == 0); //等待按键松手
}
}
/*
* 主函数
*/
int main(void)
{
while(1)
{
Key_Scong();
if(Flag == 1) //判断标志直位后
{
LED1 = 1; //P1.0 = 1;
Delay_1ms(1000); //延时1s
Delay_1ms(1000); //延时1s
LED2 = 1;
Delay_1ms(1000);
Delay_1ms(1000);
LED1 = 1;
LED2 = 1;
Delay_1ms(1000);
Delay_1ms(1000);
LED1 = 0;
LED2 = 0;
Flag = 0; //关闭标志
}
else
{
LED1 = 0;
LED2 = 0;
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-02
很简单啊:
include<reg51.h>
sbit key=P3^0;
void main()
{
if(key==0)
{
P1=1;
//(延时自己能写吧)
P1=0;
P2=1;
//(延时2s)
P1=1;
//延时2s

}
}追问

我是单片机盲 高手能帮我写全吗
然后 然后我直接下载到单片机里面去!

第2个回答  2013-06-02
# include <reg52.h>
# define uint unsigned int
# define uchar unsigned char

sbit sw = P1^7; //设定开关连接到P1.7口
sbit led1 = P1^0;
sbit led2 = P2^0;

void delay1() //延时2s函数
{
uint x;
uchar y;
for(x=0; x<2000; x++)
for(y=0; y<124; y++);
}
void delay2() //延时5ms函数
{
uchar x;
uchar y;
for(x=0; x<5; x++)
for(y=0; y<124; y++);
}
void main(void)
{
led1 = 0; //初始化
led2 = 0;
delay1();
while(1)
{
if(sw == 0)
{
delay2(); //按键消抖
if(sw == 0)
{
while(!sw); //按键松手检测

led1 = 1;
delay1();
led1 = 0;

led2 = 1;
delay1();
led2 = 0;

led1 = 1;
led2 = 1;
delay1();
led1 = 0;
led2 = 0;
}

}
}
}
第3个回答  2013-06-02
#include<reg52.h>
sbit KEY=P3^2;
sbit LED1=P1^0;
sbit LED2=P2^0;
#define uint unsigned int
void delay(uint x);
void main()
{
if(KEY==0)
{
LED1=1;
delay(200);
LED2=1;
delay(200);
LED1=1;
LED2=1;
delay(200);
}
}
void delay(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<1200;j++);
}

求STC 89C52单片机程序
include<reg52.h> sbit LED1 = P1^1; \/\/LED1 sbit LED2 = P2^1; \/\/LED2 sbit Key1 = P3^6; \/\/按键 unsigned char Flag = 0; \/\/标志 \/ 延时1MS子函数 \/ void Delay_1ms(unsigned int Time){ unsigned int x,y;for(x = Time; x > 0; x--)for(y = 120; y...

STC 89c52rc单片机代码
波特率设置为9600,无奇偶校验,晶振11.0592MHz,STC89C52.单片机通过串口接收到 字符“a",单片机反馈”a"并打开p1.0 =1 。如果单片机持续30S 没收到“a" P1.0= 0 。存在问题:1.延时、端口 要根据你的实际情况改一下参数。2.上电or复位后,第一次P1.0=0的转换时间要比以后动作转换时间长...

用stc 89C52单片机实现键盘控制28BYJ-48步进电机的启停 加减速,正反转...
include<reg52.h> define uchar unsigned signed sbit jia_key=P3^6;sbit jian_key=P3^7;sbit zf_key=P3^5;bit flag=0;uchar codetable[]={0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01};uchar num,qidong,PWM,table_begin;void delay(uchar 1){ uchar j,k;for(j=i;j>0;j--)fo...

stc89c52单片机下载程序时一直停在 “正在检测目标单片机” 怎么解决...
stc89c52单片机下载程序时一直停在 “正在检测目标单片机”,是设置错误造成的,解决方法如下:1、首先打开电脑中的keil软件,点击“工程”新建一个工程,命名为“点亮LED”,点击确定。2、出现一个选择芯片型号的对话框,选择"Atmel"里面的“89C52”,点击确定进行下一步。3、点击如图所示,新建一个文件,...

STC 89C52单片机,用KEIL写出C程序后怎么导入到单片机。
在STC官网(宏晶单片机)中有STC下载软件,STC的单片机都支持ISP串口下载 用keil编译器编译出hex文件 然后使用STC下载软件通过串口就可以直接下载到单片机中烧录运行

STC 89C52RC单片机向TXD端口发送指定数据的程序要怎么写
(2) 波特率不加倍(SMOD=0):Max_Baud = FOSC\/12\/32 例如:22.1184MHz晶振,波特率加倍时,最大波特率=22118400\/12\/16=115200#define FOSC11059200\/\/振荡频率 define BAUD9600\/\/波特率 define SMOD1\/\/是否波特率加倍 if SMOD define TC_VAL(256-FOSC\/16\/12\/BAUD)else define TC_VAL(256-FOSC\/...

怎么给89C52写入程序
软件:已经编译好的HEX程序文件。89C52的烧写程序(一般用STC)。操作:打开烧写的软件 选择连接端口(串口或USB)选择单片机型号 选择传输速率 选择HEX程序文件 用烧写软件开始烧写 看到提示信息后,给单片机接通电源 烧写完毕有提示信息,关系电源,就OK了 具体的有视频:单片机 10天 征服你 是 郭天祥 ...

STC 89C52RC,怎么下载程序到单片机时总说连接失败,到底怎么回事啊_百 ...
检查串口线,TX,RX,GND引脚无短路,无断路,串口功能正常,下载软件串口选择正确,尝试给单片机断电后,重新上电。检查单片机是否放反,是否损坏,更换一个单片机重试。232电平转换电路是否不正确,替换法测试。

用stc isp给89c52开发板写入程序总是显示如下文字,内部有时钟,第3步...
1.*计算机*图标上面点击右键进入*管理*看看你的串口 2.换个板子下载看看 3.可能你的串口线有问题 4.单片机烧坏了

一块单片机版(上的STC-89C52)和USB线怎么跟电脑相连来编写程序
把单片机的uart 接口转换为 rs232,再搞一条 usb 转 rs232 转接线就可以连在一起了;然后通过串口助手皆可以在pc上收发数据了,单片机的收发处理代码要自己写;要通信是话需要 安装好串口驱动;满意的话赞一个,呵呵

相似回答