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

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

QQ登錄

只需一步,快速開始

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

STC15與STC12單片機(jī)串口通信不成功,但是仿真可以

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
在proteus上可以仿真成功,主機(jī)是stc15w4k32s4單片機(jī),主機(jī)程序,是按下一個(gè)按鍵然后順序調(diào)用四個(gè)串口,分別發(fā)送一個(gè)數(shù)據(jù)到四個(gè)從機(jī),每個(gè)從機(jī)檢測(cè)到接收的數(shù)據(jù)后P20=0;現(xiàn)在proteus上無法進(jìn)行4串口的仿真,只連接一個(gè)從機(jī)的情況下仿真是成功的,但是分別燒進(jìn)開發(fā)板后,按鍵之后從機(jī)無反應(yīng),用電流表測(cè)試主機(jī)TXD按鍵時(shí)可以正常觸發(fā),但是從機(jī)P20無反應(yīng),請(qǐng)各位大神看圖和程序 先是主機(jī),有一些定義的函數(shù)暫時(shí)沒有調(diào)用,大家別誤會(huì)。

單片機(jī)源程序如下:
  1. #include<STC15.H>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5.         uchar good;
  6.                                 sbit key1=P2^0;
  7.                                 sbit key2=P2^1;
  8.                                 sbit key3=P2^2;
  9.                                 sbit key4=P2^3;
  10.                                 sbit key5=P2^4;
  11.                                 sbit key6=P2^5;
  12.                                 sbit key7=P2^6;
  13.                                 sbit key8=P2^7;
  14.                                 sbit key9=P1^0;
  15.                                 sbit key10=P1^1;
  16.                                 sbit key11=P1^2;
  17.                                 sbit key12=P3^5;
  18.                                 sbit key13=P1^4;
  19.                                 sbit key14=P1^5;
  20.                                 sbit key15=P1^6;
  21.                                 sbit key16=P1^7;
  22.                                 sbit key17=P3^6;
  23.                                 sbit key18=P3^7;
  24. void Uart1Init(void)                //9600bps@11.0592MHz//波特率設(shè)置串口初始化
  25. {
  26.         SCON = 0x50;                //8位數(shù)據(jù),可變波特率
  27.         AUXR |= 0x40;                //定時(shí)器1時(shí)鐘1T
  28.         AUXR &= 0xFE;                //串口1選擇定時(shí)器1為波特率發(fā)生器
  29.         TMOD &= 0x0F;                //設(shè)定定時(shí)器1為16位自動(dòng)重裝填模式
  30.   TL1 = 0xC7;           
  31.         TH1 = 0xFE;              
  32.         ET1 = 0;                //禁止定時(shí)器1中斷
  33.         TR1 = 1;        //啟動(dòng)定時(shí)器1
  34.         ES=1;    //啟動(dòng)串口中斷
  35. }
  36. void Uart2Init(void)            
  37. {
  38.         S2CON = 0x50;            
  39.         AUXR |= 0x04;               
  40.   T2L = 0xC7;               
  41.         T2H = 0xFE;           
  42.         AUXR |= 0x10;              
  43.         ES=1;
  44. }
  45. void Uart3Init(void)         
  46. {
  47.   S3CON = 0x10;      
  48.         S3CON |= 0x40;   
  49.         T4T3M |= 0x02;           
  50.         T3L = 0xC7;               
  51.         T3H = 0xFE;            
  52.         T4T3M |= 0x08;         
  53.         ES=1;
  54. }
  55. void Uart4Init(void)               
  56. {
  57.         
  58.         S4CON = 0x10;            
  59.         S4CON |= 0x40;              
  60.         T4T3M |= 0x20;           
  61.         T4L = 0xC7;              
  62.         T4H = 0xFE;        
  63.         T4T3M |= 0x80;           
  64.         ES=1;
  65. }


  66. void Delay1ms()                //@11.0592MHz//1毫秒延時(shí)函數(shù)
  67. {
  68.         unsigned char i, j;

  69.         _nop_();
  70.         _nop_();
  71.         _nop_();
  72.         i = 11;
  73.         j = 190;
  74.         do
  75.         {
  76.                 while (--j);
  77.         } while (--i);
  78. }
  79. void Delay10ms()                //@11.0592MHz//10毫秒延時(shí)函數(shù)
  80. {
  81.         unsigned char i, j;

  82.         i = 108;
  83.         j = 145;
  84.         do
  85.         {
  86.                 while (--j);
  87.         } while (--i);
  88. }
  89. void trans1()//發(fā)送函數(shù)
  90. {
  91.         SBUF=0x01;
  92.         while(TI==0);
  93.                 TI=0;
  94. }
  95. void trans2()//發(fā)送函數(shù)
  96. {
  97.         SBUF=0x02;
  98.         while(TI==0);
  99.                 TI=0;
  100. }
  101. void trans3()//發(fā)送函數(shù)
  102. {
  103.         SBUF=0x03;
  104.         while(TI==0);
  105.                 TI=0;
  106. }
  107. void trans4()//發(fā)送函數(shù)
  108. {
  109.         SBUF=0x04;
  110.         while(TI==0);
  111.                 TI=0;
  112. }
  113. void trans5()//發(fā)送函數(shù)
  114. {
  115.         SBUF=0x05;
  116.         while(TI==0);
  117.                 TI=0;
  118. }
  119. void trans6()//發(fā)送函數(shù)
  120. {
  121.         SBUF=0x06;
  122.         while(TI==0);
  123.                 TI=0;
  124. }
  125. void trans7()//發(fā)送函數(shù)
  126. {
  127.         SBUF=0x07;
  128.         while(TI==0);
  129.                 TI=0;
  130. }
  131. void trans8()//發(fā)送函數(shù)
  132. {
  133.         SBUF=0x08;
  134.         while(TI==0);
  135.                 TI=0;
  136. }
  137. void trans9()//發(fā)送函數(shù)
  138. {
  139.         SBUF=0x09;
  140.         while(TI==0);
  141.                 TI=0;
  142. }
  143. void trans10()//發(fā)送函數(shù)
  144. {
  145.         SBUF=0x0a;
  146.         while(TI==0);
  147.                 TI=0;
  148. }
  149. void trans11()//發(fā)送函數(shù)
  150. {
  151.         SBUF=0x0b;
  152.         while(TI==0);
  153.                 TI=0;
  154. }
  155. void trans12()//發(fā)送函數(shù)
  156. {
  157.         SBUF=0x0c;
  158.         while(TI==0);
  159.                 TI=0;
  160. }
  161. void trans13()//發(fā)送函數(shù)
  162. {
  163.         SBUF=0x0d;
  164.         while(TI==0);
  165.                 TI=0;
  166. }
  167. void trans14()//發(fā)送函數(shù)
  168. {
  169.         SBUF=0x0e;
  170.         while(TI==0);
  171.                 TI=0;
  172. }
  173. void trans15()//發(fā)送函數(shù)
  174. {
  175.         SBUF=0x0f;
  176.         while(TI==0);
  177.                 TI=0;
  178. }
  179. void trans16()//發(fā)送函數(shù)
  180. {
  181.         SBUF=0x10;
  182.         while(TI==0);
  183.                 TI=0;
  184. }
  185. void trans17()//發(fā)送函數(shù)
  186. {
  187.         SBUF=0x11;
  188.         while(TI==0);
  189.                 TI=0;
  190. }
  191. void trans18()//發(fā)送函數(shù)
  192. {
  193.         SBUF=0x12;
  194.         while(TI==0);
  195.                 TI=0;
  196. }
  197. void main()        //主程序
  198. {
  199.         
  200.         
  201.   if(key12==0)      //消抖程序
  202.          {
  203.                  Uart1Init();
  204.                  trans1();
  205.                  Uart2Init();
  206.                  trans1();
  207.                  Uart3Init();
  208.                  trans1();
  209.                  Uart4Init();
  210.                  trans1();
  211.                  

  212.                  }                 
  213.          }
