搜索
bottom↓
回复: 39

脱离电脑,直接在51单片机上编程

[复制链接]

出0入0汤圆

发表于 2009-5-6 09:46:42 | 显示全部楼层 |阅读模式
脱离电脑,直接在单片机上编程
                                  -----------------SIB51解释器
    我们习惯了在电脑上编程,然后通过编程器将程序下载到单片机上,忘记了单片机也是一种微型计算机。既然我们能在电脑上编程,那为什么不能在单片机上编程呢?
经过一个星期的努力,终于开发出SIB51的雏形。虽然功能很简单,但编写一些小程序(比如流水灯)还是游刃有余的。废话不说了,下面将开始我们的编程之旅。

SIB51简介
为什么叫SIB51呢?
本51解释器是用数字代码编程的,是很简单的解释器。SIB是SIMPLE IS BEAUTY 的缩写,即本解释器遵循简单便是美的思想编写。
编写目的
我是从08年10月开始学的单片机,苦于没电脑,至今都是在纸上编好程序,在学校的免费机房下载程序。我想让那些没有电脑,又想学单片机的初学者能编写最简单的程序,并能看到结果。
SIB51由的结构
SIB51由输入部分和解释部分构成,其中解释部分是可以移置的,也是关键部分。将数字代码由4*4键盘输入到解释器的一个数组中,也就是说这个数组是保存程序的,相当于单片机的ROM部分。然后经解释器分析代码并执行。

1 指令
  SIB51暂定了18条指令,需要时还可以添加。
        指令  数字代码
  #define MOV 0
#define ADD 1
#define SUB 2
#define MUL 3
#define DIV 4
#define INC 5
#define DEC 6
#define RL  7
#define RR  8
#define CLR 9
#define JMP 10
#define JZ  11
#define JNZ 12
#define DJNZ 13
#define CJNE 14
#define OUTPUT 15
#define DELAY 16
#define MARK  17
#define END  18
需要说明的是我们编程时是用数字代码编程的,这也是考虑到51单片机的资源限制,SIB51只能处理无符号整数,所以指令全部用数字表示。与51不同的指令有MARK,RL,RR,DELAY。

出0入0汤圆

发表于 2009-5-6 10:42:19 | 显示全部楼层
完蛋了,又回到原始社会啦。。。。

出0入0汤圆

发表于 2009-5-6 11:00:11 | 显示全部楼层
还是不明白如何脱离电脑编程

出0入25汤圆

发表于 2009-5-6 11:06:04 | 显示全部楼层
直接打 00001111来编程,真的够古老的。有时间可以做点更有意思的东西吧。

不过lz如果自己娱乐一下的话,消磨时间那就另当别论。

还是支持一下

出0入0汤圆

发表于 2009-5-6 11:06:52 | 显示全部楼层
和楼上一样不明白怎么脱离电脑编程?莫非单片机自己将汇编程序编程成机器码再写进去?

出0入0汤圆

 楼主| 发表于 2009-5-6 11:54:42 | 显示全部楼层
不是直接用01代码,比如执行mov r0,1,我就直接在板子上输入0 0 1.其中0代表mov,下一个0代表地址为0的ram,1代表立即数。

出0入0汤圆

发表于 2009-5-6 11:58:41 | 显示全部楼层
八九十年代的编码器...

出0入0汤圆

发表于 2009-5-6 12:54:11 | 显示全部楼层
我有过同样的想法,能不能不用电脑呢,这是有一定意思的.
......
以前在学校用过一个实验箱(PLC),里面就一个行列键盘,一个LCD显示器,然后就一排输入一排输出.是用来学PLC的,有点类似楼主的方法,比如1表示LD,2表示OUT之类的哈哈,不过是老古董了,只能用来玩玩,编大型程序还得用电脑啊.

出0入0汤圆

发表于 2009-5-6 13:36:03 | 显示全部楼层
这是最古老的东东。。。。那时候都是这样的。。。。首先写汇编语言,然后对照表格人工译码。。。够痛苦。。



电脑毕竟是很好的“开发工具”,不用白不用。

出0入0汤圆

发表于 2009-5-6 21:25:51 | 显示全部楼层
楼主好厉害啊,从2008年10月才开始学单片机,就能脱离电脑编程了。那我现在开始学也不算晚啊。

出0入0汤圆

发表于 2009-5-6 21:32:11 | 显示全部楼层
什么时候能脱离单片机直接在纸上运行?

出0入0汤圆

发表于 2009-5-6 23:33:59 | 显示全部楼层
还是有些意义的,记得哪个网站好像有类似产品了。对于不懂电脑的人又想程控个什么东西,只要有做事情的思路,就可以实现,不是很好吗。哪个网站,等我翻翻,很类似的思路

