㈠ 单片机程序中的底层驱动程序和应用程序
驱动程序与硬件相关,编写驱动程序要非常了解硬件,同时给应用层提供API函数接口,应用层可以调用这些接口去访问硬件而不必了解硬件.
应用程序是根据实际应用去编写.
比如说你有一个应用是控制每天早上六点钟开灯.应用程序只负责在适当的时间做适当的事(到六点了,我要开灯了,按下按键);具体它不知道为什么按下键就能开灯,因为按下键后开灯的事情就是驱动程序完成了.
㈡ 单片机程序里面,经常听说底层,中间层,应用层,什么意思 51单片机也需要这么分层吗
一般当程序比较大、功能比较繁多,需要进行结构化程序设计的时候,才会进行分层。分层的好处是可以将应用与硬件剥离,当硬件发生变更(移植,设计更改)时只需改动底层以及少量中间层;当需求发生变更时只需改动上层以及少量中间层。
底层一般是直接访问硬件的接口,以串口而言如寄存器操作函数;中间层一般是在底层与上层之间进行数据及信息的转换,以串口而言如封包/拆包/消息产生/消息响应;上层一般面向应用,在很少考虑硬件实现的前提下以通用的方式实现所需的功能,以串口而言如printf。
分这么多层是为了不同程度的开发人员可以同期工作的原因。比如说,底层就雇佣一个特别熟悉芯片和硬件的人做,中间层大概要找比较熟悉应用的人来把硬件功能来做扩展,应用层就随便抓一把人来开发了。
这样,多个项目可以公用一个硬件层,有两到三组中间层的支持工程师,然后每个项目各有一组应用工程师就好了。51也可以这样做,这和效率无关,层做得好,执行效率不会影响很大,开发效率提高很多。
单片机的应用:
1,通用专用:
这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
2,线型应用:
这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积。
3,控制型应用:
这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是唯一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
㈢ 单片机底层开发指的是什么
单片机底层开发一般指利用单片机的固有资源完成的控制功能的软硬件开发,比如通讯协议及驱动(SPI,232,485,IIC,CAN,IR等)、AD转换、各种现场控制、各种环境状况测控、电机控制、电磁阀、继电器控制、键盘扫描、LED和LCD显示等等。
㈣ 单片机里面有程序吗程序怎么才能读出来
最早的单片机里面是没有程序的,程序是在外置的程序存储器里面。现在大多数单片机都把程序银仔凯区做在片内,做到真正的单片机。早期的单片机都是一次性写入(OTP)的,现在很多都是FLASH的,可以反复写的。最早的单片机是没有加密的,是可以直接读出来2进制的机器码,直接就可以写入另外一个单片机中。现在基戚搭本上都做了加密,正常的去读是读不出来的。
㈤ 单片机学习中,敢问各位大虾底层总线驱动程序是自己写还是‘拿来主义’呢
只要有时序图,那么两者基本一样。其实没有所谓的拿来还是使用他们的驱动,功能实现是一致的,只是说如果你写的是上层应用层程序那么底层程序也就不用考虑太细,直接用人家已经测试好的即可;如果你想写底层的驱动程序,对速度又有额外的要求那么推荐按照时序图自己书写。看需求,祝好~
我不知道下面的问题补充是让我们回答什么,见谅。