找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机三总线开发板开始设计

  [复制链接]
跳转到指定楼层
楼主
使用两片51单片机,一片做外围设备接口,另一片作主控。

IMG_20220326_195841.jpg (2.77 MB, 下载次数: 152)

IMG_20220326_195841.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:149451 发表于 2022-3-27 06:57 | 只看该作者
关注。加油!若资料全,照仿。
回复

使用道具 举报

板凳
ID:584814 发表于 2022-3-27 11:53 | 只看该作者
很好的设计。问题是字写得太丑,建议用电脑软件
回复

使用道具 举报

地板
ID:73992 发表于 2022-3-27 20:58 | 只看该作者
w1179benp 发表于 2022-3-27 06:57
关注。加油!若资料全,照仿。

好的,全力以赴
回复

使用道具 举报

5#
ID:73992 发表于 2022-3-27 21:00 | 只看该作者
man1234567 发表于 2022-3-27 11:53
很好的设计。问题是字写得太丑,建议用电脑软件

下面这张图,我用正楷字写的,你看咋样
回复

使用道具 举报

6#
ID:73992 发表于 2022-3-27 21:07 | 只看该作者

回复

使用道具 举报

7#
ID:883242 发表于 2022-3-27 21:10 | 只看该作者
没看出来三总线,数据总线和地址总线配合才能工作,只能算一个总线。
不过8051比较奇葩,有code和xram两套各64k寻址范围的总线,不过楼主只用了xram一条总线。
回复

使用道具 举报

8#
ID:73992 发表于 2022-3-28 00:34 | 只看该作者
本帖最后由 lyonkon 于 2022-3-28 12:14 编辑
Hephaestus 发表于 2022-3-27 21:10
没看出来三总线,数据总线和地址总线配合才能工作,只能算一个总线。
不过8051比较奇葩,有code和xram两套 ...

因为89c52片内有8KB ROM,所以没有扩展片外ROM。但是扩展了32K片外RAM.HM62256芯片。
数据总线为P00--P07  
地址总线P00--P07经74ls373 锁存为16位地址线的低8位,P20--P27作为地址线高8位 ,就是16位地址线。
片外寻址64kB RAM,也寻址64KB ROM.  操作寻址片外RAM的时候,单片机WR RD引脚向RAM芯片发送脉冲时序。读取片外ROM的时候,单片机PSEN引脚向片外ROM发送脉冲时序。所以虽然总线接在一起,却不会混淆。
上面这张图单画了控制总线,怕数据总线和地址总线都画上去,线路看起来会很乱,所以想分开来画的。
回复

使用道具 举报

9#
ID:401564 发表于 2022-3-28 14:20 | 只看该作者
搞这个是干嘛使的呢?
回复

使用道具 举报

10#
ID:73992 发表于 2022-3-29 00:48 | 只看该作者

回复

使用道具 举报

11#
ID:73992 发表于 2022-3-29 06:29 来自手机 | 只看该作者
Y_G_G 发表于 2022-3-28 14:20
搞这个是干嘛使的呢?

51单片机桌面系统
回复

使用道具 举报

12#
ID:230742 发表于 2022-3-29 10:59 | 只看该作者
楼主你可能没注意你学习单片机的书的出版日期,严重被书中的内容带跑偏了。现在谁还用这个62256,一个个手推车8H8K64不够用吗?要不32G12K64。又373又138,累不累。就一个12864的时钟和一堆IO口搞那么复杂。真是有点直接给自己挖坑,面对实际一点好不好。就算做什么大型工程,也不能用89C52啊,分分钟被了。有啥意思呢?
回复

使用道具 举报

13#
ID:73992 发表于 2022-3-29 21:18 | 只看该作者
先摆拍一下,顺便晒一下老开发板的侧脸
回复

使用道具 举报

14#
ID:73992 发表于 2022-3-29 21:54 | 只看该作者
啤酒瓶子老大 发表于 2022-3-29 10:59
楼主你可能没注意你学习单片机的书的出版日期,严重被书中的内容带跑偏了。现在谁还用这个62256,一个个手 ...

谢谢你的建议和推荐,我知道我做的东西在大师和时代面前是不容易跟得上的。但我现在做的东西是简单的易学的。我下面又拍了一张照片,上面有两种开发板,一个是现在主流的,老手在教 新手在学的 也是坛里学习的主流      “市售板,另一个就是我现在正在做还没有完成的。你能看出来12864 和时钟,那么我问你一个问题:两种板,做同样功能的12864 时钟,两者操作的着重点是什么 ?
现在大家学单片机,都是学操作端口,却忽略了真正重要的东西,内存!
如果照片上两种开发板,你只能选择一种,你会选择哪一种。
市售开发板的开发重点在于操作端口。
我做的电路板,开发重点在于操作内存。
我想,这是单片机的两条不同的道路。也望能理解。
回复

