4843|17

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

重分悬赏 [复制链接]

我最近买了台湾义隆单片机进行实验,单片机的型号是:EM78P156E系列的,有买了仿真器和烧写器,今天写了一个4*4键盘的扫描程序,在仿真的时,单步执行时程序能在正常的循环里执行每一条指令,但全速运行时,在没给任何的指令条件下程序能挑出循环,这是为什么呢?请求高手指点一下!程序如下:
STATUS == 0X03
PORT5  == 0X05
PORT6  == 0X06
    C  == 0
    DC == 1
    Z  == 2
IOCE   == 0X0E
;----------------
TMP  ==  21
CNT  ==  22
CNT1 ==  23
KEY  ==  25
;----------------
ORG  0
RESET :
      MOV  A ,@0X11
      IOW  IOCE
      MOV  A , @0b11110000
      IOW  PORT6
      MOV  A , @0X00
      IOW  PORT5
;-------------------------
CHECKKEY:
      CALL  SCANKEY
      MOV   A, KEY
      MOV   PORT5 ,A
      JMP   CHECKKEY
;------------------------------
SCANKEY:
      MOV   A ,@0b11111111
      MOV   TEMP ,A
      BC    STATUS ,C
      MOV   A ,@4
      MOV   CNT1,A
NEWCOL:
      RLC   TEMP
      MOV   A ,TEMP
      MOV   PORT6 ,A
      NOP
      COMA  PORT6
      AND   A ,@0b11110000
      JBS   STATUS ,Z
      JMP   HAVEKEY
      DJZ   CNT1
      JMP   NEWCOL
      JMP   SCANKEY
HAVEKEY :
      SWAPA   PORT6
      AND   A ,@0b00001111
      MOV   TEMP  ,A
      CLR   CNT
NEXT_BIT :
      RRC   TEMP
      JBS   STATUS , C
      JMP   FOUND
      INC   CNT
      JMP   NEXT_BIT
FOUND :
      DEC    CNT1
      BC    STATUS , C
      RLC   CNT1
      RLC   CNT1
      MOV   A , CNT
      ADD   A , CNT1
      MOV   KEY , A
     RET












































最新回复

我也试过,但还是不行,  详情 回复 发表于 2010-1-31 22:15
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
他有没有看门狗!
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
帮顶下。

MARK.
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
键盘的扫描程序需要‘去抖动’约10ms,
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

5
 
快1年没用他们家的MCU了, 时间真是快呀!

跳出循环==>哪个循环?
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 1 楼 galle 的回复:
他有没有看门狗!


我在程序开头已经把看门狗去掉了!

SCANKEY:
      DISI
      WDTC
      MOV  A ,@0b11111111
      MOV  TEMP ,A
      BC    STATUS ,C
      MOV  A ,@4
      MOV  CNT1,A
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 3 楼 schlafenhamster 的回复:
键盘的扫描程序需要‘去抖动’约10ms,



我是用的仿真器去运行程序的,还没到真正的键盘上
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 4 楼 skyler2008 的回复:
快1年没用他们家的MCU了, 时间真是快呀!

跳出循环==>哪个循环?


在没有任何按键发出指令时,应当在下面这段程序中反复的循环扫描,我在仿真器下,按F8单步执行时,程序是在里面不停的循环,但当我全速(F5)执行时,程序就跳出来了!!

SCANKEY:
      MOV  A ,@0b11111111
      MOV  TEMP ,A
      BC    STATUS ,C
      MOV  A ,@4
      MOV  CNT1,A
NEWCOL:
      RLC  TEMP
      MOV  A ,TEMP
      MOV  PORT6 ,A
      NOP
      COMA  PORT6
      AND  A ,@0b11110000
      JBS  STATUS ,Z
      JMP  HAVEKEY
      DJZ  CNT1
      JMP  NEWCOL
      JMP  SCANKEY

 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
   看到楼主的头像,我无心看程序了啦,哎。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

10
 
跳到哪里了
莫非跑飞了
汇编不大懂
帮顶。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

11
 
汇编看不太懂
不过是不是防抖动的问题啊  
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
设置断点 看看, 你没有在循环里设置断点
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

13
 
你怎么知道飞了,飞到那个地址去了。。。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

14
 
看起来你的程序有问题.

注意每次写给IO Port的数据和IO口的状态.
这些会影响到IO读出的状态;

另外, IO在写数据后, 需要延时一点时间再读, 否则数据会错误! 一般至少3~5个nop
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

15
 
停在FOUND :试试。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 9 楼 joyzml 的回复:
跳到哪里了
莫非跑飞了
汇编不大懂
帮顶。


就是下面这个循环啊,就像是误触发的现象,跳出去执行下面的语句啦

SCANKEY:
      MOV  A ,@0b11111111
      MOV  TEMP ,A
      BC    STATUS ,C
      MOV  A ,@4
      MOV  CNT1,A
NEWCOL:
      RLC  TEMP
      MOV  A ,TEMP
      MOV  PORT6 ,A
      NOP
      COMA  PORT6
      AND  A ,@0b11110000
      JBS  STATUS ,Z
      JMP  HAVEKEY
      DJZ  CNT1
      JMP  NEWCOL
      JMP  SCANKEY
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 11 楼 laorenshen 的回复:
设置断点 看看, 你没有在循环里设置断点



已经设定了!就像是误触发
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 13 楼 skyler2008 的回复:
看起来你的程序有问题.

注意每次写给IO Port的数据和IO口的状态.
这些会影响到IO读出的状态;

另外, IO在写数据后, 需要延时一点时间再读, 否则数据会错误! 一般至少3~5个nop




我也试过,但还是不行,
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表