牌子网问答

单片机的算法有哪些

发布时间:2020-06-25 10:44:13

1个回答

miss☆※kiss
多做练习,如果你现在用的C语言开发单片机,想提高自己的算法能力,那建议你多看看C语言的常用算法,然后用单片机板子上的LCD,LED等来验证自己的算法程序。
举一些常用算法例子吧,你可以试试在单片机上实现。
一、嵌入式C语言常用算法举例
算法就是为解决某一特定问题而采取的具体有限的操作。具有有穷性、确定性、可执行性、领个或多个输入以及一个或多个输出。
1、冒泡排序算法
将一串数据使用冒泡法进行排序。
将排序后的数据按照从大到小或者从小到大的顺序在LCD液晶上显示出来。
2、回文算法
检测字符串是否是回文字符串,如果是回文字符串,则点亮LED,如果不是,则蜂鸣器响一下。
3、幂运算
程序中随意定义一个无符号整型数据N,然后计算出1*2*3*4*......*N的结果,通过液晶显示出来结果。
4、加法运算
程序中随意定义一个无符号整型数据N,然后计算出1+2+3+4+......+N的结果,通过液晶显示出来结果。
5、求直角三角形边长
用正弦函数,余弦函数,通过已知的斜边长度计算出两个直角边的长度,通过液晶显示出来。
6、在排序好的数组中插入元素
程序中先定义一个排好序的数组,然后用随机数产生函数产生一个随机数,把这个转数组原有的排序方案插入到数组中,通过液晶显示该随机数位于数组的第几个元素。
7、字符串的拼接
程序中定义两个字符串,然后将它们拼接为一个字符串,通过液晶显示出来。
8、闰年判断
编写一个判断闰年的程序。
9、字符串查询
在一个现有字符串中查找另一个字符串,如果找到则点亮LED,否则蜂鸣器响。
10、输出三位水仙花数
所谓水仙花数,是指一个三位数,其各位数字立方和等于该数本身。
例如,153是一个水仙花数,因为153=1的3次方+5的3次方+3的3次方。
11、计算某个日期对应该年的第几天
例如:编写程序计算2018年5月1日对应2018年的第几天。
12、输出月份对应的英文名称
例如:编写程序计算2018年5月对应的英文名称。
二、常用数字滤波算法
编写一个AD转换程序,分别使用下面的滤波算法实现滤波功能。
1、程序判断滤波
2、中值滤波
3、算术平均滤波
4、去极值平局滤波
5、滑动平均滤波
6、滑动加权滤波
7、一阶滞后滤波

扩展问答

以下这些牌子的单片机质量都很好,是单片机的十大品牌:1.柯伦单片机(十大单片机品牌,柯伦);2.聪明屋单片机(十大单片机品牌,聪明屋);3.晟记数码单片机(十大单片机品牌,晟记数码);4.大联欢数码单片机(十大单片机品牌,大联欢数码);5.世讯单片机(十大单片机品牌,世讯);6.电子工业出版社单片机(十大单片机品牌,电子工业出版社);7.中国电力出版社单片机(十大单片机品牌,中国电力出版社);8.科学出版社单片机(十大单片机品牌,科学出版社);9.博库网单片机(十大单片机品牌,博库网);10.ic单片机(十大单片机品牌,ic)。
一、单片机和ARM在硬件上的区别
首先是位数上的区别,单片机一般是8位的(也有4位和16位的单片机,但是种类比较少),ARM一般是32位的。
其次是功能上的区别,这个区别其实有些牵强,ARM一般有更多的功能模块和更大的程序空间、数据空间,而单片机的功能和空间相对小一些(对于高端单片机来说,它的功能模块与ARM已经不相上下了)。
二、单片机和ARM在软件上的区别
单片机和ARM最大的区别是:ARM引入了操作系统。引入操作系统的好处是
1、方便
ARM引入了操作系统主要体现在后期开发上,即在操作系统上开发应用程序。而单片机的程序每次都要重新写。
2、安全
这是linux的特点,linux的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统崩溃。单片机的软件开发中做不到这些。
3、高效
引入进程的管理调度系统,使系统的运行更加高效。单片机开发中大多基于中断的前、后台技术,对多任务的管理有局限性。
C语言是最适合单片机编程的高级语言。
对单片机编程来说,首先要考虑的是单片机的程序空间和数据空间都是有限的,所以要让程序尽量短小精悍,以节省程序占用的存储空间。
第二、单片机编程的一个主要对象是对单片机的端口和内部寄存器的操作和配置,这个需要比较精确的时序控制。
第三、单片机算法运算中,尽量使用加法、减法、移位运算,因为乘法和除法运算会非常费时间,尤其是除法,会耗费很多时间,这对于速度本身就有限制的单片机来说,是一个很大的负担。
高级语言可以实现更为优化的算法,更为方便的执行方案,但是,高级语言对程序存储空间的占用要比汇编和C语言多很多。这是最致命的一点,单片机有限的存储空间需要靠精打细算来设计程序,根本经不起高级语言臃肿的代码体积。
高级语言无法实现精确的时序控制。
C语言是一个折中选择
其实用C语言开发单片机也是一个折中方案,因为最适合单片机开发的编程语言实在太过晦涩难懂,并且每一种单片机的汇编指令有很大区别,所以想把一个程序从这种单片机移植到另一种单片机简直是痴心妄想,还不如重新写一遍程序。
而C语言代码执行效率高,也比较精简,更便于移植......所以在现今的单片机编程语言中,C语言才会占据绝对主导地位