矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: jxjie1314

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

[复制链接]
     
 楼主| 发表于 2019-8-29 10:18:27 | 显示全部楼层
isoimg2130 发表于 2019-8-28 19:15
如果是STC89C52那么现在的程序是可以的。如果AT89C52不是,那不行。如果是其他STC也不行。。

必须要STC89C52吗?89C54也不可以吗?手上只有STC89C51 ,54与STC11F32XE  64XE
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-29 10:54:12 | 显示全部楼层
isoimg2130 发表于 2019-8-28 19:15
如果是STC89C52那么现在的程序是可以的。如果AT89C52不是,那不行。如果是其他STC也不行。。

程序现在基本没有问题,发射部分还没搞定,发射信号没问题就是声音小,手机输出的音量开到底,收音机接收到的声音比蚊子声音稍大,还有水流一样的怪声可能是单片机干扰或者是单片机控制不稳定。换BH1417F焊上去一切正常
回复 支持 反对

使用道具 举报

     
发表于 2019-8-29 11:18:56 | 显示全部楼层
jxjie1314 发表于 2019-8-29 10:18
必须要STC89C52吗?89C54也不可以吗?手上只有STC89C51 ,54与STC11F32XE  64XE

C54和C52是一样的,那应该是可以的。保存不了频率那就是寄存器地址不正确。。这不应该的。。C52和C54的寄存器是一样的啊。。
回复 支持 反对

使用道具 举报

     
发表于 2019-8-29 11:24:25 | 显示全部楼层
本帖最后由 isoimg2130 于 2019-8-29 11:37 编辑
jxjie1314 发表于 2019-8-29 10:54
程序现在基本没有问题,发射部分还没搞定,发射信号没问题就是声音小,手机输出的音量开到底,收音机接收 ...


拿示波器看下单片机 P34.5.6引脚波形。按一下按键看一次。如果和时序对不上,那就是程序问题。。
如果IO输出不了高电平就加上拉电阻。
声音小,流水声。应该也不是单片机干扰,应该是频率不对。。
可以加上上拉电阻试试,有可能单片机输出不了高电平,那时序就不对,频率也不对。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-29 11:41:29 | 显示全部楼层
isoimg2130 发表于 2019-8-29 11:18
C54和C52是一样的,那应该是可以的。保存不了频率那就是寄存器地址不正确。。这不应该的。。C52和C54的寄 ...

一开机就是显示程序设置的默认频率,保存不了关机时使用的频率,存储器应该没启用
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-29 11:47:23 | 显示全部楼层
isoimg2130 发表于 2019-8-29 11:24
拿示波器看下单片机 P34.5.6引脚波形。按一下按键看一次。如果和时序对不上,那就是程序问题。。
如果 ...


频率肯定没问题,单片机调到那个频率,收音机调到那个频率才能接收到,肯定是发射芯片坏的,被奸商坑了,重买了芯片,等芯片到了再看,新的芯片换上还是一样的话,就不搞单片机控制换回最初预想的BH1417F用机械开关控制算了
回复 支持 反对

使用道具 举报

     
发表于 2019-8-29 11:51:25 | 显示全部楼层
jxjie1314 发表于 2019-8-29 11:47
频率肯定没问题,单片机调到那个频率,收音机调到那个频率才能接收到,肯定是发射芯片坏的,被奸商坑了 ...

那不一定,能调频率,应该不会是芯片问题吧。。
回复 支持 反对

使用道具 举报

     
发表于 2019-8-29 11:54:15 | 显示全部楼层
本帖最后由 isoimg2130 于 2019-8-29 11:57 编辑
jxjie1314 发表于 2019-8-29 11:47
频率肯定没问题,单片机调到那个频率,收音机调到那个频率才能接收到,肯定是发射芯片坏的,被奸商坑了 ...


#include "reg52.h"
#include "intrins.h"

typedef unsigned char u8;
typedef unsigned int u16;

sfr IAP_DATA    =   0xE2;           //Flash data register
sfr IAP_ADDRH   =   0xE3;           //Flash address HIGH
sfr IAP_ADDRL   =   0xE4;           //Flash address LOW
sfr IAP_CMD     =   0xE5;           //Flash command register
sfr IAP_TRIG    =   0xE6;           //Flash command trigger
sfr IAP_CONTR   =   0xE7;           //Flash control register


