问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机程序里面,经常听说底层,中间层,应用层,什么意思? 51单片机也需要这么分层吗?

发布网友 发布时间:2023-05-04 15:19

我来回答

3个回答

热心网友 时间:2023-10-31 18:53

一般当程序比较大、功能比较繁多,需要进行结构化程序设计的时候,才会进行分层。分层的好处是可以将应用与硬件剥离,当硬件发生变更(移植,设计更改)时只需改动底层以及少量中间层;当需求发生变更时只需改动上层以及少量中间层。

底层一般是直接访问硬件的接口,以串口而言如寄存器操作函数;中间层一般是在底层与上层之间进行数据及信息的转换,以串口而言如封包/拆包/消息产生/消息响应;上层一般面向应用,在很少考虑硬件实现的前提下以通用的方式实现所需的功能,以串口而言如printf。

分这么多层是为了不同程度的开发人员可以同期工作的原因。比如说,底层就雇佣一个特别熟悉芯片和硬件的人做,中间层大概要找比较熟悉应用的人来把硬件功能来做扩展,应用层就随便抓一把人来开发了。

这样,多个项目可以公用一个硬件层,有两到三组中间层的支持工程师,然后每个项目各有一组应用工程师就好了。51也可以这样做,这和效率无关,层做得好,执行效率不会影响很大,开发效率提高很多。

扩展资料:

单片机的应用:

1,通用专用:

这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

2,线型应用:

这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积。

3,控制型应用:

这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是唯一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

热心网友 时间:2023-10-31 18:53

分层写的好处有三:
1 开发的快速性
诚如楼上那位所言,把一个工程分成 底层\中间层\应用层编写,程序员也分为底层程序员,
中间层程序员,应用层程序员,只要三者协调好了,那么开发过程可以并行进行,节省开发时间,
缩短周期,能快速占领市场,也有利于公司产品的保密
2 系统安全性与程序可读性
这个举例说明:比如空调系统,当室内温度高于30度或者室内湿度高于60时,开启压缩机,
如果高压或者低压,则关闭压缩机
//----以下是举例----------------------
sbit Compress = P1^1;
unsigned char CmpOpen = 0;
unsigned char Temperature = 0,Humidity = 0;
unsigned char CmpErr = NO_Err;

//----以下是应用(中间)程序----------------------
if((Temperature >= 30)||(Humidity > 60))
{
CmpOpen = OPEN;

}
if((CmpErr == HIGHPRESS)||(CmpErr == LOWPRESS))
{
CmpOpen = NO_OPEN;
}
//----以下是底层程序----------------------
if(CmpOpen == OPEN)
{
Compress == OPEN;

}
else
{
Compress == CLOSE;
}
以上例程中,通过CmpOpen这个变量的状态,决定了最终单片机引脚的状态,使得实际中
压缩机只开一次,如果你用Compress代替应用层中的CmpOpen,那么有可能会现瞬间压缩机一开一关
,对压缩机来说,必然将损坏,不安全.
如果又为了安全,又直接操作底层,程度就得改成这样
if(((Temperature >= 30)||(Humidity > 60))&&(CmpErr != HIGHPRESS )&&(CmpErr != LOWPRESS))
{
Compress = OPEN;

}
可读性不好,也不方便调试.
3 可移植性
还以上个程序为例,如果你的MCU换成了AVR ATmega16,你是不是还要完全重写程序呢?
答案是只重写底层部分就行,如下:
#define Compress PORTA
unsigned char CmpOpen = 0;
unsigned char Temperature = 0,Humidity = 0;
unsigned char CmpErr = NO_Err;

