学习51单片机的四个误区

发布者:TechVoyager最新更新时间:2015-03-20 来源: diangon关键字:51单片机  四个误区 手机看文章 扫描二维码
随时随地手机看文章
  51单片机指MCS-51系列单片机,CICS指令集。由Intel公司开发,其结构增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源,内有128个RAM单元及4K的ROM。其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前国内的51单片机市场主要为国产宏晶的产品STC系列其号称低功耗,稳定与廉价的特点。

  误区1:51单片机是学习的基础

  “51单片机是学习的基础”这句话本身并没有错。在笔者读本科的时候,当时它无疑是学习的基础——毕竟那时没有更高级的单片机可以供使用,国内更没有更高级的教材供参考,老师的水平也是参差不齐,而51单片机正符合这样的需求,不仅有大量的成型的教材,广泛的示例,当时工作的实际项目也是51单片机为主,于是51单片机理所当然的成为当时的学习基础。要知道笔者读本科的时候是2004年,即10年前的东西。按照莫尔定律,电子行业每18个月更新换代,10年前的技术现在已经更新了6代了——事实也确实如此。

  目前32位Crtex-M系列单片机的各种教程已经普及,其学习的难度不断降低。以意法半导体公司的STM32F系列单片机来说,意法半导体在推广产品初期大量赠送了核心板。免费赠送的核心板不仅有流行的32位Cortex-M系列微处理器,更在板上集成在线调试器。随机附赠的光盘或者链接更是提供了大量的示例源代码。我们只需要安装开发环境即可直接编译与下载调试。这时,如果再说51单片机是学习嵌入式的基础肯定是不合时宜了。

  误区2:51单片机可以学习寄存器的操作

  51单片机可以学习寄存器的操作,这一点儿是不容置疑的。我们分析一下其更深层的原因。在MSC-51单片机的编程环境中,最初是以汇编语言为主要编程语言。要知道汇编语言就是直接操作寄存器的,汇编语言是无法做到C语言的函数调用与封装的。如果说51单片机是以操作寄存器为优点,笔者觉得更应该说51单片机操作寄存器是一种无奈,是只有一个选项的选择题。

  我们现在的Cortex-M系列单片机就无法学习寄存器了吗?显然不是。在硬件设计中,硬件的操作方式就是寄存器的操作,但是其实现却是可以不同。各微处理器提供的C语言库函数包其实质就是将操作寄存器的指令进行了C语言环境下的封装。我们这里用ST官方库函数举一个示例:

  void USART_Init (USART1, *USART_InitStruct);//实现串口1的初始化,简单明了,无需注释

  笔者在这里也想举一个示例来说明寄存器操作的步骤,但是操作寄存器实在是太复杂了,笔者不想去浪费时间去整理了。

  通俗易懂的C语言,方便移植的C语言与硬件平台相对应的编译器联合,就能完成硬件的操作。有了简单、方便的方式,我们为什么还要考虑繁琐,复杂的汇编语言与寄存器操作呢?

  误区3:51单片机的成本低

  成本都是左右应用的主要因素。项目的立项主要考虑成本,销售的定价主要成本。低成本的方案才会在市场里占有优势。可是,51单片机真就是最低成本了吗?非也。现在按照功能划分,部分Cortex-m0系列的32位单片机的成本也能做3元人民币。其性能已经是51单片机的好几倍了,而且更容易开发与维护。

  还有另外一个成本:开发难度成本。51单片机不支持在线调试,有一些问题在编程初期没有发现,只有与硬件连接后才会显现出现来,例如控制操作中经常用到的延时。这时在线调试的巨大优势就体现出来了,它可以极其方便的查看微处理器当时的状态,使得问题的分析变得简单而透明。从而,有效降低开发的难度,缩短开发周期,节约开发资金。

  误区4:51单片机入门简单

  51单片机入门简单?笔者对于这个观点持保留意见。想要入门51单片机,不仅熟悉该款单片机外设,而且还要充分了解寄存器的某位的意义。对于时钟,定时器的配置必须了如指掌。这样无疑会增大学习难度与熟悉的周期。如果我们使用32位单片机的库函数模式,我们只需要具备C语言的知识,了解API函数,直接看已经注释过的寄存器意思即可,不需要了解其底层的硬件实现,更不需要了解某个寄存器某个指定位的意义了。这样,减少了工作量,从而降低了开发难度。你说是51单片机入门简单,还是32位Cortex内核微处理器简单?

关键字:51单片机  四个误区 引用地址:学习51单片机的四个误区

上一篇:单片机的引脚图及引脚功能以及单片机简易编程
下一篇:8051单片机串行口扩展LED显示器接口与应用

推荐阅读最新更新时间:2024-03-16 13:55

