找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4515|回复: 25
收起左侧

8x8Led仿真失败

  [复制链接]
ID:184282 发表于 2017-4-6 13:13 | 显示全部楼层 |阅读模式
8x8Led仿真失败,,,,,,keil端口仿真是正确的,可是proteus就不显示结果,求指导!!
求指导!!

求指导!! 360截图20170406131130575.jpg 360截图20170406131203158.jpg
回复

使用道具 举报

ID:186672 发表于 2017-4-6 14:13 | 显示全部楼层
不懂汇编呀
回复

使用道具 举报

ID:123289 发表于 2017-4-6 19:44 | 显示全部楼层
程序是对的,但显示的时间极短,所以无法达成可视的结果。
犹如你在家里,有人跑过你家门口,你要看清他是谁,请他在你家门口停留一下就可以了。

评分

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

查看全部评分

回复

使用道具 举报

ID:123289 发表于 2017-4-6 19:53 | 显示全部楼层
1、当  MOV  P0, A 时,是在上一行,显示了这一行的内容,这是个显示错误的时刻!
2、当  MOV  P2, A 时,是在这一行,显示了这一行的内容,这是个显示正确的时刻!
(如果不是行,列也一样。)
从1到2到1到2……,错误、正确的时间一样啊。
解决方案有两种:
1、让对的显示时间远大于错的显示时间。
2、错的时候不显示。只在对的时候显示。
请自己设法解决。

评分

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

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2017-4-6 19:54 | 显示全部楼层
少显示延时。另外,程序还可编得精炼点。
回复

使用道具 举报

ID:187102 发表于 2017-4-7 14:09 来自手机 | 显示全部楼层
需要延时?
回复

使用道具 举报

ID:187102 发表于 2017-4-7 14:10 来自手机 | 显示全部楼层
需要延时?
回复

使用道具 举报

ID:149451 发表于 2017-4-7 21:31 | 显示全部楼层
见到汇编就膜拜,在我眼里,使汇编的都是大神
回复

使用道具 举报

ID:184282 发表于 2017-4-8 20:23 | 显示全部楼层
yzwzfyz 发表于 2017-4-6 19:53
1、当  MOV  P0, A 时,是在上一行,显示了这一行的内容,这是个显示错误的时刻!
2、当  MOV  P2, A 时, ...

不太懂,,keil仿真端口都是正确的啊,,啊
回复

使用道具 举报

ID:184282 发表于 2017-4-8 20:24 | 显示全部楼层
zl2168 发表于 2017-4-6 19:54
少显示延时。另外,程序还可编得精炼点。

请赐教
回复

使用道具 举报

ID:111634 发表于 2017-4-8 20:38 | 显示全部楼层

延时程序加在INC  R1前

评分

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

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2017-4-8 21:00 | 显示全部楼层

延时程序加在INC  R1前
回复

使用道具 举报

ID:123289 发表于 2017-4-8 21:29 | 显示全部楼层
连显示的原理还未弄清?先看书看懂扫描显示的原理后,再看8*8LED的手册,最后再弄程序吧。
回复

使用道具 举报

ID:187614 发表于 2017-4-9 17:24 | 显示全部楼层
1.送的数据不对,每次送一组数据;
2.每送一次需要延时,人的视觉效应200ms,每隔200ms刷新一遍;
3.延时在DJNZ R2,LABEL处,改为如下:
  Mov R2,#0FFh
LEBEL2:
  DJNZ R2,LEBEL2
  JMP LEBEL
若时间短,可用双循环

评分

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

查看全部评分

回复

使用道具 举报

ID:184282 发表于 2017-4-9 20:02 | 显示全部楼层
51Lovers 发表于 2017-4-9 17:24
1.送的数据不对,每次送一组数据;
2.每送一次需要延时,人的视觉效应200ms,每隔200ms刷新一遍;
3.延时 ...

是每次一组啊,由R2控制循环8次??还有把12——15行改为MOV DPTR,#TABB  MOV A,R1
MOVC A,@a+DPTR   MOV P2,A       最后加上TABB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH  也不用延时却可以显示呢???
回复

使用道具 举报

ID:184282 发表于 2017-4-9 20:22 | 显示全部楼层
51Lovers 发表于 2017-4-9 17:24
1.送的数据不对,每次送一组数据;
2.每送一次需要延时,人的视觉效应200ms,每隔200ms刷新一遍;
3.延时 ...

ORG 0000H     加了延时,问题依旧

