初学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的问题,有没有高人指点一下?多谢了。
|