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