復(fù)制代碼

所有資料51hei提供下載:
stc串口通信.rar (22.12 KB, 下載次數(shù): 12)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:170589 發(fā)表于 2019-4-8 17:51 | 只看該作者
一年了,并沒有人管我
回復(fù)

使用道具 舉報(bào)

板凳
ID:346434 發(fā)表于 2020-3-29 15:38 | 只看該作者
怎能不用STC15仿真?
回復(fù)

使用道具 舉報(bào)

地板
ID:606493 發(fā)表于 2020-3-30 17:41 | 只看該作者
你仿真用的是兩個(gè)51單片機(jī),實(shí)物如果用一個(gè)51一個(gè)12的話他們的機(jī)器周期好像不太一樣所以定時(shí)器要改一下
回復(fù)

使用道具 舉報(bào)

5#
ID:201555 發(fā)表于 2020-4-1 22:11 | 只看該作者
兩個(gè)單片機(jī)串行通訊:1)只有兩個(gè)單片機(jī)的串口波特率設(shè)置一樣,接口物理協(xié)議設(shè)置一樣(如n,8,1);2)單片機(jī)1的txd->單片機(jī)2的rxd,單片機(jī)1的rxd->單片機(jī)2的txd;3)stc15單片機(jī)串口的引腳可通過軟件設(shè)置,要把所用的串口映射到實(shí)際物理連接的引腳上。只有這3點(diǎn)對(duì),兩個(gè)單片機(jī)串行通訊沒有問題。

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:201555 發(fā)表于 2020-4-1 22:21 | 只看該作者
stc15單片機(jī)可使用內(nèi)部晶振,晶振頻率也可設(shè)置,stc12好像只能用外部晶振,簡(jiǎn)單點(diǎn),將stc15的主時(shí)鐘設(shè)成與stc12的外部晶振頻率,串行通訊晶振頻率選11.0592MHz,最容易,2400、4800、9600、…,可支持多個(gè)波特率。
回復(fù)

