久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 29059|回復(fù): 27
收起左側(cè)

單片機發(fā)送尋呼機pocsag碼

  [復(fù)制鏈接]
ID:18867 發(fā)表于 2016-10-6 18:17 | 顯示全部樓層 |閱讀模式
//本例實現(xiàn)單片機用pocsag碼向數(shù)字機發(fā)送pocsag數(shù)字28167的全部編碼
//包括引導(dǎo)碼、同步碼、閑置碼、地址碼、信息碼。、
//本例用stc12C5a60s2用32M晶振成功呼響了motorola大顧問傳呼機
//本例僅供傳呼機愛好者地pocsag進(jìn)行了解和試驗,切勿用于商業(yè)用途
#include "STC12C5A60S2.H"                  

//#include "string.h"
//#include "intrins.h"
//#include"stdio.h"

#define uchar unsigned char
#define uint unsigned int           

#define TIMER0_ENABLE  TR0=1;
#define TIMER0_DISABLE TR0=0;

#define TX  P2_0   //數(shù)據(jù)輸出端
#define PTT P2_2   //PTT控制端
#define HIGH   1
#define LOW    0

unsigned long xdata addr;        //地址         
uchar  Tx_Num;//地址碼發(fā)射次序

bit TM0_FLAG=0;

void UartInit(void)                //9600bps@32.000MHz
{
        PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR |= 0x40;                //定時器1時鐘為Fosc,即1T
        AUXR &= 0xFE;                //串口1選擇定時器1為波特率發(fā)生器
        TMOD &= 0x0F;                //清除定時器1模式位
        TMOD |= 0x20;                //設(shè)定定時器1為8位自動重裝方式
        TL1 = 0x98;                //設(shè)定定時初值
        TH1 = 0x98;                //設(shè)定定時器重裝值
        ET1 = 0;                //禁止定時器1中斷
        TR1 = 1;                //啟動定時器1
   //        TI = 1;
}         

void Delay200ms()                //@32MHz
{
        unsigned char i, j, k;

        i = 25;
        j = 82;
        k = 145;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}        

unsigned long  calc_bch_and_parity( unsigned long cw_e ) //BCH校驗和奇偶校驗函數(shù)
{
   uchar i;
   uchar  parity = 0; //奇偶校驗計數(shù)   
   unsigned long local_cw; //臨時存放數(shù)         
   local_cw=cw_e;//保存cw_e參數(shù)值
   for(i=1;i<=21; i++,cw_e<<=1)           
       if (cw_e & 0x80000000) cw_e ^= 0xED200000;  
   cw_e=cw_e&0xFFC00000;//保留前10位,BCH校驗值共11位,只保留前10位有效數(shù)據(jù)         
   local_cw |= (cw_e >> 21); //BCH校驗數(shù)移至第22位到31位,BCH共10位,并和原始數(shù)據(jù)相加
   cw_e=local_cw;         
   for(i=0; i<31; i++, cw_e<<=1) if(cw_e&0x80000000) parity++;        
   if(parity%2) local_cw+=1;//從1至31位判斷為奇數(shù)則后面加1補充為偶數(shù)
   return local_cw;         
}  

unsigned long  calc_addr( unsigned long add,uchar fun ) //地址轉(zhuǎn)換,第1參數(shù)為地址,第2參數(shù)為功能
{
  unsigned long adr;
  unsigned long tem;   
  Tx_Num=(uchar)(add&0x00000007);//獲取地址發(fā)射的幀位次,111位第7幀,后3位地址數(shù)據(jù)隱藏不發(fā)送,接收按幀位還原
  adr=0x00;
  adr=add&0xFFFFFFF8;        //去掉地址碼后3位
  adr=adr<<10;  //地址左移10位
  tem=0x00;
  tem=fun;  //功能位
  tem=tem<<11;//功能位左移11位,功能位為00 01 10 11四種狀態(tài),代表4個地址碼
  adr=adr|tem; //地址碼和功能位合成地址碼;
  return adr;
}


void IntTimer0() interrupt 1 //設(shè)定中斷時間為0.8333毫秒,1/1200=0.8333,1200比特速率
{
     TL0 = 0x53;                //設(shè)置定時初值
         TH0 = 0xF7;                //設(shè)置定時初值         
     TM0_FLAG=1;
}
         

