数码之家

 找回密码
 立即注册
搜索
查看: 3854|回复: 15

[C51] 求大神帮忙编写STC15W104的KEIL程序

[复制链接]
发表于 2020-9-15 15:03:45 | 显示全部楼层 |阅读模式
800家元
求大神帮忙编写STC15W104的KEIL程序:

    使用STC15W104芯片

   上电后,无动作
   p3.4低电平轻触按钮触发
   P3.2延时5秒后开始工作20秒,停止
   P3.5在P3.2低电平时同样为低电平状态
   工作中再次触发P3.4,停止工作

   停止后重新开始等待触发


最佳答案

查看完整内容

需求并不全面,比如开始工作是什么意思,P3.5那一句介绍又是什么意思?
发表于 2020-9-15 15:03:46 | 显示全部楼层
需求并不全面,比如开始工作是什么意思,P3.5那一句介绍又是什么意思?
回复

使用道具 举报

发表于 2020-9-15 16:11:27 | 显示全部楼层
看样子不了解编写程序的收费价格!直接搞个:200-300大洋:肯定有人接活
回复

使用道具 举报

 楼主| 发表于 2020-9-15 17:07:06 | 显示全部楼层
上官梦舞 发表于 2020-9-15 16:56
需求并不全面,比如开始工作是什么意思,P3.5那一句介绍又是什么意思?

就是上电没有动作,脚位都呈高电平

P3.4为触发端,低电平触发

3.2为输出端,常态高电平,当p3.4触发后,p3.2延时5秒后转为低电平并维持10秒,然后恢复高电平
p3.5是在p3.2为低电平时,p3.5也是低电平,就是和p3.2状态同步

结束后,进入下一个循环

抱歉,刚开始搞的纯小白,只晓得一点大概,怎么写完全懵的,多谢多谢
回复

使用道具 举报

 楼主| 发表于 2020-9-15 17:07:54 | 显示全部楼层
椿佳电脑 发表于 2020-9-15 16:11
看样子不了解编写程序的收费价格!直接搞个:200-300大洋:肯定有人接活

:handshake:刚开始学这个东东,见谅见谅
回复

使用道具 举报

发表于 2020-9-15 17:18:12 | 显示全部楼层
楼主把单片机程序看得如此简单,为何不自己写一个呢?8块钱还不如不给,让别人免费给写一个还有个人情在
回复

使用道具 举报

 楼主| 发表于 2020-9-15 17:22:59 | 显示全部楼层
yaosongjin 发表于 2020-9-15 17:18
楼主把单片机程序看得如此简单,为何不自己写一个呢?8块钱还不如不给,让别人免费给写一个还有个人情在 ...

:unhappy:是真不了解,我是看到论坛里面大家都这么求大神,所以我也来发一个,实在抱歉,我不会这块,所以真心不了解。
回复

使用道具 举报

发表于 2020-9-15 18:08:40 | 显示全部楼层
本帖最后由 zj97czb 于 2020-9-15 18:22 编辑

自己先想当然的写一个,然后发上来 ,这就很多人乐意帮你改
我发一个供你参考。这是一个用于电视机通电后, 还要按一下电源键才开机的小程序。有了这个程序,电视机通电后,能自动开机


//单片机用STC15F104E,6M晶振
#include"STC15.h"
#define uint unsigned int
sbit power = P3^1;        //TxD //接电源键
sbit work = P3^0;        //RxD//接5V开机电压


void delay(uint z)        //单片机用STC15F104E,6M晶振(内部RC)
                                        //延时 1ms
{
        uint x,y;
        for(x = z;x > 0;x -- )
                for(y = 460;y > 0;y -- );
}


void main(void)
{

P3M0=0XFF;//设为开漏输出
P3M1=0XFF;//设为开漏输出

delay(4000);//4秒延时。适当延时,让电视机完成初始化和电源电压稳定
while(1)
{
   if(work)//已开机
         power=1;
   else        //还处于待机中
        {
     power=0; //按“电源”键
         delay(1000);//按下时间1秒
     power=1; // 松开
         }
   delay(3000);//4s,等待工作电压正常

  }
}


