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

標(biāo)題: 上傳一個(gè)莫爾斯電碼發(fā)生的單片機(jī)程序與Proteus仿真電路 [打印本頁(yè)]

作者: 風(fēng)158    時(shí)間: 2020-10-20 21:30
標(biāo)題: 上傳一個(gè)莫爾斯電碼發(fā)生的單片機(jī)程序與Proteus仿真電路
短波等幅電報(bào)是無(wú)線電玩家的摯愛,其抗干擾能力是無(wú)法替代的,使用小功率就能實(shí)現(xiàn)遠(yuǎn)距離通聯(lián)。但是人工收發(fā)電報(bào)實(shí)在是太難,也太繁瑣,也因此莫爾斯碼已被主流應(yīng)用淘汰。如果能用單片機(jī)實(shí)現(xiàn)自動(dòng)收發(fā)電報(bào),就能很方便的進(jìn)行遠(yuǎn)距離通聯(lián)了。看到有些資深網(wǎng)友反對(duì)電報(bào)自動(dòng)化,不過如能用單片機(jī)實(shí)現(xiàn)自動(dòng)收發(fā)報(bào)、自動(dòng)加解密,相信莫爾斯碼會(huì)更有實(shí)用價(jià)值,會(huì)煥發(fā)第二春。網(wǎng)上這樣的程序很少,找了很久終于找到一個(gè),保存到這里,希望對(duì)需要的人有幫助。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. void delay(unsigned char ms);
  4. void delay2(int i);
  5. void lcd_wcmd(unsigned char cmd);
  6. void lcd_pos(unsigned char pos);
  7. void lcd_wdat(unsigned char dat);
  8. void lcd_init();
  9. void xianshi();
  10. void KeyDown();
  11. void la_ba();
  12. sbit rs= P2^6;
  13. sbit rw = P2^5;
  14. sbit ep = P2^7;
  15. sbit d=P3^0;
  16. sbit d1=P3^1;
  17. sbit lb=P3^2;
  18. int b,c,s=0,q=0,w=0;
  19. #define GPIO_KEY P1
  20. unsigned char dis1[32];
  21. unsigned char dis2[9]={',','A','D','G','J','M','P','T','W'};
  22. unsigned char dis3[9]={'1','2','3','4','5','6','7','8','9'};
  23. unsigned int code laba[36][5]={
  24.         1,2,3,3,3,//A
  25.         2,1,1,1,3,//B
  26.         2,1,2,1,3,//C
  27.         2,1,1,3,3,//D
  28.         1,3,3,3,3,//E
  29.         1,1,2,1,3,//F
  30.         2,2,1,3,3,//G
  31.         1,1,1,1,3,//H
  32.         1,1,3,3,3,//I
  33.         1,2,2,2,3,//J
  34.         2,1,2,3,3,//K
  35.         1,2,1,1,3,//L
  36.         2,2,3,3,3,//M
  37.         2,1,3,3,3,//N
  38.         2,2,2,3,3,//0
  39.         1,2,2,1,3,//P
  40.         2,2,1,2,3,//Q
  41.         1,2,1,3,3,//R
  42.         1,1,1,3,3,//S
  43.         2,3,3,3,3,//T
  44.         1,1,2,3,3,//U
  45.         1,1,1,2,3,//V
  46.         1,2,2,3,3,//W
  47.         2,1,1,2,3,//X
  48.         2,1,2,2,3,//Y
  49.         2,2,1,1,3,//Z
  50.         2,2,2,2,2,//0
  51.         1,2,2,2,2,//1
  52.         1,1,2,2,2,//2
  53.         1,1,1,2,2,//3
  54.         1,1,1,1,2,//4
  55.         1,1,1,1,1,//5
  56.         2,1,1,1,1,//6
  57.         2,2,1,1,1,//7
  58.         2,2,2,1,1,//8
  59.         2,2,2,2,1,//9
  60. };
  61. void delay(unsigned char ms)
  62. {
  63.         unsigned char i;
  64.         while(ms--)
  65.         {
  66.                 for(i = 0; i< 250; i++)
  67.                 {
  68.                         _nop_();
  69.                         _nop_();
  70.                         _nop_();
  71.                         _nop_();
  72.                 }
  73.         }
  74. }
  75. void delay2(int i)
  76. {
  77.         while(i--);       
  78. }
  79. bit lcd_bz()
  80. {
  81.         bit result;
  82.         rs = 0;
  83.         rw = 1;
  84.         ep = 1;
  85.         _nop_();
  86.         _nop_();
  87.         _nop_();
  88.         _nop_();
  89.         result = (bit)(P0 & 0x80);
  90.         ep = 0;
  91.         return result;
  92. }
  93. void lcd_wcmd(unsigned char cmd)
  94. {
  95.         while(lcd_bz());//判斷LCD是否忙碌
  96.         rs = 0;
  97.         rw = 0;
  98.         ep = 0;
  99.         _nop_();
  100.         _nop_();
  101.         P0 = cmd;
  102.         _nop_();
  103.         _nop_();
  104.         _nop_();
  105.         _nop_();
  106.         ep = 1;
  107.         _nop_();
  108.         _nop_();
  109.         _nop_();
  110.         _nop_();
  111.         ep = 0;
  112. }
  113. void lcd_pos(unsigned char pos)
  114. {
  115.         lcd_wcmd(pos | 0x80);
  116. }
  117. void lcd_wdat(unsigned char dat)
  118. {
  119.         while(lcd_bz());//判斷LCD是否忙碌
  120.         rs = 1;
  121.         rw = 0;
  122.         ep = 0;
  123.         P0 = dat;
  124.         _nop_();
  125.         _nop_();
  126.         _nop_();
  127.         _nop_();
  128.         ep = 1;
  129.         _nop_();
  130.         _nop_();
  131.         _nop_();
  132.         _nop_();
  133.         ep = 0;
  134. }
  135. void lcd_init()
  136. {
  137.         lcd_wcmd(0x38);
  138.         delay(1);
  139.         lcd_wcmd(0x0c);
  140.         delay(1);
  141.         lcd_wcmd(0x06);
  142.         delay(1);
  143.         lcd_wcmd(0x01);
  144.         delay(1);
  145. }
  146. void xianshi()
  147. {
  148.         int i=0,j=1,n=0;
  149.         while(dis1[i] != '\0')
  150.         {
  151.                 lcd_pos(0x00);//設(shè)置顯示位置
  152.                 while(j!=0&&dis1[i] != '\0')
  153.                 {
  154.                         lcd_wdat(dis1[i]);//顯示字符
  155.                         i++;
  156.                         j=i%16;
  157.                 }
  158.                 lcd_pos(0x40);// 設(shè)置顯示位置
  159.                 j=1;
  160.                 while(j!=0&&dis1[i] != '\0')
  161.                 {
  162.                         lcd_wdat(dis1[i]);// 顯示字符
  163.                         i++;
  164.                         j=i%16;
  165.                 }
  166.                 j=1;
  167.                 if(dis1[i] != '\0')
  168.                 i-=16;
  169.         }
  170.         i=0;
  171. }
  172. void KeyDown()
  173. {
  174.         int KeyValue=0;
  175.         GPIO_KEY=0x0f;
  176.         if(GPIO_KEY!=0x0f)
  177.         {
  178.                 delay(5);
  179.                 if(GPIO_KEY!=0x0f)
  180.                 {       
  181.                         GPIO_KEY=0X0F;
  182.                         switch(GPIO_KEY)
  183.                         {
  184.                                 case(0X07):        KeyValue=0;break;
  185.                                 case(0X0b):        KeyValue=1;break;
  186.                                 case(0X0d): KeyValue=2;break;
  187.                                 case(0X0e):        KeyValue=12;break;
  188.                         }
  189.                 }
  190.                         GPIO_KEY=0XF0;
  191.                         switch(GPIO_KEY)
  192.                         {
  193.                                 case(0X70):        KeyValue=KeyValue;break;
  194.                                 case(0Xb0):        KeyValue=KeyValue+3;break;
  195.                                 case(0Xd0): KeyValue=KeyValue+6;break;
  196.                                 case(0Xe0):        KeyValue=KeyValue+9;break;
  197.                         }
  198.                 while(GPIO_KEY!=0xf0);
  199.                 if(KeyValue!=c&&dis1[w]!='\0')
  200.                         {b=0;w++;}
  201.                
  202.                 if(KeyValue<=8&&s==0)
  203.                 {
  204.                         if(c==12||c==15)w--;
  205.                         dis1[w]=dis2[KeyValue]+b;
  206.                         d=0;delay(25);d=1;delay(25);
  207.                 }
  208.                 else if(KeyValue<=8&&s==1)
  209.                 {
  210.                         if(c==12||c==15)w--;
  211.                         dis1[w]=dis3[KeyValue];
  212.                         d=0;delay(25);d=1;delay(25);
  213.                 }
  214.                 else if(KeyValue==12)
  215.                 {
  216.                         if(w>0)
  217.                         {
  218.                                 w--;
  219.                                 dis1[w]=' ';
  220.                         }
  221.                         else
  222.                         {
  223.                                 dis1[w]=' ';
  224.                         }
  225.                         d1=0;delay(25);d1=1;delay(25);
  226.                 }
  227.                 else if(KeyValue==15)
  228.                 {
  229.                         while(w!=0)
  230.                         {
  231.                                 w--;
  232.                                 dis1[w]=' ';
  233.                         }
  234.                 }
  235.                 else if(KeyValue==9)
  236.                 {
  237.                                 q++;
  238.                                 s=q%2;
  239.                         if(c==12||c==15)w-=2;
  240.                 }
  241.                 else if(KeyValue==10)
  242.                 {
  243.                         if(s==0)
  244.                                 dis1[w]=' ';
  245.                         else
  246.                                 dis1[w]='0';
  247.                 }
  248.                 else if(KeyValue==11)
  249.                 {
  250.                                 dis1[w]=' ';
  251.                 }
  252.                 else if(KeyValue==18)
  253.                 {
  254.                         dis1[w]=' ';
  255.                         w--;
  256.                 }
  257.                 else if(KeyValue==21)
  258.                 {
  259.                         la_ba();
  260.                 }
  261.                 b++;
  262.                 if(b==3)b=0;
  263.                 c=KeyValue;
  264.         }
  265. }
  266. void la_ba()
  267. {
  268.         int i,j,t;
  269.         for(i=0;dis1[i]!='\0';i++)
  270.         {
  271.                 if(dis1[i]>=65&&dis1[i]<=90)
  272.                 {
  273.                 d1=0;delay(25);d1=1;delay(25);
  274.                 for(j=0;laba[dis1[i]-65][j]!=3;j++)
  275.                 {
  276.                         if(laba[dis1[i]-65][j]==1)
  277.                         {
  278.                                 t=100;
  279.                                 while(t--)
  280.                                 {
  281.                                         lb=~lb;
  282.                                         delay2(70);
  283.                                 }
  284.                                         delay(50);
  285.                         }
  286.                         if(laba[dis1[i]-65][j]==2)
  287.                         {
  288.                                         t=300;
  289.                                         while(t--)
  290.                                 {
  291.                                         lb=~lb;
  292.                                         delay2(70);
  293.                                 }
  294.                                 delay(50);
  295.                         }
  296.                         if(laba[dis1[i]-65][j+1]==3)
  297.                         {
  298.                                 delay(100);
  299.                         }
  300.                 }
  301.         }       
  302.                 if(dis1[i]>=48&&dis1[i]<=57)
  303.                 {
  304.                         d=0;delay(25);d=1;delay(25);
  305.                         for(j=0;j<5;j++)
  306.                         {
  307.                                 if(laba[dis1[i]-22][j]==1)
  308.                                 {
  309. ……………………

  310. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
莫爾斯電碼發(fā)生器.zip (91.17 KB, 下載次數(shù): 62)




作者: xingzhe8    時(shí)間: 2020-10-20 22:33
這個(gè)只有無(wú)線電愛好者才有興趣,打破零評(píng)論
作者: 風(fēng)158    時(shí)間: 2020-10-20 22:50
經(jīng)檢查該程序鍵盤部分少設(shè)置了兩個(gè)字母,可以重新設(shè)置增加上。
利用空閑的io口可以增加一個(gè)手動(dòng)發(fā)報(bào)按鈕,如果你喜歡手動(dòng)發(fā)報(bào)。按下時(shí)讓喇叭發(fā)聲即可。
在喇叭輸出端連接一個(gè)三極管,再連接到短波發(fā)射電路,就能模擬電鍵實(shí)現(xiàn)單片機(jī)自動(dòng)發(fā)報(bào)。喇叭的聲音是io口通過0、1變化實(shí)現(xiàn)的,這也意味著聲音載波是100%調(diào)制的,接收時(shí)聲音信號(hào)不怕限幅,還能通過音調(diào)識(shí)別來(lái)提高抗干擾能力。
作者: wbz0508    時(shí)間: 2020-10-21 05:05
發(fā)報(bào)部份不難,有難度的是收?qǐng)?bào)。怎樣才能適應(yīng)不同人的手速?
作者: 風(fēng)158    時(shí)間: 2020-10-21 12:59
wbz0508 發(fā)表于 2020-10-21 05:05
發(fā)報(bào)部份不難,有難度的是收?qǐng)?bào)。怎樣才能適應(yīng)不同人的手速?

這個(gè)確實(shí)是難點(diǎn),我正在解決。考慮采用聚類分析算法,但是程序太大,要想法精簡(jiǎn)。
不過,采用單片機(jī)發(fā)報(bào)后,再采用單片機(jī)收?qǐng)?bào)就很容易了。單片機(jī)對(duì)單片機(jī)通訊按鍵時(shí)間可以非常精準(zhǔn)。使用單片機(jī)還可以縮短按鍵時(shí)間,提高發(fā)報(bào)速度。所以說(shuō)采用單片機(jī)發(fā)報(bào)前途光明。
作者: rsx9583    時(shí)間: 2020-10-23 12:16
自動(dòng)發(fā)報(bào)的早就有了,但還是喜歡用手動(dòng)的。我問相關(guān)人員為什么堅(jiān)持手動(dòng)電鍵,他說(shuō),熟練后,手動(dòng)電鍵比自動(dòng)發(fā)報(bào)的速度還要快!
作者: 風(fēng)158    時(shí)間: 2020-10-24 09:40
rsx9583 發(fā)表于 2020-10-23 12:16
自動(dòng)發(fā)報(bào)的早就有了,但還是喜歡用手動(dòng)的。我問通信兵為什么堅(jiān)持手動(dòng)電鍵,通信兵說(shuō),熟練后,手動(dòng)電鍵 ...

現(xiàn)在已經(jīng)很少用電報(bào)了,原因就是速度太慢、加解密太繁瑣,畢竟人的操作速度是很有限的。
但是,如果收發(fā)報(bào)都用單片機(jī),收發(fā)報(bào)速度就會(huì)大大加快,如果不考慮抗干擾,發(fā)報(bào)速度幾乎可以直追數(shù)字通訊。況且,用單片機(jī)收發(fā)報(bào),還可以自動(dòng)加解密,這樣就解決了人工收發(fā)報(bào)加解密時(shí)的繁瑣問題。
如果用單片機(jī)實(shí)現(xiàn)自動(dòng)收發(fā)報(bào)、自動(dòng)加解密,相信會(huì)普及電報(bào),甚至在前線可以做到人手一臺(tái)。因?yàn)槎滩妶?bào)無(wú)論是抗干擾能力還是抗擊打能力,都是無(wú)可替代的。在這兩個(gè)方面,中繼站、衛(wèi)星通訊都不如短波電報(bào)。
作者: wzqwxx    時(shí)間: 2021-10-21 08:34
風(fēng)158 發(fā)表于 2020-10-24 09:40
現(xiàn)在已經(jīng)很少用電報(bào)了,原因就是速度太慢、加解密太繁瑣,畢竟人的操作速度是很有限的。
但是,如果收發(fā) ...

哇,我也在搞這個(gè),已經(jīng)弄了四五天了,快完成了,沒有想到你也在弄,并發(fā)表了。
作者: wzqwxx    時(shí)間: 2021-10-21 09:46
風(fēng)158 發(fā)表于 2020-10-24 09:40
現(xiàn)在已經(jīng)很少用電報(bào)了,原因就是速度太慢、加解密太繁瑣,畢竟人的操作速度是很有限的。
但是,如果收發(fā) ...

哈哈,時(shí)間看錯(cuò)了,2020年10月20日,我以為是昨天。昨天正好是2021年10月20日。搜集資料竟然沒有找到你這個(gè)帖子。估計(jì)關(guān)鍵字寫錯(cuò)了,我是摩爾斯電碼。
作者: 妹妹妹妹    時(shí)間: 2022-1-13 11:16
風(fēng)158 發(fā)表于 2020-10-20 22:50
經(jīng)檢查該程序鍵盤部分少設(shè)置了兩個(gè)字母,可以重新設(shè)置增加上。
利用空閑的io口可以增加一個(gè)手動(dòng)發(fā)報(bào)按鈕, ...

大佬這個(gè)咋搞嘞手動(dòng)的
作者: 妹妹妹妹    時(shí)間: 2022-1-13 16:24
wzqwxx 發(fā)表于 2021-10-21 09:46
哈哈,時(shí)間看錯(cuò)了,2020年10月20日,我以為是昨天。昨天正好是2021年10月20日。搜集資料竟然沒有找到你這 ...