#define ENABLE_IAP 0x82                   //if SYSCLK<20MHz


保存不了频率应该是寄存器地址不对。
把头文件#include "REG52.h"改成#include "stc89c5xrc.h"
然后把紫色部分删了试试,

如果用STC89C5XRC.h编译不成功,那就是软件没加进去。可以从STC的下载器里面加。具体的方法,打开那个下载器自己能找到 QQ截图20190829115606.png

找不到就自己建一个
  1. #ifndef __STC89C5xRC_RDP_H_
  2. #define __STC89C5xRC_RDP_H_

  3. /////////////////////////////////////////////////

  4. /* The following is STC additional SFR */

  5. /* sfr  AUXR  = 0x8e; */
  6. /* sfr  AUXR1 = 0xa2; */
  7. /* sfr  IPH   = 0xb7; */

  8. sfr  P4  = 0xe8;
  9. sbit P46 = P4^6;
  10. sbit P45 = P4^5;       //ISP下载需勾选"ALE脚用作P4.5口"
  11. sbit P44 = P4^4;
  12. sbit P43 = P4^3;
  13. sbit P42 = P4^2;
  14. sbit P41 = P4^1;
  15. sbit P40 = P4^0;

  16. sfr  XICON = 0xc0;

  17. sfr  WDT_CONTR = 0xe1;

  18. sfr ISP_DATA  = 0xe2;
  19. sfr ISP_ADDRH = 0xe3;
  20. sfr ISP_ADDRL = 0xe4;
  21. sfr ISP_CMD   = 0xe5;
  22. sfr ISP_TRIG  = 0xe6;
  23. sfr ISP_CONTR = 0xe7;

  24. /* Above is STC additional SFR */

  25. /*--------------------------------------------------------------------------
  26. REG51F.H

  27. Header file for 8xC31/51, 80C51Fx, 80C51Rx+
  28. Copyright (c) 1988-1999 Keil Elektronik GmbH and Keil Software, Inc.
  29. All rights reserved.

  30. Modification according to DataSheet from April 1999
  31. - SFR's AUXR and AUXR1 added for 80C51Rx+ derivatives
  32. --------------------------------------------------------------------------*/

  33. /*  BYTE Registers  */
  34. sfr P0   = 0x80;
  35. sbit P00 = P0^0;
  36. sbit P01 = P0^1;
  37. sbit P02 = P0^2;
  38. sbit P03 = P0^3;
  39. sbit P04 = P0^4;
  40. sbit P05 = P0^5;
  41. sbit P06 = P0^6;
  42. sbit P07 = P0^7;
  43. sfr P1   = 0x90;
  44. sbit P10 = P1^0;
  45. sbit P11 = P1^1;
  46. sbit P12 = P1^2;
  47. sbit P13 = P1^3;
  48. sbit P14 = P1^4;
  49. sbit P15 = P1^5;
  50. sbit P16 = P1^6;
  51. sbit P17 = P1^7;
  52. sfr P2   = 0xA0;
  53. sbit P20 = P2^0;
  54. sbit P21 = P2^1;
  55. sbit P22 = P2^2;
  56. sbit P23 = P2^3;
  57. sbit P24 = P2^4;
  58. sbit P25 = P2^5;
  59. sbit P26 = P2^6;
  60. sbit P27 = P2^7;
  61. sfr P3   = 0xB0;
  62. sbit P30 = P3^0;
  63. sbit P31 = P3^1;
  64. sbit P32 = P3^2;
  65. sbit P33 = P3^3;
  66. sbit P34 = P3^4;
  67. sbit P35 = P3^5;
  68. sbit P36 = P3^6;
  69. sbit P37 = P3^7;
  70. sfr PSW  = 0xD0;
  71. sfr ACC  = 0xE0;
  72. sfr B    = 0xF0;
  73. sfr SP   = 0x81;
  74. sfr DPL  = 0x82;
  75. sfr DPH  = 0x83;
  76. sfr PCON = 0x87;
  77. sfr TCON = 0x88;
  78. sfr TMOD = 0x89;
  79. sfr TL0  = 0x8A;
  80. sfr TL1  = 0x8B;
  81. sfr TH0  = 0x8C;
  82. sfr TH1  = 0x8D;
  83. sfr IE   = 0xA8;
  84. sfr IP   = 0xB8;
  85. sfr SCON = 0x98;
  86. sfr SBUF = 0x99;

  87. /*  80C51Fx/Rx Extensions  */
  88. sfr AUXR   = 0x8E;
  89. sfr AUXR1  = 0xA2;
  90. sfr SADDR  = 0xA9;
  91. sfr IPH    = 0xB7;
  92. sfr SADEN  = 0xB9;
  93. sfr T2CON  = 0xC8;
  94. sfr T2MOD  = 0xC9;
  95. sfr RCAP2L = 0xCA;
  96. sfr RCAP2H = 0xCB;
  97. sfr TL2    = 0xCC;
  98. sfr TH2    = 0xCD;

  99. /* PCA SFR
  100. sfr CCON   = 0xD8;
  101. sfr CMOD   = 0xD9;
  102. sfr CCAPM0 = 0xDA;
  103. sfr CCAPM1 = 0xDB;
  104. sfr CCAPM2 = 0xDC;
  105. sfr CCAPM3 = 0xDD;
  106. sfr CCAPM4 = 0xDE;
  107. sfr CL     = 0xE9;
  108. sfr CCAP0L = 0xEA;
  109. sfr CCAP1L = 0xEB;
  110. sfr CCAP2L = 0xEC;
  111. sfr CCAP3L = 0xED;
  112. sfr CCAP4L = 0xEE;
  113. sfr CH     = 0xF9;
  114. sfr CCAP0H = 0xFA;
  115. sfr CCAP1H = 0xFB;
  116. sfr CCAP2H = 0xFC;
  117. sfr CCAP3H = 0xFD;
  118. sfr CCAP4H = 0xFE;
  119. */

  120. /*  BIT Registers  */
  121. /*  PSW   */
  122. sbit CY   = PSW^7;
  123. sbit AC   = PSW^6;
  124. sbit F0   = PSW^5;
  125. sbit RS1  = PSW^4;
  126. sbit RS0  = PSW^3;
  127. sbit OV   = PSW^2;
  128. sbit P    = PSW^0;

  129. /*  TCON  */
  130. sbit TF1  = TCON^7;
  131. sbit TR1  = TCON^6;
  132. sbit TF0  = TCON^5;
  133. sbit TR0  = TCON^4;
  134. sbit IE1  = TCON^3;
  135. sbit IT1  = TCON^2;
  136. sbit IE0  = TCON^1;
  137. sbit IT0  = TCON^0;

  138. /*  IE   */
  139. sbit EA   = IE^7;
  140. sbit EC   = IE^6;
  141. sbit ET2  = IE^5;
  142. sbit ES   = IE^4;
  143. sbit ET1  = IE^3;
  144. sbit EX1  = IE^2;
  145. sbit ET0  = IE^1;
  146. sbit EX0  = IE^0;

  147. /*  IP   */
  148. /*  sbit PPC  = IP^6;*/
  149. sbit PT2  = IP^5;
  150. sbit PS   = IP^4;
  151. sbit PT1  = IP^3;
  152. sbit PX1  = IP^2;
  153. sbit PT0  = IP^1;
  154. sbit PX0  = IP^0;

  155. /*  P3  */
  156. sbit RD   = P3^7;
  157. sbit WR   = P3^6;
  158. sbit T1   = P3^5;
  159. sbit T0   = P3^4;
  160. sbit INT1 = P3^3;
  161. sbit INT0 = P3^2;
  162. sbit TXD  = P3^1;
  163. sbit RXD  = P3^0;

  164. /*  SCON  */
  165. sbit SM0  = SCON^7; // alternatively "FE"
  166. sbit FE   = SCON^7;
  167. sbit SM1  = SCON^6;
  168. sbit SM2  = SCON^5;
  169. sbit REN  = SCON^4;
  170. sbit TB8  = SCON^3;
  171. sbit RB8  = SCON^2;
  172. sbit TI   = SCON^1;
  173. sbit RI   = SCON^0;
  174.             
  175. /*  P1  */
  176. /* PCA
  177. sbit CEX4 = P1^7;
  178. sbit CEX3 = P1^6;
  179. sbit CEX2 = P1^5;
  180. sbit CEX1 = P1^4;
  181. sbit CEX0 = P1^3;
  182. sbit ECI  = P1^2;
  183. */

  184. sbit T2EX = P1^1;
  185. sbit T2   = P1^0;

  186. /*  T2CON  */
  187. sbit TF2   = T2CON^7;
  188. sbit EXF2  = T2CON^6;
  189. sbit RCLK  = T2CON^5;
  190. sbit TCLK  = T2CON^4;
  191. sbit EXEN2 = T2CON^3;
  192. sbit TR2   = T2CON^2;
  193. sbit C_T2  = T2CON^1;
  194. sbit CP_RL2= T2CON^0;

  195. /*  CCON  */
  196. /*  PCA
  197. sbit CF    = CCON^7;
  198. sbit CR    = CCON^6;

  199. sbit CCF4  = CCON^4;
  200. sbit CCF3  = CCON^3;
  201. sbit CCF2  = CCON^2;
  202. sbit CCF1  = CCON^1;
  203. sbit CCF0  = CCON^0;
  204. */

  205. /////////////////////////////////////////////////

  206. #endif

