矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 海阔天空9

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

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

使用道具 举报

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

使用道具 举报

     
发表于 2023-12-7 16:01:43 | 显示全部楼层
海阔天空9 发表于 2023-12-7 15:37
可以搭个硬件写入几个数据到第7步验证一下,搭个硬件没有问题。只是不知道电路图?和输入数据的操作步骤 ...

电路图主楼不是画好了,操作步骤也有了,地址不是第8步控制的,我乱猜的,相当与万事俱备......
回复 支持 反对

使用道具 举报

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

绝对是,没有编程器,AT89C2051用不了烧录器(不支持),肯定机器码是写不到单片机里的,你用手工写几个字节也烧录不进去的,因为烧录的过程中有严格的时序控制,你是掌控不了的。正确的做法是在KEIL里把源代码写好后编译成机器码HEX文件,然后用编程器写到单片机的串口,这样才能完成整个过程
回复 支持 反对

使用道具 举报

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

使用道具 举报

     
发表于 2023-12-7 17:31:03 | 显示全部楼层
海阔天空9 发表于 2023-12-7 17:14
“因为烧录的过程中有严格的时序控制,你是掌控不了的。”-----------------那就是手工写入数据绝对不可 ...

手工写入是可以的,最早的芯片程序也是人工写入的,但是很耗时间,费脑。
回复 支持 反对

使用道具 举报

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

使用道具 举报

     
发表于 2023-12-7 18:38:20 | 显示全部楼层
海阔天空9 发表于 2023-12-7 17:14
“因为烧录的过程中有严格的时序控制,你是掌控不了的。”-----------------那就是手工写入数据绝对不可 ...


手工写入是不可能的,请看 19 楼。

你先告诉我,如何手工产生一个不超过 110us 宽的脉冲,能做到了我再说可能性。
回复 支持 反对

使用道具 举报

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

使用道具 举报

     
发表于 2023-12-7 19:56:16 | 显示全部楼层
海阔天空9 发表于 2023-12-7 17:14
“因为烧录的过程中有严格的时序控制,你是掌控不了的。”-----------------那就是手工写入数据绝对不可 ...

嗯,手工编程的确是可以实现的。你可以设计一个由编码器,存储器(比如你的HM6116)以及外围电路组成的“烧写器”。
先通过拨码开关将机器码手工存入储存器,编码完成后用烧写按键驱动外围电路将储存器内程序灌进单片机(其实就是脱机烧写器)。
但如果想直接通过编码开关操作现代单片机的用户储存区是不可能的
回复 支持 反对

使用道具 举报

     
发表于 2023-12-7 21:13:50 | 显示全部楼层
海阔天空9 发表于 2023-12-7 10:07
您这个短句里就有几个不懂:机器码?HEX?汇编代码?等于一窍不通!

单片机能直接执行的代码就是机器码,它也只认识机器码。
人可以直接写机器码,如果用二进制表示就是很多的0和1,
如果用16进制表示,就是很多由 0到F 构成的"乱码"。
机器码太难记了,可读性差,也容易出错,出错了还不好检查。
为了方便,提高代码可读性,汇编就诞生了。
汇编指令就是一些英文单词或其缩写,不同的汇编指令有不同的用法和规则。
不同类型的单片机,对应的汇编指令也不一样。也就是说汇编是跟单片机硬件直接相关的。
用汇编指令写的代码就是汇编代码了。
汇编代码与机器码是最接近的,可以说是一一对应的关系。
只要你熟悉各个汇编指令对应的机器码,你就可以把汇编代码翻译成机器码,或者反之。
不过现在如果要写汇编代码完成单片机项目,可以直接由软件(编译器)自动完成这个翻译工作,不需要人工翻译。
同样的由机器码翻译成汇编代码(简称反汇编)也有对应的软件可以完成。

hex是一种标准的文件格式,很多单片机项目编译完成后就是生成这个文件,后面要烧入单片机的也就是这个文件。
然后关于hex文件的内容,网上可以搜到,有介绍的,简单说就是在机器码的基础上附加了一些地址、校验码什么的数据。

另外一种常见的文件格式是bin,里面的内容可以说就直接是机器码了,没有附加的数据,
一般从单片机或者存储器里面读出数据后保存的文件就是这个格式。
当然也可以用软件将hex文件转换为hin文件,反之bin也能转换为hex。
bin文件也可以直接烧入到单片机。

以上内容玩过单片机的估计都不会太陌生,帖主大大需要从基础的学起啊。
回复 支持 反对

使用道具 举报

     
发表于 2023-12-7 22:58:07 | 显示全部楼层
海阔天空9 发表于 2023-12-6 14:49
就是要理解最初的单片机原理,我相信编程器,烧录器,这语言那语言都是单片机以后的发展

我记得(不太准确)硬件电路是这样的,就是16个钮子开关代表地址A0-A15;8个钮子开关代表数据D0-D7。钮子开关拨上为1,拨下为零,这样一条一条指令进行置位,比如说地址为008H,那就是对应的右边数过来第四位钮子开关拨向上,其余拨向下。数据同理。
回复 支持 反对

使用道具 举报

     
发表于 2023-12-7 23:03:46 | 显示全部楼层
海阔天空9 发表于 2023-12-7 18:59
那您先说说这个脉冲干什么用?
这就是往存储器6116里存数据和往单片机里存数据数据的最大不同吗?

你做不到,不要绕圈子。
回复 支持 1 反对 0

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

蒙公网安备 15040402000005号

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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