使用道具 舉報(bào)

7#
ID:170589 發(fā)表于 2022-5-24 12:23 | 只看該作者
多年過去了,當(dāng)時(shí)我給解決了,你們猜最后什么原因,是因?yàn)镾TC15雖然有四串口,但是官方?jīng)]有給出4串口同時(shí)開啟的配置,按例程配置的定時(shí)計(jì)數(shù)器是錯(cuò)的,無法實(shí)現(xiàn)4串口同時(shí)用,例程給的是輪流用,很麻煩,最后我費(fèi)好大勁找出了四串口的正確配置
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 麻豆精品国产91久久久久久 | 亚洲视频 欧美视频 | 欧美亚洲国产精品 | 国产成人精品久久二区二区91 | 啪视频在线 | 日本亚洲一区二区 | 亚洲成人免费视频 | 成人免费共享视频 | 精品欧美黑人一区二区三区 | 亚洲97| 色综合色综合色综合 | 精品一区二区三区在线观看 | 欧美 日韩 在线播放 | 99热最新 | 日韩欧美国产一区二区三区 | 亚洲国产精品日本 | 久草在线| 99久久亚洲| 成人亚洲精品久久久久软件 | 国产精品电影在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 成年免费大片黄在线观看一级 | 中文字幕视频在线观看 | 亚洲欧洲精品在线 | 欧美精品成人影院 | 国产亚洲一区二区三区 | 免费av观看 | 日韩淫片免费看 | 国产精品日本一区二区不卡视频 | 国产一区二区不卡 | 亚洲色综合| 精品国产免费一区二区三区演员表 | 国产免费视频 | 国产激情毛片 | 久久亚洲精品久久国产一区二区 | 少妇一区在线观看 | 久久国产精品视频 | 欧美日韩高清一区 | 在线一级片 | 欧美国产日韩一区二区三区 | 天天操天天插 |