欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)+BK4802N寬頻率范圍對講機(jī)的制作 附源程序 [打印本頁]

作者: bfzy123    時間: 2021-1-3 16:30
標(biāo)題: 單片機(jī)+BK4802N寬頻率范圍對講機(jī)的制作 附源程序
東戳戳西戳戳,戳出一篇利用MCU控制對講機(jī)制作的源程序,苦于無硬件連線圖無法仿制。求助大神們,可否從程序上面畫出硬件連線圖?
附上源程序,供大家琢磨。因為這個對講機(jī)工作頻率范圍很寬,好像可以工作在短波10米范圍。原數(shù)據(jù)手冊上寫有支持19~33Mhz,并附上芯片的數(shù)據(jù)手冊。
并求大神畫出MCU控制的硬件連接圖,和如何修改程序為工作頻率段為29.6Mhz范圍?

單片機(jī)源程序如下:
  1. #include "STC8F.h"
  2. #include "intrins.h"
  3. #include "IICANDDELAY.h"
  4. #include "codetab.h"
  5. sbit set=P3^7;//must connect not more than 8.2K resistor to GND
  6. //MCU and BK4802N share 3.3v VCC(STC8MCU must using 3.3v VCC)
  7. //BK4802N pin19-pin22 must connect to 3.3v.
  8. sbit ppt=P5^4;//ppt must be connected to BK4802N pin23.
  9. sbit test=P5^5;//test(p5.5) connect a LED to GND to indict 4802n IIC RUN.
  10. //DEFAULT FERQ:TX=RX=439.725mh.uSING "BK4802NCalc.exe to calculate.
  11. int rxfreq[]={
  12. 0x52BE,0xF850,0x0000};
  13. int txfreq[]={
  14. 0x52C5,0x925F,0x0000};
  15. char txinf[]="TX...";
  16. char rxinf[]="RX...";
  17. char blankinf[]="        ";
  18. char newtxfreq[6];
  19. char newrxfreq[6];
  20. unsigned char newtxfreqinf[6];
  21. //char newrxfreqinf[6];
  22. int rxreg[]={ //rx setting for register
  23. 0x0300,
  24. 0x8e04,
  25. 0xF140,
  26. 0xED00,
  27. 0x17E0,
  28. 0xe0e0,
  29. 0x8543,
  30. 0x0700,
  31. 0xA066,
  32. 0xFFFF,
  33. 0xFFE0,
  34. 0x07a0,
  35. 0x9E3C,
  36. 0x1F00,
  37. 0xD1D1,
  38. 0x200F,
  39. 0x01FF,
  40. 0xE000,
  41. 0x0340
  42. };
  43. int txreg[]={//tx setting for register
  44. 0x7C00,
  45. 0x0c04,
  46. 0xF140,
  47. 0xED00,
  48. 0x3fE0,
  49. 0xe0e0,
  50. 0x8543,
  51. 0x0700,
  52. 0xA066,
  53. 0xFFFF,
  54. 0xffe0,
  55. 0x061f,
  56. 0x9e3c,
  57. 0x1f00,
  58. 0xd1C1,
  59. 0x200f,
  60. 0x01FF,
  61. 0xE000,
  62. 0x0c00
  63. };

  64. void setchannel(char k)//setting new trx freq from EEPROM in MCU
  65.          {
  66.                  
  67.                  int i;
  68.                  
  69.                          for(i=0;i<6;i++)
  70.                          {
  71.                                 newrxfreq[i]=IapRead(i+6+k*32);
  72.                           newtxfreq[i]=IapRead(i+k*32);
  73.                          }
  74.          }
  75. void setchannelinf(char k)//setting new trx freq information display on OLED  from EEPROM in MCU
  76.          {
  77.                  
  78.                  int i;
  79.                  
  80.                          for(i=0;i<6;i++)
  81.                          {
  82.                                 newtxfreqinf[i]=IapRead(i+16+k*32);
  83.                          }
  84.          }
  85. void main()
  86. {
  87.         unsigned char i,f;// i do for 'for',f do for store channel No.
  88.         unsigned char k=0;//k is do for trx
  89.         //Start
  90.         test=1;
  91.   Delay50ms();
  92.         OLED_Init(); //OLED初始化
  93.                         for(i=0; i<8; i++)//通過點整顯示漢字 -- i表示字表數(shù)組的位置
  94.                 {
  95.                         OLED_P16x16Ch(i*16,0,i);//In the name of the Moon ,I will punish you.
  96.                          OLED_P16x16Ch(i*16,2,i+8);         //Moon promise power, make up!
  97.                 }
  98.                 OLED_P8x16Str(0,6,"BG7QKU");
  99.                 delay(10000);
  100.                 OLED_CLS();//清屏
  101.                 test=0;
  102.                 OLED_P8x16Str(0,0,"BG7QKU");
  103.                 for(i=0; i<8; i++)
  104.                  {
  105.                          OLED_P16x16Ch(i*16,6,i);
  106.                  }
  107.                 writing(0x90,23,0xa8,0XD0);//Init rx reg23.
  108.                 if(P11==0)//if default or not?
  109.                 {
  110.                         for(i=4;i<=22;i++)
  111.                         {
  112.                          writing(0x90,i,HIGHBYTE(rxreg[i-4]),LOWBYTE(rxreg[i-4]));//init default reg. ro rx
  113.                         }
  114.                         for(i=5;i>2;i--)
  115.                         {
  116.                                 writing(0x90,i-3,HIGHBYTE(rxfreq[i-3]),LOWBYTE(rxfreq[i-3]));//init default reg. to rx freq
  117.                         }
  118.                         OLED_P8x16Str(0,4,"439.725");
  119.                         OLED_P8x16Str(0,2,rxinf);
  120.                 }
  121.                
  122.                 else
  123.                 {
  124.                         f=IapRead(0x0200);//read store channel No.
  125.                         if (f>3)
  126.                                 f=0;
  127.                         setchannel(f);
  128.                         setchannelinf(f);      
  129.                         OLED_P8x16Str(0,4,newtxfreqinf);
  130.                         k=1;
  131.                 }
  132.                        
  133.                 test=1;       
  134.                 while(1)
  135.                 {
  136.                         if(set==1)//teat channel change key
  137.                         {
  138.                                 Delay30ms();//kill swim
  139.                                 if(set==1)
  140.                                 {
  141.                                  Delay30ms();//down to LOW to set channel
  142.                                 if(set==0)
  143.                                 {
  144.                                         f++;
  145.                                         if(f>3)
  146.                                                 f=0;
  147.                                         IapErase(0x0200);//erase EEPROM before write
  148.                                         IapProgram(0x0200,f);//write EEPORM
  149.                                         setchannel(f);
  150.                                   setchannelinf(f);
  151.                                   OLED_P8x16Str(0,4,newtxfreqinf);
  152.                                        
  153.                             k=1;
  154.                                 }
  155.                          }
  156.                         }
  157.                         //Only using default freq
  158.                         if(ppt==1&&k==0&&P11==0)//Set to TX if PTT =HIGH.
  159.                         {
  160.                           test=0;
  161.                                 Delay30ms();
  162.                                 if(ppt==1)
  163.                                 {
  164.                                         Delay30ms();
  165.                                           for(i=4;i<=22;i++)
  166.                 {
  167.                                    writing(0x90,i,HIGHBYTE(txreg[i-4]),LOWBYTE(txreg[i-4]));
  168.                             }
  169.                        
  170.                       for(i=5;i>2;i--)
  171.                       {
  172.                              writing(0x90,i-3,HIGHBYTE(txfreq[i-3]),LOWBYTE(txfreq[i-3]));
  173.                       }
  174.                                         Delay30ms();
  175.                                         OLED_P8x16Str(0,2,blankinf);
  176.                                         OLED_P8x16Str(0,2,"439.725");
  177.                                         test=1;
  178.                                         k=1;
  179.                                 }
  180.                         }
  181.                                 if(ppt==0&&k==1&&P11==0)//Set to RX.
  182.                                 {
  183.                                         test=0;
  184.                                         Delay30ms();
  185.                                 if(ppt==0)
  186.                                 {
  187.                                         Delay30ms();
  188.                                         writing(0x90,23,0xa8,0XD0);
  189.                                           for(i=4;i<=22;i++)
  190.                {
  191.                                    writing(0x90,i,HIGHBYTE(rxreg[i-4]),LOWBYTE(rxreg[i-4]));
  192.                             }
  193.                        
  194.                       for(i=5;i>2;i--)
  195.                       {
  196.                              writing(0x90,i-3,HIGHBYTE(rxfreq[i-3]),LOWBYTE(rxfreq[i-3]));
  197.                       }
  198.                                         Delay30ms();
  199.                                         OLED_P8x16Str(0,2,blankinf);
  200.                                         OLED_P8x16Str(0,2,"439.725");
  201.                       test=1;
  202.                                         k=0;
  203.                           }
  204.                    }
  205.                         //Using pre-set freq
  206.                         if(ppt==1&&k==0&&P11==1)//Set to TX if PTT =HIGH.
  207.                         {
  208.         test=0;
  209.                                 Delay30ms();
  210.                                 if(ppt==1)
  211.                                 {
  212.                                         setchannel(f);
  213.                                   setchannelinf(f);
  214.                                         test=0;
  215.                                         OLED_P8x16Str(0,4,newtxfreqinf);
  216.                                         Delay30ms();
  217.                                           for(i=4;i<=22;i++)
  218.                {
  219.                                    writing(0x90,i,HIGHBYTE(txreg[i-4]),LOWBYTE(txreg[i-4]));
  220.                             }
  221.                        
  222.                       for(i=5;i>2;i--)
  223.                       {
  224.                              writing(0x90,i-3,newtxfreq[2*(i-3)],newtxfreq[2*(i-3)+1]);
  225.                       }
  226.                                         Delay30ms();
  227.                                         OLED_P8x16Str(0,2,blankinf);
  228.                                         OLED_P8x16Str(0,2,txinf);
  229.                                         test=1;
  230.                                         k=1;
  231.                                 }
  232.                         }
  233.                                 if(ppt==0&&k==1&&P11==1)//Set to RX.
  234.                                 {

  235.                                         Delay30ms();
  236.                                 if(ppt==0)
  237.                                 {

  238.                                         test=0;

  239.                                         Delay30ms();
  240.                                         writing(0x90,23,0xa8,0XD0);
  241.                                           for(i=4;i<=22;i++)
  242.                {
  243.                                    writing(0x90,i,HIGHBYTE(rxreg[i-4]),LOWBYTE(rxreg[i-4]));
  244.                             }
  245.                        
  246.                       for(i=5;i>2;i--)
  247.                       {
  248.                              writing(0x90,i-3,newrxfreq[2*(i-3)],newrxfreq[2*(i-3)+1]);
  249.                       }
  250.                                         Delay30ms();
  251.                                         OLED_P8x16Str(0,2,blankinf);
  252.                                         OLED_P8x16Str(0,2,rxinf);
  253.                                         test=1;
  254.                                         k=0;
  255.                           }
  256.                    }
  257.                 }
  258. }
