基于STC89C51單片機的數字電壓表設計
void CCTestVotDlg::OnOnCommMscomml ()
{VARIANT variant_inp;
COleSafeArray safearray_inp;
LONGlen,k;
BYTE rxdata[1024];//設置字節數組
CString strtemp;
if(m_mscomm.GetCommEvent 0==2)//事件值為2 表示接收到數據
{variant_inp=m_mscomm.GetInput 0;//讀緩沖區
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize ();//得到有效的數據長(cháng)度
for(k=0;klen;k++)
safearray_inp.GetElement(k,rxdata+k);//轉化成BYTE型數組
m_receive=rxdata[0];//將接收到的值賦予
float變量m_receive=m_receive/255;//接收到的數據為(0,255)之間的整數值
m_receive=m_receive*5;//這三步就得到0到5V的電壓值
m_receive=setprecision(m_receive,3)//這個(gè)函數的作用是保留小數點(diǎn)后三位
}
UpdateData(FALSE);//更新編輯框,將數值顯示在編輯框中
}本文引用地址:http://dyxdggzs.com/article/173529.htm
4 結束語(yǔ)
上述實(shí)施方案可在實(shí)踐中很好地實(shí)現整個(gè)樣機的功能,實(shí)際使用證明,該儀器的各項指標都能達到預期效果。本文對使用MSComm串行通信的方法做了著(zhù)重的分析,同時(shí)分析了ActiveX技術(shù)的強大功能、充分的靈活性和易用性,具有一定的實(shí)踐意義。
評論