找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1044|回复: 1
打印 上一主题 下一主题
收起左侧

dspIc4011 程序,mplabx

[复制链接]
跳转到指定楼层
楼主
ID:413965 发表于 2018-10-23 13:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/FCKSM = 00;时钟切换使能 FOS = 11主振荡器XT晶振模式外部4MHz
_FWDT(0X0000);//关狗
_FBORPOR(0X3A2);//MCLREN禁止 欠压2.7V 上电延时16MS
_FGS(0X03);
*/
void Delay_1ms(unsigned int t)//t = 1000大概1s
{
        unsigned int i,j;   
        for(i = 0;i < t;i ++)
                for(j = 0;j < 100;j ++);
}

#define  SCLK   PORTBbits.RB1
unsigned int  Time;

void Timer1_Init(void)//定时器初始化
{
    T1CONbits.TON = 0;//定时器关闭
    T1CON = 0x0000;//空闲工作 预分频1:4 不用外部时钟 FOSC/4
    T1CONbits.TSYNC = 1;//外部时钟
    IEC0bits.T1IE = 1;//允许Timer1中断请求
    INTCON1 |= 0X8000;//不要中断嵌套
    IPC0bits.T1IP = 0x07;//中断优先级7
    T1CONbits.TON = 1;//定时器使能
}

int main()
{
    TRISB = 0x00;//RB口设置为输出
    Timer1_Init();

        while(1)
        {
                //PORTB = 0x02; //高电平输出
               // PORTBbits.RB1=1;
              //  SCLK = 1;
                Delay_1ms(1000);

                //PORTB = 0x00;//低电平输出
                //PORTBbits.RB1=0;
               // SCLK = 0;
                Delay_1ms(1000);
        }
}


void __attribute__((__interrupt__, auto_psv)) _T1Interrupt(void)//定时器1中断
{

        IFS0bits.T1IF = 0;//清中断
        //定时器中断处理函数

        T1CONbits.TON = 0;//定时器使能
        TMR1 = -62500;
        T1CONbits.TON = 1;//定时器使能

        Time ++;
        if(Time == 16)
        {
             Time = 0;
               //T ++;
             //  SCLK = 0;
        }

       SCLK = (Time & 0x08) ? 1 : 0;
}




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-10-23 16:01 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表