你知道咋用這16個(gè)按鍵輸入26個(gè)字母和0-9嘛,我看不懂那個(gè)代碼

作者: 妹妹妹妹    時(shí)間: 2022-1-13 16:48
wzqwxx 發(fā)表于 2021-10-21 08:34
哇,我也在搞這個(gè),已經(jīng)弄了四五天了,快完成了,沒有想到你也在弄,并發(fā)表了。

你知道咋用這16個(gè)按鍵輸入26個(gè)字母和0-9嘛,我看不懂那個(gè)代碼
作者: 妹妹妹妹    時(shí)間: 2022-1-13 17:29
wzqwxx 發(fā)表于 2021-10-21 09:46
哈哈,時(shí)間看錯(cuò)了,2020年10月20日,我以為是昨天。昨天正好是2021年10月20日。搜集資料竟然沒有找到你這 ...

這個(gè)咋用按鍵輸入字母那些吶
作者: w4589    時(shí)間: 2022-1-13 18:15
看來(lái)樓主對(duì)現(xiàn)代無(wú)線通信了解不多
1 早就有自動(dòng)收發(fā)報(bào)系統(tǒng)
2 雖然還在培養(yǎng)報(bào)務(wù)員但早停止了cw通信模式,手鍵發(fā)報(bào)只作為緊急備用最后手段
3 現(xiàn)在早有了更先進(jìn)的數(shù)字報(bào)技術(shù),比如ASK,PSK,FSK。特別是fsk中的ft8通信,弱信號(hào)比cw優(yōu)勢(shì)明顯
不過,手鍵的優(yōu)勢(shì)依然明顯,比如報(bào)務(wù)員手法像指紋一樣是獨(dú)一無(wú)二的。所以早期的報(bào)務(wù)員配有保護(hù)人員
作者: 風(fēng)158    時(shí)間: 2022-1-14 14:51
1 可能是我孤陋寡聞,但我在網(wǎng)上真的沒有找到自動(dòng)收發(fā)報(bào)軟件,包括萬(wàn)能的某一個(gè)寶。這個(gè)程序是我找到的比較好的了,改進(jìn)后收發(fā)報(bào)就像收發(fā)短信一樣容易。而且利用單片機(jī)很容易進(jìn)行加密,不能自動(dòng)加密的系統(tǒng)基本上只能玩玩,沒大用。
2 你能知道cw通信是緊急備用最后手段就行,我說(shuō)的也是這個(gè)意思。現(xiàn)代戰(zhàn)場(chǎng)上電磁干擾會(huì)很常見,沒有cw通信做最后保障是很糟糕的。
3 單片機(jī)不僅能高速準(zhǔn)確地模擬手鍵,還能很容易地控制激光、紅外線、超聲波、次聲波進(jìn)行通信,比手動(dòng)強(qiáng)多了。
作者: w4589    時(shí)間: 2022-1-14 20:59
風(fēng)158 發(fā)表于 2022-1-14 14:51
1 可能是我孤陋寡聞,但我在網(wǎng)上真的沒有找到自動(dòng)收發(fā)報(bào)軟件,包括萬(wàn)能的某一個(gè)寶。這個(gè)程序是我找到的比較 ...

