从业将近十年!手把手教你单片机程序框架 第一讲:
(1)很难记住繁杂的寄存器?寄存器不用死记硬背,鸿哥我行走江湖多年,连一个寄存器都记不住。需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。
(2)很难记住繁杂的汇编语言指令?除非是在校学生要应付考试或者少数工作中绕不开汇编,否则学汇编就是浪费时间。鸿哥我行走江湖多年,从来就没有用汇编帮客户做过一个项目。
(3)C语言很难学?你不用学指针,你不用学带形参的函数,你不用学结构体,你不用学宏定义,你不用学文件操作,你也不用死记繁琐的数据类型。你只要会:
- 5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句。
- 7个运算符+,-,*,/,|,&,!。
- 4个逻辑关系符||,&&,!=,==.
- 3个数据类型unsigned char, unsigned int, unsigned long。
- 3个进制相互转化,二进制,十六进制,十进制。
- 1个void函数。
- 1个一维数组code(或const) unsigned char array[]。
那么世界上任何一种逻辑功能的单片机软件你都能做出来。
鸿哥我当年刚毕业出来工作的时候才知道可以用C语言开发单片机,一开始只用if语句就把项目做出来了,没有用指针,没有用带形参的函数等复杂的功能。再到后来才慢慢开始用C语言其他的高级功能,但是我发现C语言其他的高级功能,本质上都是用我前面列举出来的最基本功能集合而成,只是书写更加简单方便了一点,编译后的机器码都大同小异。所以不会指针等高级功能你不用自卑,恰恰相反,当你会最简单的几个语句,就把这些高级功能的程序都做出来了,你才发现你对底层了解得更加透切,再学那些高级功能轻而易举。当你裸机跑的程序都能够协调得很好的时候,你才发现所谓高深的操作系统也不过如此,只要给你时间和金钱你也可以写个操作系统来玩玩。
(4)很难记住精确时间的计算公式?经常看到时间公式等于晶振,时钟周期,执行指令次数他们之间的乘除关系式。鸿哥我认为这些都是浮云,不用纠结也不用去记,大概了解一下就可以了。不管你对公式掌握得有多精确,你都不可能做出非常精确的时间。想用单片机做一个非常精确的时间这种想法一开始就是错的,不可能的。真想做一个比较精确的时间,应该用外围时钟芯片或者FPGA和CPLD,而不是单片机。
(5)很难记住繁杂的各种通信协议?什么IIC,SPI,232串口通讯,CAN,USB等等。这些都是浮云,你不用记那么多,你只要理解两种通讯方式就够了,那就是串行通讯方式和并行通讯方式。不管世界上有多少种通讯协议,物理世界上只有这两种通讯方式,其他各种名称的通讯协议都基于此两种方式演变而来。
(6)很难写短小精悍的程序?初学者不要纠结于此。做项目开发,程序容量不是刻意追求的目标,程序多一点少一点没关系,现在大容量的单片机品种非常多,容量不会是寸土寸金的事情,我们更加要关注程序的运行效率,可读性和可修改性。
既然鸿哥列出了那么多误区,那么什么才是初学者关注的核心?预知详情,请听下回分解----delay()延时实现LED灯的闪烁。
关键字:吴坚鸿 初学单片机 误区
引用地址:
第一节:吴坚鸿谈初学单片机的误区
推荐阅读最新更新时间:2024-03-16 14:47
MSP430初学:MSP430单片机C语言基础(二)
1.进制转换 作为一名”勤快“少年,我自然是: 2.数值数据的表示 1.储存单位 计算机的数据是以二进制形式存在的,所以它的储存单位也与二进制有关 储存单位:位bit,b,是数据储存的最小单位,表示一位二进制信息 字节Byte,B,是信息储存的基本单位,1B由8位二进制数字组成,1B=8b 2.有符号的二进制数 计算机中,无符号位和有符号位的取值范围区别_HD243608836的博客-CSDN博客_符号位 char 8bit 1Byte 2^8=256 C语言各数据类型大小和取值范围_画船听雨眠-CSDN博客_c语言数据类型范围 十进制数有正数和负数之分,二进制数也有
[单片机]
蓄电池工作原理以及使用误区
蓄电池是电池中的一种,它的作用是能把有限的电能储存起来,在合适的地方使用。它的工作原理就是把化学能转化为电能。 它用填满海绵状铅的铅板作负极,填满二氧化铅的铅板作正极,并用22~28%的稀硫酸作电解质。在充电时,电能转化为化学能,放电时化学能又转化为电能。电池在放电时,金属铅是负极,发生氧化反应,被氧化为硫酸铅;二氧化铅是正极,发生还原反应,被还原为硫酸铅。电池在用直流电充电时,两极分别生成铅和二氧化铅。移去电源后,它又恢复到放电前的状态,组成化学电池。铅蓄电池是能反复充电、放电的电池,叫做二次电池。它的电压是2V,通常把三个铅蓄电池串联起来使用,电压是6V。汽车上用的是6个铅蓄电池串联成12V的电池组。铅蓄电池在使用一段时间后
[电源管理]
兆欧表的操作使用误区
兆欧表的操作使用误区 针对摇测10kV变压器的绝缘值,使用ZC系列携带型兆欧表,有的存在三个误区:?? 误区一: 兆欧表的额定电压与被测电气设备的电压不相适应。即测试变压器高压和低压线圈应使用不同的兆欧表;对0.4kV侧线圈的绝缘施加交流2kV作为耐压试验电压,在60s内无击穿、闪络等异常情形,而10kV则是施加交流42kV作为耐压试验电压。所以测量高压对低压、高压对地及铁芯对地的绝缘电阻值应使用2500V,量程为2500MΩ以上的兆欧表。0.4kV侧的低压对地只能使用500V或1000V的兆欧表。若用500V及1000V的兆欧表测量额定电压高于500V和1000V的高压侧,测量结果有误差。若用额定电压太高
[模拟电子]
粉尘防爆电机选择误区_如何选择粉尘防爆电机型号
粉尘防爆电机选择误区 1、一般就是用户在选购防爆电机时,往往被一些相对价格较低的产品所诱惑。因为有绝大多数的防爆使用者认为防爆电机这种产品已经是市面上非常成熟的产品,存在的时间也比较长,而且本身也没有太高的技术含量,可以使用就可以,他们不知道的是,价格低廉的防爆电机产品,而且用户在使用的过程中,会出现各种各样的故障,影响用户正常的生产安全,也会直接给用户带来不必要的经济损失 2、还有一种情况下,用户在采购防爆电机的时候,如果本身对于电机知识不是很精通的话,认为只是简单的来使用防爆电机,那么有很多的用户会只关注电机的功率,把功率做为选购的主要技术参数。 如何选择粉尘防爆电机型号 1、可燃性粉尘存在致
[嵌入式]
工业机器人应用的十大误区(一)
投资通常从几万到百万美元,在第一时间作出正确的选择并且避免常见的错误是非常重要的,因为错误将导致不必要的开支或者任务的延期。为了帮助和设计人员避免最严重的错误,文中列出了机器人应用需要避免的十大误区。 误区一:低估了有效负荷和惯性 机器人应用的误区,排在第一位的是低估了有效负荷和惯性需求。通常大多是由于在计算负荷时没有包括臂末端所装工具的重量导致的。其次造成这个错误的缘由是低估或者忽略了偏心负荷产生的惯性力。 惯性力有可能造成机器人轴的超负荷。在机器人中,旋转轴的超负荷是很常见的。这个问题不纠正也会对机器人造成伤害,减少负荷或者减小速度参数可以应对这种情况。但是,减小速度将会增加周期时间,作为投资回报,减少一部分的周期在置办机
[机器人]
交流供电电缆线径选择的十个误区分析
机房供配电系统设计有一定的规范,用户新建机房供配电系统时,应通过设计单位选择合适的交流 线径,严格按设计文件施工。对于现有机房新增一般性负载,往往由用户自行设计并安装。
安全用电是动力设备安装与维护人员的基本要求,所有安装与维护人员都有必要了解交流电缆 线径选择的方法和原则。维护人员在日常工作中不局限于发现设备潜在故障,也应关注线缆等配套设备存在的风险,实现精细化维护。在具体的安装与维护工作中,不少工程师对电缆线径的选择存在着一些误区,需要对这些误区进行分析。选择了错误的电缆线径,轻则增加了建设或运行成本,重则可能带来巨大的安全隐患。
本文列出的十个误区都是工程与维护人员容易发生的,事实上导线线径
[电源管理]
消除 AC 驱动器的 8 个常见误区
实现相位可调光低纹波 LED 驱动器的最低成本方法是什么?不是开关稳压器,而是支持动态负载的线性稳压器。这里有一些与使用线性离线 LED 驱动器解决方案有关的最常见问题。 TPS92411 功能方框图 1. 为什么照明设计人员要使用电解质电容器? 没有那种元件能以电解质电容器的价位提供相应的大容量存储。如果在制造和装配过程中经过精心挑选、采购和处理,它们可能会非常可靠。事实上,认为电解质电容器是 LED 驱动器系统中可靠性最差的元件的这种观点是错误的,因为有四至六种其它元件比电解质电容器更容易引起稳定性问题。电解质电容器的使用寿命终结时间通常定义为在电容降低 50% 或等效串联电阻 (ESR) 提高一倍的时候,(E
[电源管理]
单片机初学者必看
写给初学者的一些话 本文原创,仅代表我搞单片机的一些想法,有不妥之处,不承担任何责任。 第一个问题,讲一下初学者到底学习那个系列单片机。 51、AVR、430、ARM(包括嵌入操作系统)、FPGA当前单片机系统如此丰富,对于新手到底该如何选择呢?我认为最大的误区,在于新手普遍的追时髦心理,急功近利心理,妄想短时间之内学会ARM,学会嵌入操作系统。网上资料、厂家宣传、培训机构广告也对初学者产生误导,使之误认为ARM很容易学。但是没有51单片机知识作为基础,其他一切都是空中楼阁。必不能达到预期效果。51单片机作为入门级产品,现在更多的体现在教学意义上了。虽然大部分的产品,已经淘汰51,使用高级芯片或者增强型51芯片,但是奉劝初学
[单片机]