矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: jxjie1314

求助;51单片机独立按键长按加减键四位数码管就显示0000

[复制链接]
     
 楼主| 发表于 2019-8-22 18:33:55 | 显示全部楼层
isoimg2130 发表于 2019-8-22 16:18
我的比你的还简单。数码管直接用的74hc595,只要发数据过后就不用管了,肯定不会闪烁的。。壳子都准备好了 ...

祝早日成功
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-22 19:44:08 | 显示全部楼层

我把你今天写的代码下载到单片机里运行,按键,按键功能,显示都没有问题,立体声关闭键正常,用示波器接在        P3口  4,5,6端也有信号,不知道信号是不是正确的,等把发射部分搭建好了测试了才知道
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-22 19:51:27 | 显示全部楼层
isoimg2130 发表于 2019-8-22 13:40
如果是STC的,不用加EEPROM比如24c02.04之类的。。。
他自己本身就有。。只要调用他本身的EEPROM的函数 ...

我安装的STC-ISP里面没有EEPROM程序,空白的嘛


捕获.PNG
回复 支持 反对

使用道具 举报

     
发表于 2019-8-22 21:11:17 | 显示全部楼层
本帖最后由 isoimg2130 于 2019-8-22 21:42 编辑
jxjie1314 发表于 2019-8-22 19:51
我安装的STC-ISP里面没有EEPROM程序,空白的嘛


肯定是空白的啊,你又没打开烧录的HEX。你这个不需要从这烧录,从这烧录的是那种预先写好的。
你的在范例程序那,你要先把范例程序复制过去。然后稍加改动。每按一次按键保存一次,这个需要程序写,不是从这写。
你的单片机如果是STC89C52,应该自带256字节 EEPROM。
保存频率2个字节就够了。加一个保存标记1个字节(可以不加)。。最多3个字节就好了。。。

回复 支持 反对

使用道具 举报

     
发表于 2019-8-22 21:12:17 | 显示全部楼层

肯定会成功的,这么简单的东西还失败,那。。。。 此处省略五百字。
回复 支持 反对

使用道具 举报

     
发表于 2019-8-22 21:21:32 | 显示全部楼层
jxjie1314 发表于 2019-8-22 19:44
我把你今天写的代码下载到单片机里运行,按键,按键功能,显示都没有问题,立体声关闭键正常,用示波器接 ...

一般不会有问题的,时序是对的。。。
等我的搞好了。到时我也发个帖子。好久没发帖了,别人19年注册的都5000多积分了,我居然还是1000多分。不水一水是升级不了的。。。事实上我是来水经验的。。
回复 支持 反对

使用道具 举报

     
发表于 2019-8-22 21:37:26 | 显示全部楼层
jxjie1314 发表于 2019-8-22 19:51
我安装的STC-ISP里面没有EEPROM程序,空白的嘛

这里烧录的要预先写好,假设你现在用的单片机自带32K  EEPROM,那么可以预先弄个开机问候语之类的,比如:一开机就说:“欢迎使用独一无二牌调频发射器”。当然得再写个解码程序,然后PWM输出或者模拟DAC输出到功放才行。。这是预先写进去的。
不是预先写进去的就需要程序写,比如:你这个要同时被5个遥控器遥控,每学习一个保存一个,下次就可以用保存的遥控器遥控,其他的遥控器就不行。不过红外的那种没必要。因为随便拿个同种类的基本能遥控,还不如直接写在程序里。。写程序里需要先解码遥控器,就是要知道遥控器发射的数据是什么,你那个破解好办。有遥控接收头,然后另外写个程序破解就好了。。破解好了写到这个程序里就行,比如如果遥控接收头接收到0x00ff5aa5代表按下了哪个键自己定义就好了。。。
你这个程序主要是保存发射的频率就行。别的不需要了。
前提是单片机是STC89C52,如果是AT89C52就需要外加EEPROM了。AT的不自带。。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-22 22:15:22 | 显示全部楼层
isoimg2130 发表于 2019-8-22 21:11
肯定是空白的啊,你又没打开烧录的HEX。你这个不需要从这烧录,从这烧录的是那种预先写好的。
你的在 ...

那我搞不定了
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-22 22:17:19 | 显示全部楼层
isoimg2130 发表于 2019-8-22 21:21
一般不会有问题的,时序是对的。。。
等我的搞好了。到时我也发个帖子。好久没发帖了,别人19年注册的都 ...

期待看到你的大作。今年注册的就刷到5000分也不知道是怎么水的
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-22 22:19:17 | 显示全部楼层
isoimg2130 发表于 2019-8-22 21:37
这里烧录的要预先写好,假设你现在用的单片机自带32K  EEPROM,那么可以预先弄个开机问候语之类的,比如 ...

这个就尴尬了,这个更难。遥控器的键值我知道。
回复 支持 反对

使用道具 举报

     
发表于 2019-8-23 08:42:19 | 显示全部楼层


  你还是先看下能不能发射再说。。。可以的话。再保存频率吧。。我也要弄保存频率的,到时直接复制我的就行,不过要改两个字节,我用的STC15,寄存器和89c52稍微有点不一样。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-23 09:12:59 | 显示全部楼层
isoimg2130 发表于 2019-8-23 08:42
你还是先看下能不能发射再说。。。可以的话。再保存频率吧。。我也要弄保存频率的,到时直接复制我的 ...

好的,今天发射芯片可以到货,先把发射的部分搞定,把单片机与发射芯片之间的通信搞定,最后才能谈保存 我手上有STC 11F32XP这个与15F应该是一样的吧?
回复 支持 反对

使用道具 举报

     
发表于 2019-8-23 09:27:06 | 显示全部楼层
jxjie1314 发表于 2019-8-23 09:12
好的,今天发射芯片可以到货,先把发射的部分搞定,把单片机与发射芯片之间的通信搞定,最后才能谈保存:l ...

这个是一样的。
回复 支持 反对

使用道具 举报

     
发表于 2019-8-23 11:09:40 | 显示全部楼层
        我仔细想了一下,发现觉得那个发射函数部分还是用两个NOP的好。
这样才更符合时序。用分号的话,时间估计刚刚好,有可能会偶尔按键触发了也没作用。不过基本不会,你到时先试试。可以就按我前面那样写。毕竟那样要快一点。不行就把这个复制上去就好了。
#include "intrins.h"

void nop(void)
{
        _nop_();
        _nop_();       
}

void send_16data(u16 Data,u8 MODO)
{
        u8 i;
        CLK=0;
        CE=0;
        CE=1;                                                          //连续保存高电平,可输入数据
        for(i=11;i>0;i--)
        {
                DA=Data & 0x01;                                //传输BH1415F2个字节频率控制11位D0-D10频率数据
                Data>>=1;
                nop();
                CLK=1;
                nop();
                CLK=0;
        }
        DA=MODO;
        nop();
        CLK=1;                                                   //MONO
        nop();
        CLK=0;
        nop();
        DA=0;
        nop();                                               
        CLK=1;   
        nop();
        CLK=0;
        nop();
        DA=0;
        nop();
        CLK=1;  
        nop();
        CLK=0;   
        nop();
        DA=1;
        nop();
        CLK=1;   
        nop();
        CLK=0;
        nop();
        DA=0;
        nop();
        CLK=1;   
        nop();
        CLK=0;
        CE=0;                                       //输入数据结束
}

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-23 11:48:31 | 显示全部楼层
isoimg2130 发表于 2019-8-23 11:09
我仔细想了一下,发现觉得那个发射函数部分还是用两个NOP的好。
这样才更符合时序。用分号的话,时间估计 ...

嗯,好的,等试过了再来汇报
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-5-1 05:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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