導航:首頁 > 操作系統 > 單片機累積誤差解決方法

單片機累積誤差解決方法

發布時間:2022-08-17 13:11:30

⑴ 為什麼51單片機的定時器計時不準確

中斷函數裡面盡量少放語句,如果產生脈沖波形就只放一個

⑵ 單片機延時誤差的問題,求大神解答

一般是由於C語言代碼轉換成匯編代碼後,語句的多少不同,造成累計誤差。

例如: while(x--) ; 和 while(--x); 的匯編語言代碼長短是不同的

解決,最好用定時器代替延時函數,或者精確計算匯編代碼的C代碼,或C語言中嵌入匯編代碼 等

⑶ PLC程序如何消除累積誤差

如果是通用口脈沖控制:那麼DOG+Z方式回原點,可以保證每次起始點是一樣的。以前做轉盤設備的時候,是這樣處理的。這種架構一直做相對運動,的確會產生累積誤差。DOg+Z方式也可以用一次絕對值定位零點來替代,當然如果前進了很多,這個動作一般無法接受。

如果位置信息反饋到控制器,或者是運動匯流排伺服做的:那麼改變下編程,用相對運動方式,命令脈沖= 目標位置 - 當前位置。這樣就可以補償累積誤差。

⑷ 基於單片機的萬年歷設計的誤差主要有哪些

看你採用什麼方法,如果採用時鍾晶元,如DS1302,誤差只與外部32768晶振有關,如果以單片機本身定時器來實現,則與單片機的晶振有關,與程序中中斷的處理也有關系,有時一兩條指令看似對時間影響𣎴大,但長時累積也會表現出明顯誤差

⑸ 基於51單片機的頻率測量及測量誤差

可以用對單位時間內 脈沖個計數的方法來實現,用2個 定時/計數器 ,一個作為定時器,定時50 ms,累積10次或20次,即0.5S或1S
另外一個作為計數器,對外部脈沖計數
誤差與晶振頻率准確度有關,測量與時間有關的量,你本身的時間當然要准確。如果所測信號頻率高,可以測0.2s或0.5S內的脈沖數,可以防止溢出,如果頻率低,可以測1S或2S內的脈沖數,以減小誤差,但響應速度慢一些。
程序比較簡單,以下供參考
void init()//初始化設置
{
TMOD=0x15;//定時器0作為計數器,定時器1作為定時器用
TH0=0;//計數器清0
TL0=0;
EA=1;//開總中斷
ET1=1;//允許定時器1中斷
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;//啟動計數器
TR1=1;//啟動定時器
aa=0;
}

void main()//主程序
{
init();//初始化
while(1)//循環程序
{
dd=bb*256+cc;//0.5S的計數值
ee=2*dd;//換算為1秒鍾的計數值
if(aa==1)
{
if(TH0>12)//預判斷,50ms內TH0>12,1s內計數值將超過可計數的最大值65535
fm=1;//報警
}
display4(ee);//顯示
fm=0;//報警停止
}
}

void timer1()interrupt 3//注意:定時器1的中斷序號為3
{
aa++;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;

if(aa==10)//中斷10次,共0.5S
{
TR0=0;//暫停計數
aa=0;
bb=TH0;//讀出計數器數據
cc=TL0;
TL0=0;//計數器清0
TH0=0;
TR0=1;//重新啟動計數器
}
}

⑹ 單片機:用計時器給LCD計時間每一秒可能都會多個幾毫秒,要怎麼能減小這種誤差

千分之幾的誤差,用定時器計時的這種方法誤差很難消,
實在想消的話,可以用下面幾種法子試試:
1. 挑選晶振,晶振頻率有差,挑選個頻率高一點的。

2. 調大計數器的初值,然後在中斷服務 子程序中讓計數器停止計數、馬上再啟動計數,目的是微微調整定時的周期。

兩種方法都較難調好,要慢慢試,最好改其它定時法。比如用1302等晶元

⑺ 12MHZ單片機串口通信時老是出錯~從單片機傳到上位機~00h變成80h 01h變成81h怎麼解決這個誤差~求解~謝謝~

使用11.0592MHZ晶振,或降低波特率,找到誤差小於5%的波特率發生器那個波特率。

⑻ 如何用單片機的定時器精確定時

用單片機本身的定時來做電子表,我個人認為,這種方法不可取,

現在有很多時鍾晶元,與單片機介面也很簡單,它有專門的外部晶振,而且在時間精確是,是絕對准確的。只要你能夠按照時序與它產生通訊,就可以達到時間的精確。

畢竟,單片機本身不是專讓用來做時鍾的,而專門的時鍾晶元才會有此條件。

這是我們公司主板時鍾電路圖,此晶元除了時鍾功能,還自帶2KBFLASH存儲器,雙功能,你可以參考一下。比起你用單片機模擬定時,效率高得多,而且與單片機的介面只有兩根線,介面簡單,操作方便,關鍵還可以當EPPROM用。

如果你要具體資料,可以聯系我,我還可以給你提供程序參考

⑼ 系統誤差有累積性那要怎麼消除誤差

平差消除。知道初始誤差,再知道終極誤差,相減再除以節點數,就是每個節點的平均誤差。節點數的累加數乘以每節點的平均誤差,就是這個節點的誤差。

閱讀全文

與單片機累積誤差解決方法相關的資料

熱點內容
a3雙面列印pdf 瀏覽:270
被命令文言文 瀏覽:717
c語言編譯器在線菜鳥 瀏覽:214
安卓如何使用華為手機助手 瀏覽:701
怎麼查看域伺服器名稱 瀏覽:775
如何把蘋果的視頻傳到安卓手機 瀏覽:612
介面伺服器怎麼使用 瀏覽:62
蘋果怎麼實現安卓全面屏手勢 瀏覽:977
拳皇97最強宏命令 瀏覽:921
linux安裝svn查看 瀏覽:850
內置函數計算絕對值python 瀏覽:88
千聊免費課程可以重新加密嗎 瀏覽:507
python能代替php嗎 瀏覽:252
phpexcel樣式 瀏覽:265
安卓手機有沒有什麼軟體可以阻止彈廣告的 瀏覽:306
linux區域網搭建伺服器 瀏覽:690
python編譯器mac 瀏覽:293
windows的doc命令 瀏覽:463
nfc全加密門禁卡 瀏覽:636
身份信息被加密 瀏覽:482