程序写进去了,但是不工作

[复制链接]
1539|29
 楼主| supernan 发表于 2020-2-8 11:53 | 显示全部楼层 |阅读模式
用PIC16f690做一个继电器控制程序,程序写进去了,但是不工作

评论

可以排查一下,如果程序比较复杂,可以先写个端口翻转的简单程序测试一下,可以工作,那么可能就是软件方面的问题,如果不能工作,则多往硬件方面看看!  发表于 2020-2-15 09:39
tian111 发表于 2020-2-8 11:57 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| supernan 发表于 2020-2-8 12:00 | 显示全部楼层
#include <pic.h>
__CONFIG(0x3b2a);   //XT,MCLR,CP,CPD,保护
#define uchar   unsigned char
#define uint    unsigned int
#define ulint   unsigned long

#define _XTAL_FREQ 4000000  // 4M晶振数值


void init(void)
{
     ANSEL  = 0x00;
    ANSELH = 0x00;       //数字量输入

    TRISA|=0x04;        //RA口,RA2输入,其他为特殊端口不设置
    TRISA&=0x04;

    TRISB|=0x00;        //RB口为输出口
    TRISB&=0x00;
    //WPUB=0xff;          //使能RB所有口的内部弱上拉功能。

    TRISC|=0xff;        //RC口为输入端
    TRISC&=0xff;

    T0CS=0;             //给Timer0选择内部指令周期计数,即将它设置为定时器功能。此时Timer0也开始工作了。
    PSA=0;              //将预分频器分配给Timer0.
    PS2=0;              //分频比设置为16.则在4M晶振下,Timer0一个中断周期为4096us。
    PS1=1;
    PS0=1;
    T0IE=1;             //允许Timer0中断
          PEIE=1;           //允许所有未被屏蔽的外设中断
          GIE=1;            //允许全局中断

        WDTPS3=0;           //设置看门狗分频是2048
    WDTPS2=1;
    WDTPS1=1;
    WDTPS0=0;
//        PORTC=0xff;
                  
}



void main(void)
{
        init();

        while(1)
        {
                asm("clrwdt");         
                if(RC5==0)
                        RB4=0;        
                else
                        RB4=1;        
        }
}

评论

你这还是在用老的开发环境写程序阿!可以学习新的了!  发表于 2020-2-15 09:40
zhuhuis 发表于 2020-2-8 12:03 | 显示全部楼层
硬件电路看看
bqyj 发表于 2020-2-8 12:07 | 显示全部楼层
本帖最后由 bqyj 于 2020-2-8 12:08 编辑

多放几张
 楼主| supernan 发表于 2020-2-8 12:13 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| supernan 发表于 2020-2-8 12:14 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| supernan 发表于 2020-2-8 12:18 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| supernan 发表于 2020-2-8 12:18 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| supernan 发表于 2020-2-8 12:22 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
bqyj 发表于 2020-2-8 12:26 | 显示全部楼层

还有什么现象?能再详细描述下吗?
 楼主| supernan 发表于 2020-2-8 12:29 | 显示全部楼层
测试了一下,晶振两端电压相对电压为5v,换了晶振也是一样的,什么原因
xxrs 发表于 2020-2-8 12:33 | 显示全部楼层
拿示波器测试一下。
huanghuac 发表于 2020-2-8 12:40 | 显示全部楼层
应该不是晶振的问题,程序写进去后,输入信号时继电器不动作
morrisk 发表于 2020-2-8 12:43 | 显示全部楼层
强制动作后,保持,断开信号后继电器也断开
 楼主| supernan 发表于 2020-2-8 12:46 | 显示全部楼层
又测试了一下,应该是输出光耦那端的问题,单片机输出为0,光耦应该导通的,可是没有,
bqyj 发表于 2020-2-8 12:48 | 显示全部楼层

还有什么现象?能再详细描述下吗?
xxmmi 发表于 2020-2-8 12:52 | 显示全部楼层
el817,1脚电压为1.2V,2脚为0(理论导通),可是4脚电压为3.1伏,不知道啥原因呢
 楼主| supernan 发表于 2020-2-8 12:57 | 显示全部楼层
是出在硬件电路的问题上了,光耦输出端不导通
chenho 发表于 2020-2-8 13:01 | 显示全部楼层
断开后面的继电器电路测呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

730

主题

10412

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部