找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

8x8Led仿真失败

查看数: 6911 | 评论数: 25 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-4-6 13:13

正文摘要:

8x8Led仿真失败,,,,,,keil端口仿真是正确的,可是proteus就不显示结果,求指导!! 求指导!! 求指导!!

回复

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

给你修改了,再试试看。
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-14 10:56
c51hyw 发表于 2017-4-13 21:21
试了试,还是不行么?另外请教一下怎么还要再LJMP整个程序啊??在仿真时执行这个程序本来就是无限循环执 ...

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


还是建议你打好基础,真心想学,真诚地给你推荐2本书,张志良编著的:


80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(双解c和汇编)语句条条有注解,便于阅读理解,便于自学。


80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。
与其他书比较一下,有比较才能有鉴别!绝不忽悠你!

ID:184282 发表于 2017-4-13 21:21
zl2168 发表于 2017-4-10 17:40
给你修改了,再试试看。

试了试,还是不行么?另外请教一下怎么还要再LJMP整个程序啊??在仿真时执行这个程序本来就是无限循环执行的呀
ID:188292 发表于 2017-4-10 22:39
先练练汇编,再学C ,会有概念一些
ID:111634 发表于 2017-4-10 17:41

给你修改了,再试试看。
ID:111634 发表于 2017-4-10 17:40
给你修改了,再试试看。
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-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:187853 发表于 2017-4-9 20:43
inc r1 的上面稍微延时一下,例如mov r3,#0ffh  djnz r3,$

评分

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

查看全部评分

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: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: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:123289 发表于 2017-4-8 21:29
连显示的原理还未弄清?先看书看懂扫描显示的原理后,再看8*8LED的手册,最后再弄程序吧。
ID:111634 发表于 2017-4-8 21:00

延时程序加在INC  R1前
ID:111634 发表于 2017-4-8 20:38

延时程序加在INC  R1前

评分

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

查看全部评分

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

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

不太懂,,keil仿真端口都是正确的啊,,啊
ID:149451 发表于 2017-4-7 21:31
见到汇编就膜拜,在我眼里,使汇编的都是大神
ID:187102 发表于 2017-4-7 14:10
需要延时?
ID:187102 发表于 2017-4-7 14:09
需要延时?
ID:111634 发表于 2017-4-6 19:54
少显示延时。另外,程序还可编得精炼点。
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:123289 发表于 2017-4-6 19:44
程序是对的,但显示的时间极短,所以无法达成可视的结果。
犹如你在家里,有人跑过你家门口,你要看清他是谁,请他在你家门口停留一下就可以了。

评分

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

查看全部评分

ID:186672 发表于 2017-4-6 14:13
不懂汇编呀

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

Powered by 单片机教程网

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