使用道具 举报

15#
ID:73992 发表于 2022-4-9 15:29 | 只看该作者

回复

使用道具 举报

16#
ID:401564 发表于 2022-4-9 16:21 | 只看该作者
看了半天都不知道这是在干嘛
51单片机桌面系统是个什么东西?
做时钟还用DS12C887这玩意?DS3231它不香吗?能省下多少个IO,而且还可以和24C02共用IIC总线
STC89C52是三块五一片
STC8A8K_64Pin的是四块三一片
多花8毛能把一堆74138,一堆上拉电阻,那个比单片机本身还贵的8位ADC:ADC0809
我甚至都不知道你做的这个是什么东西?是学习板还是个带12864的时钟?
单片机这种东西,没有捷径,但也没有杨过式另辟蹊径,老老实实的写代码验证,写代码验证,画板验证,画板验证,一遍又一遍单片机只是一个技术性的东西,技术就摆在那,你去学就行,前辈们已经指明了道路在那,你去走就行
你要是想像杨过一样,走不寻常道路,要么你的东西就在你的桌子上吃灰,要么你就沉浸你自己一个人世界里,像阿Q一样
在这个每个月有两次免费打样的年代,我实在看不出你那一堆线存在的意义是什么?
这是我画的开发板,所有IO有标志,哪个单口在哪里都知道,怎么用,用杜邦线插上就行,它不比你那一堆洞洞板好?


回复

使用道具 举报

17#
ID:73992 发表于 2022-4-9 20:00 | 只看该作者
Y_G_G 发表于 2022-4-9 16:21
看了半天都不知道这是在干嘛
51单片机桌面系统是个什么东西?
做时钟还用DS12C887这玩意?DS3231它不香吗? ...

这块板子,我从构思到焊接完成大概用了3个月。因为买不到总线方式的51成品板,只能动手自己焊接。板上32k内存,ps2键盘接口,12864显示,还有时钟芯片。完成之后 就相当于一台电脑。所以我说是51桌面系统。
接下来就是测试这块板子各个器件是否正常工作。
回复

使用道具 举报

18#
ID:401564 发表于 2022-4-9 22:21 | 只看该作者
lyonkon 发表于 2022-4-9 20:00
这块板子,我从构思到焊接完成大概用了3个月。因为买不到总线方式的51成品板,只能动手自己焊接。板上32k ...

关键是你这玩意能干嘛?是不是还得自己写程序?
花那么大功夫去搞个这东西.连个ADC都没有,学单片机没有ADC,这能学会单片机机?
你看你这电路,连个上拉电阻都没有!也就是你运气好,12864是有内部上拉的,接个别的器件,能跑得来?
所有的芯片旁边,一个滤波电容都没有
你这么恐怖的电路,也就只有你觉得这是简单易学的
你花那么多的成本去搞这东东,两个单片机加一个内存,整体性能能跟一片20块的STM32比吗?
回复

使用道具 举报

19#
ID:139866 发表于 2022-4-13 12:08 | 只看该作者
我的评价是:
自己感动自己系列
虽然很努力但是作用并不大
现在无论是做产品还是做教学,都不会用你这种,姑且算电路板吧
也不会手画电路图的
换句话说,能力够的人不会用你这电路板,能力不够的人也不会用你这电路板
回复

使用道具 举报

20#
ID:88256 发表于 2022-4-13 13:09 | 只看该作者
搞不懂为什么要这么使用,以及为什么要用两片单片机
回复

使用道具 举报

21#
ID:88256 发表于 2022-4-13 13:15 | 只看该作者
非要玩老元件,这个的功能够齐全的了,我学单片机,就是自己焊接组装的SCB-2-51单片单板机,还自行增加了台式微打端口,修改监控程序使之可以进行简单的反汇编并打印
回复

使用道具 举报

22#
ID:283954 发表于 2022-4-13 15:08 | 只看该作者
这些都是单片机早期使用的元件,现代单片机就是从这些元件的实际使用中逐渐发展起来的,现在买一粒几块钱的单片机,什么都在里面了,写几行代码就能用起来,但对内部总线的运作不甚了了,楼主这项工作,是一种返祖现象,人类胚胎的成长过程也要把全部进化过程演示一遍,最后出生是才是个人样,所以不要讥笑蜥蜴,鱼,鸡,我们胚胎时期都曾经有过这个样。