51单片机蓝牙小车+TB6612控制
51蓝牙小车,通过蓝牙APP发送指令让小车前进后退,左转,右转。 模块化的插件,让你低成本,低基础,完成这个设计。 电路原理图如下: 单片机源程序如下: #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int unsigned char tmp; unsigned int c=0; uint Count; uint Degree=50; sbit PWMA=P2^0; sbit AIN2=P2^1; sbit AIN1=P2^2; sbit STBY=P2^3; sbit BIN1=P2^4; sb
[单片机]
<font color='red'>51单片机</font>蓝牙小车+TB6612控制
51单片机对LED点阵屏的设计
LED点阵屏发光亮度强,指示效果好,可以制作运动的发光图文,更容易吸引人的注意力,信息量大,随时更新,有着非常好的广告和告示效果。笔者此处就LED点阵屏动态扫描显示作一个简单的介绍。 1. LED点阵屏显示原理概述 图1-1为一种8x8的LED点阵单色行共阳模块的内部等效电路图,对于红光LED其工作正向电压约为1.8v,其持续工作的正向电流一般10ma左右,峰值电流可以更大。如下图,当某一行线为高电平而某一列线为低时,其行列交叉的点就被点亮,当某一行线为低电平时,无论列线如何,对应的这一行的点全部为暗。LED点阵屏显示就是通过一定的频率进行逐行扫描,数据端不断输入数据显示,只要扫描频率足够高,由于人眼的视觉残留效应,就可以看到
[单片机]
<font color='red'>51单片机</font>对LED点阵屏的设计
51单片机项目设计:定时宠物喂食系统
链接:https://pan.baidu.com/s/1CKrXkIHite1LWaWM26gjeQ 提取码:abcd 取走点赞哦~ 题目要求: 一、拟解决的主要问题 1、仔细分析题目要求,理解投食器工作原理,明确工作任务和设计要求,确定整体设计方案,选定单片机以及相关传感器等元器件,实现投食器设定时间,按设定时间发出响声,吸引宠物过来并自动投放食物等功能; 2、通过Proteus软件进行设计与仿真,给出系统硬件设计框图、元件选择及各部分电路原理图; 3、软件程序流程并编写程序; 4、软硬件联合调试; 5、完成实物焊接,调试实物, 二、设计方案 基于单片机的自动投食器设计,通过模块化的设计,利用ST
[单片机]
<font color='red'>51单片机</font>项目设计:定时宠物喂食系统
51单片机之定时器\计数器的工作原理
定时器/计数器的结构: PS:此处涉及到了TCON和TMOD特殊功能寄存器,详见51单片机之特殊功能寄存器SFR篇 TH0、TH1:俩个加法型的计数变量,当外部产生一次时钟信号时,计数加一,直到加到最大值时发生溢出 何时处于计数器方式?何时处于定时器方式? 1、当计数变量使用单片机内部的时钟作为时钟源,我们称这种方式为定时器方式 2、当计数变量使用片外引脚P3.4、P3.5上存在的方波脉冲的时候,我们称这种方式为计数器方式 在使用片外引脚P3.4、P3.5上存在的方波脉冲时,需要俩个机器周期的时间才能确定一次脉冲信号,即需要产生下降沿时才能确定一次脉冲信号 TCON和TMOD特殊功能寄存器: 定时器/计数器工
[单片机]
<font color='red'>51单片机</font>之定时器\计数器的工作原理
51单片机教程(三):单片机串口通信实例
简介:上讲介绍并应用了单片机内部定时器和中断,并给出了实例。这一讲将介绍单片机上的串口通信。通过该讲,读者可以掌握单片机上串口的工作原理和如何通过程序来对串口进行设置,并根据所给出的实例实现与PC 机通信。 一、原理简介 51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个
[单片机]
<font color='red'>51单片机</font>教程(三):单片机串口通信实例
51单片机入门模板(STC89C52RC)
该模板适用于51单片机入门,比较易于理解,包含定时器和串口的操作。 可以在定时器T0中断服务函数和主循环中实现主要功能,在UART中断服务函数(T1定时器)中实现简单的串口通信接收命令的功能。 注:本模板STC89C52RC单片机使用11.0592MHz的晶振,若使用12MHz晶振可修改定时器相关位置 STC89C52RC原理图 模板及分析 1.主要结构 #include reg52.h unsigned char T0RH = 0; //T0重载值高字节 unsigned char T0RL = 0; //T0重载值低字节 unsigned char RxdByte = 0; //串口接收到的字节
[单片机]
<font color='red'>51单片机</font>入门模板(STC89C52RC)
手把手教学51单片机 | 第一课——点亮发光二极管
1、熟练掌握二进制转换成十六进制 四位二进制对应十六进制的1位。 2、二极管 二极管是具有单向导电性,所以给二极管的正极上高电平,负极上低电平,就能点亮二极管,流过二极管的电流为3mA-10mA,电压1.7V,所以需要(5V-1.7V)/3mA≈1K的限流电阻防止二极管被烧坏。 3、点亮发光二极管 51单片机所有的I/O口上电之后默认都是高电平,根据单向导电性,将连接芯片的P1端口上低电平后就能点亮二极管。(可忽略中间的74HC573锁存器,感兴趣参考我发的第六课中最后的代码) #include reg52.h //头文件 sbit D1=P1^0;//定义 void main() { //点亮第1盏灯
[单片机]
基于MCS-51单片机的电气控制线路接线故障诊断系统
   0 引言   在电气控制类课程的教学中,常规的训练项目主要有三相异步电动机的点动控制线路、连续运行控制线路、正反转控制线路、顺启逆停控制线路、降压启动控制线路、接触器联锁正反转控制线路的安装、接线与调试等实训项目。 在教学过程中,教师对学生训练结果的检查和考评是一件很繁琐的事,人工检查效率低、安全性差,稍有不慎就会造成跳闸、烧毁线路等电气事故。电气控制线路接线故障诊断系统能够自动检查学生接线所存在的问题,并能提示接线故障的所在,禁止带故障合闸通电试验,保证训练过程的人身安全和设备安全。 另外,配合接线故障诊断系统管理计算机以及相应的管理软件,可组成智能化的电气控制实训室,能够方便快捷地对每个学生的接线情况自动
[单片机]
基于MCS-<font color='red'>51单片机</font>的电气控制线路接线故障诊断系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved