找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: lyonkon
打印 上一主题 下一主题
收起左侧

对于51单片机内存的困扰,求指教

  [复制链接]
41#
ID:73992 发表于 2022-10-13 08:46 来自触屏版 | 只看该作者
Y_G_G 发表于 2022-10-11 11:50
跑什么虚拟机
这是楼主单片机基础知识没学好,想当然的冒出一个想法
你说什么他都能找到一堆东西来反驳 ...

35楼的设计已经做到了,指令可以在RAM中执行。也不影响RAM存储数据。
回复

使用道具 举报

42#
ID:73992 发表于 2022-10-13 09:00 来自触屏版 | 只看该作者
angmall 发表于 2022-10-11 15:53
你可以试试这个
PAULMON 调试器


psen引脚我本来是放弃不用的,没想到老哥用的这么好。普林斯顿存储体系。
回复

使用道具 举报

43#
ID:384109 发表于 2022-10-13 10:29 | 只看该作者
楼主对51的RAM有一些概念的错误,35楼实现的仍然是使用外部RAM做加载程序的存储器,并不是使用51芯片内部的RAM,是不同的概念
回复

使用道具 举报

44#
ID:401564 发表于 2022-10-13 10:47 | 只看该作者
lyonkon 发表于 2022-10-13 08:46
35楼的设计已经做到了,指令可以在RAM中执行。也不影响RAM存储数据。

你运行过了?如果你运行了,我有硬件,你把你的代码发上来,我去运行看一下结果
顺便问一下,MOV P0,#015H
你要怎么输入这个命令,从哪里输入?
回复

使用道具 举报

45#
ID:73992 发表于 2022-10-13 12:27 来自触屏版 | 只看该作者
Y_G_G 发表于 2022-10-13 10:47
你运行过了?如果你运行了,我有硬件,你把你的代码发上来,我去运行看一下结果
顺便问一下,MOV P0,#015H
...

org 0000h
……
主程序载入RAM程序从片内rom载人片外ram
d1:
mov dph,#0000
mov dpl,#0000
movc a,@dptr
mov r0 ,#00h
movx @r0,a
Inc r0
Inc dptr
mov r1,#ffh//比如程序是128字节
djnz r1 d1
setb p3.0;单片机EA引脚
至此单片机跳入外部RAM执行。
你在主程序当中加一条
movx a,1fh
那么用键盘在1fh地址输入你的数字。就可以了




回复

使用道具 举报

46#
ID:401564 发表于 2022-10-13 13:09 | 只看该作者
lyonkon 发表于 2022-10-13 12:27
org 0000h
……
主程序载入RAM程序从片内rom载人片外ram

我竟然无言以对
再去看了一下你以前的帖子,才发现,你就是那个发明了三总线开发板的发明人
对不起,我错了,哪怕我上论坛只是打发时间,也不应该把时间浪费在这个帖子上
我只是一个执着于把前辈经验运用到实际中的人,我没什么上进心,也没有什么想要创新的思想
我只会运用已经存在的技术而已
回复

使用道具 举报

47#
ID:88256 发表于 2022-10-13 23:09 | 只看该作者
lyonkon 发表于 2022-10-13 08:21
你看到35楼的设计,你就会改变想法了。你说的思路是将RAM芯片加电池当ROM用。

错了,你还是没有理解我的说法,“该电路板插在外扩RAM上可读写”,已经可以随意编写机器语言进去了,然后控制引脚切换,就可以当做程序存储器运行程序了
回复

使用道具 举报

48#
ID:88256 发表于 2022-10-13 23:11 | 只看该作者
lyonkon 发表于 2022-10-13 12:27
org 0000h
……
主程序载入RAM程序从片内rom载人片外ram

我也是醉了,控制单片机EA引脚是这样的吗? “setb p3.0;单片机EA引脚”
回复

使用道具 举报

49#
ID:88256 发表于 2022-10-13 23:18 | 只看该作者
Y_G_G 发表于 2022-10-13 13:09
我竟然无言以对
再去看了一下你以前的帖子,才发现,你就是那个发明了三总线开发板的发明人
对不起,我错 ...

回帖没看人,原来又是一位力图拯救过时元器件和原理的大侠,我还以为只是一时兴趣爱好想玩的呢,毕竟我也怀念之前用单片单板机输入机器码进行学习单片机的经过,也有重新打板(当然元件简化用新式的,比如用TM1650系列做显示和按键处理)“怀旧”的想法,自我陶醉一下
回复

使用道具 举报

50#
ID:73992 发表于 2022-11-23 14:32 | 只看该作者
angmall 发表于 2022-10-11 15:53
你可以试试这个
PAULMON 调试器

51brod.zip (38.7 KB, 下载次数: 3) ram62256读写地址:0000h---7fffh,
lcd1602:写指令地址8000h---83ffh
           :写数据地址8400h---87ffh
           :读状态地址8bffh---8800h
           :读数据地址8c00h---8fffh
请老哥斧正
回复

使用道具 举报

51#
ID:77589 发表于 2022-11-23 17:24 | 只看该作者
51单片机说"臣妾做不到啊!!!!!!!"
回复

使用道具 举报

52#
ID:155507 发表于 2022-11-23 17:41 | 只看该作者
你的74HC138连接不正确。


LCD1602读写地址是对的。





回复

使用道具 举报

53#
ID:73992 发表于 2022-11-23 23:13 | 只看该作者
angmall 发表于 2022-11-23 17:41
你的74HC138连接不正确。

