<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 使用51的定時器模擬串口

          使用51的定時器模擬串口

          作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
          //-----------------------------------------//Timer interrupt routine for UARTvoid tm1() interrupt 3 using 1{if (RING){if (--RCNT == 0){RCNT = 3;//直到我看到了這里……//reset send baudrate counterif (--RBIT == 0){RBUF = RDAT; //save the data to RBUFRING = 0;//stop receiveREND = 1;//set receive completed flag}else//這TM不是坑爹吧{RDAT >>= 1;if (RXB) RDAT |= 0x80;//shift RX data to RX buffer}}}else if (!RXB){RING = 1;//set start receive flagRCNT = 4;//initial receive baudrate counterRBIT = 9;//initial receive bit number (8 data bits + 1 stop bit)}if (--TCNT == 0){TCNT = 3;//reset send baudrate counterif (TING)//judge whether sending{if (TBIT == 0){TXB = 0;//send start bitTDAT = TBUF; //load data from TBUF to TDATTBIT = 9;//initial send bit number (8 data bits + 1 stop bit)}else{TDAT >>= 1;//shift data to CYif (--TBIT == 0){TXB = 1;TING = 0;//stop sendTEND = 1;//set send completed flag}else{TXB = CY;//write CY to TX port}}}}}//-----------------------------------------//initial UART module variablevoid UART_INIT(){TING = 0;RING = 0;TEND = 1;REND = 0;TCNT = 0;RCNT = 0;}

          唉,串口之爭告一段落。我還是希望有硬件串口。

          本文引用地址:http://www.ex-cimer.com/article/201611/323424.htm

          另外就是我實(shí)在不知道詭異的STC ISP串口是怎么在11.0592下面跑到115200的。本來加倍是溢出/16,那么它就算加倍的加倍,也就是/8……既然軟件模擬不可能實(shí)現(xiàn)如此高的波特率。而且6T模式能到230400,我就認(rèn)為他的SFR有串口四倍速選項??上Ю涎龥]有拿出來吹,或者說他也不知道。ISP程序也讀不出。實(shí)在不知道是為啥……

          順便說一句,STC15系列的片子只要RAM越界就復(fù)位……

          順便提一個老妖的坑爹之處:

          ISP定時常數(shù)不在表格中寫出來……

          而是:

          /*Define ISP/IAP/EEPROM operation const for IAP_CONTR*///#define 	ENABLE_IAP 	 0x80//if SYSCLK<30MHz//#define 	ENABLE_IAP 	 0x81//if SYSCLK<24MHz#define 	 ENABLE_IAP 	 0x82//if SYSCLK<20MHz//#define 	ENABLE_IAP 	 0x83//if SYSCLK<12MHz//#define 	ENABLE_IAP 	 0x84//if SYSCLK<6MHz//#define 	ENABLE_IAP 	 0x85//if SYSCLK<3MHz//#define	 ENABLE_IAP 	 0x86//if SYSCLK<2MHz//#define	 ENABLE_IAP 	 0x87//if SYSCLK<1MHz


          暈死……但是我為什么發(fā)現(xiàn)似乎0×83這個ISP常數(shù)到處可以用,1M的RC設(shè)置照樣0×83下……

          本文轉(zhuǎn)自:http://www.rwzy.co.cc


          上一頁 1 2 下一頁

          關(guān)鍵詞: 51定時器模擬串

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();