//----以下是应用(中间)程序----------------------
if((Temperature >= 30)||(Humidity > 60))
{
CmpOpen = OPEN;

}
if((CmpErr == HIGHPRESS)||(CmpErr == LOWPRESS))
{
CmpOpen = NO_OPEN;
}
//----以下是底层程序,只需要修改这个----------------------
if(CmpOpen == OPEN)
{
Compress |= 0x01;

}
else
{
Compress &= ~(0x01);
}
试想,如果你把底层写到了应用层中,
if((Temperature >= 30)||(Humidity > 60))
{
CmpOpen = OPEN;

}
if((CmpErr == HIGHPRESS)||(CmpErr == LOWPRESS))
{
CmpOpen = NO_OPEN;
}
那么修改量不是很大?移植过程不是很麻烦?
我使用的例程只是很简单的,实际运用中,要复杂很多,就更要分层,以方便移植.

热心网友 时间:2023-10-31 18:54

追加几分吧。

分这么多层是为了不同程度的开发人员可以同期工作的原因。

比如说,底层就雇佣一个特别熟悉芯片和硬件的人做,中间层大概要找比较熟悉应用的人来把硬件功能来做扩展,应用层就随便抓一把人来开发了。

这样,多个项目可以公用一个硬件层,有两到三组中间层的支持工程师,然后每个项目各有一组应用工程师就好了。

51也可以这样做,这和效率无关,层做得好,执行效率不会影响很大,开发效率提高很多。

另外51都有100Mhz的了,还算性能不好?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如果x-3的绝对值等于0,则x+6的绝对值等于什么.-(-x)等于什么 ...值是否能等于0?如有写出此时x的值,没有请说明理由。 x-3的绝对值+x-6的绝对值是否有最小值?如果有,写出最小值;如果没有,说... x-3的绝对值+x-6的绝对值的值是否有最小值,如果没有,请说明理由 对于任何有理数,x-3的绝对值加x-6的绝对值是否有最小值,如果有写出来... ...+丨x-6丨是否有最小的绝对值,如果没有请说明理由。(需? 葱油饼用泡多源好吗 童话生死恋 歌词 如何在未曾越狱的的ipad上玩网页游戏 ipad4没越狱 想要网页游戏该怎么弄? 一个女孩给我电话,和我表白,我告诉她我有女朋友了,她居然问我,你会跟她结婚吗?你喜欢她吗? 船舶公司dnc证书是什么证书 表白成功了是什么意思 24岁成都妹子告白后结婚了吗 女方提结婚正常吗? 发盒饭在朋友圈说明什么心情 发饭盒啥意思 干预机制是什么意思 手机屏幕摔坏了,对手机有没有影响? 您好,我想问一下,双显卡(集成显卡和独立显卡)之间切换是自动的,还是需要人为干预设置的呢 阿弥陀佛!图腾是什么意思 梦见自己找别人算命 梦见找算命的算命的预兆 佛教里的图腾是什么意思呀 在中国电信什么叫中高端拍照用户 工商银行卡封控提供流水就能解封吗 龟头过于敏感平时怎么办 导航CAN BUS连接失败什么意思 怎样才能降低龟头敏感度?我三年前做过包皮手术 龟头非常过敏怎么办啊,有办法减少敏感度吗? 我打开机箱,怎么机箱前面的电源 连接线 ,电源灯 连接线都没有 标注 插的位置啊?只能看到一排针状 什么叫小白提升班 男人提出分手叫你不要等了,是什么心理 浪淘沙是一个什么平台啊? 手背上长的小白斑点怎么回事去年去医院皮肤科检查结果是没事 故宫的文创产品为什么能成功? 肿瘤病理分型 奈雪的茶现金券50元一单用不完怎么办 胃癌病理分型有哪些 故宫新媒体营销的影响 六配套是什么? 弹性最好的材料排行 液晶电视电源板没有标注怎么办 梦见在水里抓鱼和蛇的预兆 电源插座无标识是否属于安全隐患 男朋友对自己说他不够好让自己别等了是什么意思 如果我的电脑电源标识上没有标注电源额定和最大功率,是不是可以认为电源是质低山寨的 男朋友回家了,一个星期后说你别等我了,你等不了,这什么意思? 谁知道这个东西接电源线这头分不分正负极~ 如果分的话为什么没有标注 如果不分为什么我接 什么材料最有弹性