打印

关于keil与proteus的几个问题,请各位高手帮帮忙

[复制链接]
1835|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fantasy_cz|  楼主 | 2007-4-21 16:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
(51系列单片机)我在keil中输入这样一段程式(程序主要是让数码管从1到9循环显示的):
#include<stdio.h>
#include<reg51.h>
sbit P10=0x90;
sbit P32=0xb2;
xdata int nchange=0;
char table[10]={};
  main()
{  EX0=1;
    EA=1;
    while(1)
     {;}
}
  void Int0() interrupt 0 using 0
   {if(nchange==9)
      {nchange=0;}
      P1=table[nchange];
       nchange++;
    }在 keil中编译可以通过并正常运行可是生成.hex文件后把它放在proteus中进行仿真,按中断0的那个button却只显示0,再按button 就好像不能中断再显示下一个数字,为什么,是我编的这个小程序有问题吗?还是什么原因,请各位高手,老鸟们帮帮忙,小弟不胜感激,谢谢!!!!!

相关帖子

沙发
fantasy_cz|  楼主 | 2007-4-21 17:06 | 只看该作者

我的邮箱是zhanghao_fantasy@yahoo.com.cn

我的邮箱是zhanghao_fantasy@yahoo.com.cn

使用特权

评论回复
板凳
jxmemail| | 2007-4-21 22:15 | 只看该作者

可能是数组越界

xdata int nchange=0;
你用的什么片子,有外部RAM没。没有的话,xdata就不知道在哪了。
最好给数组付初值。
if(nchange==9)
      {nchange=0;}
这句也有问题,最好写为
if(nachage>9) nchange=0;
预防数组越界。

使用特权

评论回复
地板
fantasy_cz|  楼主 | 2007-4-22 09:31 | 只看该作者

谢谢咯

谢谢
晓得了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