导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→写操作在重复执行,为什么?[liluku]

 *第22533篇: 写操作在重复执行,为什么?

  
楼 主:liluku 2004年6月1日10:38
 写操作在重复执行,为什么?
程序为: 
org 0000h 
ajmp main 
org 0050h 
main:mov dptr,4050h 
     mov a,#11h 
     movx @dptr,a 
     sjmp $ 
      end 

这个程序的写信号是不是应该闪一下就没有了?在示波器上看,却一直有,为什么?? 
是不是在一直不停的写?? 读信号一直没有问题

  
2楼:guest 2004年6月1日12:36
 可能是复位引起的,你用的是什么芯片,WD
可能是复位引起的,你用的是什么芯片,WDT功能打开的吧,或是外围复位
  
3楼:liluku 2004年6月1日17:01
 我用的是8031,请问WDT是什么?(不
我用的是8031,请问WDT是什么?(不好意思,菜鸟一个)
我也怀疑是复位电路,但是单片机的复位脚始终为低电平,这样能否排除这种可能?
  
4楼:guest 2004年6月3日08:47
 WDT应该是看门狗电路
WDT应该是看门狗电路
  
5楼:xf_9696 2004年6月1日17:58
 由于你在最后一条指令重复执行,相当与暂停,所以一直在显示,你单步执行一下类似程序就知道了
  
6楼:maychang 2004年6月1日18:54
 按你的程序看,不应该反复写
这与 SJMP  $ 这条指令无关。是否开了中断,中断例程里在写?
如果没开中断,只能检查机器码了。
  
7楼:liluku 2004年6月2日09:47
 我们的中断没有开启,在中断入口处加了跳转
我们的中断没有开启,在中断入口处加了跳转指令,ajmp main
这样是不是就可以排除是中断的问题了??
  
8楼:philip 2004年6月3日02:49
 首先要确认中断没有开启,你在中断入口处加
首先要确认中断没有开启,你在中断入口处加了跳转指令,ajmp main说明你对中断理解有错误,应该用RETI指令,否则中断将重复进入,而且如果是串口中断,还需要在中断返回前清除RI、TI中断标志位。若用AJMP MAIN指令,将导致会导致堆栈出问题。
另外,你不是用示波器测的吧,即使出现问题,应该也是脉冲形式的,不应该一直是低电平
  
9楼:liluku 2004年6月5日14:48
 首先谢谢指点!
另外我在程序中加入了C

首先谢谢指点!
另外我在程序中加入了clr ea。因为仅仅是怀疑有中断。
我用示波器测的复位电路,一直为低,因此就排除了复位一直被触发的可能。正如你所说
假如是复位有问题的话应该是高电平。
刚才发现:当wr不断出现的时候将wr和vcc短接一下程序就正常运行了(wr也没有低脉冲了),真是奇了怪了
  
10楼:philip 2004年6月11日11:42
 那你加个1K电阻将WR上拉试试
  
11楼:liluku 2004年6月11日14:40
 吊电阻起的什么作用?
吊电阻起的什么作用?

>>>>>>对该主题发表你的看法

本主题贴数11,分页: [第1页]


[上一篇主题]:AT89C51芯片用何烧入器烧程序性价比好?

[下一篇主题]:请加入“单片机a电子设计”群组