回复

使用道具 举报

 楼主| 发表于 2020-9-15 18:39:18 | 显示全部楼层
zj97czb 发表于 2020-9-15 18:08
自己先想当然的写一个,然后发上来 ,这就很多人乐意帮你改
我发一个供你参考。这是一个用于电视机通电后, ...

嗯嗯,感谢感谢,是我鲁莽了...
回复

使用道具 举报

发表于 2020-9-15 19:31:11 | 显示全部楼层
本帖最后由 ploestar 于 2020-9-15 20:51 编辑
  1. #include "stc15.h"
  2. #include <stdio.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. uint A=0;
  6. bit S=1;

  7. void Timer0Init(void)                //5毫秒@11.0592MHz
  8. {
  9.         AUXR |= 0x80;                //定时器时钟1T模式
  10.         TMOD &= 0xF0;                //设置定时器模式
  11.         TL0 =0X00;                  //设置定时初值
  12.         TH0 = 0X28;                  //设置定时初值
  13.         TF0 = 0;                    //清除TF0标志
  14. }

  15. void main(void)
  16. {
  17.    Timer0Init();
  18.    P34=1;
  19.    P32=1;
  20.    P35=1;
  21.    ET0=1;
  22.    EA=1;
  23.    
  24.   while(1)
  25.   {
  26.       if(!P34)
  27.       {
  28.         while(!P34);
  29.        if(S)
  30.        {
  31.        S=0;     
  32.        TR0=1;
  33.        A=0;
  34.        }     
  35.       else
  36.       {
  37.         TR0=0;
  38.         P34=1;
  39.         P32=1;
  40.         P35=1;
  41.         S=1;      
  42.       }
  43.     }
  44.    if(A==1000)   //5毫秒*1000=5秒      等待的5秒
  45.    {
  46.      P32=P35=0;  
  47.    }
  48.    if(A==3000)  //5毫秒*3000=15秒+前面5秒   工作的10秒
  49.    {
  50.      P32=P35=1;
  51.      TR0=0;
  52.      A=0;
  53.      S=1;
  54.    }
  55.   }   
  56. }
  57. void T0() interrupt 1
  58. {
  59.    A++;
  60. }
复制代码

打赏

参与人数 1家元 +10 收起 理由
loseyou032 + 10 熱心助人

查看全部打赏

回复

使用道具 举报

 楼主| 发表于 2020-9-16 12:08:42 | 显示全部楼层

感谢感谢,看您写的好规范,我搞的一个拼拼凑凑的...实在汗颜....谢谢老师,我仔细研究研究,看看老师的思路和我的有啥区别~~再次感谢
回复

使用道具 举报

发表于 2020-9-17 00:08:37 | 显示全部楼层
主函数里面用delay的都是垃圾程序,不接受反驳。
回复

使用道具 举报

发表于 2020-9-17 08:24:31 | 显示全部楼层
595953427@qq 发表于 2020-9-17 00:08
主函数里面用delay的都是垃圾程序,不接受反驳。

没毛病。。。
回复

使用道具 举报

发表于 2020-9-17 11:30:09 | 显示全部楼层
这么简单的程序,咋方便咋弄,稳的1B
回复

使用道具 举报

发表于 2020-9-17 12:26:11 | 显示全部楼层
zj97czb 发表于 2020-9-15 18:08
自己先想当然的写一个,然后发上来 ,这就很多人乐意帮你改
我发一个供你参考。这是一个用于电视机通电后, ...

您好! 请问为什么用开漏输出,而不用强推挽模式呢
回复

使用道具 举报

发表于 2022-11-26 09:07:18 来自手机浏览器 | 显示全部楼层
学习一下!
回复

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-26 08:32 , Processed in 0.202800 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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