基于LabVIEW的單片機脈沖發(fā)生器
在接收到數(shù)據(jù)后,單片機有一條反饋的指令,他將其緩沖區(qū)內(nèi)的值再次送回上位機,LabVIEW對該值進行顯示,并可以和原來實際輸出的16進制數(shù)進行比較。用戶可以很方便地知道,是否在上下位機通信中出現(xiàn)誤碼。
本文引用地址:http://cafeforensic.com/article/173904.htm圖6左側(cè)的倒三角表示從圖4(a)的VISA Read中接收到的值,他與LabVIEW上一次顯示的值拼裝成一個完整的字符串,成為新的顯示值,在字符串顯示區(qū)顯示出來。
4 程序運行結(jié)果與驗證
程序的前面板界面如圖7所示。
圖8是另一個程序的前面板,該程序可以將采樣率設(shè)定為50 kHz的采集卡采集到的數(shù)據(jù)顯示在屏幕上。該屏幕顯示的是,上位機程序發(fā)送欲產(chǎn)生高低電平均為0.6 ms脈沖波的定時器初始值給下位機后,下位機產(chǎn)生的脈沖序列。
上位機發(fā)送的16進制數(shù)為FDA8FDA8,下位機準確接收后,反饋的值也為FDA8FDA8。
根據(jù)采樣率為50 kHz,即0.02 ms采樣一次,則在顯示波形圖中任選一次完整脈沖(如圖8所示)進行計算,可以得到該次的低電平的持續(xù)時間為0.66 ms,高電平的持續(xù)時間為0.68 ms。
這兩個數(shù)據(jù)的誤差可能是采集卡的采樣率誤差引起的,或是單片機的定時器中斷服務(wù)程序的執(zhí)行周期產(chǎn)生的延時所造成的。
另外,在上下位機的通信中,也可能會產(chǎn)生誤碼,導(dǎo)致產(chǎn)生的波形不符合要求。如果要一次性完成數(shù)據(jù)傳輸?shù)娜蝿?wù),則應(yīng)該在上下位機間增加可糾錯的編碼和譯碼電路,否則,可以選擇再次發(fā)送數(shù)據(jù),當(dāng)返回值與發(fā)送值一致時,才可認為發(fā)送成功,產(chǎn)生的波形基本可以符合要求。
5 結(jié)語
本文用RS 232串行通信接口將計算機與單片機相連,組成一個可控脈沖發(fā)生器用于皮膚阻抗檢測。上位機用LabVIEW編程,產(chǎn)生的界面友好,操作方便。這種可控脈沖發(fā)生器編程靈活,不僅可以產(chǎn)生方波,還可以產(chǎn)生三角波,正弦波等,基本可以滿足實驗的要求。
評論