复制代码

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-29 12:30:37 | 显示全部楼层
isoimg2130 发表于 2019-8-29 11:51
那不一定,能调频率,应该不会是芯片问题吧。。

发射芯片发射部分没坏,音频信号处理部分坏了输出的调制信号电压不够,导致调制的高频信号频偏小,所以收音机接到的信号声音小,奸商用旧的芯片冒充新的芯片卖
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-29 12:33:37 | 显示全部楼层
本帖最后由 jxjie1314 于 2019-8-29 12:37 编辑
isoimg2130 发表于 2019-8-29 11:54
#include "reg52.h"
#include "intrins.h"


好的,回头再试试这程序,还不行就算了不折腾了,不好意思再麻烦你。折腾好了这玩意也是刚开始用一阵子,等新鲜感过了就扔角落里吃灰了
回复 支持 反对

使用道具 举报

     
发表于 2019-8-30 09:18:43 | 显示全部楼层
本帖最后由 isoimg2130 于 2019-8-30 09:20 编辑
jxjie1314 发表于 2019-8-29 12:33
好的,回头再试试这程序,还不行就算了不折腾了,不好意思再麻烦你。折腾好了这玩意也是刚开始用一阵子 ...


没事,慢慢折腾。我那个发射距离是硬伤啊。做之前我以为一级放大就可以了,没想到。唉。我弄来弄去没什么用。
我准备重新搞。手头没有2SC3357。只有2sc3356和9018。我准备先把电压升到12V,然后发射部分弄成3级谐振放大。带宽肯定没问题。
但是3356耐压都是12V估计是不行的。9018可以。不知道用3级9018行不行,会不会把管子烧了,电压高了,电流大了,我怕功率大了9018受不了?你有经验,你觉得呢?
如下图:你觉得电感电容取值多少合适呢?电容是不是太大了?电感是不是太小了,这是按98兆算出来的理论值。。 QQ截图20190830090645.png
回复 支持 反对