void WaitTF0( void )
{
   while(!TM0_FLAG);
   TM0_FLAG=0;      //清標(biāo)志位
}

void Send_start(unsigned long s)
{
   uchar i,n;
   unsigned long tem;  
   for(i=0;i<20;i++) //發(fā)送576個前導(dǎo)10101010101010
        {      
      tem=s;
          for (n=0;n<32;n++)
       {
                 if(tem&0x80000000)TX= HIGH ;else TX=LOW;
                 WaitTF0();//等待延時結(jié)束 0.833ms                           
                    tem<<=1;
           }      
        }   
}

void Send_nill()//發(fā)送閑置位
{
  uchar n;
  unsigned long s=0x7A89C197;
  for(n=0;n<32;n++)
   {
          if(s&0x80000000)TX= HIGH ;else TX=LOW;
          WaitTF0();//等待延時結(jié)束 0.833ms                           
          s<<=1;
   }
}

void Send_Num(unsigned long s)         //發(fā)送數(shù)據(jù)
{
   uchar n;
   for (n=0;n<32;n++)
    {  
          if(s&0x80000000)TX= HIGH ;else TX=LOW;
          WaitTF0();//等待延時結(jié)束 0.833ms                           
          s<<=1;
    }   
}         

void Print_code(unsigned long p)  //串口打印,用于測試BCH值
{
  uchar i;
  unsigned long t;
  t=p;
  for(i=0;i<32;i++,t<<=1)
   {
         if(t&0x80000000)
          {
            SBUF=0x31;
                while(TI==0);
                TI=0;
          }
         else
          {
                SBUF=0x30;
                while(TI==0);
                TI=0;
          }         
   }
  SBUF=0x0D;
                while(TI==0);
                TI=0;

  SBUF=0x0A;
                while(TI==0);
                TI=0;
  
   t=p;
   t<<=21;
   for(i=0;i<10;i++,t<<=1)
    {
          if(t&0x80000000)
           {
        SBUF=0x31;
                while(TI==0);
                TI=0;
          }
         else
          {
                SBUF=0x30;
                while(TI==0);
                TI=0;
          }         
        }
   SBUF=0x0D;
                while(TI==0);
                TI=0;

   SBUF=0x0A;
                while(TI==0);
                TI=0;  
}

         

main()
{
    uchar i,n;
        unsigned long tem;
        unsigned long star;  
        unsigned long sync;         //同步碼
        unsigned long mess;  //信息碼        
        

        UartInit();  //串口初始化

        TMOD|=0x01;  //定時器0為模式1 (16位定時器)                                    
        TL0 = 0x53;                //設(shè)置定時初值
        TH0 = 0xF7;                //設(shè)置定時初值
    ET0=1; //定時器0充許中斷
        TR0=0;        
        EA=1;  //開總中斷
        TX = 0;
        
    P2M0 = 0x01;//設(shè)P2_0為推挽輸出模式
        P2M1 = 0x00;

    PTT= 0;        
        star = 0xAAAAAAAA; //前導(dǎo)碼
        sync = 0x7CD215D8; //同步碼        
   
        tem=calc_addr(1234567,1);//前面是地址碼,后面是BB機內(nèi)00 01 10 11  代表0,1,2,3種不同的聲音        
    addr=calc_bch_and_parity(tem);//取得BCH校驗后的地址碼序列
        mess=calc_bch_and_parity( 0xA0C37000);//信息碼28167數(shù)字碼,取0010(2)的反順序0100輸入
        Print_code(mess);  //從串口打印32位信息碼和BCH校驗碼


   while(1)
    {           
           PTT = 0;
           Delay200ms();        
           TL0 = 0x53;                //設(shè)置定時初值
           TH0 = 0xF7;                //設(shè)置定時初值                 
           TIMER0_ENABLE; //啟動定時器
           Send_start(star); //引導(dǎo)碼
       Send_Num(sync);        //同步碼

       for(i=0;i<8;i++)  //發(fā)送一個批次,共8幀數(shù)據(jù)
            {
              if(Tx_Num==i)        //計算地址碼插入的幀位,本例為第7幀
               {
                      Send_Num(addr);          //地址碼
                      Send_Num(mess);          //信息碼
               }
              else
               {
              Send_nill();        //閑置碼
                      Send_nill();        //閑置碼                     
                   }
            }                        
           Send_Num(0xFFFFFFFF);
           TX=LOW;
           TIMER0_DISABLE;
           Delay200ms();
           Delay200ms();
           Delay200ms();
           Delay200ms();
           Delay200ms();
           PTT = 1;  
     }
}

