欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 401|回復: 0
打印 上一主題 下一主題
收起左側

LabVIEW與單片機兩路模擬收發

[復制鏈接]
跳轉到指定樓層
樓主


單片機源程序如下:
/*******************************************************************************  
* 文件名稱:LabVIEW與單片機串口收發測試
*******************************************************************************/

#include <STC8H.H>
#include <intrins.H>

#define uchar unsigned char
#define uint unsigned int        
        
uchar i,num,num1,num2;
uchar sendBuf[4];
bit flag=0;
bit bz=0;

void delayms(int ms);
void allinit();
void UartInit(void);

void main()
{
        allinit();
        UartInit();
        EA=1;
        P07=0;
        
        while(1)
        {
          if(num=='A')P00=0;//LED亮
                else if(num=='B')P00=1;//滅
                if(num=='C')P01=0;
                else if(num=='D')P01=1;
               
                num1=20;  //模擬兩路采集值
                num2=40;
         
                sendBuf[0]=num1/10+'0';
                sendBuf[1]=num1%10+'0';
                sendBuf[2]=num2/10+'0';
                sendBuf[3]=num2%10+'0';
               
                if(num=='R')//接受到采集指令
                {
                        flag=1;
                }
               
                if(bz==0)
                {
                        bz=1;
                        flag=1;
                }   
               
                if(flag==1)
                {        
                  for(i=0;i<4;i++)
                  {
                          SBUF=sendBuf[ i];
                          while(TI==0);
                          TI=0;
                  }
            }
        }
}

//----------------------------
//UART1 中斷服務程序
//----------------------------
void Uart1() interrupt  4 using 1
{        
        if (RI)                                //檢測串口1接收中斷
        {
                RI = 0;                        //清除串口1接收中斷請求位
                num=SBUF;
                if(num=='S')
                {
                        flag=0;
                }
        }
        if (TI)
        {
                TI=0;
        }
}   

void UartInit(void)                //9600bps@11.0592MHz
{
        SCON = 0x50;                //8位數據,可變波特率
        AUXR &= 0xBF;                //定時器時鐘12T模式
        AUXR &= 0xFE;                //串口1選擇定時器1為波特率發生器
        TMOD &= 0x0F;                //設置定時器模式
        TL1 = 0xE8;                        //設置定時初始值
        TH1 = 0xFF;                        //設置定時初始值
        ET1 = 0;                        //禁止定時器中斷
        TR1 = 1;                        //定時器1開始計時
        ES = 1;        
}

void delayms(int ms)
{
        int i,j;
        for(i=ms;i>0;i--)
                for(j=845;j>0;j--);
}

void allinit()
{
        P0M0=0X00;P0M1=0X00;
        P1M0=0X00;P1M1=0X00;
        P2M0=0X00;P2M1=0X00;
        P3M0=0X00;P3M1=0X00;
        P4M0=0X00;P4M1=0X00;
        P5M0=0X00;P5M1=0X00;
}

vi文件: 溫控.zip (19.24 KB, 下載次數: 0)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表