• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

【我与单片机】怎样快速学会单片机? 大家来讨论!!

1,你首先要学习C语言基础,就相当于80%会单片机了,因为现在所有8/16/32位(51系列,MSP430系列,ARM系列)都是使用C语言。
2,先看内核8051的单片机:台湾宏晶的STC89C51-DIP40/或其它如新茂,到网上买一个开发板,价格不会超过200元。
3,看一下单片机功能:包换内部FLASH、RAM、TIMER、INT、ADC、USB、ISP/IAR等。
4,编译环境、编程软件KEIL。
5,打开开发板的例子程序,在KEIL编译,下载到板,看结果和说明是不是相符,达到这样效果时,你心里肯定很秀激动,这时你真正学会了单片机,你成功了!!!!!。
6,单片机C语言举例:
sbit SPEAK  = P1^5;	//IO口定义为蜂鸣器控制 
unsiggne char  temp;//定义TEMP为单字节变量。
sfr PORTA P1;//将P1口定义为PORTA 
7,当然,你得打一份工作,关于我上所说的,开始工资不要要求太高,等你做完几个项目后,你真正学会了,才跟老板或上司提,这样继续或或另寻高就才有资本。8,你也抽点时间看看《郭天祥十天学会单片机和c语言编》一书,巩固一下理论知识。总结:多做开发板上的实验,你要多参与这样的项目开发,慢慢就会了。
-----欢迎大家补充
全部回复(118)
正序查看
倒序查看
2014-03-11 11:55
找个高手直接一对一教你。
0
回复
2014-03-11 13:42
@中共中央
找个高手直接一对一教你。
或者,边学,边问高手~~
0
回复
huchuyou
LV.5
4
2014-03-12 20:55
不知道看一些教学视频是否有用?
0
回复
amao473
LV.4
5
2014-03-12 21:23

木有快速的方法.除非你理解能力也是超级快速的.

0
回复
2014-03-12 22:07
从网上买套开发板,带源程序和电路图,学习很方便,进步也快!
0
回复
xinzha
LV.1
7
2014-03-12 22:51

这是一个艰难并且枯燥的过程,除非你本身对其有很大的兴趣,能以此为乐。

对于新人来说,可以先知其然而不知其所以然,知道单片既可以完成哪些功能,如何建立工程,如何调试,各个模块之间如何协同工作,仿真器调试通过的代码怎么放到真机上运行等等,总之实现一些简单功能鼓励一下自己。

然后就该安静地想想了,这一切的背后有什么关联,为什么51汇编的第一句话是ORG 00H, JMP 30H(大致是这个意思,9年没写过51的程序了),为什么每个中断的服务入口要写在规定的位置,你可以似懂非懂,但是如果你想了就说明你已经不满足于现状了。

再之后你可以进一步考虑一个实际的产品该如何设计,怎么样把各个模块有机地结合到一起,完成你想要的功能,这时候你应该想到更多的问题,为什么裸机代码中不包含那个死循环就没法正常工作,操作系统中会有死循环吗?现在也没必要搞清楚,但是要有疑问。

再然后你会遇到很多bug,如果你写汇编会发现代码上了上千行之后连自己都不认识了,如果你写c就觉得自己很啰嗦,该是时候考虑模块化设计以及复用重入等问题了,好的代码就是用最少的代码实现功能,代码越少出问题的几率越小,在保证健壮和功能的前提下。

之后你就要考虑选择方向,应用,驱动,bsp还是更深层次的架构,到了这种层次,对计算机体系结构的理解将是你巨大的优势,再辅以编译原理,操作系统原理什么的,至少养活一家老小没有问题。

再之后的发展全凭个人兴趣爱好,不断地阅读和学习才会有更高的技术水平,如果喜欢还可以转向管理。

最后讨论一下楼主的第一条,不是cpu使用c语言,而是开发工具选择了c语言,最终都要经过编译链接的过程转为机器码,因为对于cpu来说,它只认识机器码,即使是汇编,都只不过是对机器码的一种助记符。

0
回复
HEV骆驼
LV.7
8
2014-03-12 23:14
刚开始接触单片机是本科,真快开始学士学的avr单片机,教程用的就是郭天祥的!挺好!
0
回复
HEV骆驼
LV.7
9
2014-03-12 23:15
@电源网-俪俪
或者,边学,边问高手~~
问高手,确实是个捷径!有时候一个问题难为一天,可能就是高手的一句话的问题!
0
回复
HEV骆驼
LV.7
10
2014-03-12 23:16
@huchuyou
不知道看一些教学视频是否有用?
有用啊!我是速度加快1.75倍看的,再快我就不行了!
0
回复
2014-03-13 09:41
@xinzha
这是一个艰难并且枯燥的过程,除非你本身对其有很大的兴趣,能以此为乐。对于新人来说,可以先知其然而不知其所以然,知道单片既可以完成哪些功能,如何建立工程,如何调试,各个模块之间如何协同工作,仿真器调试通过的代码怎么放到真机上运行等等,总之实现一些简单功能鼓励一下自己。然后就该安静地想想了,这一切的背后有什么关联,为什么51汇编的第一句话是ORG00H,JMP30H(大致是这个意思,9年没写过51的程序了),为什么每个中断的服务入口要写在规定的位置,你可以似懂非懂,但是如果你想了就说明你已经不满足于现状了。再之后你可以进一步考虑一个实际的产品该如何设计,怎么样把各个模块有机地结合到一起,完成你想要的功能,这时候你应该想到更多的问题,为什么裸机代码中不包含那个死循环就没法正常工作,操作系统中会有死循环吗?现在也没必要搞清楚,但是要有疑问。再然后你会遇到很多bug,如果你写汇编会发现代码上了上千行之后连自己都不认识了,如果你写c就觉得自己很啰嗦,该是时候考虑模块化设计以及复用重入等问题了,好的代码就是用最少的代码实现功能,代码越少出问题的几率越小,在保证健壮和功能的前提下。之后你就要考虑选择方向,应用,驱动,bsp还是更深层次的架构,到了这种层次,对计算机体系结构的理解将是你巨大的优势,再辅以编译原理,操作系统原理什么的,至少养活一家老小没有问题。再之后的发展全凭个人兴趣爱好,不断地阅读和学习才会有更高的技术水平,如果喜欢还可以转向管理。最后讨论一下楼主的第一条,不是cpu使用c语言,而是开发工具选择了c语言,最终都要经过编译链接的过程转为机器码,因为对于cpu来说,它只认识机器码,即使是汇编,都只不过是对机器码的一种助记符。