MOV R1,#00H
MOV R2,#08H
MOV R7,#0FEH
LABEL:
       MOV DPTR,#TABA
           MOV A,R1
           MOVC A,@A+DPTR
           MOV P0,A
          
           MOV A,R7
           MOV P2,A
           RL  A
           MOV R7,A
          
           INC R1
           SJMP DL
           DJNZ R2,LABEL
                  
DL:MOV         R4,#0A3H
DL1:MOV R3,#0FFH
DL2: DJNZ R3,DL2
        DJNZ R4,DL1
   RET
   
TABA: DB 00H,08H,08H,038H,08H,08H,0FFH,00H
                                    
END
回复

使用道具 举报

ID:187853 发表于 2017-4-9 20:43 | 显示全部楼层
inc r1 的上面稍微延时一下,例如mov r3,#0ffh  djnz r3,$

评分

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

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2017-4-9 22:13 | 显示全部楼层
本帖最后由 zl2168 于 2017-4-10 06:00 编辑

延时程序加错位置,且未调用和反复循环。给你修改了,再试试看。


LOOP:
MOV R1,#00H
      MOV R2,#08H
      MOV R7,#0FEH
LABEL:
       MOV DPTR,#TABA
       MOV A,R1
       MOVC A,@A+DPTR
       MOV P0,A
MOV A,R7
        MOV P2,A
        RL  A
        MOV R7,A
           
        INC R1
        LCALL  DL
       DJNZ R2,LABEL
       LJMP  LOOP        
   
TABA: DB 00H,08H,08H,038H,08H,08H,0FFH,00H
                                   
DL:  MOV  R4,#0A3H
DL1: MOV R3,#0FFH
DL2: DJNZ R3,DL2
        DJNZ R4,DL1
   RET
END


回复

使用道具 举报

ID:111634 发表于 2017-4-9 22:21 | 显示全部楼层
基础理论未学好,处处会出错。这是本坛大多数问帖的通病。给你推荐1本书,张志良编著的:《80C51单片机实用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(双解c和汇编)语句条条有注解,便于阅读理解,便于自学。

评分

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

查看全部评分

回复

使用道具 举报

ID:111634 发表于 2017-4-10 17:40 | 显示全部楼层
给你修改了,再试试看。
回复

使用道具 举报

ID:111634 发表于 2017-4-10 17:41 | 显示全部楼层

给你修改了,再试试看。
回复

使用道具 举报

ID:188292 发表于 2017-4-10 22:39 | 显示全部楼层
先练练汇编,再学C ,会有概念一些
回复

使用道具 举报

ID:184282 发表于 2017-4-13 21:21 | 显示全部楼层
zl2168 发表于 2017-4-10 17:40
给你修改了,再试试看。

试了试,还是不行么?另外请教一下怎么还要再LJMP整个程序啊??在仿真时执行这个程序本来就是无限循环执行的呀
回复

使用道具 举报

ID:111634 发表于 2017-4-14 10:56 | 显示全部楼层
c51hyw 发表于 2017-4-13 21:21
试了试,还是不行么?另外请教一下怎么还要再LJMP整个程序啊??在仿真时执行这个程序本来就是无限循环执 ...

我试过了,可以。你不行,可能是8*8LED器件引脚颠倒。
再解答你的问题:为什么要用LJMP?显示一遍,你根本看不到,只有反复循环,你才能看到。
Proteus仿真一下,确认有效。汇编程序就是我给你修改的那个。
8×8点阵.rar (103.36 KB, 下载次数: 4)
回复

使用道具 举报

ID:189542 发表于 2017-4-14 14:53 | 显示全部楼层
在多机通信中,主机必须要能对各个从机进行识别,在51系列单片机中可以通过SCON寄存器的SM2位来实现。当串口以方式2或方式3发送数据时,每一帧信息都是11位,第9位是数据可编程位,通过给TB8置1或置0来区别地址帧和数据帧,当该位为1时,发送地址帧;该位为0时,发送数据帧。 在多机通信过程中,主机先发送某一从机的地址,等待从机的应答,所有的从机接收到地址帧后与本机地址进行比较,若相同,则将SM2置0准备接收数据;若不同,则丢弃当前数据,SM2位不变。
回复

使用道具 举报

ID:111634 发表于 2017-4-17 11:28 | 显示全部楼层
c51hyw 发表于 2017-4-13 21:21
试了试,还是不行么?另外请教一下怎么还要再LJMP整个程序啊??在仿真时执行这个程序本来就是无限循环执 ...

给你修改了,再试试看。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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