历史上的今天
返回首页

历史上的今天

今天是:2025年06月06日(星期五)

正在发生

2020年06月06日 | 让你事半功倍学习单片机的8个方法

2020-06-06 来源:elecfans

怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的方法。

1、万事开头难、要勇敢迈出第一步。

开始的时候,不要老是给自己找借口,说KEIL不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。


然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,总得建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX,刷进单片机中、运行。


必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。


2、知识点用到才学,不用的暂时丢一边。

厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。


3、程序不要光看不写,一定要自己写一次。

最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。当你自己能写出来的时候,说明你就真的懂了。


4、必须学会掌握调试程序的方法。

不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。


这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。


5、找到解决问题思路比找到代码更重要。

我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。


不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。


我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以,要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人,所以现在我也明白了,以前读书时说的程序流程图很重要。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。


6、开动脑筋,运用多种方法,不断优化自己的程序。

想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。


7、看别人的代码,学习人家的思路。

这个在学习初期是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高,同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的代码,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。


8、尝试编写一下综合应用的程序。

从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易。


因为你的程序啥也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。

推荐阅读

史海拾趣

Esterline Technologies Corporation公司的发展小趣事

由于篇幅限制,我难以在此直接提供五个完整的500字以上的Esterline Technologies Corporation(以下简称Esterline)在电子行业发展的故事。不过,我可以概述五个关键的发展阶段或事实,这些可以作为您撰写相关故事的起点:

  1. 初创与转型
    Esterline最初是一家生产磁铁和录音设备的公司。随着技术的演变和市场的变化,公司开始与Donald J. Angus合作,并更名为Esterline-Angus。这一转型标志着公司开始朝着更广泛的技术领域发展,为其后续在电子行业的扩张奠定了基础。

  2. 进入航空航天与国防领域
    在1960年代末,Esterline通过收购Babcock Electronics成功进入航空航天和国防领域。这是一个重要的战略决策,因为航空航天和国防行业对高度工程化的电子产品有着巨大的需求。这一转变使Esterline能够将其技术优势应用于新的市场,并实现了快速增长。

  3. 医疗市场的尝试与退出
    在1960年代末至1970年代初,Esterline曾尝试进入医疗市场,通过收购医疗供应和设备公司来扩大其业务范围。然而,随着市场竞争的加剧和公司内部战略的调整,Esterline在1978年决定出售其助听器制造业务,并退出了大部分医疗保健市场。这一决策反映了公司在市场变化和内部策略调整中的灵活性和果断性。

  4. 欧洲市场的扩张
    除了在美国市场的稳步发展外,Esterline还积极寻求在欧洲市场的扩张。通过在欧洲设立生产基地和研发中心,Esterline能够更好地满足当地客户的需求,并加强其在全球市场的竞争力。这一策略的实施为公司带来了更广阔的市场前景和更多的发展机会。

  5. 技术创新与产品升级
    作为一家高度工程化的电子产品制造商,Esterline始终致力于技术创新和产品升级。公司不断投入研发资源,开发具有更高性能、更可靠性的新产品,以满足客户不断变化的需求。这种持续的技术创新和产品升级使Esterline能够在竞争激烈的电子行业中保持领先地位。

请注意,以上内容仅为概述,您可以根据这些关键点进一步扩展和深化每个故事的内容。

AEL [AEL Crystals Ltd]公司的发展小趣事

为了提高产品的可用性和客户服务水平,AEL Crystals实施了全面的库存管理政策。公司通过优化库存结构和加强库存监控,确保了产品的及时供应和快速响应客户需求。此外,AEL Crystals还不断提升客户服务质量,为客户提供专业的技术支持和售后服务。这些举措进一步增强了客户对公司的信任和忠诚度。

这五个故事展示了AEL Crystals Ltd公司在电子行业中的发展历程和取得的成就。从创立初期的艰难起步到如今的行业佼佼者,AEL Crystals凭借其卓越的技术、全球化的战略布局、持续的创新以及优质的客户服务赢得了广泛的市场认可。未来,我们有理由相信AEL Crystals将继续保持其行业领先地位,并为电子行业的繁荣发展做出更大的贡献。

