音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

MCU與PC簡(jiǎn)單通信程序,問(wèn)題請(qǐng)教!

作者:yuxing276 欄目:單片機(jī)
MCU與PC簡(jiǎn)單通信程序,問(wèn)題請(qǐng)教!!
#include<reg51.h>
#include<stdio.h>
//晶振11.0592//
unsigned CHAR idata trdata_buf[10];
unsigned CHAR code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//0-9
                   0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned CHAR a;
//************************************
void delayms(unsigned int b)  //豪秒延時(shí)子程序
{ unsigned CHAR j;
  while((b--)!=0)
  {
  for(j=0;j<125;j++)
  {;}
  }                 
}

//*************************************
void tx(unsigned CHAR b)    //串口發(fā)送子程序
{SBUF=b;
while(TI==0);
TI=0;
}
//*************************************
CHAR rx(void)    //串口接收子程序
{  unsigned CHAR a_sbuf;
   while(RI==0);
   RI=0;
   a_sbuf=SBUF;
   return(a_sbuf);
}
//*************************************
void DISPLAY(unsigned CHAR aaa)//顯示子程序
{unsigned CHAR j,m,n,i;
  for(j=0;j<aaa;j++)
      {m=trdata_buf[j]&0x0f;
       n=trdata_buf[j]>>4;
       i=0;
       do{
       P2=0xdf;
       P0=ledcode[m];
       delayms(10);
       P2=0xF7;
       P0=ledcode[n];
       delayms(10);
       i++;
          }
       while(i!=100);
       }
       P0=0xff;
}
//************************************
void receive(unsigned CHAR aa) //接收子程序
{ unsigned CHAR i;
  for(i=0;i<aa;i++)
     {while(RI==0);RI=0;
      trdata_buf[i]=SBUF;
      tx(0xdd);
     }
}

//************************************
void main(void)              //主程序
{
TMOD=0x20;//自動(dòng)重裝方式2
TL1=0xfd;TH1=0xfd;//9600bit/s
SCON=0xd8;
PCON=0x00;//SMOD=0x00;//撥特率不加倍,等于1時(shí)撥特率加倍
TR1=1;
P1=0xff;
while(1)
{//rx();
  if((a=rx())!=0xff)tx(0);
  else{
       tx(0xff);
       rx();
       a=rx();
       if(a<10)
         {tx(0x77);
          receive(a);
          DISPLAY(a);
            P1=0xff;
          }
       else
          tx(0x00);
          printf ("you are bad!\n");
      }
  }
}
最后一句printf ("you are bad!\n"); 請(qǐng)問(wèn)用printf是否可以連續(xù)向串口發(fā)數(shù)據(jù)!

2樓: >>參與討論
yuxing276
大俠們快來(lái)看看。。。。。謝謝了!!
大蝦們快來(lái)看看啊。。!。謝謝了!!

3樓: >>參與討論
computer00
最好自己寫(xiě)一個(gè)print函數(shù)吧,這樣比較好。
 
4樓: >>參與討論
tc9148
to:樓主

估計(jì)你這里人多,借地方問(wèn)個(gè)問(wèn)題:你理解定時(shí)器t1是如何為串口服務(wù)的嗎?
謝謝!。!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
可以接多少個(gè)rs232[圖]
老板要我們立即能做PCB板外圍電路設(shè)計(jì)...我不是本行怎么辦?
求教電壓模塊問(wèn)題
有對(duì)摩托羅拉單片機(jī)感興趣的嗎?
關(guān)于常用的SO-8封裝的單片機(jī)!
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)