找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: 海阔天空8
打印 上一主题 下一主题
收起左侧

不用电脑,软件,编程器就不能玩单片机吗?

  [复制链接]
楼主
ID:147710 发表于 2020-8-11 11:00 | 显示全部楼层
之前单片机的存储器是外挂的,编程过程是这样的:
1,用汇编语言编程,
2,编好后人工编译成机器码,就是二进制的0101,
3,然后手工把机器码写入存贮器,就是在芯片管脚接上开关,人工逐个按机器码拨动开关,设置地址,设置数据,写入,
4,输入完成后接上单片机运行。
后面为提高效率,改用开孔纸带,光电输入。再后来有电脑后,用电脑将汇编编译成机器码(bin或hex文件),用电脑烧写机器码(下载程序)。
现在的单片机烧写程序时都有下载协议,手工操作几乎不可能了,除非你找到古老的单片机。
回复

使用道具 举报

沙发
ID:147710 发表于 2020-8-11 19:46 | 显示全部楼层
海阔天空8 发表于 2020-8-11 13:09
可能关键就在“设置地址,设置数据,写入,”---您能不能说具体点?“地址怎么设置?数据在哪写入?电平 ...

现在的单片机存储器Flash都是内置的,无法从外部直接操作存储器写入程序,都是用电脑下载器通过特定的协议把程序写入Flash。古董单片机,它没有内置存储器,执行地址从外挂存储器ROM的首个地址开始。外挂存贮器有输入输出端口都是古董级的了,编程方法跟你玩过的MA6116差不多,不同之处,就是断电数据不会丢失,不过这个外挂存储器ROM重新编程得用紫外线擦除,或高压12V擦除,早就没人用了,太麻烦!现在的程序随便一个都成千上万行,手工编程要干到猴年马月呀!而且还容易错,手工编程的单片机早就停产了。
回复

使用道具 举报

板凳
ID:147710 发表于 2020-8-11 20:17 | 显示全部楼层
89C2051估计可以了却你的心愿,做一块洞洞板,把89C2051管脚对应接上钮子开关(P1口7个+RST+P3.2+P3.3+XTAL1,买十几个吧),拨动钮子开关,按照步骤置高(5V)低(0V)电平就可以把程序写入闪存了,对了,RST脚还得加多一个钮子开关接12V。
回复

使用道具 举报

地板
ID:147710 发表于 2020-8-11 20:21 | 显示全部楼层
海阔天空8 发表于 2020-8-11 13:09
可能关键就在“设置地址,设置数据,写入,”---您能不能说具体点?“地址怎么设置?数据在哪写入?电平 ...

对于89C2051,我没玩过,地址估计是自动设置的,从0000开始,每写一次,地址自动+1,数据从P1口输入,高电平5V,低电平0V。
回复

使用道具 举报

5#
ID:147710 发表于 2020-8-11 21:25 | 显示全部楼层
本帖最后由 XTXB 于 2020-8-13 20:58 编辑

看以下能不能助你圆个单片机梦,
我不会汇编,也不会手工编译,请keil帮我代劳吧,
先用C实现P3.3口LED闪烁:


仿真,汇编和机器码都有了:


下面是烧写到存储器的机器码:


把上面程序的机器码共39个数据,写入89C2051存贮器,从00H到26H地址,复位后单片机即可照设定运行。
注意:表中的是16进制,输入时应该为二进制,例如:02对应P1口的8个开关应该是0000 0010,
其中:0=0V,1=5V,就是P0.1口接5V,其他接0V。
祝你好运!
回复

使用道具 举报

6#
ID:147710 发表于 2020-8-11 22:17 来自手机 | 显示全部楼层
海阔天空8 发表于 2020-8-11 21:09
您能否把第3步详细解说一下?。。。。。。。3,然后手工把机器码写入存贮器,就是在芯片管脚接上开关 ...

照顶楼你图片的步骤做就行了呀
回复

使用道具 举报

7#
ID:147710 发表于 2020-8-11 22:20 来自手机 | 显示全部楼层
第4,5步是输入数据,第8步是读出数据
回复

使用道具 举报

8#
ID:147710 发表于 2020-8-11 22:29 来自手机 | 显示全部楼层
就是,写入一个数据要从3-7共5个步骤,完成上面LED程序需要重复那5个步骤53次。。
回复

使用道具 举报

9#
ID:147710 发表于 2020-8-12 14:10 | 显示全部楼层
是的,严格照步骤操作就行,这是编程协议,改不了的。
下图是P3.5蓝灯闪烁的程序机器码,你试试看:


回复

使用道具 举报

10#
ID:147710 发表于 2020-8-12 14:34 | 显示全部楼层
要玩这个手动编程,你这块板子很难改了,用洞洞板单独做一块电路板,焊上钮子开关3挡的那种(因为涉及到悬空),严格按步骤操作,下载协议没啥道理讲的,叫你悬空就悬空,叫你高电平H或接5V,你就接5V,叫你低电平L或接0V,你就接0V,中途搞错了,你就从第一步重新开始,玩单片机就要不怕麻烦,没有捷径可走。
回复

使用道具 举报

11#
ID:147710 发表于 2020-8-13 10:36 | 显示全部楼层
本帖最后由 XTXB 于 2020-8-13 20:00 编辑
海阔天空8 发表于 2020-8-12 19:34
谢谢您想帮我圆数十年的梦!使我又燃起了信心。资料讲存储器6116到单片机不远了。这个跨越我一直没完成。 ...

