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

標題: STC12C5A60S2雙串口程序(串口1和串口2信號通信) [打印本頁]

作者: 騰飛的龍    時間: 2016-5-9 09:25
標題: STC12C5A60S2雙串口程序(串口1和串口2信號通信)
STC12C5A60S2雙串口程序。串口1P3.0和P3.1、串口2P1.3和P1.2。
  1. /***********************************************************************
  2. 時間:2012.11.24
  3. 芯片:STC12C5A60S2
  4. 晶振:22.1184MHz  波特率:9600bps
  5. 引腳定義:串行口1:發(fā)送————TxD/P3.1; 接收———.000—RxD/P3
  6.          串行口2:        發(fā)送————TxD2/P1.3;接收————RxD2/P1.2
  7. 功能描述:STC12雙串口通信(中斷方式)
  8.           當串行口1接收數(shù)據(jù)后,將此數(shù)據(jù)由串行口2發(fā)送出去
  9.           當串行口2接收數(shù)據(jù)后,將此數(shù)據(jù)由串行口1發(fā)送出去
  10. ***********************************************************************/
  11. #include<STC12C5A60S2.h>

  12. #define S2RI 0x01        //串口2接收中斷請求標志位
  13. #define S2TI 0x02        //串口2發(fā)送中斷請求標志位
  14. unsigned char flag1,flag2,temp1=0xaa,temp2=0x55;
  15. /****************串行口初始化函數(shù)****************/
  16. void InitUART(void)
  17. {
  18.     TMOD = 0x20;    //定時器1工作在方式2  8位自動重裝
  19.     SCON = 0x50;    //串口1工作在方式1  10位異步收發(fā) REN=1允許接收
  20.     TH1 = 0xFA;           //定時器1初值
  21.     TL1 = TH1;
  22.     TR1 = 1;           //定時器1開始計數(shù)
  23.     EA =1;        //開總中斷
  24.     ES =1;        //開串口1中斷

  25.     S2CON = 0x50;   //串口2工作在方式1  10位異步收發(fā) S2REN=1允許接收
  26.     BRT = 0xFA;           //獨立波特率發(fā)生器初值
  27.     AUXR = 0x10;    //BRTR=1 獨立波特率發(fā)生器開始計數(shù)
  28.     IE2 =0x01;        //開串口2中斷  ES2=1
  29. }
  30. /****************串行口1發(fā)送****************/
  31. void UART_1SendOneByte(unsigned char c)
  32. {
  33.     SBUF = c;
  34.     while(!TI);           //若TI=0,在此等待
  35.     TI = 0;         
  36. }
  37. /****************串行口2發(fā)送****************/
  38. void UART_2SendOneByte(unsigned char c)
  39. {
  40.     S2BUF = c;
  41.     while(!(S2CON&S2TI));  //若S2TI=0,在此等待
  42.     S2CON&=~S2TI;          //S2TI=0
  43. }
  44. void delay(unsigned int z)
  45. {
  46.         unsigned int x,y;
  47.         for(x=z;x>0;x--)
  48.         for(y=600;y>0;y--);
  49. }
  50. /*****************主函數(shù)******************/
  51. void main(void)
  52. {
  53.     InitUART();        //串行口初始化
  54.        
  55.         while(1)
  56.         {P0=temp2;
  57. //如果串口1接收到數(shù)據(jù),將此數(shù)據(jù)由串口2發(fā)送
  58.                 if(flag1==1)
  59.                 {
  60.                        
  61.                         flag1=0;
  62.                         UART_2SendOneByte(temp1);
  63.                        
  64.                 }
  65.                 delay(300);
  66.                 P0=temp1;
  67. //如果串口2接收到數(shù)據(jù),將此數(shù)據(jù)由串口1發(fā)送
  68.                 if(flag2==1)
  69.                 {
  70.                        
  71.                         flag2=0;
  72.                         UART_1SendOneByte(temp2);
  73.                 }
  74.                 delay(300);
  75.         }
  76. }
  77. /************串行口1中斷處理函數(shù)*************/
  78. void UART_1Interrupt(void) interrupt 4
  79. {
  80.         if(RI==1)
  81.         {
  82.                
  83.                 RI=0;
  84.                 flag1=1;
  85.                 temp1=SBUF;
  86.         }
  87. }
  88. /************串行口2中斷處理函數(shù)*************/
  89. void UART_2Interrupt(void) interrupt 8
  90. {
  91.         if(S2CON&S2RI)
  92.         {
  93.                
  94.                 S2CON&=~S2RI;
  95.                 flag2=1;
  96.                 temp2=S2BUF;
  97.         }
  98. }
復制代碼