好吧,我只是想說(shuō)還是往識(shí)別人工手法方面都研究一下,現(xiàn)在玩手鍵的只有業(yè)余無(wú)線電愛好者了,業(yè)余無(wú)線電只允許明碼明語(yǔ)通訊。至于模擬手鍵技術(shù),軍隊(duì)幾十年前就淘汰了,現(xiàn)在的跳頻加數(shù)字調(diào)制技術(shù)各方面都碾壓傳統(tǒng)模擬無(wú)線通信,別說(shuō)cw,現(xiàn)代軍隊(duì)語(yǔ)音通信都是數(shù)字加密。況且,現(xiàn)代戰(zhàn)爭(zhēng)是信息化戰(zhàn)爭(zhēng),cw的傳遞速率,呵呵吧。
作者: 風(fēng)158    時(shí)間: 2022-1-15 09:21
讓我們?cè)倏纯碈W通信有哪些過人之處,就會(huì)發(fā)現(xiàn)淘汰CW通信是不明智的。傳統(tǒng)方法自有傳統(tǒng)方法的優(yōu)點(diǎn),據(jù)說(shuō)海上的就又開始裝備利用恒星定位的儀器了。這是從最壞處著想,向最好處努力的基本決策原則。以下來(lái)自網(wǎng)絡(luò):