板子做得挺用心的,不错!真佩服你的执着!板子都玩到包浆了!强!

有几个思路你要明白:
1,电路图也是接线图,人家给你原理图,就是在告诉你怎么接线。
2,单片机引脚有限,为节约资源,都是多功能引脚,通过组合,4个引脚至少可以完成16种功能,如果加上上升沿下降沿,脉冲编码,可以扩展无穷多种功能。
3, 对于2051,完成一次写入或读出,需要不同的引脚组合操作才可以完成,而6116比较简单,改变某个引脚高低电平就可以完成。   
4,存储器完成顺序逻辑控制是可以的,但涉及到计算哪怕最简单的加减法就不好整了,单片机就可以,这可能就是计算机的由来吧。
回复

使用道具 举报

12#
ID:147710 发表于 2020-8-13 12:18 | 显示全部楼层
本帖最后由 XTXB 于 2020-8-13 18:05 编辑

给你个参考电路试试看:


2051手动烧写03.jpg (148.91 KB, 下载次数: 210)

2051手动烧写03.jpg
回复

使用道具 举报

13#
ID:147710 发表于 2020-8-13 14:00 | 显示全部楼层

哈哈,直击灵魂!
理论上可以而已,先写汇编,再查表将汇编译成机器码,再人肉烧写入单片机,离开电脑搞单片机编程,难度确实是成千上万倍的增加,真不知当年阿波罗是咋完成的,想想都恐怖!
回复

使用道具 举报

14#
ID:147710 发表于 2020-8-13 14:04 | 显示全部楼层
海阔天空8 发表于 2020-8-12 19:09
“从0000开始,每写一次,地址自动+1,数据从P1口输入,高电平5V,低电平0V。”谢谢,这个我基本理解:从 ...

激活就是:RST从5V升为12V
回复

使用道具 举报

15#
ID:147710 发表于 2020-8-13 19:54 | 显示全部楼层
wwh2382 发表于 2020-8-13 16:37
楼主的问题已经很明确了。坛友们过于热情,大概没有真正理解楼主的真意,就发表意见。楼主根本不想学编程 ...

楼主玩单片机不为工作,不为赚钱,纯梦想,纯爱好,没有功利,到达的层次已经很高了。
回复

使用道具 举报

16#
ID:147710 发表于 2020-8-14 10:41 | 显示全部楼层
海阔天空8 发表于 2020-8-14 07:23
您说得太对了!就是不想学这语言那语言的。纯电路性质的。“语言”就是电路和人之间的一道障碍!当然也有 ...

  1,单片机内部电路非常复杂,复杂到普通人穷尽一生也不可能把它全部搞熟记住,而且硬件方面也不可能把所有的控制端引出来,如果要全部引出来可能要几万根都不止,只能把功能模块集合到寄存器,通过寄存器来实现电路功能。
  2,寄存器最底层的操作其实就是机器码01010,看最早期的程序,就是0110110110010,二进制机器码太长了,就用16进制代替,例如:用D3代替11010011,是不是简洁多了?
  3,但满屏都是02 00 1F E4 FF FE F5 B2这些十六进制代码,也跟天书一样,看久了也会崩溃,所以把这些抽象出了汇编语言:用INC A代替04,CLR代替E4,从这些汇编语言开始,程序就开始像人话了,学习一下能看得懂。
4,后来就有更像人话的C语言, 比如让P3.3口电平翻转,
       C语言:P3.3 =!P3.3;
       汇编:CPL 0xB3
       机器码:B2B3
  5,看上面的例子,有了高级语言,沟通是不是更直观,更方便了?

    6, 下面是89C2051单片机P3.3口闪烁的十六进制机器码,且不谈把它编出来,能把它看懂的都是大神了
       02 00 1F E4 FF FE F5 B2 F5 B1 0F BF 00 01 0E D3
       EF 94 30 EE 94 75 40 F2 E4 FE FF B2 B3 80 EB 78
       7F E4 F6 D8 FD 75 81 07 02 00 03 00


回复

使用道具 举报

17#
ID:147710 发表于 2020-8-14 13:05 | 显示全部楼层
本帖最后由 XTXB 于 2020-8-15 12:25 编辑

如何点亮P3.3口的LED?


我用STC软件下载:


看,STC15W404AS的P3.3口点亮了:


你可以试着用你的人肉烧写法点亮89C2051,成功了记得结贴哦,祝你好运!下面是人肉烧写接线图与烧写步骤:


回复

使用道具 举报

18#
ID:147710 发表于 2020-8-15 18:55 | 显示全部楼层
海阔天空8 发表于 2020-8-15 08:15
“第5步给p1口各个脚加什么电平对楼主来说有难度”???-------------不就是用拨码开关转换各脚的高,低 ...

引脚高低电平的设置取决于你要实现什么功能:
如:
要让P3.5口输出1,就设置为1101 0010  1011 0101
要让P3.5口输出0,就设置为1100 0010  1011 0101
要问我是怎么知道这个天书的,请看下表:


回复

使用道具 举报

19#
ID:147710 发表于 2020-8-16 19:13 | 显示全部楼层

别光说不练,先争口气,用我的方法,3个月之内把89C2051的P3.4点亮就算你赢!
可以人肉编程的单片机都是古老的型号,没啥现实意义,纯粹玩玩而已,
回帖到此为止,咱们也别给平台添麻烦了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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