打印

关于Proteus仿真PIC单片机的问题

[复制链接]
5355|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pallee|  楼主 | 2013-2-25 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学PIC
一个很基本的程序,判断单片机管脚电平高低,如果为低,点亮对应管脚的发光二极管,结果在仿真中发现无论如何,二极管的点亮不受程序控制,
程序如下:
#include <pic18f4580.h>

void main()
{
TRISA1=1;

TRISB0=1;
TRISB2=1;
TRISB4=1;
TRISB6=1;//设置管脚的输入输出

TRISE0=0;
TRISE1=0;
TRISE2=0;

PORTE=0;
while(1)
{
if(RA1==0)//如果RA1对应的开关按下,则RA1为低电平,点亮RE0管脚的二极管,实际仿真中发现无论RA1对应的开关是否按下,RE0对应的二极管都会被点亮
{
  PORTE=0;
  RE0=1;
}
if(RB2==0)//如果RB2对应的开关按下,则RB2为低电平,点亮RE1管脚的二极管,这段代码有时有效,有时无效

{
  PORTE=0;
  RE1=1;
}
/*if(RB4==0)//下面是类推,结果都实现不了
{
  PORTE=0;
  RE2=1;
}
if(RB6==0)
{
  PORTE=0;
  RE0=1;
  RE1=0;
  RE2=1;  
}*/
}
while(1);
}
图片如下

搞不懂是程序的问题还是Proteus的问题,有没有高人指点一下?多谢了。
沙发
yklstudent| | 2013-2-26 09:45 | 只看该作者
while(1);
程序都死这边了 你再按按键还能有用????

使用特权

评论回复
板凳
asspeed| | 2013-2-26 09:46 | 只看该作者
又一个不认真看数据手册的

使用特权

评论回复
地板
储小勇_526| | 2013-2-26 14:07 | 只看该作者
引脚有复用功能的

使用特权

评论回复
5
dogglove| | 2013-2-26 16:22 | 只看该作者
比较乱啊

使用特权

评论回复
6
pallee|  楼主 | 2013-2-26 20:33 | 只看该作者
疑问:即使最后程序死了,为什么RA1在没有赋值为0的时候RE0对应的LED会亮呢?没有对RE0进行赋值为1的操作啊?个人觉着只会是按键无反应,3个LED都不亮才对。

使用特权

评论回复
7
pallee|  楼主 | 2013-2-26 21:46 | 只看该作者
今天用MCC18的编译器,程序改为空,只有一个#include <p18f4580.h>,main函数为空,仿真电路图见 ,我以为按照图中的连接(PORTB口的连接是乱了点,我的意图是端口通过1K电阻排上拉至VCC,在按键没有按下的时候端口应为高电平,仿真开始后确实如此,见图),仿真开始后,在读PORTB口的值,应该是0xff吧,因为开关没按下,都是高电平,为什么在watch窗口中观察会是0XEC?程序是空的,没有对B口的操作,按照电气连接,觉着应该是高电平,而且看图上端口都是红色的标记,应该识别出来是高电平。为什么观察窗口会是0xec?还有,在看汇编窗口时发现有两个文件汇编进去了,一个是c018i.c,一个是p18f4580.asm,这两个文件我通过查找都在我安装的MCC18的目录下,是在E盘下,怎么在汇编窗口里会显示的在C盘?(我用线括起来了)

感谢,另外,用51单片机,这样的尝试是没有问题的(端口通过开关接地,程序判断管脚输入是否为0来对另外的管脚进行操作),对端口的操作51和PIC有什么不同?疑惑中。

可能说的有点乱,希望大家提些建议和意见,多谢了!
至于管脚的复用,我如果程序中不对某些寄存器进行设置,默认是不会激活的吧?

使用特权

评论回复
8
pallee|  楼主 | 2013-3-12 19:56 | 只看该作者
是自己没看明白458和4580的原因,B口有差别的。

使用特权

评论回复
9
huarens| | 2013-3-22 23:26 | 只看该作者
不用写配置字吗?

使用特权

评论回复
10
Rain_King| | 2013-3-24 22:37 | 只看该作者
貌似需要设置数字输入还是模拟输入.....就是上面说的引脚复用的功能...好好看一下介绍的资料....

使用特权

评论回复
11
sunjiaqi2004| | 2013-3-28 14:52 | 只看该作者
告诉你吧,你的原因是端口没有配置好,手册上有说,带模拟功能的IO口必须初始化配置为模拟输入还是数字输入

使用特权

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

本版积分规则

12

主题

177

帖子

2

粉丝