打印

手把手教你写程序

[复制链接]
42272|215
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
长沙卖菜王|  楼主 | 2009-6-22 17:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手把手教你写程序
内容:从最简单的程序入手,手把手教你写程序,让同学们拿到一个复杂的程序或者任务,能快速找到切入点,写出程序,再在此基础上优化程序。当拿到一个单片机任务时,不要急于动手写程序,先仔细分析它的以下几个点:
1、它要单片机整体实现什么功能
2、功能细分(模块化),先干什么,再干什么,最后干什么
3、画初步流程图,(把几个模块画出即可)
4、模块之间的分析:一个模块到另一个模块之间,怎么变换,怎么连接(优化流程图)
5、单个模块分析:每个模块要做什么(流程图细化)
6、所有模块结合连接,细化所有流程图
7、分析单个模块每步要用到的方法或者指令
8、总流程图定型
9、纸上写程序,对照流程图分析其可行性,若不可行则返回
10、上机调试,加注释
以上十步,缺一不可(小程序列外)
切记:流程图的确定很重要,需反复修改
大忌:拿到任务,不仔细分析就写程序。即使是小程序,我们也要养成良好的编程习惯,不要一味的追求结果。写小程序可能比别人快,若是大程序,一旦出现思维混乱,或者出现程序调试不出结果,那么你花在调试上的时间,要比别人的多。           !!!!!!磨刀不误砍柴工!!!!!!
程序的优化:属于后期工作,只有调试出来后,才去优化,如果一开始优化和写程序同时进行,一是加重你的思考量,二是出现问题无从下手。无疑增加了写程序的难度。对于一个初学者,写一个程序,本身头脑就处于紧张的状态,思考的问题就很多,如果此时把优化程序也考虑进去,你脑袋的负荷无疑加重,若你头脑精明,你可以把优化的地方,先在纸上记下来,等到调试结果正常,再把你想到的,优化的地方加进去。
评分
参与人数 1威望 +10 +10 收起 理由
欧阳青云 + 10 + 10

相关帖子

来自 2楼
sleepybear| | 2009-7-28 11:06 | 只看该作者

呵呵

你未必非要按照楼主那十条一条一条来,但是要了解楼主传达的思想:做设计前要做好文档工作(包括基本的流程图、时序图以及文字说明)。很多工程师都忽略这一点,认为文档工作浪费时间。你写个几十行的代码,可能不需要流程图,但是关键是要养成良好的习惯。因为你不可能总写小程序。
我工作中主要用FPGA,我们设计的每个子模块都要有文档:接口信号定义,模块功能介绍,详细设计实现思路,详细的时序图(因为是FPGA,很底层的东西,所以要精确到每个周期)。开始项目经理让我这样做,我也觉得很烦,很麻烦,可是做了几次,发现了好处:
首先,写文档、画流程图和时序图的时候,就是在思考和设计了,文档写完了,其实设计已经完成了一多半,而之后写代码、仿真和调试,只是对先前设计的验证。我喜欢用visio画图,主要的设计时间也花在了画图上。图画完了,也想清楚了,剩下就是把图插到文档里,添上文字和表格,思路再清晰一下。之后就是照着文档写代码了,写代码这部分我认为是不用太费脑子的,我有时会拿回家听着音乐,聊着QQ做。而在调试过程中遇到的问题,追溯起来也很方便。实践中,我感觉这样反而是省时间的(当然,别拿小程序说事,一辈子总写小程序也没啥出息)。
其次,维护和升级成本大幅度降低,技术交流也很方便。我现在写一个模块,可能几个月后让我加入新功能,那时可能很多东西都忘了。而有文档就好了,当时怎么想的,某些功能是怎么实现的,在哪里改代码比较合适:一清二楚,省去很多时间。更何况有时候这种升级、维护工作可能要交给别人去做,谁也不想自己写完模块半年甚至更长时间之后还让人追着屁股问这问那吧?那么文档是最好的方法,从个人角度说你省了事;从公司角度说,人力成本大幅度降低(他问你,浪费的是两个人的时间成本)。
为什么很多工程师不喜欢写文档呢?一则可能是嫌麻烦吧。我觉得吧,虽然现在我们是工程师,可能只负责一块,但是要试着去从更高的层次去思考和看自己的工作,这是有利于个人成长的;二则可能是有技术保密的考虑吧。很多人还是怀着“教会徒弟饿死师傅”的思想,怕自己很容易被替代,总喜欢保持神秘感。其实技术是学不完的,放宽心态,与其盯着自己现在的这点东西,不如多丰富自己,让别人永远追不上自己,那才是真正不可替代的。这对自己和团队都是有益的。你将来的高度,取决于你的心的宽广程度。
以上是我的一点体会,有不对的地方欢迎指正。

使用特权

评论回复
来自 3楼
xwj| | 2009-11-6 08:58 | 只看该作者
这就像写作文,
有些人不写提纲、草稿就写不出好**,会写的一团糟;
而有些人可以不写提纲、草稿就写好一般的小**
(但对于大部头还是必须要写提纲的)

