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

標題: LabVIEW與單片機兩路模擬收發 [打印本頁]

作者: 太陽雨ZW    時間: 2025-11-13 21:05
標題: 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)





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1