CW通訊的優(yōu)缺點(diǎn)

    摩斯電碼(Morse Code)是一種相當(dāng)古老的通訊方法,早在有線電話發(fā)明前的有線電報(bào)時(shí)代即已存在。由于它具有精簡(jiǎn)、低成本、高效率的優(yōu)點(diǎn),所以在通訊科技發(fā)達(dá)的今天,它仍然占有相當(dāng)重要的地位。

    CW為Continue Wave的縮寫,它并不是指連續(xù)發(fā)射的信號(hào)(那不成為干擾了嗎?)而是指頻率固定、振輻固定,有別于FM的頻率、AM的振輻隨時(shí)間改變而改變。由于沒有調(diào)制,所以只能借著信號(hào)的有無(wú)來(lái)傳遞信號(hào),想當(dāng)然爾,當(dāng)然是用Morse Code這種全球皆知的方式來(lái)編碼。在此要特別說(shuō)明的是Morse Code是一種編碼方式,而CW是一種電波型式,兩者并不相同,只不過我們?cè)谶\(yùn)用CW時(shí)通常是用Morse Code來(lái)溝通,兩者雖有極高的關(guān)聯(lián),但并不表示全等,不可混淆。

優(yōu)點(diǎn):

1.CW的頻寬甚窄:
    FM的頻寬一般要10KHz以上,AM要6KHz以上,SSB要3KHz以上,而CW通常只要1KHz。實(shí)際上只要頻率相差100Hz即可輕易分辨兩個(gè)信號(hào)的不同。CW是能在有限頻寬中容納最多組信號(hào)的通信方法。

2.S/N比高:
    這里指的不是無(wú)線電機(jī)上的S/N比,而是人耳對(duì)聲音的辨識(shí)能力。CW由于聲音單調(diào),很容易在噪聲之中突顯出來(lái),在相同的條件下,如果要分辯CW的信號(hào)已經(jīng)有點(diǎn)困難,這個(gè)時(shí)候用話務(wù)通訊則幾乎不可能達(dá)成通訊。

3.CW傳播較遠(yuǎn):
    由于CW頻寬最窄,以相同的功率來(lái)發(fā)訊則單位頻寬內(nèi)的功率密度較其它調(diào)制方式為高,所以可以傳得較遠(yuǎn)。打個(gè)比方來(lái)說(shuō),F(xiàn)M就好像沒有燈罩的燈泡,而CW就像是加了聚光燈罩的聚光燈,雖然用的都是同一個(gè)燈泡,但效果則是大大的不同。