不写提纲、草稿并不是代表**没架构,只是架构暂时保存在大脑里而不是纸上罢了(小**、小程序);
对于大的程序或者需要和他人协作的项目,还是必须要有详细的文档和流程的,不然肯定出岔子。


再就是,对于编程语言,实际上就和外语相对于母语一样,写程序也就和中国人用英语写篇**一样
只要够熟悉,对于熟手,编程语言理解上是没有障碍的,可以直接和逻辑语言相互转化,
所以不需要用中文流程图描叙一遍再用编程语言再写一遍。


当然,不管多高的高手,设计复杂的东西前先画个蓝图、框架并记录下来 都是必要的,但并不仅限于流程图

流程图能表达的东西很有限,并不是最好的草稿、备忘录方式,老x更喜欢用状态迁移图、迁移表一些
毕竟对于嵌入式控制系统,任何系统都可以抽象成有限元状态机

使用特权

评论回复
地板
NING4581909| | 2009-6-22 17:50 | 只看该作者

!!!!!!!!!!!!!!!!

使用特权

评论回复
5
yinyi0705| | 2009-6-22 17:58 | 只看该作者

ding@@@@@heeh

使用特权

评论回复
6
不亦心| | 2009-6-22 19:00 | 只看该作者

卖菜的,俺来顶你

呵呵,师傅,来顶你了

使用特权

评论回复
7
逐梦青萍| | 2009-6-22 20:15 | 只看该作者

我不会画流程图啊,能说大致一下或推荐一个视频学习一下,谢谢了

使用特权

评论回复
8
itelectron| | 2009-6-23 12:54 | 只看该作者

能不能讲讲MCU时间 管理 方面的知识

能不能讲讲MCU时间 管理 方面的知识

使用特权

评论回复
9
电子空对穴| | 2009-6-23 14:02 | 只看该作者

我想问个问题

对于流程图!!!

对于那种大脑想像力丰富的,不太习惯画流程图的我咋办?????

使用特权

评论回复
10
耕在此行| | 2009-6-23 14:31 | 只看该作者

楼上的要慢慢转过来

使用特权

评论回复
11
mei326| | 2009-6-23 20:42 | 只看该作者

头疼的事~!

   画流程图一直是我头痛的一件事~1最近在写一个温湿度传感器sth11的程序!~写到后来尽无从下手~!课流程图也不知道怎么来写~!!!看来还真得慢慢的培养这个习惯~!

使用特权

评论回复
12
长沙卖菜王|  楼主 | 2009-6-24 12:56 | 只看该作者

说明

   用这个模块化的方法 可以实用到大部分场合!很实用

使用特权

评论回复
13
nongsan| | 2009-6-25 09:34 | 只看该作者

受教了,谢谢!

使用特权

评论回复
14
5880527| | 2009-6-25 10:01 | 只看该作者

去画流程图反而会把我搞糊涂的

使用特权

评论回复
15
icecut| | 2009-6-25 10:16 | 只看该作者

纸上写程序

纸上写程序

你真的很强.


这些东西需要有一套好的管理软件支持.不是说纸上谈兵可以搞定的.
IBM的rose可以帮助完成部分东西.不过软件很大.使用也比较复杂.

如果仅仅对与程序,那你说法很不专业.还是去计算机系找点名字吧.

需求评审---总体设计--总体设计评审---详细设计----详细设计评审---代码实现----出现问题或者修改需求---回溯修改总体设计.

使用特权

评论回复
16
长沙卖菜王|  楼主 | 2009-6-25 12:32 | 只看该作者

回复楼上

    非常谢谢给我的建议 我一直在找相关的专业术语阿谢谢了啊!

使用特权

评论回复
17
mei326| | 2009-6-25 12:44 | 只看该作者

呵呵 ,细节也是最行重要的哦

使用特权

评论回复
18
icecut| | 2009-6-25 12:47 | 只看该作者

过程都会

实践也不难.关键是细节.如何划分模块.这些就是难度比较大了.代码写的太少是分不好的.可扩展等性能都比较繁琐...

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
shizaigaole + 1
19
astudent| | 2009-6-25 12:49 | 只看该作者

何必和流程图过不去?

卖菜的列了十步,有八步都和流程图相关。不知道是不是书看多了。
大体做个模块划分,每个模块一个文件,然后就可以写代码了。
代码是最好的设计。
况且按OO进行设计的话,流程图就更用不到了。

使用特权

评论回复
20
shazhiyong| | 2009-6-25 12:54 | 只看该作者

可以传一份到我的邮箱中吗

谢谢你了

使用特权

评论回复
21
huimin13| | 2009-6-25 13:27 | 只看该作者

流程图??

单片机一直都学不好
流程图会看不会画

使用特权

评论回复
22
wudonghua| | 2009-6-25 14:07 | 只看该作者

顶你!!!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

201

帖子

0

粉丝