找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 274|回复: 20
打印 上一主题 下一主题
收起左侧

什么是单片机的“手动编程”?

[复制链接]
跳转到指定楼层
楼主
ID:460466 发表于 2026-3-5 18:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

首先“手动编程”这个词也不是我发明的。手动编程究竟存不存在?它和单片机有没有关系?折腾了多年我对单片机的理解进展不大。是到了请高人给“手动编程”下个准确定义的时候了。
现在我理解的“手动编程”的产生,是在电脑还没普及的年代不用编程器通过硬件手段对单片机裸片里的存储器写入数据(0.1),由单片机的输出脚输出的过程。这个过程不需要先对单片机烧写软件程序。它和单片机一般使用要由电脑通过编程器先对单片机裸片烧写程序,单片机才能运行程序不同。实质上不是单片机运行而是单片机里的存储器运行。
折腾来折腾去没什么进步,请各位老师指正,真的感谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1107340 发表于 2026-3-5 21:46 | 只看该作者
原来的eprom是可以手动编程的。
回复

使用道具 举报

板凳
ID:102168 发表于 2026-3-5 21:47 | 只看该作者
正常情况,烧写进单片机里面的数据,一般称为固件,相当于单片机的“软件”。实质也都是一堆0和1。

你之前手动写进单片机又读出来的那一堆0和1,只能称为乱码,总不能你随意写一堆0和1就成了单片机能运行的软件吧。

之前给你的最简手动编程电路里面,有个“读取”操作,那个读取是为了校验。也就是说给单片机烧写固件之后,需要一个校验的过程。

为什么要校验?因为单片机存储器的写入次数有限,如果写入次数太多了,存储器里面数据可能出错。如果只管往里面写,不读出来确认,出错了你也不知道。

烧写是往单片机里面写数据,校验是从单片机里面读出来之前写进去的数据,然后由你人工或者烧写器跟原始固件内容逐个字节进行对比。

校验失败,也就是意味着烧写过程出错了,可能烧写过程受干扰了,或者单片机存储器有问题了。。。不管什么原因,校验失败了就是不行。

以上内容,你能理解多少?
回复

使用道具 举报

地板
ID:460466 发表于 2026-3-6 08:45 | 只看该作者
changchieh 发表于 2026-3-5 21:46
原来的eprom是可以手动编程的。

eprom是什么?你不解释我怎么会明白?难怪现在很多呼吁外语要减分,,,,,,,,,,,,可擦除可编程只读存储器=======eprom!!!!!!要想叫我看明白您就不能用外文交流!!!您别介意“隔靴搔痒“!””
回复

使用道具 举报

5#
ID:170318 发表于 2026-3-6 08:52 | 只看该作者
我当时接触单片机已经到了8048和8051年代,在没有电脑时,用汇编语言编写单片机程序,进行人工编译,通过手动编程器将编译的一行行16进制代码输入编程器,烧录至单片机的片外ROM(如2716、2732、27C16、27C32、2764、27C64等,需用紫外线擦除,21V烧录程序的,最明显的就是有个玻璃窗口看见里面的硅片),单片机没有片内ROM、RAM和EEPROM,有了电脑后,省了人工编译,开始时还得要通过手动编程器将编译的一行行16进制代码输入编程器,烧录至单片机的片外ROM,后期可以通过电脑烧录。现在的单片机集成了ram和EEPROM(或flash),省了一大堆事情。也许上世纪70-90年代就应该叫“手动编程”
回复

使用道具 举报

6#
ID:996773 发表于 2026-3-6 09:00 | 只看该作者
手动编程是存在过的,我没经历过那个年代,那时候没有电脑转换编程语言到二进制,是用类似于纸带
或磁带代替单片机的程序存储器,当然是记录的有洞和无洞的0和1,玩这个得清楚知道命令和数据之间
的关系,现在么如果喊哪个网友写个让p0.0拉低点亮一个灯或闪烁的程序编译成0和1,楼主在手动编入
到单片机,也能执行。算是正儿八经的手动编程,前期应该有人教过楼主了,不知道后面怎样了
回复

使用道具 举报

7#
ID:170318 发表于 2026-3-6 09:00 | 只看该作者
还有在纸袋上打孔的,也叫“手动编程”吧
回复

使用道具 举报

8#
ID:460466 发表于 2026-3-6 09:02 | 只看该作者
changchieh 发表于 2026-3-5 21:46
原来的eprom是可以手动编程的。

我越来越觉得我把AT89C2051单片机当存储器用了还美其名曰“手动编程”!和单片机运行是两码事?
回复

使用道具 举报

9#
ID:460466 发表于 2026-3-6 09:10 | 只看该作者
xiaocake 发表于 2026-3-5 21:47
正常情况,烧写进单片机里面的数据,一般称为固件,相当于单片机的“软件”。实质也都是一堆0和1。

你之 ...

“”之前给你的最简手动编程电路里面,有个“读取”操作,那个读取是为了校验。也就是说给单片机烧写固件之后,需要一个校验的过程"----------------------哦!在您的帮助下,照方抓药,手动编程可以使2051的8个口完成LED流水灯等变化了(或者说可以叫8个输出端的电平按要求变化),现在我理解这不叫单片机运行(单片机运行要有软件),这应该是把单片机里的存储器单独拿来完成数据的写入-读出把?
回复

使用道具 举报

10#
ID:996773 发表于 2026-3-6 09:11 | 只看该作者
海阔天空8 发表于 2026-3-6 09:02
我越来越觉得我把AT89C2051单片机当存储器

你的行为是手动烧写,不算编程
回复

使用道具 举报

11#
ID:460466 发表于 2026-3-6 09:50 | 只看该作者
本帖最后由 海阔天空8 于 2026-3-6 12:45 编辑
hi等你 发表于 2026-3-6 09:11
你的行为是手动烧写,不算编程

