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

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

請教PC機與單片機串行口通信的問題

作者:jshong 欄目:單片機
請教PC機與單片機串行口通信的問題
我是51的初學(xué)者,所以遇到了一系列的問題。其中單片機與PC機的串行口通信就是不太明白。改編了一個PC機與單片機的串行口通信的程序,程序也調(diào)試的為有錯誤了,但就是不知道如何實現(xiàn)單片機與PC機的通信,比如要從PC機發(fā)送一楨數(shù)據(jù),該如何發(fā)送。我買的是單片機學(xué)習板,PC機上已安裝了買學(xué)習板時帶的驅(qū)動程序。請各位幫幫我,我現(xiàn)在真的很著急,為這個程序我以忙活好幾天了。
請各位告訴我到底如何才能實現(xiàn)PC機與單片機的串行口通信
程序清單如下:
#include <AT89X51.H>
#define uint unsigned int
#define uCHAR unsigned CHAR
uCHAR m_dataBuffer[];
uint b_validFrame;
uint m_frameStatus;
uint m_addrCode;
uint m_sysCheckData;
uint m_controlCode;
uint m_dataLen;
uint m_dataFieldcount;
uint m_frameEnd;
uint m_checkData;
uint i;

main(void)
{
      TMOD=0x21;
      SCON=0x58;
      PCON=0x00;
      ES=1;
      PS=1;
      EA=1;

      TH1=0x0E8;
      TL1=0x0E8;
      TR1=1;
      }
com_isp(void)interrupt 4 using 1
{
      if(RI)
      {
          RI=0;
          if(b_validFrame)
          {
             return;
             }
       if(m_frameStatus==0x00)
       {
           if(SBUF!=0x68)
           {
                m_frameStatus=0x00;
             }
             else
             {
                m_frameStatus=0x01;
                }
         }
       else if(m_frameStatus=0x01)
       {
           
           m_frameStatus=0x02;
           m_addrCode=SBUF;
           m_sysCheckData=0x00;
        
                          
           }
        else if(m_frameStatus=0x02)
        {
           m_controlCode=SBUF;
           m_frameStatus=0x03;
           m_sysCheckData+=m_controlCode;
            }
        else if(m_frameStatus=0x03)
        {
           m_dataLen=SBUF;
           m_frameStatus=0x04;
           m_sysCheckData+=m_dataLen;
           
           m_dataFieldcount=0x00;
                }
        else if(m_frameStatus=0x04)
        {
            m_dataBuffer[m_dataFieldcount]=SBUF;
            m_sysCheckData+=m_dataBuffer[m_dataFieldcount];
            m_dataFieldcount++;
            if(m_dataFieldcount==m_dataLen)
              {
                    m_frameStatus=0x05;
                      }
                  }
         else if(m_frameStatus=0x05)
         {
             m_checkData=SBUF;
                if(m_sysCheckData!=m_checkData)
                {
                     m_frameStatus=0x00;
                           }
                         else
                         {
                           m_frameStatus=0x06;
                               }
                         }

            else if(m_frameStatus=0x06)
            {
                 m_frameEnd=SBUF;
                 if(m_frameEnd!=0x16)
                 {
                     b_validFrame=0;
   &nbs
2樓: >>參與討論
isoar
好多“if”。∧氵是先去學(xué)學(xué)匯編吧。
 
3樓: >>參與討論
艾森豪威爾
SWITCH case!!!
你這只是單片機一側(cè)的程序,還得寫個PC機側(cè)的程序才能通信。
你自己查查書吧!PC機一側(cè)程序如何編寫很多書上都有!

* - 本貼最后修改時間:2005-9-30 10:33:45 修改者:艾森豪威爾

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
求救!用protel99畫原理圖時的一個錯誤不知如何解決
初學(xué)者的困惑:我總算領(lǐng)教了標準51是怎么樣的慢
兩個51單片機共用一個晶振的問題
ds18b20的精度設(shè)置?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號