本帖最后由 wang479871 于 2014-3-1 19:42 编辑
//我想通过PIC16F883单片机的RA1管脚按键输入,RB6管脚接LED做指示灯
//我已经用万用表测了RA1管脚信号电压不管是0V还是5V,RB6LED都不亮,如果PORTB=0xFF,则LED亮
//编译环境为 MPLAB IDEv8.7,编译器用HI-TECH C,下面这是单片机配置位
配置位.png (34.8 KB, 下载次数: 0)
下载附件
2014-3-1 19:40 上传
#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
void Port_Init()
{
TRISA |= 0x02; //RA1管脚配置输入
TRISB &= ~0x40; //RB6管脚配置输出
INTCON = 0x00; //关闭所有中断
}
void main()
{
Port_Init();
while(1)
{
if(PORTA & 0x02)
PORTB |= 0x40;
else
PORTB &= ~0x40;
}
}
//请教LED不亮的原因是程序不对,还是配置位不对,
楼主,以下我根据你的代码改的,根据RC2的电平来控制RC0的电平,可是实际上测试RC0一直都是低电平,我还有什么问题吗?查了2天资料都没有发现
#include <htc.h>
//__CONFIG(FOSC_ECL&WDTE_OFF);
__CONFIG(0x3fe4);
//内部晶振,禁止看门狗
void init_gpio()
{
TRISA0=1; //ICSPDAT
TRISA1=1; //ICSPCLK
TRISA2=1; //DIM INT
TRISA3=1; //VPP
TRISA4=1; //DIM SAMP
TRISA5=1; //NC
SDOSEL = 1;
ANSELC |= 0X04;
TRISC = 0X04;
INTCON = 0x00; //关闭所有中断
}
main()
{
OSCCON=0B01101011; //fosc=4Mhz; internal osc;
WDTCON = 0;
init_gpio();
while(1)
{
if(PORTC & 0X04)
PORTC |= 0X01;
else
PORTC &= ~0X01;
}
}
一周热门 更多>