“”手动烧写,不算编程“”---------------烧写?不就是对相关引脚加0或1的电压吗?这0或1的电压按一定的顺序输出,这”一定的顺序输出数据"不就是输入的按程序输出吗?
回复

使用道具 举报

12#
ID:102168 发表于 2026-3-6 11:09 | 只看该作者
海阔天空8 发表于 2026-3-6 09:02
我越来越觉得我把AT89C2051单片机当存储器用了还美其名曰“手动编程”!和单片机运行是两码事?

过去给单片机写”软件“,是看单片机的手册,不借助电脑,把程序写纸上。(这才是正儿八经的手动编程)程序写纸上是给人看的,要写进单片机才能看程序是否如期运行。所以又手动把程序写进单片机。
写完后要再读出来跟纸上的内容对照检查一下(校验)。


给单片机烧写数据,就是给单片机”装软件“,至少有以下两个环节:
1. 烧写,把单片机切换到烧写模式,给单片机内置存储器写进数据(软件)。     具体怎么烧写,暂且不谈。

2. 校验,把单片切换到检验模式,把单片机内置存储器里面的数据读出来再检查一遍,确保没有错误。    具体怎么读取,暂且不谈。

软件装好后,下一步是让单片机运行软件。
怎么运行? 把单片机切换到运行模式,(确保供电、晶振、复位等都正常)单片机才会运行你装进去的软件。


就这么个过程,不难理解吧。




回复

使用道具 举报

13#
ID:814322 发表于 2026-3-6 12:32 | 只看该作者
“想”的太多,“学”的太少。
回复

使用道具 举报

14#
ID:460466 发表于 2026-3-6 13:19 | 只看该作者
本帖最后由 海阔天空8 于 2026-3-6 13:25 编辑
xiaocake 发表于 2026-3-5 21:47
正常情况,烧写进单片机里面的数据,一般称为固件,相当于单片机的“软件”。实质也都是一堆0和1。

你之 ...

“”你之前手动写进单片机又读出来的那一堆0和1,只能称为乱码“”---------------这句话不理解。他是按一定的规律写入到存储器里的(单片机不也是用存储器存储数据吗?)并且能按一定的规律输出,怎么称为乱码?
回复

使用道具 举报

15#
ID:460466 发表于 2026-3-6 13:23 | 只看该作者
本帖最后由 海阔天空8 于 2026-3-6 13:25 编辑
hi等你 发表于 2026-3-6 09:11
你的行为是手动烧写,不算编程

“手动烧写”的结果是?能把烧写进去的数据按原顺序输出的。这有一定规律的数据叫什么?不能叫程序吗?
回复

使用道具 举报

16#
ID:460466 发表于 2026-3-6 21:13 | 只看该作者
xiaocake 发表于 2026-3-6 11:09
过去给单片机写”软件“,是看单片机的手册,不借助电脑,把程序写纸上。(这才是正儿八经的手动编程)程 ...

我这个“手动编程”这3步似乎都完成了?8个输出/输入端写进去的输出电位高低顺序切换到“”读出“”可以看到和输入的数据一样呀!断电后再开机输出不变(6116存储器断电后输出就丢失了)。
回复

使用道具 举报

17#
ID:102168 发表于 2026-3-6 23:09 来自触屏版 | 只看该作者
海阔天空8 发表于 2026-3-6 13:23
“手动烧写”的结果是?能把烧写进去的数据按原顺序输出的。这有一定规律的数据叫什么?不能叫程序吗?

手动烧写的结果,是把有用的数据写进单片机的存储器。目前你写进去的是无用的数据。

1.你写进去的数据只是你认为有规律,单片机不认识,因为数据内容不符合它的要求,对它来说就是乱码。

2.你说的按顺序,这是单片机厂家规定的数据烧写和读取的方式,没有其他的方式。存储器的读写方式跟读写的数据内容无关。

回复

使用道具 举报

18#
ID:102168 发表于 2026-3-6 23:19 来自触屏版 | 只看该作者
海阔天空8 发表于 2026-3-6 21:13
我这个“手动编程”这3步似乎都完成了?8个输出/输入端写进去的输出电位高低顺序切换到“”读出“”可以 ...

1。你看单片机手册了嘛?你知道正常的固件对应的数据是啥样的嘛?目前你不了解怎么写固件,所以现状是:你还没能力写固件。
2。目前你已经会单片机固件烧录的过程了,只是还没有烧写过正确的固件。

回复

使用道具 举报

19#
ID:814322 发表于 2026-3-7 02:45 | 只看该作者
xiaocake 发表于 2026-3-6 23:19
1。你看单片机手册了嘛?你知道正常的固件对应的数据是啥样的嘛?目前你不了解怎么写固件,所以现状是: ...

他连烧录都还没学会呢
回复

使用道具 举报

20#
ID:460466 发表于 2026-3-7 08:35 | 只看该作者
xiaocake 发表于 2026-3-6 23:09
手动烧写的结果,是把有用的数据写进单片机的存储器。目前你写进去的是无用的数据。

1.你写进去的数据 ...

1.你写进去的数据只是你认为有规律,单片机不认识,----------------------这话怎么理解?我写进去的数据,在读出状态可以从输出口输出的呀?怎么能说“不认识“?它记住了呀?
回复

使用道具 举报

21#
ID:460466 发表于 2026-3-7 09:53 | 只看该作者
xiaocake 发表于 2026-3-6 23:19
1。你看单片机手册了嘛?你知道正常的固件对应的数据是啥样的嘛?目前你不了解怎么写固件,所以现状是: ...

“”正确的固件"是什么?单片机认识的才叫"正确“吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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