矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 海阔天空9

拨码开关手动编程写入了程序的2051能在最小系统上运行吗?

[复制链接]
     
 楼主| 发表于 2024-1-19 21:45:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 21:45:55 | 显示全部楼层
本帖最后由 amwbsrhk 于 2024-1-19 21:57 编辑
灰灰的丝丁鱼 发表于 2024-1-19 20:13
他就没有写入单片机的程序,只是写入几个自以为是流水灯程序的数据,如何能够运行?


按照坛友提供的程序写进去了,现在到了试运行阶段结果不正常,还需要查找问题
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-19 21:50:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 21:55:50 | 显示全部楼层
海阔天空9 发表于 2024-1-19 21:45
12个字节的程序是也不是时间相等?

这是程序代码,
不是给人看的。
所以我要你头脑清楚,
不同的状态不要混为一谈。
回复 支持 反对

使用道具 举报

发表于 2024-1-19 22:01:45 | 显示全部楼层
amwbsrhk 发表于 2024-1-19 21:45
按照坛友提供的程序写进去了,现在到了试运行阶段结果不正常,还需要查找问题

你觉得一个流水灯程序就12个字节就能够完成了吗?他这根本就不是程序,而是存储器用于流水灯的数据
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:04:44 | 显示全部楼层
海阔天空9 发表于 2024-1-19 21:50
既不是读出状态,执行状态又怎么办呀?

第一步擦写(把程序代码写入单片机);
第二步读出校验(看是不是所读即为第一步所写);
第二步完全正确后,
说明程序代码已经正确写入了单片机。
这二步的灯并不是程序执行结果,
也不是给人(你自己除外)看的。

此后,才是第三步:真正的执行程序。
最小系统开电,P1.0引脚上接的灯不停闪烁。
这就正常了。

反复阅读理解我最近的这几次回复,
千万不要再把三个状态混为一谈了。
如果还是混在一起说的话,
我也就只能帮到这里了。

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-19 22:09:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:10:51 | 显示全部楼层
海阔天空9 发表于 2024-1-19 22:09
此后,才是第三步:真正的执行程序。
最小系统开电,P1.0引脚上接的灯不停闪烁。
这就正常了。-------- ...

只有第三步才是运行程序。
前面两步都是准备和检查程序代码。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:17:15 | 显示全部楼层
海阔天空9 发表于 2024-1-19 22:09
此后,才是第三步:真正的执行程序。
最小系统开电,P1.0引脚上接的灯不停闪烁。
这就正常了。-------- ...

前面这两步不用晶振,
只能用手动脉冲。
因为只有这样你才能看清楚是吧?

第三步执行程序要在最小系统中,
使用晶振。
每秒钟执行百万条指令,
你这12个字节的指令是反复循环执行的。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:25:45 | 显示全部楼层
海阔天空9 发表于 2024-1-19 21:16
12,13脚没有内部上拉电阻,难道这么重要吗?我在手动版写的数据不接上拉电阻可以正常运行的

P1.0和P1.1需要加上拉电阻试试,程序是亮灭
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:28:11 | 显示全部楼层
灰灰的丝丁鱼 发表于 2024-1-19 22:01
你觉得一个流水灯程序就12个字节就能够完成了吗?他这根本就不是程序,而是存储器用于流水灯的数据

程序是P1.0口一个灯闪亮不是流水灯,把我都搞晕了
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:28:51 | 显示全部楼层
本帖最后由 abbey_tom 于 2024-1-19 23:17 编辑

网友提供的这12个字节就是所谓的程序代码
一共有6条指令,
153613yg97hw630g9hh579.jpg
这6条指令可以解释如下:
1、把255这个数放在R5寄存器
2、把255这个数放到R4寄存器
3、把R4寄存器中的数减1,如果不等于0,反复执行本句(即第3句)
4、把R5寄存器中的数减1,如果不等于0,跳回第2句
5、把P1.0引脚反相
6、跳回到第1句。

以上6条指令,每条指令为两个字节,
在单片机中编码为左侧的二进制内容,
这可称之为程序的二进制代码,
不是给人看的,也称为机器码。
你所看到的8个灯的状态,
就是对应着这些二进制代码。

你用8个灯来辅助擦写操作
并且校验核对这些二进制代码是否正确写入了。
它不代表任何实际的应用意义,
显然并非本程序的执行结果。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:39:01 | 显示全部楼层
取反会不会是其中一个状态缺少了1,所以一直看到是灭的?
仿真里面是7个常亮一个闪动
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 22:48:28 | 显示全部楼层
这6条指令中,
核心是第5句,
把P1.0引脚反相
前面的第1-4句起延时作用
使用了双层减法循环来消耗时间,
其中第3句将被执行255*255次
第2句和第4句将执行255次。
执行完这么多语句后,取反P1.0,
然后跳到第1句循环执行,再取反P1.0
如此反复不止。
结果是:延时-P1.0高电平-延时-P1.0低电平-延时-P1.0高电平-延时-P1.0低电平……
回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 23:09:16 | 显示全部楼层
amwbsrhk 发表于 2024-1-19 22:28
程序是P1.0口一个灯闪亮不是流水灯,把我都搞晕了

其实也差不多的,把取反指令换成移位指令不就是流水灯了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

蒙公网安备 15040402000005号

GMT+8, 2025-4-27 08:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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