4.CW可用較低的功率通訊:
    綜合1,2,3點(diǎn),這是必然的結(jié)論。在緊急且電力供給受到限制的狀況下,使用CW是最佳的解決方法。

5.CW收發(fā)機(jī)的結(jié)構(gòu)最簡(jiǎn)單:
    CW只要能分辨得出信號(hào)有無(wú)即可,即使頻率不是非常穩(wěn)定或非常準(zhǔn)確也沒關(guān)系。CW的發(fā)射機(jī)不需要調(diào)制,就像是一部信號(hào)產(chǎn)生器。而接收機(jī)只要有振蕩、放大、混頻、濾波等功能即可,結(jié)構(gòu)很簡(jiǎn)單、制做容易。

6.CW的信號(hào)容易做濾波處理:
    因?yàn)樗念l寬窄,我們?nèi)菀讓⒉幌胧盏降男盘?hào)濾除以增加信號(hào)的可讀性。

7.CW是安靜的通訊方式:
    戴上耳機(jī)操作電鍵,即使是夜深人靜也不會(huì)吵到左右鄰居及枕邊人,而話務(wù)通信必須要開口說(shuō)話就沒有這個(gè)優(yōu)點(diǎn)。

缺點(diǎn):

    我?guī)缀跸氩坏紺W有什么缺點(diǎn),如果有的話,那就是CW用Morse Code來(lái)編碼,而報(bào)務(wù)通信和話務(wù)通信相比,本來(lái)就有下列缺點(diǎn):
    同樣的時(shí)間內(nèi),難以詳細(xì)描述事情:雖然報(bào)務(wù)通信大量使用簡(jiǎn)語(yǔ)及Q Code來(lái)提升傳遞訊息的速度,不過若要用報(bào)務(wù)詳細(xì)描述事情的確是比較費(fèi)時(shí)費(fèi)力。
    Morse Code需要一定的訓(xùn)練才能熟習(xí)使用,而話務(wù)通訊可說(shuō)是人人都會(huì),不需要特別訓(xùn)練。
作者: 風(fēng)158    時(shí)間: 2022-1-15 12:41
本帖最后由 風(fēng)158 于 2022-1-15 17:42 編輯

單片機(jī)自動(dòng)收發(fā)報(bào)系統(tǒng)體積小,又省電,也很便宜,而且速度很快,不容易出錯(cuò),在很大程度上彌補(bǔ)了CW通信的缺點(diǎn)。有了單片機(jī)自動(dòng)收發(fā)報(bào)系統(tǒng),相信手動(dòng)收發(fā)基本上只用于愛好了。
作者: 風(fēng)158    時(shí)間: 2022-1-16 22:03
妹妹妹妹 發(fā)表于 2022-1-13 11:16
大佬這個(gè)咋搞嘞手動(dòng)的

看電路圖:

單片機(jī)收發(fā)報(bào)電路.png (94.35 KB, 下載次數(shù): 157)

單片機(jī)收發(fā)報(bào)電路.png

作者: 風(fēng)158    時(shí)間: 2022-1-16 22:06
妹妹妹妹 發(fā)表于 2022-1-13 16:24
你知道咋用這16個(gè)按鍵輸入26個(gè)字母和0-9嘛,我看不懂那個(gè)代碼

指定某個(gè)按鍵與哪幾個(gè)字符關(guān)聯(lián)就行。就像多功能電話鍵盤一樣。
作者: 妹妹妹妹    時(shí)間: 2022-1-18 20:36
風(fēng)158 發(fā)表于 2022-1-16 22:06
指定某個(gè)按鍵與哪幾個(gè)字符關(guān)聯(lián)就行。就像多功能電話鍵盤一樣。

太太太感謝了 我好好研究研究
作者: 妹妹妹妹    時(shí)間: 2022-1-18 21:01
風(fēng)158 發(fā)表于 2022-1-16 22:03
看電路圖:

我我還有一個(gè)問題就是現(xiàn)在咋把這個(gè)斷斷續(xù)續(xù)的信號(hào)發(fā)射出去呢,具體咋實(shí)現(xiàn)
作者: 妹妹妹妹    時(shí)間: 2022-1-18 21:22
風(fēng)158 發(fā)表于 2022-1-16 22:06
指定某個(gè)按鍵與哪幾個(gè)字符關(guān)聯(lián)就行。就像多功能電話鍵盤一樣。