成才都需要有个学习过程,楼主经过这番折腾,以后肯定对计算机硬件的了解比一般人强些,成才的机会也大些。
回复

使用道具 举报

23#
ID:230742 发表于 2022-4-14 10:39 | 只看该作者
顶起来,持续关注中。
回复

使用道具 举报

24#
ID:73992 发表于 2022-4-18 20:51 | 只看该作者
今天是分享喜悦的日子,近十天的检查调试,每走一步都是相当的难,辛酸就不讲了。今天lcd显示终于完成。字符显示的那一刻真的是很开心。波形大的是51单片机psen引脚,波形小的是P2.7引脚。

一,74ls138同时只能片选1只引脚,而lcd rs,rw 需要两者引脚,所以用138作lcd rs rw控制不合适。
二,51单片机的EA引脚要接
三,lcd第三脚,就是调整对比度的要接,不接不显示。
四,P0口驱动lcd,不加上拉电阻,可以显示
五,12兆晶振51单片机 总线法驱动lcd1602,12864,时序没问题
下面是测试代码
                  SJMP        MAIN
WRCMD:                                                                                   //写指令子程序
                                push        ACC                    
                  lcall        READ12864BF
                                  POP        ACC                    
                                  MOV        A,R3
                                  MOV        DPTR,#009000H                  //lcd写指令地址 9000H
                                  MOVX        @DPTR,A
                  RET
WRDAT:                                        //写数据子程序      
                         push        ACC         
                                  lcall        READ12864BF
                                  POP        ACC        
                                  MOV        A,R4
                                  MOV        DPTR,#00B000H                  //lcd写写数据地址        B000H
                                  MOVX        @DPTR,A               
                  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        
                                                                SJMP        $
READ12864BF:                                    //判断忙子程序
                 MOV        DPTR,#0XD000           //lcd读指令地址          D000H
                MOVX        A,@DPTR         
                JB        ACC.7,READ12864BF
            ret
END      


回复

使用道具 举报

25#
ID:73992 发表于 2022-4-18 21:01 | 只看该作者
本帖最后由 lyonkon 于 2022-4-18 22:43 编辑
hhdsdy 发表于 2022-4-13 13:15
非要玩老元件,这个的功能够齐全的了,我学单片机,就是自己焊接组装的SCB-2-51单片单板机,还自行增加了台 ...

这个是老哥本人设计的吗软件硬件设计功力深厚啊。
回复

使用道具 举报

26#
ID:73992 发表于 2022-4-18 23:13 | 只看该作者
本帖最后由 lyonkon 于 2022-4-19 08:25 编辑

本来程序中准备定义数组的,奈何数组不肯显示

DSC00079.JPG (4.57 MB, 下载次数: 124)

P2.7引脚输出波形

P2.7引脚输出波形

DSC00078.JPG (4.12 MB, 下载次数: 122)

psen引脚输出波形

psen引脚输出波形

DSC00083.JPG (4.45 MB, 下载次数: 112)

DSC00083.JPG
回复

使用道具 举报

27#
ID:73992 发表于 2022-4-25 14:45 | 只看该作者
双机通讯测试完成,没想到被使用中断卡了十几天,从机程序一直改,一直改不成功,今天在本论坛两位老师指正下,完成了双机数据交换测试。至此板上的除了时钟芯片没有检测,其他器件都可以正常工作了。lcd1602地址会自动加1,导致满屏跑数字
下一步ASCII键盘测试,不知道会不会被串口卡。
下面就是被中断卡住了的原因
汇编情况下
一,程序中如果使用中断,那么该中断地址不能被占用。
外部中断0入口地址    0003H
定时计数器T0溢出中断 000BH
外部中断1入口地址    0013H
定时计数器T1溢出中断 001BH
串口中断    0023H
定时计数器T2溢出中断  002BH    (89C52系列含有T2)
回复

使用道具 举报

28#
ID:68468 发表于 2022-4-25 23:38 | 只看该作者
佩服佩服,不但玩起了三总线,还玩了汇编,精神可嘉。
回复

使用道具 举报

29#
ID:73992 发表于 2022-4-26 01:12 | 只看该作者
wysh_2004 发表于 2022-4-25 23:38
佩服佩服,不但玩起了三总线,还玩了汇编,精神可嘉。

雕虫小技,不敢班门弄斧
回复

使用道具 举报

