矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 7274|回复: 19

哪种单片机更高级?

[复制链接]
     
发表于 2017-1-11 16:24:07 | 显示全部楼层 |阅读模式
已知有很多种单片机,51单片机能实现的功能实在太少了。哪种单片机可以实行多任务运行呢
     
发表于 2017-1-14 23:36:39 | 显示全部楼层
本帖最后由 Edward 于 2017-1-14 23:37 编辑

楼主的多任务运行指的是什么呢?一般理解的多任务运行就是像电脑那样的实现多任务,多个任务并不是真正的并行执行的,如果真的需要高度实时的并行处理,那么就需要用楼上有朋友说的FPGA等等了。

一般理解的多任务运行,是由操作系统实现的,对于处理来说,同时只执行一个任务(对于单核处理器,下同),只不过是操作系统将时间分成很细的区间,每个区间执行一个任务,下一个区间执行另一个任务,这些区间很小,人感觉不出来,所以整体看上去就是多个任务在一起执行,这就是任务调度,是操作系统的基本作用之一。

想实现简单的多任务调度,可以使用状态机,而不使用更为复杂的操作系统。举个例子,比如你想在单片机进行数码管扫描的同时还能进行矩阵按键扫描,这就是一个多任务处理的典型例子,使用状态机可以很容易的实现:定义一个变量A=0时执行数码管扫描,A=1时执行按键扫描,假设初始时A=0,设定单片机内置定时器每2ms触发一次中断,进入中断函数,判断A=0,那么执行数码管扫描,计算好显示内容,并将显示位移动一位以刷新,然后将A置1,退出中断;当定时器再次触发中断,进入后判断A=1,那么扫描按键情况,然后将A置0,再根据按键情况作出相应动作,并在适当时候退出中断。这样就通过状态机完成了一个简单的任务调度,实现了简单的多任务处理。

有一篇文章,楼主可以看看应该会很有帮助:《从单片机编程到操作系统产生》,网上可以搜到。

补充内容 (2017-1-15 11:31):
第二段少了一个字,“对于处理器来说”
回复 支持 1 反对 0

使用道具 举报

     
发表于 2017-1-11 20:42:24 | 显示全部楼层
51单片机能实现并行多任务,可以使用keil 提供的RTOS51实时操作系统,这个系统本身提供几个例程,也可以自己开发小型操作系统,若没有计算机操作系统开发经验推荐前者。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-1-14 04:46:55 | 显示全部楼层
la45088d1 发表于 2017-1-11 18:00
并行处理首选FPGA,或是像XMOS这一类具有多逻辑核心的单片机。

好的,以后多研究研究
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-1-14 04:48:20 | 显示全部楼层
风流侠客 发表于 2017-1-11 20:42
51单片机能实现并行多任务,可以使用keil 提供的RTOS51实时操作系统,这个系统本身提供几个例程,也可以自 ...

好的,这个要试试
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-1-14 04:50:16 | 显示全部楼层
又买了几块51单片机
回复 支持 反对

使用道具 举报

     
发表于 2017-1-14 06:45:03 | 显示全部楼层
51就可以多任务,这个问题的结果就是哪个合适就用那个,很多时候需要简单的东西。
回复 支持 反对

使用道具 举报

     
发表于 2017-1-14 12:56:45 | 显示全部楼层
刚开始接触单片机,51系列是入门必选
回复 支持 反对

使用道具 举报

     
发表于 2017-1-14 23:47:45 | 显示全部楼层
哦,对了,我刚刚那段其实想表达的就是一般理解的多任务运行与单片机本身关系不大,只是有可能51本身的性能不够了,比如说刷新TFT屏、高速浮点运算等等,如果51性能够的话,实现多任务或者使用操作系统都是没问题的。
回复 支持 反对

使用道具 举报

     
发表于 2017-1-15 06:37:01 | 显示全部楼层
51你就不要奢求其做太多的工了,反过来想应该是这样打比方:甲的老婆高级还是乙的老婆高级

我没弄过操作系统,但感觉应该就这几步:
1.嘀嗒嘀嗒响
2.每个嘀嗒中要检查'哪个任务优先权最高'
3.切换任务
4.当然其中还会涉及到阻塞、释放、唤醒之类的

任务切换时要保护现场,感觉51会忙不过来的。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2017-1-15 06:58:34 | 显示全部楼层
Edward 发表于 2017-1-14 23:36
楼主的多任务运行指的是什么呢?一般理解的多任务运行就是像电脑那样的实现多任务,多个任务并不是真正的并 ...

多谢了,解释得那么详细!刚入门,玩单片机还有很长的路要走
回复 支持 反对

使用道具 举报

     
发表于 2017-1-15 11:30:12 | 显示全部楼层
longker 发表于 2017-1-15 06:37
51你就不要奢求其做太多的工了,反过来想应该是这样打比方:甲的老婆高级还是乙的老婆高级

我没弄过操 ...

用100M主频的C8051F系列
回复 支持 反对

使用道具 举报

     
发表于 2017-1-15 12:18:27 | 显示全部楼层
高级单片机来了


cr10371.jpg

cr10374.jpg



运行 Windows 系统,用 Visual Studio 开发,不知道是否满足楼主多任务要求?
cr10373.jpg
回复 支持 反对

使用道具 举报

     
发表于 2017-1-19 10:16:51 | 显示全部楼层
树莓派是卡片式电脑,不能算单片机。单片机机的定义是芯片内含总线、RAM、ROM、定时器、ADC、PWM等硬件资源。而树莓派的主芯片是CPU内明显不包含这些。说的这些资源都是在芯片外的。

高级的单片机是当前的32位单片机,例如ST的STM32,还有Nuvnoto和NXP公司的芯片等。
回复 支持 反对

使用道具 举报

     
发表于 2017-1-19 20:56:01 | 显示全部楼层
fogota 发表于 2017-1-19 10:16
树莓派是卡片式电脑,不能算单片机。单片机机的定义是芯片内含总线、RAM、ROM、定时器、ADC、PWM等硬件资源 ...

没有这个定义,8031 就没有 ROM 实际上,外挂 ROM 和 RAM 的单片机也很多,没有片内 ADC,PWM 的单片机也很多。

实际上,树莓派的 CPU 片内还真有 ROM,不过这个 ROM 一般用户无法编程,它里边有一段出厂前烧好的程序,负责初始化硬件,然后从 SD(TF)卡引导操作系统 --- 也就是说,很类似于普通 PC 的 BIOS。

8051 为代表的是第一代单片机(SCM)
AVR、STM 为代表的是第二代单片机(MCU)
树莓派的那玩意叫做 SoC,是第三代单片机


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-26 01:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表