矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 海阔天空9

往单片机里写入数据到底是怎么回事?

[复制链接]
     
 楼主| 发表于 2023-12-6 14:52:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 14:53:38 | 显示全部楼层
海阔天空9 发表于 2023-12-6 14:46
编程器和烧录器都不用,什么语言也不用,纯硬件操作就不可能了吗?我觉得不是。

纯硬件的操作,就和用雕刻刀刻录光盘从而得到一个应用数据(或程序)一样,理论是可行的。
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 15:13:59 | 显示全部楼层
海阔天空9 发表于 2023-12-6 13:39
“有使用手动烧录的,准备编译好的数据,按地址输入,”----那就是说没有编程器,烧录器也能使单片机工作 ...

可能是前面我对题意理解有误,让单片机烧录完能工作起来的程序就需要按功能需求进行编写编译好,你发的图片里面的内容就是手动烧录方法,那时想玩玩还特意攒了几片2051回来,过后还是还没玩压箱底了,现在想要怎样的编程器都有,点点鼠标就可以
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 15:18:31 | 显示全部楼层
先说结论:离开烧录器,楼主你不可能纯硬件手动操作实现 2051 的高压编程。

再说理由:

但凡 LZ 耐心看完 2051 的手册,就知道高压编程是怎么一回事了,我给贴过来。
高压编程就是在 RST 脚加上 12v 电压,其他脚加上 5v/0v 时序实现的。

虽然看起来通过外部手动开关,也可以产生这些时序,然而有些时序是有速度要求的。
以 PROG(P3.2) 脚的编程脉冲为例,图中 tGLGH 要求 1-110us 范围,超出了可能失败。
你就说你啥手动开关能给我拨动出 1-110us 的负脉冲吧,手指头掰断了也搞不出。
更别说手动开关还有抖动一说了,随便抖一下,好几个脉冲过去了,还怎么精确编程?

当然你可以说我造一些单稳触发器,就可以满足精确的时序要求了。
问题是,这个过程中,你相当于自己造了一台烧录器....

123.png

基于上述分析,楼主你不可能纯硬件手动操作实现 2051 的高压编程。
回复 支持 1 反对 0

使用道具 举报

     
发表于 2023-12-6 15:24:34 | 显示全部楼层
我曾经自己手动制作了一台AT89C2051编程器
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 15:24:43 | 显示全部楼层
luosifu 发表于 2023-12-6 15:11
听说有一种设备,叫做逻辑分析仪,正规的太贵,便宜的有USB的,才十几块钱,可以捕捉时序信号,通过这个可 ...

AT89C2051 的编程时序是公开的,直接手册上就有。

问题是某些步骤有 Tmax 的要求,这在纯手切换 5v/0v 的环境下根本不现实。更别说手切会存在抖动的问题,地址多抖两下都不知跑哪去了
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 16:40:33 | 显示全部楼层
89C2051没玩过,89S52倒是实实在在的按楼主这个思路“人肉烧录”过一回,就是先在电脑上把单片机程序编译好、生成hex文件,然后从hex文件里人肉解读机器码,再按单片机数据手册上给出的烧录数据的具体要求,给相应的引脚加上正确的电压,一个字节一个字节地把机器码烧录进去。现在回想起来那时也真是傻得厉害,有现成的烧录器不用,硬是花了大半天时间,也才烧录进去一百多个字节的机器码,而且回头一校验还有好几个字节搞错了的。你要说通过这个过程来学习单片机吧,巨浪费时间不说,关键是毫无获得感,弄了半天只要有一个字节烧录得不对就“竹篮打水一场空”,图个啥?
回复 支持 1 反对 0

使用道具 举报

     
发表于 2023-12-6 17:01:36 来自手机 | 显示全部楼层
б(д)
б

о
еУ
"д"()
(о)
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 17:02:09 | 显示全部楼层

真是奇怪,怎么最近发帖老是乱码
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-12-6 17:12:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 17:30:44 | 显示全部楼层
t3486784401 发表于 2023-12-6 15:18
先说结论:离开烧录器,楼主你不可能纯硬件手动操作实现 2051 的高压编程。

再说理由:


只要楼主手速够快够稳,理论上是可行的。
反正我也是瞎说。
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 17:37:35 来自手机 | 显示全部楼层
难道大家不觉得楼主很奇怪吗?大家让他去学一些基础知识,他又说年纪大了学不了。然后大家直接叫他去应用,他又说要了解基本原理。
回复 支持 反对

使用道具 举报

     
发表于 2023-12-6 17:57:38 | 显示全部楼层
海阔天空9 发表于 2023-12-6 13:25
“并行高压编程”---------您指的是不是编程电压要+12V?(单片机电源是+5V)。编程器最终也是向引脚输 ...

单片机不是冷冰冰的芯片,在制造时会固化一段引导程序(bootloader)在系统储存区。在特定条件下(比如AT89C系列的RST接12v电压)就会激活此程序,它会监控编程脚,然后会根据编程脚收到的数据执行相应操作。这种数据不光有编码要求,还有时长要求,比如单片机系统至少以微秒为单位,手动在上百甚至几十微妙切换高低电平?(快银来了都得叫你大哥)
如果想体验人肉烧写,可以弄套纸带打孔编程器玩玩,如果还是想手写2051,那起码得先看看数据手册再说吧。玩单片机抱数据手册是必修课
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-12-6 18:57:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-12-6 20:06:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-27 16:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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