DART(英国达特)公司的发展小趣事

在快速发展的过程中,DART公司也遇到了不少挑战和危机。例如,某个时期全球电子元器件供应紧张,导致公司面临严重的原材料短缺问题。面对这一挑战,DART公司迅速调整采购策略,积极寻找新的供应商和替代品,并加强与现有供应商的合作和沟通。通过这些措施,公司成功度过了危机,并保持了业务的稳定增长。

Barkston Plastics Engineering Ltd.公司的发展小趣事

随着环保意识的日益增强,Barkston Plastics Engineering Ltd.积极响应行业趋势,致力于研发和生产环保型塑料电子元件。公司投入大量资源研发可降解和可回收的塑料材料,并将其应用于产品中。这一举措不仅赢得了客户的认可,也提升了公司的品牌形象,使其在竞争激烈的电子行业中脱颖而出。

AVG [AVG Semiconductors(HITEK)]公司的发展小趣事

AVG深知在竞争激烈的电子行业中,单打独斗难以取得长远的发展。因此,公司积极寻求与行业内外的合作伙伴建立紧密的合作关系。通过与上下游企业建立供应链合作关系,AVG确保了原材料的稳定供应和产品质量的可靠性;通过与高校和研究机构合作开展技术研发,AVG不断引入新的技术和创新思路。这些合作伙伴关系的建立,为AVG的发展提供了有力支持,也促进了整个电子行业的共赢发展。

GSR Technology Ltd公司的发展小趣事

随着技术的成熟和市场的认可,GSR Technology Ltd开始寻求国际合作机会,以进一步扩大其市场影响力。公司与欧洲一家知名雷达制造商达成战略合作,共同开发面向全球市场的先进GSR系统。这一合作不仅提升了公司的产品竞争力,还为公司打开了欧洲市场的大门。随后,公司逐步在北美、亚洲等地设立分支机构,实现了全球化布局。

问答坊 | AI 解惑

求基于DSP的实时信号处理设计实例

谢谢啦 要求 设计目的 需求分析 信号分析 信号处理定义 资源分析 配置分析 5部分 希望哪位哥哥姐姐能给予帮助啊,万分感谢…

查看全部问答>

The Data Conversion Handbook下载

绝对够经典的教材。我从ADI官网下的,免费提供给大家~ 其实ADI官网也是免费 The Data Conversion Handbook, edited by Walt Kester (Newnes, 2005), is written for design engineers who routinely use data converters and related circuitr ...…

查看全部问答>

求帮助

不知道大家觉得电路与系统的这个专业怎么样哈?还有就是你们觉得那个大学的研究生好些?…

查看全部问答>

51单片机通过GPRS远程升级的可能性?

现手上有一个项目,要用GPRS远程升级,想请问一下是否有可行性。…

查看全部问答>

pda 与远程pc通信问题

小弟最近在做一个pda与pc 的通信问题,最终要解决的问题是将pda中一xml文件上传给远程pc服务器。 我现在做的测试就是用socket实现pda与pc间的简单通信,代码如下: pda端:                & ...…

查看全部问答>

这个是不是windows在格式化nand flash?

wince每次刷机后都要有以下debug infomation输出提示: INFO: Initializing system interrupts... INFO: Initializing system clock(s)... INFO: Initializing driver globals area... SDMMC config set rGPGCON: fd96a9ba OEMInit Done. ...…

查看全部问答>

如何把应用程序的目录结构编译进wince映像中

例如,我有一个应用程序,其文件和目录结构如下所示:         \\windows         |         |--ui             ...…

查看全部问答>

UCOS-II在VC中的编译

我把UCOS-II中的例子在VC中编译,总是出现‘ASM没有定义。。。7个错误,2个警告’怎样解决呢?…

查看全部问答>

S3C2440 + WinCE5.0,如何使支持SDIO WIFI呢?

我添加了所有与SDIO和WIFI相关的组件,现在能识别WIFI卡但接收不到WIFI信号.Why? 第三方的SDIO NOW是必须的吗?有盗版或试用版SDIO NOW可用吗?…

查看全部问答>