历史上的今天
今天是:2026年01月05日(星期一)
2023年01月05日 | 学单片机之前要学什么?C语言和单片机有什么关系?
2023-01-05 来源:zhihu
学习单片机之前要学什么?提起这个就想起我当年开始学习单片机的血泪史了。
08年我加入学校的电子实验室,为08年的全国电子大赛做准备。
08年的电子大赛分类3类,硬件设计类、单片机软件类、产品的调试动手类。
现在的大赛应该有所改动。
我选择的是软件类,选择这个的原因是我觉得这个更加的神秘,就是这个神秘感让我对软件更加的有兴趣。
刚开始真的是一窍不通,我买了一本C语言书,独自学习了2个月,做了3本笔记,然后又学习了1个月的数字电路,到这个时候,我都快奔溃了,3个月过去了,还是啥都不懂!
这个时候我已经做好放弃的准备了,最后想想:自己选的路,跪着也要走完。
正好那段时间每天也闲的蛋疼,就抱着边玩边学的态度,说出来你可能不信,不知不觉就把单片机的IO口、定时器、中断、串口通讯这些学会了。
那一刻,我就在想原来单片机开发也没有这么神秘!哈哈!
回顾一下自己的这个学习过程,到现在还是非常的难忘,相信很多的伙伴们可能还和我当年一样,坚持了一段时间,没有进展,一直处于一个入门前期的困惑当中。
其实单片机就是一个工具,在学习这个工具之前还是需要有别的知识作为铺垫。
比如说基本的数字电路基础和简单的C语言编程基础。
一、电路基础和C语言基础要学习的内容
1.数字电路基础需要学习什么?
掌握电阻、电容,三极管的基本用法,掌握单片机的高低电平的概念基本上就差不多了。
最好的学习渠道就是开发板的原理图,把开发板原理图搞懂基本上就能做一些项目了。
2. C语言编程基础
C语言基础的学习,必须要掌握一些基本的语法,和变量的定义。
具体的学习路径,可以到小破站找无际单片机编程比较系统全面,也是针对单片机来讲的。
学完单片机、电路基础、C语言的知识以后,就可以开始着手做一些项目了,前期先通过小项目开始,比如说电子时钟啥的。
二、C语言和单片机有什么关系?
通过前面的讲解,相信大家已经有一点概念了。
下面再给大家深入讲解下C语言和单片机的关系。
单片机支持C语言和汇编来编写程序。
1. 通过C语言来编写
C语言编写的程序,最终需要通过keil工具编译成单片机可以识别的.hex文件的过程:
C程序源码->C编译器->汇编代码->汇编编译器->机器码(.HEX 或.BIN)
2.通过汇编来编写
单片机的程序早期都是汇编代码,汇编代码最接近硬件底层的低级语言,运行的效率比较高。
但汇编语言很很多比较明显的缺点:不方便阅读,移植性差,开发难度大等,随着技术的不断进步,大家就开始逐步的的使用C语言来代替汇编语言,(比较低端的芯片还是需要汇编来开发)。
所以,一般产品开发都是使用C语言,汇编一般是用来做很小的产品,或者单片机的启动文件。
史海拾趣
|
本帖最后由 dontium 于 2015-1-23 11:32 编辑 电路如图!!我用的单电源供电,lm324没用的管脚是悬空的!不知道有没影响。问题是输出最大只有1.6V,而我的程序结果应该是0到5v 就算不能满量程也该在5V附近吧!!大侠们 帮忙看下吧!!谢了!!dac0 ...… 查看全部问答> |
|
最近小弟正在做一个利用zigbee协议的无线语音通信的东东,碰到了一些问题,例如在zigbee协议的home_automation_profile已经有了关于light、Closures等的ID,那关于voice的是不是自己定义一个值就行了? 麻烦这一领域里的师兄师姐帮助 ...… 查看全部问答> |
|
前几天,在跑程序的时候遇到一个zbuf的异常,vxworks打印的调用链如下: data storage Exception current instruction address: 0x0050cb60 Machine Status Register: 0x00029230 Data Exception Address Register: 0x0069bf38 Condition Regi ...… 查看全部问答> |
|
replyreload += \',\' + 1483610;「ADI模拟大学堂」锁相环的基本原理 (每日一份资料) 「ADI模拟大学堂」开始每天更新一份资料,资料更新目录在后面,希望大家支持。希望能获得大家的回帖,我也不用做回复可见。希望大家喜欢ADI的资料,个人很是喜 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:38 编辑 各位大神,能分享一下你们的经验吗,你觉得今年的带赛题,电源类的应该准备那些元器件,最要有具体的型号,谢谢分享 … 查看全部问答> |