回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2016-10-6 22:10 來自觸屏版 | 顯示全部樓層
這個很好,樓主能描述一下外外接電路怎么連嗎
回復(fù)

使用道具 舉報

ID:18867 發(fā)表于 2016-10-7 16:31 | 顯示全部樓層
本帖最后由 PLA 于 2016-10-7 16:36 編輯

發(fā)射機用寶峰5R改裝,p2.0接對講機的數(shù)據(jù)輸入端,p2.2接對講機的PTT,有興趣 的留言,P2.0接圖中的紅色標(biāo)記處位。
QQ圖片20160824212451.jpg
回復(fù)

使用道具 舉報

ID:140601 發(fā)表于 2016-11-7 09:35 | 顯示全部樓層
厲害了,樓主說點原理啊,詳細(xì)點,好玩兒
回復(fù)

使用道具 舉報

ID:140601 發(fā)表于 2016-11-7 09:39 | 顯示全部樓層
厲害了,詳細(xì)說說原理會更過癮~
回復(fù)

使用道具 舉報

ID:69271 發(fā)表于 2016-11-9 17:38 | 顯示全部樓層
這個東西太老了,原理沒有講,你寫那么多,并且沒有電路圖,誰能看懂?
回復(fù)

使用道具 舉報

ID:204213 發(fā)表于 2017-5-24 10:58 | 顯示全部樓層
用89C52的單片機,可以嗎??
回復(fù)

使用道具 舉報

ID:204213 發(fā)表于 2017-5-25 11:12 | 顯示全部樓層
LZ上傳個電路可好,只看代碼,看不懂呀
回復(fù)

使用道具 舉報

ID:204213 發(fā)表于 2017-5-31 10:21 | 顯示全部樓層
跪求電路圖!!
回復(fù)

使用道具 舉報

ID:225369 發(fā)表于 2017-8-7 09:34 | 顯示全部樓層
12C5A60S2.jpg
就像這個圖,晶體換成32M
圖中腳位再核對一下。
可能有變動。
回復(fù)

使用道具 舉報

ID:233842 發(fā)表于 2017-11-10 16:45 | 顯示全部樓層
20538274@qq.com
能喚醒 NEC數(shù)至尊 嗎?
求資料和教程
回復(fù)

使用道具 舉報

ID:204213 發(fā)表于 2017-11-27 16:54 | 顯示全部樓層
我要試一下,看看能不能把我的傳呼機給呼響
回復(fù)

使用道具 舉報

ID:249545 發(fā)表于 2018-1-14 09:20 | 顯示全部樓層
雖然我玩了10多年無線,也有個人電臺數(shù)臺,和呼號BH7KHV.也用過對講機,BP機.但是玩DIY硬件的,對于這個真不易看懂.
樓主老師是在個人電腦上編輯文字后,輸出到USB線,USB線接CH340,再接STC12C5A60S,再控制150MHZ對講機發(fā)射.
同頻率BP機來接收嗎?就是發(fā)數(shù)字~??
回復(fù)

使用道具 舉報

ID:204213 發(fā)表于 2018-5-14 17:31 | 顯示全部樓層
好久沒有人頂了,有新資料上傳嗎??
回復(fù)

使用道具 舉報

ID:204213 發(fā)表于 2018-5-17 11:04 | 顯示全部樓層
GUOXUAN 發(fā)表于 2018-1-14 09:20
雖然我玩了10多年無線,也有個人電臺數(shù)臺,和呼號BH7KHV.也用過對講機,BP機.但是玩DIY硬件的,對于這個真不易 ...

是不是需要在電腦上有個程序,這個程序把用戶輸入的文字通過串口傳到單片機上,然后再靠對講機發(fā)射?
回復(fù)

使用道具 舉報

ID:18867 發(fā)表于 2018-5-28 14:17 來自觸屏版 | 顯示全部樓層
govox 發(fā)表于 2018-5-17 11:04
是不是需要在電腦上有個程序,這個程序把用戶輸入的文字通過串口傳到單片機上,然后再靠對講機發(fā)射?