作者: xl945415    時間: 2017-4-7 22:46
多謝樓主,很好的例程
作者: yjpvaps    時間: 2017-4-8 11:10
感謝樓主,好資料
作者: 萌新小菜鳥    時間: 2017-8-5 10:48
這例程看的我想哭,對我真是太有用了
作者: chenmodebu    時間: 2017-8-31 10:39
樓主了不起啊啊,,,加油,,你是最棒的。
作者: 持勤補拙    時間: 2017-9-2 22:14
感謝樓主
作者: qunk    時間: 2017-10-25 22:02
我想知道<STC12C5A60S2.h>這個頭文件是自己寫的嗎?keil 里貌似沒有這個東西。我是新手,在做一個項目,一個串口接收傳感器232信號,一個上傳給上位機,不會搞,求大佬賜教
作者: admin    時間: 2017-10-25 22:24
qunk 發(fā)表于 2017-10-25 22:02
我想知道這個頭文件是自己寫的嗎?keil 里貌似沒有這個東西。我是新手,在做一個項目,一個串口接收 ...

這個stc官方有提供的 ,不是自己寫的,這里可以下載:http://m.zg4o1577.cn/bbs/dpj-36960-1.html
作者: qunk    時間: 2017-10-27 14:07
謝謝!太感謝了!
作者: qunk    時間: 2017-11-3 15:59
樓主,我用了你的程序做了測試,為什么接收的數(shù)據(jù)不是我發(fā)的呢?
作者: qunk    時間: 2017-11-3 16:03
樓主,我用了你的程序做了測試,為什么接收到的不是我發(fā)送的呢?
作者: wyx丶    時間: 2018-4-25 09:53
怎么把這個程序里面的波特率調為115200呢?
作者: wyx丶    時間: 2018-4-25 09:55
還有晶振怎么設定為11.0592呢?
作者: 劉查理    時間: 2018-5-14 18:59
太好了,正好需要呢
作者: 手插肚兜    時間: 2018-6-15 22:44
qunk 發(fā)表于 2017-10-25 22:02
**** 作者被禁止或刪除 內容自動屏蔽 ****

串口助手可以直接下載
作者: suinile    時間: 2018-11-6 17:26
測試了,接收會亂碼。不知道問題在哪里,請指教!


作者: suinile    時間: 2018-11-7 17:28
是我搞錯了,我的晶振是11.0592,初值應該改成FDH,初學者請諒解!
作者: chenliyinh    時間: 2019-1-8 00:27
我想請教下。一定要用串口2和串口1一塊工作嘛?我想只用串口二能發(fā)出數(shù)據(jù)可以嗎
作者: chenliyinh    時間: 2019-1-8 00:29
十萬火急。因為要交作品了。就這個串口2的還沒調試好。看到的話希望能夠盡快得到回復謝謝啊
作者: witp    時間: 2019-7-24 13:26
謝謝樓主分享
作者: Chenw    時間: 2019-8-28 09:05
最近在搞雙串口通信,有點懵逼的感覺,感謝樓主的例子,太有幫助了
作者: 搞人心態(tài)    時間: 2020-3-11 21:32
suinile 發(fā)表于 2018-11-7 17:28
是我搞錯了,我的晶振是11.0592,初值應該改成FDH,初學者請諒解!

我的也是晶振11.0592,波特率設置的是9600 我應該改代碼的什么地方,我是小白一個 能不能告訴一下萬分感謝
作者: wulingqing    時間: 2020-3-11 22:51
感謝樓主的例子,太有幫助了
作者: 奔兒霸    時間: 2021-1-1 21:33
qunk 發(fā)表于 2017-10-25 22:02
**** 作者被禁止或刪除 內容自動屏蔽 ****

使用宏晶的串口STC-ISP下載頭文件即可
作者: shanghanlin    時間: 2024-2-26 14:31
簡直太棒啦
作者: shanghanlin    時間: 2024-2-26 14:35
qunk 發(fā)表于 2017-10-25 22:02
**** 作者被禁止或刪除 內容自動屏蔽 ****

這個是庫里自帶的吧,你看他用的就是這個芯片,應該是51單片機的一種
作者: fangssss    時間: 2024-3-27 15:44
最近正好碰到雙串口案例,需要資料參考。謝謝




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产成人三级在线观看 | 亚洲精品1 | 国产精品福利视频 | 精东影业一区二区三区 | 亚洲激情在线 | 天天射天天干天天操 | 国产在线视频网站 | 三级视频在线播放 | 欧美一二| 亚洲免费观看视频 | 午夜视频在线免费观看 | 国产精品一级二级 | 日韩精品综合 | 亚洲欧美日韩一区 | 国产精品羞羞答答 | 精品日韩一区二区 | 国产日本在线 | 亚洲精品一 | 色综合天天综合网国产成人网 | 91午夜精品亚洲一区二区三区 | 午夜网站在线观看 | 亚洲成人一区二区 | 黄色一级免费看 | 国产成人一区二区 | www.国产精品 | 亚洲色在线视频 | 国产网站视频 | 毛片网站视频 | 亚洲第二区 | 欧美性猛交xxxx免费看久久久 | 中文字幕一区二区三区在线观看 | 五月婷婷在线观看 | 国产白丝精品91爽爽久久 | 男女那个视频 | 香蕉视频在线观看网站 | 黄视频免费看网站 | 一区二区三区四区国产 | 国产区一区 | 日韩城人免费 | 国产视频一区二区在线观看 | 国产成人精品av |