那那這個(gè)咋做成無(wú)線發(fā)射的吶 俺不會(huì)
作者: 風(fēng)158    時(shí)間: 2022-1-19 21:09
妹妹妹妹 發(fā)表于 2022-1-18 21:22
那那這個(gè)咋做成無(wú)線發(fā)射的吶 俺不會(huì)

這個(gè)需要一定的電路知識(shí),可以先玩玩無(wú)線發(fā)射電路,例如無(wú)線遙控、無(wú)線話筒等。
作者: 妹妹妹妹    時(shí)間: 2022-1-19 22:51
風(fēng)158 發(fā)表于 2022-1-19 21:09
這個(gè)需要一定的電路知識(shí),可以先玩玩無(wú)線發(fā)射電路,例如無(wú)線遙控、無(wú)線話筒等。

就是如果我現(xiàn)在想做一個(gè)實(shí)物,那在這個(gè)的基礎(chǔ)上需要什么來(lái)發(fā)射吶,固定的433Mhz或者315Mhz
作者: 豬八戒三打    時(shí)間: 2022-5-5 11:44
這個(gè)怎么演示啊,搞不懂
作者: 豬八戒三打    時(shí)間: 2022-5-12 11:38
哪位大佬可以解答一下這個(gè)程序的思想嗎,理解不了程序
作者: 雪玉寐影    時(shí)間: 2022-5-12 12:50
有意思!這兒還有HAM!73!de BH4TXN!
作者: 風(fēng)158    時(shí)間: 2022-5-16 12:29
w4589 發(fā)表于 2022-1-14 20:59
好吧,我只是想說(shuō)還是往識(shí)別人工手法方面都研究一下,現(xiàn)在玩手鍵的只有業(yè)余無(wú)線電愛好者了,業(yè)余無(wú)線電只 ...

我看了一下ft8的通信原理,發(fā)現(xiàn)有兩個(gè)地方不如cw通信。一是不完全調(diào)幅,接收時(shí)就不能通過限幅方法抗干擾。二是功耗仍然較大,因?yàn)閒t8是連續(xù)波。cw通信在抗干擾和省電方面(省電在野外很重要)是最好的。ft8號(hào)稱靈敏度高于cw,因此可以減少發(fā)射功率,其實(shí)主要是用聲卡代替人耳帶來(lái)的優(yōu)勢(shì)。采用單片機(jī)接收cw同樣能大幅提高靈敏度,也可因此減少發(fā)射功率。而且單片機(jī)可以使用音頻脈沖發(fā)射,又比常規(guī)的cw通信減少一半功率消耗。由于音頻脈沖也是等幅脈沖,接收時(shí)還可以對(duì)音頻進(jìn)行二次限幅,使抗干擾能力進(jìn)一步增強(qiáng)。
只要能收到信號(hào),脈沖信號(hào)就比連續(xù)信號(hào)抗干擾能力強(qiáng)。

單片機(jī)CW脈沖圖示.PNG (8.74 KB, 下載次數(shù): 119)

單片機(jī)CW脈沖圖示.PNG

作者: 風(fēng)158    時(shí)間: 2022-5-16 15:00
關(guān)于通信速率問題要看使用環(huán)境。單片機(jī)解碼速度很快,理論上可以縮短脈寬提高速率,可以直逼數(shù)字通信。但是cw通信的特點(diǎn)決定了其更強(qiáng)調(diào)抗干擾,能聯(lián)通。一般在極端環(huán)境下使用。在利用月亮反射通信時(shí),每分鐘只能發(fā)送10-15個(gè)字符。ft8通信為了提高靈敏度,發(fā)送速率也不高。
至于采用跳頻抗干擾,其實(shí)屬于發(fā)射技術(shù)。單片機(jī)cw信號(hào)同樣可以采用跳頻發(fā)射,而且由于單片機(jī)cw信號(hào)采用的是單一音頻,接收時(shí)更容易選擇、辨識(shí),抗干擾能力更強(qiáng)。




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