30#
ID:73992 发表于 2022-5-8 21:24 | 只看该作者
作为初学者,稍不留神就被卡。卡在Ps2键盘上折腾俩周了,现在还没有好方法,也不想加芯片。因为基础不好,现在在串口,计数器,中断之间来回绕。不断尝试,希望能成功
回复

使用道具 举报

31#
ID:73992 发表于 2022-11-13 15:20 | 只看该作者
框架写大体差不多了,下一步准备写内容。 https://v.youku.com/v_show/id_XNTkxODA1NDcxMg==.html?spm=a2hcb.profile.app.5~5!2~5~5!3~5!2~5~5~A先测试一下手工计算
回复

使用道具 举报

32#
ID:308903 发表于 2022-11-25 08:44 | 只看该作者
突然感觉,51单片机要当PC机,不加芯片是不行的。就目前这些芯片来说,就算当年乔布斯和盖兹 ,也不能用这么几个芯片做出个PC机吧?
回复

使用道具 举报

33#
ID:298011 发表于 2022-11-25 09:18 | 只看该作者
有点当年苹果机的样子。
回复

使用道具 举报

34#
ID:651494 发表于 2022-11-25 16:17 | 只看该作者
楼主应该是前辈!具51汇编和硬件功底!
有这基础,3个月就可学会C语言,看康辉的C语视频教程。然后芯片先转STC,得意的汇编程序用C改写一次,成功后,可选择马上转STM32,您会体会到现在芯片的强大,以前的8位芯片扩展I/O,扩展内存,双机通讯,都太过时了。现在的单片机,资源非常丰富,用不完的内存和寄存器,各种定时器,数量巨大的GPIO且多功能,多的用不完的ADC高精度检测端口,DMA,PWM,I2C,I2S,USART,SPI,USB,看门狗,CAN。。。你想要的键盘,LED、LCD、LCM,各种你想要驱动的外设都可编程实现,用C,好玩的很!
回复

使用道具 举报

35#
ID:77589 发表于 2022-11-25 17:16 | 只看该作者
呵呵!看到最后,还是不知道楼主做的是什么!
回复

使用道具 举报

36#
ID:195496 发表于 2022-11-28 21:23 | 只看该作者
20多年前,你这还是可以学习的,现在已经落后了,我当时学的时候还是比C51更老的8751,那才真是三总线,单片机是个祼机,没有程序,程序是在片外的。
回复

使用道具 举报

37#
ID:73992 发表于 2022-11-29 23:15 来自手机 | 只看该作者
Longan.Wang 发表于 2022-11-25 17:16
呵呵!看到最后,还是不知道楼主做的是什么!

就相当于用键盘输入程序,然后运行输入的程序。类似于basic。可以实时控制硬件。但basic我现在知识不够。支持汇编程序我想尝试一下
回复

使用道具 举报

38#
ID:73992 发表于 2022-11-29 23:36 来自手机 | 只看该作者
feeling1791 发表于 2022-11-25 16:17
楼主应该是前辈!具51汇编和硬件功底!
有这基础,3个月就可学会C语言,看康辉的C语视频教程。然后芯片先 ...

实在惭愧,几年前学一段时间c当时想写64卦的。学了大概好几个月,实在做不出东西来,连12864都没学会21年底学的汇编,一路学一路做就这块板子。其实我算初学者,stm32前几天我也想试试看的,毕竟没学过32。自己做的板子修怕了,1602接触不良,又也找不到原因所以用开发版试机。刚好从坛友那学了一点硬件知识,准备板子改进一下。随便改线路。准备这块板子完成再学32
回复

使用道具 举报

39#
ID:73992 发表于 2022-11-30 07:21 来自手机 | 只看该作者
1261867136qq 发表于 2022-11-25 08:44
突然感觉,51单片机要当PC机,不加芯片是不行的。就目前这些芯片来说,就算当年乔布斯和盖兹 ,也不 ...

51的内部RAM低128字节暂时是够用的,剩下高128字节内存做用户内存,只有8行。的确有点小。51单片机比6502多个程序存储器,和io端口,所以做起来省不少事。
回复

使用道具 举报

40#
ID:73992 发表于 2022-12-11 19:55 | 只看该作者
刚学汇编的时始做这块板到今天快一年,因为51单片机没有总线模式成品板选择所以必须自己做。板子经过多少次修改,也多次想过换更高级别的mcu,但是我还没有学过那些mcu,就是51单片机我还是初学者。到今天,这块板子终于做到自己满意了。以后可以专心学习51汇编了,至于后期程序能不能跑现在还不清楚。
但是板子,今天完工,非常开心!!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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