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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1404|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

大家?guī)涂纯礊樯哆@個(gè)51單片機(jī)程序只有發(fā)送,沒(méi)有接收呢?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:699018 發(fā)表于 2020-3-3 13:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. 時(shí)間:2020.02.19
  2. 芯片:STC12C5A60S2
  3. 晶振:11.0592MHz  波特率4800bps
  4. 引腳定義:串行口1:發(fā)送----TxD/P3.1; 接收---.000-RxD/P3
  5. 串行口2:          發(fā)送----TxD2/P1.3;接收----RxD2/P1.2
  6. 功能描述:STC12雙串口通信(中斷方式)
  7. ***********************************************************************/
  8. #include<STC12C5A60S2.h>
  9. //#include<reg51.h>
  10. #include <intrins.h>
  11. #include<stdlib.h>
  12. #include <stdio.h>
  13. #include <string.h>
  14. #define uchar unsigned char
  15. #define uint unsigned int
  16. #define FOSC 11059200L      //System frequency
  17. #define BAUD 4800           //UART baudrate         
  18. #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

  19. unsigned char Tx_Buffer[8];
  20. unsigned char RX_Buffer[50];
  21. unsigned char read_enable,receive_finished,reveive_number,ms,number;
  22. unsigned long Voltage_data,Voltage,Voltage1;
  23. unsigned long Vh6,Vl6,Vh5,Vl5,Vh4,Vl4,Vh3,Vl3;

  24. union crcdata                     //CRC機(jī)構(gòu)體
  25. {
  26. unsigned int word16;
  27. unsigned char byte[2];
  28. }crcnow;

  29. void power_out_mode();
  30. void Delay_ms(unsigned int n);

  31.         
  32. sbit led = P2^0;
  33. sbit WDT_WDI= P3^2;

  34. /****************串行口初始化函數(shù)****************/
  35. void InitUART(void)
  36. {                           
  37.         SCON = 0x50;            //8-bit variable UART  
  38.         TMOD=0x21;  //定時(shí)1工作方式于串口,定時(shí)器0工作方式1
  39.         TH1 = TL1 = -(FOSC/12/32/BAUD); //Set auto-reload vaule定時(shí)器1初值
  40.         TR1=1;             //啟動(dòng)定時(shí)器1
  41.         REN=1;            //允許接收中斷
  42.         ES=1;       //允許串行口中斷
  43.         TH0=(65535-50000)/256;        //以下設(shè)置為時(shí)鐘,裝初值
  44.         TL0=(65535-50000)%256;           
  45.   ET0=1;     //開(kāi)定時(shí)器0中斷
  46.         TR0=1;           //啟動(dòng)定時(shí)器0                                
  47.   EA =1;     //開(kāi)總中斷
  48. }


  49. /****************串行口連續(xù)發(fā)送char型數(shù)組****************/
  50. void Uart1Sends(unsigned char DAT)
  51. {
  52. //ES = 0;
  53. TI=0;
  54. SBUF=DAT ;
  55. while(TI==0);
  56. TI=0;
  57. //ES = 1;
  58. }
  59. void Send_data(unsigned char lenth )
  60. {
  61. unsigned char i = 0 ;
  62. for(i=0; i<lenth; i++)
  63. {
  64. Uart1Sends(Tx_Buffer[i]) ;
  65. }
  66. }

  67. /************CRC***********/

  68. unsigned int calccrc(unsigned char crcbuf,unsigned int crc)
  69. {
  70. unsigned char i;
  71. unsigned char chk;
  72. crc=crc ^ crcbuf;
  73. for(i=0;i<8;i++)
  74. {
  75.   chk=( unsigned char)(crc&1);
  76.   crc=crc>>1;
  77.   crc=crc&0x7fff;
  78.   if (chk==1)
  79.   crc=crc^0xa001;
  80.   crc=crc&0xffff;
  81. }
  82. return crc;
  83. }
  84. unsigned int chkcrc(unsigned char *buf,unsigned char len)
  85. {
  86. unsigned char hi,lo;
  87. unsigned int i;
  88. unsigned int crc;
  89. crc=0xFFFF;
  90. for(i=0;i<len;i++)
  91. {
  92.   crc=calccrc(*buf,crc);
  93.   buf++;
  94. }
  95. hi=( unsigned char)(crc%256);
  96. lo=( unsigned char)(crc/256);
  97. crc=(((unsigned int)(hi))<<8)|lo;
  98. return crc;
  99. }
  100. /************發(fā)送命令***********/
  101. void read_data(void)
  102. {
  103.   read_enable=0;
  104.   Tx_Buffer[0]=0x01; //模塊的ID 號(hào),默認(rèn)0x01
  105.   Tx_Buffer[1]=0x03;
  106.   Tx_Buffer[2]=0x00;
  107.   Tx_Buffer[3]=0x48;
  108.   Tx_Buffer[4]=0x00;
  109.   Tx_Buffer[5]=0x08;
  110.   crcnow.word16=chkcrc(Tx_Buffer,6);
  111.   Tx_Buffer[6]=crcnow.byte[1]; //CRC校驗(yàn)低字節(jié)在前
  112.   Tx_Buffer[7]=crcnow.byte[0];
  113.   Send_data(8); //發(fā)送數(shù)據(jù)
  114. }  
  115. /*******端口初始化********/
  116.   void IO_Init()
  117.         {   
  118. led=1;        
  119.         
  120.         }
  121. void main()
  122. {
  123.   InitUART();
  124.         IO_Init();
  125.         Delay_ms(10);
  126.   while(1)
  127.   {
  128.          WDT_WDI=~WDT_WDI;
  129.          Delay_ms(10);
  130.          if(read_enable==1) //到時(shí)間讀取模塊,間隔時(shí)間為1s
  131.         {         
  132.          read_data();
  133.          }        
  134.          if(receive_finished==1) //接受完成
  135.          {
  136.                  led=0;
  137.            receive_finished=0;         
  138.          }   
  139.   }
  140. }

  141. /*******定時(shí)中斷*********/
  142.   void Timer0(void) interrupt 1                        
  143.   {
  144.          TH0 = (65535-50000)/256;                //50ms
  145.          TL0 = (65535-50000)%256;
  146.    ms++;
  147.          if(ms>=60)                //1s
  148.          {
  149.           ms=0;
  150.           read_enable=1;
  151.    }
  152.   }
  153. /************串行口1中斷處理函數(shù)*************/
  154.   void UART_1Interrupt() interrupt 4
  155. {
  156.         //ES=0;
  157.   if(RI)
  158.         {
  159.          
  160.          RI=0;
  161.          RX_Buffer[number] = SBUF;
  162.          number++;
  163.          if(number>36)
  164.          {
  165.                 receive_finished=1;        
  166.     number=0;                 
  167.          }        
  168.         }
  169.         // ES=1;
  170. }

  171.         //MS延時(shí)函        */
  172. //****************************************************
  173. void Delay_ms(unsigned int n)
  174. {
  175.         unsigned int  i,j;
  176.         for(i=0;i<n;i++)
  177.                 for(j=0;j<110;j++);
  178. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产欧美一区二区 | 男人天堂手机在线视频 | 色又黄又爽网站www久久 | 精品久久久久久亚洲精品 | 黄色片网此 | 91天堂网| 精品国产一区二区三区日日嗨 | 欧美日韩中文在线 | 中文字幕国产精品 | 日韩一级免费电影 | 精品国产欧美一区二区三区成人 | 自拍偷拍第1页 | 草久久久| av黄色在线观看 | 中文字幕乱码视频32 | 色欧美综合| 日韩精品一区二区三区在线 | 一区二区在线免费观看 | 久久久久国产一区二区三区 | 在线国产一区二区 | 成人午夜 | 天天看片天天干 | 日韩午夜一区二区三区 | 日日夜夜视频 | 成人午夜精品 | 国产精品三级久久久久久电影 | 欧美精品日韩 | 欧美电影免费观看高清 | 久久男人| 99re在线| 久久久久久女 | 国产精品欧美一区二区三区不卡 | 日韩一区二区av | 久草成人 | 国产免费一区二区三区最新6 | 午夜电影福利 | 91亚洲国产成人久久精品网站 | 欧美激情亚洲 | 欧美一二三 | 久久精品亚洲精品国产欧美 | 久热精品在线播放 |