出0入0汤圆

发表于 2009-5-6 23:37:23 | 显示全部楼层
哈哈,翻到了。虽然老了,记忆力还是可以的!
http://www.xie-gang.com/MEAPC1.htm

出0入0汤圆

发表于 2009-5-7 00:13:01 | 显示全部楼层
没想到还有一样想法的人。我以前也发过一个,和楼主这个一样的原理。
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=958598&bbs_page_no=1&search_mode=3&search_text=hn_ny_dxs&bbs_id=9999

出0入0汤圆

发表于 2009-5-7 00:16:52 | 显示全部楼层
【10楼】 timer
什么时候能脱离单片机直接在纸上运行?


很强的回复,笑喷了。

出0入0汤圆

发表于 2009-5-7 00:20:05 | 显示全部楼层
楼主太有创意了.10楼的回复比楼主还要有创意,哈哈.

出0入0汤圆

发表于 2009-5-7 00:21:29 | 显示全部楼层
支持下!很多学校的学生只能在上单片机的课的时候才能玩单片机。。。平时就是在纸上运行!!!

现在有一部分的人有笔记本或者在宿舍有电脑了~!但是没有的不是少数特别是没电脑的更多想学的!!有电脑的基本玩游戏去了~

出0入0汤圆

发表于 2009-5-7 00:23:27 | 显示全部楼层
想起来了!!!这个跟PLC的手持编程器有着一样的功能!一旦把这个做好了不只是学生用而已了!很多的现场调试就更好用了!

出0入0汤圆

发表于 2009-5-7 14:16:25 | 显示全部楼层
“会制造劳动工具”是社会进步的动力,怎么现在倒退了,汗一个。
现场调试不会带笔记本电脑??放着好好的东西不用,偏偏钻这牛角尖。

这方法理论上是可以的,但是程序量大了,大到你头疼的时候,你就开始用电脑了。

我们需要的是提供效率,这种想法DIY玩一下就可以了,不像17楼说的那么有商业价值。


“对于不懂电脑的人又想程控个什么东西……”我建议这人先学习电脑。

出0入0汤圆

发表于 2009-5-7 18:20:17 | 显示全部楼层
按18楼说的PLC的手持编程器就没用了?

像做电梯的经常拿一个像手持编程器一样的东西调试维护电梯!他们还需要带一些工具!
难道笔记本就比那个手持编程器便携?笔记本和那些工具放一起?
个人的观点不一样~!

但是这个东西一旦做好了我相信绝有市场的!如果上ARM再搞个编译平台之类的我相信现场调试很多人都会用这个不用笔记本!

出0入0汤圆

发表于 2009-5-7 18:27:15 | 显示全部楼层
支持18楼.

出0入0汤圆

 楼主| 发表于 2009-5-7 19:45:16 | 显示全部楼层
我没玩过ARM,但我知道它很强大,如果能支持USB,完全可以把单片机开发平台移植到arm上,也就是在ARM上建立单片机的编译软件,为什么我们中国就做不出像样的编译器呢?

出0入0汤圆

发表于 2009-5-7 20:03:21 | 显示全部楼层
我高中时候玩的文曲星就有这功能~
把把单片机开发平台移植到arm上
理论上可以~
但我现在用电脑跑开发平台,我都嫌慢~

出0入0汤圆

发表于 2009-5-7 20:19:10 | 显示全部楼层
arm上已经有编译器,何需移植...
wince下有gcc...
可以编译wince程序,
.net程序也有编译器...
编译后直接都可以实机运行
.net的还可以在电脑上跑...

出0入0汤圆

发表于 2009-5-7 20:24:22 | 显示全部楼层
原来是移植单片机的编译器,
winavr应该是可以很容易移植到WinCE上的...
winavr本来就是gcc
利用pocketgcc的源码就好...

出0入0汤圆

发表于 2009-5-7 20:31:42 | 显示全部楼层
纯汇编的话,做个手机版编译器很简单,
可以利用红外发送或串口来下载,bootloader自升级,
可是这有什么意义吗...

出0入50汤圆

发表于 2009-5-7 21:12:43 | 显示全部楼层
不怕累的,可以参考,怕累的,比如我这类人,就乖乖背个笔记本,不管是轻巧的上网本,还是笨重的大本本。其实就是一个心累,一个身体累,自己根据自己的身体体力和脑子的智力权衡掂量吧,没必要非要弄个清楚,这种事情就像萝卜青菜,本来就是各有所爱,没有对错之分。

出0入0汤圆

发表于 2009-5-7 23:46:21 | 显示全部楼层
原始社会好啊,穷人到此帮顶!

出0入0汤圆