感谢,我从老哥图纸中学了不少东西。
51 EA引脚实机我测试了,
用stc89c52测试
EA引脚接高电平,执行片内程序
EA引脚接低电平,执行片内程序
EA引脚悬空,任然执行片内程序
开机过后接线。接了线再开机任然,没有任何变化
EA引脚弯出ic座 测试的,用两个芯片试过,
我从老cd机上拆了一块at89c51
用at89c51测试EA引脚没问题,

回复

使用道具 举报

54#
ID:155507 发表于 2022-11-24 15:44 | 只看该作者
lyonkon 发表于 2022-11-23 23:13
感谢,我从老哥图纸中学了不少东西。
51 EA引脚实机我测试了,
用stc89c52测试

STC89C52 有两个版本。只有HD版本有EA

不过现在外面能够买到的版本多数是90C版本没有EA接脚的











回复

使用道具 举报

55#
ID:308903 发表于 2022-11-25 09:05 | 只看该作者
回顾了楼主帖子,我觉得楼主是想做软驱,二十年前,插软驱的那种,PC机
回复

使用道具 举报

56#
ID:378108 发表于 2022-11-30 00:00 | 只看该作者
lyonkon 发表于 2022-10-9 23:07
外置RAM当ROM用,应该是可以做到。就是分享程序缺乏通用性。我考虑过用自身端口,模拟外置程序存储器,但 ...

有这种的51单片机,好像是锦锐的,有一部分 RAM和ROM在地址上是重叠映射的,主要用来做 BOOTLOAD代码
回复

使用道具 举报

57#
ID:73992 发表于 2022-12-7 11:58 | 只看该作者

                                  ORG        0000H
                  LJMP        FO
                                  ORG        0003H
                                  SJMP        MAIN
WRCMD:                                                                                   //写指令子程序
                                push        ACC                    
                  lcall        READ12864BF
                                             
                                  MOV        A,R3
                                  MOV        DPTR,#8000H                  //lcd写指令地址 8000H
                                  MOVX        @DPTR,A
                                  POP        ACC
                  RET
WRDAT:                                        //写数据子程序      
                         push        ACC         
                                  lcall        READ12864BF
                                         
                                  MOV        A,R4
                                  MOV        DPTR,#8400H                  //lcd写写数据地址        8400H
                                  MOVX        @DPTR,A
                                  POP        ACC               
                  RET
INIT:                                                                                  //lcd初始化程序
                MOV                R3,#0X38               
                LCALL        WRCMD
                MOV                R3,#0X38                     
                LCALL        WRCMD
                MOV                R3,#0X0c                       
                LCALL        WRCMD            
                MOV                R3,#0X06
                LCALL        WRCMD              
                MOV                R3,#0X01                       
                LCALL        WRCMD
                RET
MAIN:                                         //主程序                     
                                LCALL        INIT                              
                    D1:         
                                                                MOV          R3,#0x80        
                                LCALL        WRCMD
                                                                   MOV        R4,#0X35                           //5
                                                                LCALL        WRDAT
                                                                MOV          R3,#0x81
                                                                LCALL        WRCMD
                                                            MOV        R4,#0X31                           //1
                                                                LCALL        WRDAT
                                                                   MOV         R3,#0x82
                                                                LCALL        WRCMD
                                                                MOV        R4,#0X48                           //H
                                                                LCALL        WRDAT
                                                                MOV          R3,#0x83                                                                                                                                                                    
                                LCALL        WRCMD
                                                                   MOV        R4,#0X45                          //E
                                                                LCALL        WRDAT
                                                                MOV          R3,#0x84            
                                                                LCALL   WRCMD
                                                                MOV        R4,#0X49                          //I
                                                                LCALL        WRDAT
                                                                MOV         R3,#0x85
                                                                LCALL        WRCMD
                                                                MOV        R4,#0X2E                          //.
                                                                LCALL        WRDAT
                                                                MOV          R3,#0x86        
                                LCALL        WRCMD
                                                                   MOV        R4,#0X43                          //C
                                                                LCALL        WRDAT
                                                                MOV          R3,#0x87
                                                                LCALL   WRCMD
                                                                MOV        R4,#0X4F                          //O
                                                                LCALL        WRDAT
                                                                MOV          R3,#0x88
                                                                LCALL   WRCMD
                                                                MOV        R4,#0X4D                          //M
                                                                LCALL        WRDAT
                                                                MOV          R3,#0x89
                                                                LCALL   WRCMD        
                                                                MOV        A,#0X42
                                                                MOV        DPTR,#7FFFH
                                                                MOVX        @DPTR,A
                                                                MOV        A,#0X41
                                                                MOVX        A,@DPTR
                                                                MOV        R4,A
                                                                LCALL        WRDAT
                                                                SJMP        D1
READ12864BF:                                    //判断忙子程序
                                         PUSH        ACC
READ12864BF1:                 MOV        DPTR,#8800H           //lcd读指令地址          8800H
                                        MOVX        A,@DPTR         
                                        JB        ACC.7,READ12864BF1
                                        POP        ACC
                                    ret
FO:
MOV        DPTR,#0000H
MOV        R7,#03H
FO0:
MOV        A,#00
MOV        DPL,R7
MOVC        A,@A+DPTR
MOVX        @DPTR,A
INC        R7
CLR        P1.0                          ;EA引脚
CJNE        R7,#0XC9,FO0
LJMP        MAIN
RET
END       51.zip (78.11 KB, 下载次数: 3)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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