單片機(jī)控制大部分是面向硬件的,關(guān)于這些物理硬件的控制,最重要的就是調(diào)節(jié)速度和精度,下面小編為大家介紹單片機(jī)的算法有哪些?如何提高單片機(jī)的算法?
多做練習(xí),如果你現(xiàn)在用的C語言開發(fā)單片機(jī),想提高自己的算法能力,那建議你多看看C語言的常用算法,然后用單片機(jī)板子上的LCD,LED等來驗(yàn)證自己的算法程序。
舉一些常用算法例子吧,你可以試試在單片機(jī)上實(shí)現(xiàn)。
一、嵌入式C語言常用算法舉例
算法就是為解決某一特定問題而采取的具體有限的操作。具有有窮性、確定性、可執(zhí)行性、領(lǐng)個(gè)或多個(gè)輸入以及一個(gè)或多個(gè)輸出。
1、冒泡排序算法
將一串?dāng)?shù)據(jù)使用冒泡法進(jìn)行排序。
將排序后的數(shù)據(jù)按照從大到小或者從小到大的順序在LCD液晶上顯示出來。
2、回文算法
檢測字符串是否是回文字符串,如果是回文字符串,則點(diǎn)亮LED,如果不是,則蜂鳴器響一下。
3、冪運(yùn)算
程序中隨意定義一個(gè)無符號(hào)整型數(shù)據(jù)N,然后計(jì)算出1*2*3*4*......*N的結(jié)果,通過液晶顯示出來結(jié)果。
4、加法運(yùn)算
程序中隨意定義一個(gè)無符號(hào)整型數(shù)據(jù)N,然后計(jì)算出1+2+3+4+......+N的結(jié)果,通過液晶顯示出來結(jié)果。
5、求直角三角形邊長
用正弦函數(shù),余弦函數(shù),通過已知的斜邊長度計(jì)算出兩個(gè)直角邊的長度,通過液晶顯示出來。
6、在排序好的數(shù)組中插入元素
程序中先定義一個(gè)排好序的數(shù)組,然后用隨機(jī)數(shù)產(chǎn)生函數(shù)產(chǎn)生一個(gè)隨機(jī)數(shù),把這個(gè)轉(zhuǎn)數(shù)組原有的排序方案插入到數(shù)組中,通過液晶顯示該隨機(jī)數(shù)位于數(shù)組的第幾個(gè)元素。
7、字符串的拼接
程序中定義兩個(gè)字符串,然后將它們拼接為一個(gè)字符串,通過液晶顯示出來。
8、閏年判斷
編寫一個(gè)判斷閏年的程序。
9、字符串查詢
在一個(gè)現(xiàn)有字符串中查找另一個(gè)字符串,如果找到則點(diǎn)亮LED,否則蜂鳴器響。
10、輸出三位水仙花數(shù)
所謂水仙花數(shù),是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。
例如,153是一個(gè)水仙花數(shù),因?yàn)?53=1的3次方+5的3次方+3的3次方。
11、計(jì)算某個(gè)日期對應(yīng)該年的第幾天
例如:編寫程序計(jì)算2018年5月1日對應(yīng)2018年的第幾天。
12、輸出月份對應(yīng)的英文名稱
例如:編寫程序計(jì)算2018年5月對應(yīng)的英文名稱。
二、常用數(shù)字濾波算法
編寫一個(gè)AD轉(zhuǎn)換程序,分別使用下面的濾波算法實(shí)現(xiàn)濾波功能。
1、程序判斷濾波
2、中值濾波
3、算術(shù)平均濾波
4、去極值平局濾波
5、滑動(dòng)平均濾波
6、滑動(dòng)加權(quán)濾波
7、一階滯后濾波