文号
t60352
阅读
7670
回复
7
收藏
5
请教学习C语言的流程
2013/09/05
IP:广东
因曾经在大学学习的问题,电脑是个稀罕物,386算不错了,能接触更是奇迹了,主要是学习电子硬件,软件方面因此只注重了C51汇编语言,现在用了十几年的汇编了,针对的都是51单片机。太专一了,程序量太大,费时费力,现在好像都过时了,说起汇编,人家都说是古董级别的,现在主流都是C语言。因此想现在开始学习C语言,请问大家学习C语言需要先学习哪些?我就有算熟练的汇编基础吧,学习C应该不难吧?希望推荐一下教程。谢谢
13年4个月前IP:未同步
565974
1楼
以LZ十几年的汇编功底,学习C51应该是非常简单的。
C51是在51系列上广泛使用的C语言,他具有C语言的语法规则,但有一些针对51单片机的特殊关键字以及数据类型等。

建议LZ学习流程如下:
1. 下载一个KailC环境,它是目前最好用的C51集成开发环境,没有之一[s:274]
2. 买一本或下载一本讲解C51的书籍,如果要简单流行,找周立功的资料十个不错的选择
3. 照着书写示例程序,对照汇编,以你的汇编功底相信很容易将C的语法与汇编对照起来学习,这样的学习效率和深度应该是那些不懂汇编的人不能比的。
4. 自己使用C51语言写简单的51程序,如:IO操作,跑马灯。。。
5. 算法的问题如果你用汇编都没问题,用高级语言就更不是问题。
6. 最后,C比汇编通常需要消耗更多的RAM和ROM资源,当然这是对于汇编高手来说的,
   至少我接触的人中,没怎么发现有谁能用汇编写出比C51编译器编出的代码效率更高的汇编程序[s:178]

最后,用我很久以前的一句话总结:在嵌入式系统中,汇编+C = Everything [s:216]
+1
科创币
世纪伯乐
2013/09/05
好评~
+200
科创币
虎哥
2013/09/06
助人为乐
+19
科创币
WZB616
2013/09/06
非常感谢
引用
评论
13年4个月前IP:未同步
565993
2楼
回 楼主(WZB616) 的帖子
汇编之所以初期好学,是因为它的语法很简单,故很适合做小产品,优点就不多说了。期待汇编高手给大家讲解下怎么入门汇编。我也用了汇编挺久的,最近也是多种原因需要开始学C。推荐看《零基础学单片机C语言程序设计》,如果是第1版网上有扫描的电子版下载。现在还只是会简单的,像结构体什么的看得一头雾水。
我的学习经历:先是安装keil软件来写流水灯,然后按照网上的写,Keil就报各种错误,到后来在同学的机子上编译没错,自己这边就出错,搞不定了就放着年把。后面需要了又开始捣鼓,发现报错原因是Keil绿化后没有重新算号注册[s:226]。之后改别人写好的程序发现随便加点东西又报错,很是抓狂,后来才知道是函数要在开头申明下,后面再定义一道,不然就会被认为未定义。在网上找各种视频教程与别人写好的程序来看,终于有点感觉了,然后买了刚才说的那本书对照着写程序,边写程序边翻不懂的。随后又基本搞懂了多文件编程,define字符串替代、typedef类型定义从别的程序参考过来,然后是定义uchar类型,也就是原来的定义寄存器。不久,函数运算结果又遇到不能返回多个参数的问题(估计应该用数组或者指针解决),老办法:用几个给各个程序都(分时)用的全局变量搞定。函数的延时也是个麻烦,用for循环的i--来弄才勉强能编译成djnz,找到keil里的自带_nop_()函数代替汇编的nop,时间计算仍旧一塌糊涂。终于消耗近两个月,一个像样子的程序完成,但是看了一些作品的代码之后发现还有好多要学。
+200
科创币
虎哥
2013/09/06
分享经验
+6
科创币
WZB616
2013/09/06
非常感谢,分不多了。
引用
评论
13年4个月前IP:未同步
566001
3楼
学习编程语言最好方法是实践
引用
评论
WZB616作者
13年4个月前IP:未同步
566022
4楼
回 1楼(daxus) 的帖子
之前经过一段时间的摸索,对C语言还是有一点点了解的。大致能看懂部分,像简单的IO操作,跑马灯什么的都没问题了,能写能用。只是对其中的有些指令不清楚,有没有专门介绍这些指令的书籍推荐一下?谢谢
引用
评论
WZB616作者
13年4个月前IP:未同步
566023
5楼
回 2楼(hefanghua) 的帖子
你介绍的这个书籍不错,我下载到了电子版的。谢谢!
keil软件之前也有用来做汇编程序的编写。现在大多数是用MedWin 编写,功能是不错,但是只支持汇编,还好对keil不陌生。使用也很容易上手的。
引用
评论
13年3个月前IP:未同步
642552
6楼
这个是学单片机嵌入式的

attachment icon 10天学会单片机迅雷种子.torrent 101.76KB TORRENT 46次下载
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的