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