xinzha~~~~ 是我

高手冒泡哦~ 献花

0
回复
xinzha
LV.1
12
2014-03-13 09:52
@电源网-娜娜姐
xinzha~~~~是我[图片]高手冒泡哦~献花[图片]
呃,咱们是敌对方,被其他人看到咱们能正常交流,会把咱们都开除的。
0
回复
2014-03-13 10:15
@xinzha
呃,咱们是敌对方,被其他人看到咱们能正常交流,会把咱们都开除的。
组织不会来这里,放心吧。。~~
0
回复
SKY丶辉煌
LV.10
14
2014-03-13 12:04
必有开发板
0
回复
cltwolf
LV.5
15
2014-03-13 12:11

学单片机要有个打基础的过程。学C不可能是一两个星期一两个月的事,要不基础肯定不牢靠。(当年我囫囵吞枣吞了三个月,现在还是感觉自己基础太差。)

在基础已经有了的情况下:拿个小项目,然后一边看datasheet,一边看例程,一边动手。这是最快的(个人是这么学的,但不知道其他大大们是如何的。)

0
回复
SKY丶辉煌
LV.10
16
2014-03-13 12:17
@cltwolf
学单片机要有个打基础的过程。学C不可能是一两个星期一两个月的事,要不基础肯定不牢靠。(当年我囫囵吞枣吞了三个月,现在还是感觉自己基础太差。)在基础已经有了的情况下:拿个小项目,然后一边看datasheet,一边看例程,一边动手。这是最快的(个人是这么学的,但不知道其他大大们是如何的。)
读程序,复制程序,组装程序,创造程序。
0
回复
2014-03-13 12:30
实践比理论来的快,弄块简单点的开发板先上手
0
回复
2014-03-13 12:32
@黑夜公爵
实践比理论来的快,弄块简单点的开发板先上手
本人觉得单片机太复杂了,真心学不会
0
回复
2014-03-13 13:40
@看破红尘
本人觉得单片机太复杂了,真心学不会[图片]

慢慢来~~~

0
回复
SKY丶辉煌
LV.10
20
2014-03-13 17:54
@看破红尘
本人觉得单片机太复杂了,真心学不会[图片]
加油@!
0
回复
2014-03-14 01:21
@中共中央
找个高手直接一对一教你。
关键还是在自己,多看,多练。
0
回复
2014-03-14 01:22
@HEV骆驼
有用啊!我是速度加快1.75倍看的,再快我就不行了!
碰到问题,不懂再回头看。
0
回复
2014-03-14 01:23
@amao473
木有快速的方法.除非你理解能力也是超级快速的.
学习任何东西都要一步一步来。
0
回复
2014-03-14 01:24
@SKY丶辉煌
读程序,复制程序,组装程序,创造程序。
说得很好,很经典。
0
回复
2014-03-14 01:24
@看破红尘
本人觉得单片机太复杂了,真心学不会[图片]
学习起来比较枯燥些。
0
回复
xinge7401
LV.6
26
2014-03-14 01:56
@huchuyou
不知道看一些教学视频是否有用?

应该是很有用,比自己看书效果更好。

0
回复
xinge7401
LV.6
27
2014-03-14 01:56
@dianyaun_liliang
从网上买套开发板,带源程序和电路图,学习很方便,进步也快!
这学习方法不错,要自己实际来操作才行。
0
回复
shenx123
LV.10
28
2014-03-14 09:12
@HEV骆驼
问高手,确实是个捷径!有时候一个问题难为一天,可能就是高手的一句话的问题!
多看看单片机区里的高手写的经验
0
回复
shenx123
LV.10
29
2014-03-14 09:12
@chenyingxin7610
碰到问题,不懂再回头看。
模拟, 数字, 都是基础啊
0
回复
shenx123
LV.10
30
2014-03-14 09:13
@chenyingxin7610
学习任何东西都要一步一步来。
想要速成,只有看别人是怎么学的+天分+热情
0
回复
shenx123
LV.10
31
2014-03-14 09:13
@dianyaun_liliang
从网上买套开发板,带源程序和电路图,学习很方便,进步也快!
先买哪些? 分类很多呢
0
回复