使用道具 举报

     
发表于 2019-8-30 09:41:32 | 显示全部楼层
仿真了一下,感觉不会烧管子。就是不知道实际上会如何。。。。
QQ截图20190830093835.png
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-30 14:54:58 | 显示全部楼层
isoimg2130 发表于 2019-8-30 09:18
没事,慢慢折腾。我那个发射距离是硬伤啊。做之前我以为一级放大就可以了,没想到。唉。我弄来弄去没什 ...

一级放大你用的什么管子,距离能到多远?其实我对高频电路也没啥经验,把电感减小谐振电容用固定电容与半可变电容并联,这样可提高稳定性也方便调试,末级用几个3356并联接成用丙类放大提高发射效率,甲类放大效率太了
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-8-30 14:59:20 | 显示全部楼层
isoimg2130 发表于 2019-8-30 09:41
仿真了一下,感觉不会烧管子。就是不知道实际上会如何。。。。

高频电路仿真与实际会相差很大,高频电路布线要求很高啊,你要做多大功率?
回复 支持 反对

使用道具 举报

     
发表于 2019-8-30 15:13:35 | 显示全部楼层
jxjie1314 发表于 2019-8-30 14:59
高频电路仿真与实际会相差很大,高频电路布线要求很高啊,你要做多大功率?

我对发射和收音机距离不熟啊。几毫瓦能有多远???反正我觉得10米到20米就可以了。。
我本来准备5米就算了。。你一说,感觉,确实五米太短了点。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

蒙公网安备 15040402000005号

GMT+8, 2025-5-1 01:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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