這個程序不完整,只能發(fā)固定的數(shù)字
回復(fù)

使用道具 舉報

ID:357018 發(fā)表于 2018-6-23 08:24 | 顯示全部樓層
樓主:紅色標(biāo)記處要飛線連哪里?請指教,我做成功,謝謝!
回復(fù)

使用道具 舉報

ID:277550 發(fā)表于 2019-1-4 09:51 | 顯示全部樓層
還有人研究連接別的對講機的么     討論討論
回復(fù)

使用道具 舉報

ID:505153 發(fā)表于 2019-4-10 01:37 | 顯示全部樓層
一次能發(fā)送多少字?
回復(fù)

使用道具 舉報

ID:375228 發(fā)表于 2020-2-10 23:25 | 顯示全部樓層
有沒有成功的詳細(xì)說說
回復(fù)

使用道具 舉報

ID:695866 發(fā)表于 2020-2-20 23:29 | 顯示全部樓層
現(xiàn)在呼響不是問題,問題是F協(xié)議呼響。
回復(fù)

使用道具 舉報

ID:253767 發(fā)表于 2020-6-3 06:54 | 顯示全部樓層
謝謝分享!!!
回復(fù)

使用道具 舉報

ID:274739 發(fā)表于 2020-12-9 20:02 | 顯示全部樓層
實在是 弄不明白     有沒有現(xiàn)成的   導(dǎo)出文件  提供一下   謝謝

2020-12-09_200047.png

回復(fù)

使用道具 舉報

ID:18867 發(fā)表于 2021-1-17 07:52 | 顯示全部樓層
xiao_chun 發(fā)表于 2020-12-9 20:02
實在是 弄不明白     有沒有現(xiàn)成的   導(dǎo)出文件  提供一下   謝謝

STC單片機頭文件沒有
回復(fù)

使用道具 舉報

ID:832201 發(fā)表于 2021-4-16 14:59 | 顯示全部樓層
牛啊,贊
回復(fù)

使用道具 舉報

ID:1031190 發(fā)表于 2022-6-17 22:29 來自觸屏版 | 顯示全部樓層
這個是頭文件定義不一樣,把它改為#define TX  P20   //數(shù)據(jù)輸出端 #define PTT P22   //PTT控制端,去中間一橫就可以通過了,另還有一個警告,可"n"刪除
回復(fù)

使用道具 舉報

ID:1043483 發(fā)表于 2022-9-9 14:41 | 顯示全部樓層
PLA 發(fā)表于 2016-10-7 16:31
發(fā)射機用寶峰5R改裝,p2.0接對講機的數(shù)據(jù)輸入端,p2.2接對講機的PTT,有興趣 的留言,P2.0接圖中的紅色標(biāo)記 ...

請問有沒有教程
回復(fù)

使用道具 舉報

ID:204213 發(fā)表于 2023-12-31 20:58 | 顯示全部樓層
  這個帖子還在呀,有更新信息嗎?硬件連接的電路圖有上傳的嗎
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一级黄色 | 99视频网 | 亚洲精品1区 | 国产伦精品一区二区三区四区免费 | 久久免费视频观看 | 中文字幕少妇 | 国产又黄又粗 | 国产精品二区一区二区aⅴ污介绍 | 欧美国产在线视频 | 免费成人在线观看 | 日韩在线免费播放 | 成人午夜免费视频 | 国产视频在线看 | 欧美理论在线观看 | 又黄又爽又色视频 | 在线一区二区三区四区 | 国产激情一区二区三区 | 夜夜操av| 91日韩在线| 91视频在线看| 91小视频在线观看 | 免费色视频 | 国产精品美女www爽爽爽 | 黄色片在线播放 | 亚洲成人一区二区三区 | 天天操天天操天天 | 国产精品久久久一区二区 | 久久久久国产精品视频 | 亚洲综合视频在线 | 欧美日韩中文字幕在线观看 | 天堂资源| www.中文字幕.com| 在线一区 | 成人国产精品免费观看 | 天天草夜夜草 | 国产精品视频一区二区三区 | 黄色三级av | 91一级片 | 日本久久网站 | 亚洲17p| 久久手机视频 |