打印

有没有人将KEIL uvision2与proteus一块用的

[复制链接]
4178|21
手机看帖
扫描二维码
随时随地手机跟帖
沙发
_horse| | 2007-8-31 16:25 | 只看该作者

没有 也能一起用

使用特权

评论回复
板凳
alice84|  楼主 | 2007-8-31 16:26 | 只看该作者

怎么用

使用特权

评论回复
地板
_horse| | 2007-8-31 16:26 | 只看该作者

就是 不能单步调试

使用特权

评论回复
5
_horse| | 2007-8-31 18:48 | 只看该作者

这样用

在KEIl里遍好程序,然后生成HEX文件
在PROTEUS里画好电路图,在单片机里加载HEX文件就行了

使用特权

评论回复
6
alice84|  楼主 | 2007-9-3 11:16 | 只看该作者

问题出在哪1

这是原理图.
我使用keilc与PROTEUS一起用后,出现了问题.
#define LEDS 6
#include "reg51.h"
//led灯选通信号
unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20};
unsigned char code LED_CODES[]=
 {  0xc0,0xF9,0xA4,0xB0,0x99,//0-4
      0x92,0x82,0xF8,0x80,0x90,//5-9
      0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E
      0x8E,0xFF,0x0C,0x89,0x7F,0xBF//F,空格,P,H,.,-  };
void main()
{
 char i=0;
 long int j;
 while(1)
 {
  P2=0;
  P1=LED_CODES;
  P2=Select;
  for(j=3000;j>0;j--);   //该LED模型靠脉冲点亮,第i位靠脉冲点亮后,会自动熄来头。
//修改循环次数,改变点亮下一位之前的延时,可得到不同的显示效果。
  i++;
  if(i>5) i=0;
 }
}

使用特权

评论回复
7
alice84|  楼主 | 2007-9-3 11:19 | 只看该作者

问题出在哪2

这是一个例子的
是程序有问题吗?可是程序是作者给的

使用特权

评论回复
8
hurrison| | 2007-9-3 14:40 | 只看该作者

换共阴极的数码管

使用特权

评论回复
9
alice84|  楼主 | 2007-9-3 14:49 | 只看该作者

回hurrison

换了
没反应

使用特权

评论回复
10
alice84|  楼主 | 2007-9-3 15:31 | 只看该作者

呜呼>>>>>

使用特权

评论回复
11
mygaojian| | 2007-9-3 15:38 | 只看该作者

可以

可以一起使用,可以一个机子上装keil
一个机子上装proteus,然后联网一起用。
keil编程 proteus就相当于是电路板。
很好玩的

使用特权

评论回复
12
hurrison| | 2007-9-3 15:48 | 只看该作者

回 alice84

你看显示有没有变化,图上显示貌似000000的反码

使用特权

评论回复
13
alice84|  楼主 | 2007-9-3 16:24 | 只看该作者

不联网行吗?

我都装载一个机子上了

使用特权

评论回复
14
alice84|  楼主 | 2007-9-3 16:41 | 只看该作者

我把P2口的两个口接地出现这种情况

我怎么觉得他不按程序跑.
比如我选通数码管
unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20}

 p2=Select;


仿真时,所有管都被选了

使用特权

评论回复
15
alice84|  楼主 | 2007-9-3 16:51 | 只看该作者

不知道这段程序和6楼那段一样吗

#define LEDS 6
#include "reg51.h"
//led灯选通信号
unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20};
unsigned char code LED_CODES[]=
 {  0xc0,0xF9,0xA4,0xB0,0x99,//0-4
      0x92,0x82,0xF8,0x80,0x90,//5-9
      0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E
      0x8E,0xFF,0x0C,0x89,0x7F,0xBF//F,空格,P,H,.,-  };
void main()
{
 char i=0;
 long int j;

for(i=0,j=3000;i<=5,j>0;j--)
 {    p1=LED_CODES;
      p2=Select;
      i++;
 }
}

使用特权

评论回复
16
hurrison| | 2007-9-3 17:05 | 只看该作者

连个延时都没有,肯定不行啊

使用特权

评论回复
17
alice84|  楼主 | 2007-9-3 17:13 | 只看该作者

6楼的程序是在网上下的教程里的例子

使用特权

评论回复
18
edanzg| | 2007-9-3 18:08 | 只看该作者

个个都是用C的啊,看了就头大,

上次试过,感觉没有真刀实枪好,方法忘记了,好像proteus 的help里面有详细的说明。 建议LZ还是搭个电路来做吧,印象会深些。

使用特权

评论回复
19
alice84|  楼主 | 2007-9-3 21:01 | 只看该作者

帮我解决这个问题吧

我都晕了一个下午了

使用特权

评论回复
20
一级菜鸟| | 2007-9-3 21:28 | 只看该作者

没看出你要解决什么问题,是数码管不亮,还是亮起来不对

如果不对,怎么个不对法?

使用特权

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

本版积分规则

153

主题

2855

帖子

1

粉丝