设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

1985年,我如何编程

2013-5-3 11:23| 发布者: 红黑魂| 查看: 944| 评论: 0|来自: 开源中国翻译

摘要:   1985年,我曾经致力于实现一种机器的计算机化,这种机器用来给瓶底贴商标。有家公司制造了这种机电控制的机器,把商标卷在滚轮上,然后贴到传送带上的产品(比如洗发露的瓶底)的表面。整个工作需要精确到毫米级 ...

  1985年,我曾经致力于实现一种机器的计算机化,这种机器用来给瓶底贴商标。有家公司制造了这种机电控制的机器,把商标卷在滚轮上,然后贴到传送带上的产品(比如洗发露的瓶底)的表面。整个工作需要精确到毫米级,因为消费者不喜欢看到贴得歪歪扭扭商标


  不幸的是,机电控制不像计算机控制那样灵活,因此这家公司跟一家本地的技术院校签约,制造基于KIM-1的计算机控制的机器原型,而我正在此学校学习电子技术。另一名学生也被招进来搞这台机器,包括传送带,商标分贴机制,步进电机控制机制,用于检测标签和产品的红外传感器。



  我的工作是用6502汇编语言编写软件。不幸的是,当时没有汇编器并且KIM-1只有一个十六进制键盘和一个小小的显示屏。所以,这意味着只能手写代码,手工汇编并把机器码键入进去。代码看起来像这个样子:



  很明显计算机控制将会非常灵活。这个程序首先进行自动测量:卷轴上商标的长度,商标之间的距离,以及确保操作员快速摆好伸出距离(保证商标伸出时刚好能被产品接住)。



  它能够在运行时自动检测传送带的速度,实现运动补偿,以及在商标不够用(卷轴剥离发生故障)停止传送带


  当然,像这样编写代码是一种痛苦。首先你不得不手写代码(蓝色部分),然后把它转换成机器码(红色部分),并且计算每条指令和相对跳转的内存位置。那时我还没有能够用于计算十六进制的计算器,所以自己完成了大部分的计算(相对跳转则用了心算)。

 

  但是,这教给我两件事情:第一次就把事情做对和在自己的大脑里运行代码。后一件直到今天仍然重要。在调试时,我不断在大脑中运行代码,在使用gdb或者其他调试器之前我就用人脑调试器工作了。KIM-1只有最基本的调试功能,我只把少数编进程序,大多数的调试工作是查看输出(十六进制显示屏),步进电机的行为,以及在大脑中运行代码。


  如果感到好奇的话,这里可以查看完整的程序。


  另外,有人指出就1985年当时来说,KIM-1已经相当落后,并且那时编译器也已经出现了等等事实。没错。实际上,在该工作前我就已经在CP/M上使用BASIC和ZASM(Z80汇编程序),但是你必须受限于条件的限制:这家技术学院有一台空闲的KIM-1,它有良好的I/O能力,作为一台嵌入式控制器的原型系统还是相当不错的。


酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部