復(fù)制代碼

所有資料51hei提供下載:
第三個程序,增加到16個信道,以及顯示月野兔開機(jī)圖片.zip (4.13 MB, 下載次數(shù): 110)
BK4802_datasheet.pdf (753.36 KB, 下載次數(shù): 114)


作者: bfzy123    時間: 2021-1-3 16:34
這個是原作者寫的論壇帖子,一并附上。求解單片機(jī)和BK4802的連線控制圖

自己研究的STC單片機(jī)控制對講芯片程序 摘錄.docx

418.23 KB, 下載次數(shù): 121, 下載積分: 黑幣 -5


作者: 坤弟i    時間: 2022-11-14 12:03
這是我寫的源程序,可以在我github上搜索作者“BG7QKU”,我在上面相關(guān)研究成果(后來升級修改成為了DIY小玩意
作者: 啤酒瓶子老大    時間: 2022-11-15 11:57
快兩年遇上原作者了。緣分啊。
作者: kendu1982    時間: 2023-8-8 11:41
現(xiàn)在BK4802的資料都找不到了
作者: zhuls    時間: 2023-8-9 08:39
kendu1982 發(fā)表于 2023-8-8 11:41
現(xiàn)在BK4802的資料都找不到了

我有。好多年前收的
作者: kendu1982    時間: 2023-8-9 11:04
zhuls 發(fā)表于 2023-8-9 08:39
我有。好多年前收的

謝謝!樓主的程序夠用了,PDF在這里還有

BK4802_datasheet.pdf

753.36 KB, 下載次數(shù): 59, 下載積分: 黑幣 -5


作者: Kongman    時間: 2024-4-25 23:05
mark下,還有可以傳數(shù)據(jù)的型號,不過資料好像不好找
作者: 853762295    時間: 2024-4-26 14:36
好資料謝謝提供!
作者: LiHooo    時間: 2024-6-8 18:20
kendu1982 發(fā)表于 2023-8-9 11:04
謝謝!樓主的程序夠用了,PDF在這里還有

感謝!終于找到了比較全的datasheet了,我之前看半導(dǎo)小芯的datasheet,內(nèi)容有刪減。
作者: hyzqq    時間: 2024-6-24 14:21
感謝原作者和搬運者,mark下,有空再仔細(xì)研究




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1