发表于 2009-5-8 07:49:36 | 显示全部楼层
抛砖一下,想现场调试的话,也不过是调整参数,或改动少量的代码吧?
笔记本当然很好,一夜回到二十年前有时也是无奈之举。
palm平台上早已有linux移植,相信在此基础装上个交叉avr toolchian也不是太大问题。
就基于现在的条件,仅仅用palm os下的烧写软件,配合简单的文档编辑工具,完全可以实现少量参数调试。

出0入0汤圆

发表于 2009-5-8 09:35:24 | 显示全部楼层
【19楼】 lhyj7080 天之黑
积分:508
派别:
等级:------
来自:鹭岛
按18楼说的PLC的手持编程器就没用了?

像做电梯的经常拿一个像手持编程器一样的东西调试维护电梯!他们还需要带一些工具!
难道笔记本就比那个手持编程器便携?笔记本和那些工具放一起?
个人的观点不一样~!

但是这个东西一旦做好了我相信绝有市场的!如果上ARM再搞个编译平台之类的我相信现场调试很多人都会用这个不用笔记本!

//-----------------------------------------------------------------------------
我个人的观点,譬如一个大的系统需要调试,光相关资料就一个G,打印出来带着?显然带电脑来的方便咯。

当整个系统程序量大了,大到你头疼的时候,你就开始用电脑了,程序量小、简单的系统咋整都行。

至于有没有市场,大家都别那么肯定的下定论,产品是市场决定的,做过几个产品之后您就不会总说“绝对有市场”了。

理论联系实际,市场需要我们考察的。

出0入0汤圆

发表于 2009-5-8 10:04:02 | 显示全部楼层
我最初学习AT89C51时就是自己做的手动编程器,一个钮是0,一个钮是1,一个地址增1,一个地址清0,一个PROG脉冲。一个4位DIP开关配置P2.6/P2.7/P3.6/P3.7。0与1靠串入并出移位寄存器记录,地址由计数器产生,接钮产生的脉冲用RC滤波后接施密特门整形消毛刺。

软件开发开始是手写汇编代码,查书译成二进制可执行代码。后来才是PC写汇编源码,编译,从HEX文件中找代码。后来还想把编程器上5个按钮连接到PC的并口上,化手动为自动,但最终没有动手。

现在时代进步了,一个单片能干好多好多事情,随便花个白菜价就能买到“所有资源引出”的板子,PC上交插编译小菜一碟。几个DEMO实验一遍用不了一天,然后呢?

不少人连“板”都省了,弄个D版的PROTEUS之类的搞一下。索然无味。对楼主的创新也是这4个字的看法。

出0入0汤圆

发表于 2009-5-8 16:23:04 | 显示全部楼层
多研究研究硬件,多研究研究底层,有好处的。
不知道这坛子里有几个人可以随手画个放大电路,随手画个门电路内部模拟结构。
现在的电子工程师全是做数字的,可数字说到底是模拟电子啊,停留在表面。
撤远了。

出0入0汤圆

发表于 2009-5-9 10:27:45 | 显示全部楼层
我对【30楼】只有敬佩之心

出0入0汤圆

发表于 2009-5-9 10:31:21 | 显示全部楼层
回【10楼】
下n代人工智能 不就是"什么时候能脱离单片机直接在纸上运行? "
可能我理解有问题吧.
【10楼】是疑问句
      还是反问句

出0入0汤圆

发表于 2009-5-9 11:00:19 | 显示全部楼层
LZ不容易,我大学的时候,我们学校的51开发系统,就是这样的,当时我还做过些程序,再手动转成BIN文件,再把这个16进制输入进去,就这样的运行程序。

出0入0汤圆

发表于 2009-5-12 22:03:18 | 显示全部楼层
赞一个,我也有这个想法

出0入0汤圆

发表于 2009-5-13 11:20:48 | 显示全部楼层
曾经没有电脑的时候,我也是在纸上写好程序(汇编),然后到学校的机房去编译。
当时也有这样的想法,预计是能够支持汇编。不过后来终究没有实现。

出0入0汤圆

发表于 2009-5-14 20:37:32 | 显示全部楼层
我小学时候买的一个学习用单品机就是脱机编程的 但是不是编汇编 而是那个单片机里给的5个命令 用机子上的按钮编程 用来控制LED 貌似当时是用来编模拟红绿灯的...

出0入0汤圆

发表于 2009-5-18 09:35:19 | 显示全部楼层
哈哈哈哈哈,找到相同的人了,看来这类人还真多耶
上初中高中就是电子迷的估计大多数都干过这个事,刚上高中时自己没计算机,就手工对照机械码表编译汇编程序,然后用一个8位的拨码加按键编程,编个灯亮灯不亮的东西还在那里笑呵了的,结果一上课就趴下
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 03:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表