大神们,求助啊!

[复制链接]
查看4828 | 回复3 | 2013-12-19 14:47:49 | 显示全部楼层 |阅读模式
我用P1.1控制led灯亮灭,电路是5v连接电阻,连接led,连接P1.1口,现在的情况是,当我P1.1置0时,led应该是亮,但是亮度很低,测了电压只有1.7v。当P1.1置1时,电源电压又变成了4.9v。这个是什么原因?
hfbjjs | 2013-12-31 02:05:58 | 显示全部楼层
端口首先设置为输出模式!
电阻要保证允许流过发光管有 0.3~10mA 范围的电流,作为测试,可以取 5mA .发光管电流不足发光就差!(发光管保证是好的哦!)
你没有说电阻大小,如果 10MΩ 电阻就根本不会亮!  如果电阻是 0 就会烧坏器件!! 0--10M 中间肯定有一个合适的值. 例如 1K,2K.....10K.... 试一下吧!
仅供参考!
金彩公子 | 2014-1-2 20:06:33 | 显示全部楼层
电阻阻值在300~欧姆,P1.1设置为输出模式(FP11M  = 1),禁止内部上拉电阻(FPUR1 = 0),应该就可以了。
batidaisy | 2014-1-7 21:16:32 | 显示全部楼层
hfbjjs 发表于 2013-12-31 02:05
端口首先设置为输出模式!
电阻要保证允许流过发光管有 0.3~10mA 范围的电流,作为测试,可以取 5mA .发光管 ...

非常感谢你的帮助。我现在遇到两个问题,希望你能帮助我,我在用到红外接收是用到外部中断,并且用延迟函数来判断高低电平,但是我在编译的时候编译器显示 error : error C2043 : 'isr_INT0' can't call non __interrupt function 'delay140us'。就是中断函数中不能调用非中断功能函数。但是我在查阅SN8 C Studio手册中P136有写中断函数中调用相应的处理函数。并且在SN8 C Studio help中没有找到相应error C2043的解释。请教一下如何在中断函数中调用非中断函数。还有一个问题是我现在用到定时器和中断函数,但是两者的优先级设定有问题,编译器要求两者的中断函数定义void __internet [0x08] usename()形式。我在SN8 C Studio软件文件中有一个例子说明多重中断的定义形式。
void __interrupt [0x08] ISR_WAKE(void)
{
        if(FWAKEIRQ)
        {
                FWAKEIRQ = 0;
        }
}
//-------------------------------------------------
void __interrupt [0x09] ISR_INT0(void)
{
        if(FP00IRQ)
        {
                FP00IRQ = 0;
        }
}
//-------------------------------------------------
void __interrupt [0x0A] ISR_INT1(void)
{
        if(FP01IRQ)
        {
                FP01IRQ = 0;
        }
}
//-------------------------------------------------
void __interrupt [0x0B] ISR_T0(void)
{
        if(FT0IRQ)
        {
                FT0IRQ = 0;
        }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则