|
jhczy 发表于 2026-3-6 09:00 纸带上打孔,记得见过?那就是由纸带输入0或1吧?孔能使光线通过设为1(或0)纸通不过光线设为0(或1)?是这个意思吧? |
xiaocake 发表于 2026-3-5 21:47 “”你之前手动写进单片机又读出来的那一堆0和1,只能称为乱码”---------------------------对于某种单片机来讲他不认识所以是乱码。但“那一堆0和1”是固定的也,可以认为有一定的规律? |
想后看开 发表于 2026-3-10 15:45 您这样一说倒是符合实际。 |
fei2008 发表于 2026-3-11 09:24 外接脉冲分为单脉冲和自动脉冲。单脉冲是加到地址端,地址每次累加1后写入数据,自动脉冲是读出每个地址数据的,,, |
xiaocake 发表于 2026-3-11 11:08 我就是问这种“手动编程”能不能算作使用单片机的主流方法之外的一种方法?老师们总是回答我“今天天气好”!您说我能听懂吗? |
xiaocake 发表于 2026-3-11 11:08 哈哈,如果可以,就能解密了 |
确实不需要使用汇编语言,这点的理解上你还真不如帖主![]() |
wjfw 发表于 2026-3-10 09:24 你在这个帖子里面问这个问题,有点不合时宜。这个帖主对单片机都不了解。 |
本帖最后由 xiaocake 于 2026-3-11 11:09 编辑 海阔天空8 发表于 2026-3-9 20:31 不用电脑 对,的确不用电脑。 不用编程器 不对,那个东西本身就是编程器,只不过是“半自动”的。 不要计算机语言 不对,用的是汇编语言,准确说是51系列单片机的汇编语言,然后是人工翻译成二进制码(就是一堆0和1),之后才烧写的二进制码。 |
| 不用晶振,外接脉冲就可以,可以自动复位,比如写一个流水灯程序靠脉冲频率控制闪烁节奏,也可以在花样数据里设定,哎你们这些从软件转过来的,拜托学学数字电路好不好 |
海阔天空8 发表于 2026-3-10 12:51 那个最简电路是为了满足你“手动编程”的愿望。如果用上晶振,你就无法“手动”完成了。 然后最简电路只是为了给单片机“烧写”软件,AT89C2051要运行“软件”,得给他补充外围电路(晶振,复位)。 这种基础的问题,但凡你之前用点心也不至于现在才问出来。 |
海阔天空8 发表于 2026-3-9 20:31 这种方法虽然能让单片机“机械性”的输出,但它输出的只是你预设的最终结果,没有“灵气”,它不能根据读入的数据进行各种逻辑运算,也不能自主的判断和分析是否符合某种条件后实时动态的输出我们想要的最佳值。 |
海阔天空8 发表于 2026-3-6 08:45 我也不会英文,岁数也一样不小了,但我不会像你这样倚老卖老,有些东西还真的要用英文,RAM、ROM等用中文就复杂多了,C语言的“C”你要用什么代替?还有很多软件的名称,真的是无法用中文直接替代的,总不能因为你不学英文就给你创造一些中文出来代替吧?当然如果你是邻国那位世传领袖那就不一样了,可惜你不是。 |
想后看开 发表于 2026-3-10 15:45 您这样一说我就明白了,这是当年玩单片机的一种早已淘汰了的方法。它和目前主流方法是根本不同的,但他的特点是不用电脑,编程器,计算机语言是它的特点。历史上确实存在过,,,,,,,,,,,,所以各位老师给我用目前的主流方法讲解,根本听不懂,也就不奇怪了。 |
|
现在喜欢机器码编程的人大有人在,网上一块能用机器码编程的51板子可不便宜 昨天还刷了个视频有人在Bendix G15上用打孔带写程序 即便不用单片机玩机器码,pld,cpld不照样玩,同样也不需要晶振,玩什么不都是玩 |
| 当年的手动编程是相当麻烦的,浪费时间,浪费精力,容易出错。知道就行了,没必要深究,有电脑有K软件代替,节约时间,节约精力,不容易出错,不是更好吗? |
|
不要想什么手动编程了既然想学单片机,就好好按新思路学。手动编程是几十年前没有电脑,自己用手动输入高低电平来实现编程的一种办法,非常浪费时间,极度容易出错,现在可能也基本没几个人掌握这种技能了。按照现在的方法:在KEIL 软件写C代码,再把C代码编译成HEX文件,再通过烧录器,把HEX文件烧录到单片机,单片机就能根据程序的设置工作了。假如在单片机P1.0口外接一个LED,如何让这个LED闪烁起来,就写如下代码就行。 // 包含STC89C51寄存器定义头文件(不同编译器可能为reg51.h,效果一致) #include <STC89C5xRC.H> // 延时函数:通过空循环实现简单延时(约500ms,晶振11.0592MHz) void Delay500ms(void) { unsigned int i, j; for(i=500; i>0; i--) for(j=110; j>0; j--); } void main(void) // 主函数,程序入口 { while(1) // 无限循环,让LED持续闪烁 { P1_0 = 0; // P1.0口置低电平(假设LED负极接P1.0,正极接VCC,低电平点亮) Delay500ms(); // 保持点亮500ms P1_0 = 1; // P1.0口置高电平,LED熄灭 Delay500ms(); // 保持熄灭500ms } } |
海阔天空8 发表于 2026-3-10 12:51 开始还以为是勤学好问,现在知道就是个不学无术 |
xiaocake 发表于 2026-3-6 11:09 “”不借助电脑,把程序写纸上。(这才是正儿八经的手动编程)“”---------------如此说来也算编程?(烧写模式)?如果烧写完成后检验模式无误后下一步就是运行”软件"了?这里的"软件“是指什么?我那板子上根本就没有晶振呀?就是靠地址进位完成运行的。(手动或自动) |
xiaocake 发表于 2026-3-5 21:47 “”单片机的功能是不是通过输出端口的不同时间,不同电位高低组合驱动执行电路完成的?“”如果是的话,我通过“”手动编程“”(或称别的方式不用电脑,编程器,计算机语言)如果能实现“”输出端口的不同时间,不同电位高低组合“”那叫不叫使用单片机?我大胆猜想单片机的使用模式可能不仅是一种?为什么就不能用不同的方式去实现单片机“”输出端口的不同时间,不同电位高低组合“呢? |
| 你好,如果加密了,按你的设置,还能显示对应地址的数据吗? |
hi等你 发表于 2026-3-9 08:59 看吧,又形成一个完美的闭环,大家又白操心了。 |
hi等你 发表于 2026-3-9 08:59 不管怎么说,不用管它叫什么名称,它确实是一种不用电脑,不用编程器,不用计算机语言的控制单片机输出端的一种方法。 |
我也下载看了一下,这个吴伟江写的手动编程现在已经是毫无用的资料,却成了永远压死楼主不能开窍的一张破纸![]() |
xiaocake 发表于 2026-3-7 10:30 “”单片机能听懂的话“--------------------------那就有单片机自己的一套规则了?这就涉及到各种“语言”了?也就是规则了?看来要对单片机编程还是绕不过“语言”的? |
xiaocake 发表于 2026-3-7 10:30 “”把他自己随意编的数据写进单片机了,然后还能读出来,读出来是用8个LED显示。 如果他写进去的是单片机能运行的固件,那就是正常的单片机烧录了。--------------------------------------确实是这个意思(随意编的数据,比如各种“流水灯”)!用8个单片机输出端读出来的。哦!因为我写进去的数据单片机不认识。单片机不能运行。我怎样写进数据单片机才能认识逆呢?那就需要单片机先要装进软件(程序)吗?--------“”因为单片机裸芯片什么也不能干”这样理解对吗? |
xiaocake 发表于 2026-3-7 10:30 目前他一直在“编程”(烧录和校验)这个环节转圈圈,单片机对他来说还是个黑盒子。-----确实是。 |
海阔天空8 发表于 2026-3-7 09:53 对,对,对。你前面自己都说过了,跟单片机说话,要说它能听懂的话,它能听懂的话就是“正确的固件”。 |
ldasta 发表于 2026-3-7 02:45 不是的,他已经会手动烧写了,只是他对自己在干啥还缺乏足够的认知。 关于手动编程,他最初是看了“89C2051的手动编程_吴伟江”这个文章(见附件) 文章介绍的是个半自动的烧录器,用了555还有几个数字逻辑芯片,线路其实比较复杂的,他没做。 然后我给他画了最简手动编程电路 (见附件)。里面切换烧录,校验,地址以及脉冲输入等操作,全都是人工用实物开关完成。 然后他就用那个最简手动编程电路,把他自己随意编的数据写进单片机了,然后还能读出来,读出来是用8个LED显示。 如果他写进去的是单片机能运行的固件,那就是正常的单片机烧录了。 目前他一直在“编程”(烧录和校验)这个环节转圈圈,单片机对他来说还是个黑盒子。
89C2051的手动编程_吴伟江.pdf
(347.72 KB, 下载次数: 0)
89C2051编程说明以及最精简的手动烧写电路V1.pdf
(168.26 KB, 下载次数: 0)
|
xiaocake 发表于 2026-3-6 23:19 “”正确的固件"是什么?单片机认识的才叫"正确“吗? |
xiaocake 发表于 2026-3-6 23:09 1.你写进去的数据只是你认为有规律,单片机不认识,----------------------这话怎么理解?我写进去的数据,在读出状态可以从输出的io口输出的呀?怎么能说“不认识“?它记住了呀? |
xiaocake 发表于 2026-3-6 23:19 他连烧录都还没学会呢 |
海阔天空8 发表于 2026-3-6 21:13 1。你看单片机手册了嘛?你知道正常的固件对应的数据是啥样的嘛?目前你不了解怎么写固件,所以现状是:你还没能力写固件。 2。目前你已经会单片机固件烧录的过程了,只是还没有烧写过正确的固件。 |
海阔天空8 发表于 2026-3-6 13:23 手动烧写的结果,是把有用的数据写进单片机的存储器。目前你写进去的是无用的数据。 1.你写进去的数据只是你认为有规律,单片机不认识,因为数据内容不符合它的要求,对它来说就是乱码。 2.你说的按顺序,这是单片机厂家规定的数据烧写和读取的方式,没有其他的方式。存储器的读写方式跟读写的数据内容无关。 |
xiaocake 发表于 2026-3-6 11:09 我这个“手动编程”这3步似乎都完成了?8个输出/输入端写进去的输出电位高低顺序切换到“”读出“”可以看到和输入的数据一样呀!断电后再开机输出不变(6116存储器断电后输出就丢失了)。 |
本帖最后由 海阔天空8 于 2026-3-6 13:25 编辑 hi等你 发表于 2026-3-6 09:11 “手动烧写”的结果是?能把烧写进去的数据按原顺序输出的。这有一定规律的数据叫什么?不能叫程序吗? |
本帖最后由 海阔天空8 于 2026-3-6 13:25 编辑 xiaocake 发表于 2026-3-5 21:47 “”你之前手动写进单片机又读出来的那一堆0和1,只能称为乱码“”---------------这句话不理解。他是按一定的规律写入到存储器里的(单片机不也是用存储器存储数据吗?)并且能按一定的规律输出,怎么称为乱码? |
| “想”的太多,“学”的太少。 |
海阔天空8 发表于 2026-3-6 09:02 过去给单片机写”软件“,是看单片机的手册,不借助电脑,把程序写纸上。(这才是正儿八经的手动编程)程序写纸上是给人看的,要写进单片机才能看程序是否如期运行。所以又手动把程序写进单片机。 写完后要再读出来跟纸上的内容对照检查一下(校验)。 给单片机烧写数据,就是给单片机”装软件“,至少有以下两个环节: 1. 烧写,把单片机切换到烧写模式,给单片机内置存储器写进数据(软件)。 具体怎么烧写,暂且不谈。 2. 校验,把单片切换到检验模式,把单片机内置存储器里面的数据读出来再检查一遍,确保没有错误。 具体怎么读取,暂且不谈。 软件装好后,下一步是让单片机运行软件。 怎么运行? 把单片机切换到运行模式,(确保供电、晶振、复位等都正常)单片机才会运行你装进去的软件。 就这么个过程,不难理解吧。 |
本帖最后由 海阔天空8 于 2026-3-6 12:45 编辑 hi等你 发表于 2026-3-6 09:11 “”手动烧写,不算编程“”---------------烧写?不就是对相关引脚加0或1的电压吗?这0或1的电压按一定的顺序输出,这”一定的顺序输出数据"不就是输入的按程序输出吗? |