• 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21
  • 打印

    广东体彩11选5遗漏: [技术问答] N79E815A单片机复位问题

    [复制链接]
    568|18
    跳转到指定楼层
    楼主
     楼主 | 2018-11-15 09:20 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
    请问各位大神,就是新塘N79E815A单片机我做的电路是按照标准电路搭的。请问我的程序里有关复位的程序都没写,其他比如MSP430我看别人是需要自己手动写程序关闭的,然后新塘单片机看门狗复位功能也需要手动写程序关闭吗?对单片机真的是小白一个,还请各位指教?;褂形倚吹某绦蚰嫌玫哪诓渴敝?2.1184MHZ,因为资料上如果硬件上是没有配置外部晶振,那么默认就是22.1184M内部时钟,那我烧程序时keil里的11.0592要换成22.1184吗

    本帖子中包含更多资源

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

    x
    沙发
    | 2018-11-15 10:04 | 只看该作者
    这个是51内核的不需要。如果有看门狗设置,可能是在配置字里,你看看这个芯片手册有没有配置字
    板凳
    | 2018-11-15 10:04 | 只看该作者
    我只用过N76E003,那个是有配置字开启和关闭的,而不是在程序里操作。是要用烧录软件或者Keil烧录时候有个设置的地方。
    地板
    | 2018-11-15 10:10 | 只看该作者
    配置位(CONFIG)
    N79E815A/814A/8132A具有硬件配置位,设定这些配置位可用于安全位,系统时钟位等等。这些硬件
    配置位可通过编程器/烧录器或ISP 来配置。N79E815A/814A/8132A具有四个配置位,配置位0~3。有
    些特定的配置位定义的功能也可以通过特定寄存器位重新配置。因此,需要加载这睦配置位到相应的寄
    存器位。这些加载发生在复位之后。(软件复位会加载除CONFIG0.7的CBS位以外的所有配置位) 这些寄
    存器位可以持续通过用户的软件控制。其他复位将不改变这些寄存器位的值。
    5
    | 2018-11-15 10:11 | 只看该作者

    在配置位3上设置的。

    本帖子中包含更多资源

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

    x
    6
     楼主 | 2018-11-15 13:42 | 只看该作者
    我烧录器的配置位没有设置,是按照默认的。应该行把

    本帖子中包含更多资源

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

    x
    7
    | 2018-11-15 15:16 | 只看该作者
    听沙的声音 发表于 2018-11-15 13:42
    我烧录器的配置位没有设置,是按照默认的。应该行把

    可以的,默认就行。干的漂亮,不太理解那些内容看手册。
    8
     楼主 | 2018-11-15 15:43 | 只看该作者
    jiekou001 发表于 2018-11-15 15:16
    可以的,默认就行。干的漂亮,不太理解那些内容看手册。


    #include <stdio.h>
    #include "N79E81x.h"
    #include "Typedef.h"
    #include "Define.h"
    #include "Common.h"
    #include "Delay.h"
    #include "ISR.h"
    #include "Version.h"
    bit EA_Save_bit;
    //-----------------------------------------------------------------------------------------------------------
    void Interrupt_Error(void)
    {
        while(1)
        {
            P07 = 1;
            Delay1ms(500);
            P07 = 0;
            Delay1ms(500);
        }
    }
    //-----------------------------------------------------------------------------------------------------------
    void main(void)
    {
        uint16_t i;
        InitialUART0_Timer1(9600);                  // 9600 Baud Rate @ 11.0592MHz
        Show_Version_Number_To_PC();
        printf ("\n*==========================================================================");
        printf ("\n*  N79E81x Series Interrupt Sample Code.");
        printf ("\n*==========================================================================\n");
        TR1 = 0;                                    //Stop Timer1 for Interrupt Demo

        IE   = 0x7F;
        EIE  = 0xFF;
        EA   = 1;

        //********************** INT0 Test ***********************
        P0 = 0xFF;
        IT0 = 1;

        set_IE0;                             // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x01)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************* Timer0 Test **********************
        P0 = 0xFF;

        set_TF0;                             // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x02)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** INT1 Test ***********************
        P0 = 0xFF;
        IT1 = 1;

        set_IE1;                             // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x03)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************* Timer1 Test **********************
        P0 = 0xFF;

        set_TF1;                             // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x04)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** UART0 Test **********************
        P0 = 0xFF;

        set_RI;                              // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x05)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************* Timer2 Test **********************
        P0 = 0xFF;

        set_TF2;                             // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode
        /* Check ISR return value */
        if(P0 != ~0x06)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** I2C Test ************************
        P0 = 0xFF;

        set_SI;                              // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x07)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** KBI Test ************************
        P0 = 0xFF;

        set_KBIF0;                           // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x08)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** BOD Test ************************
        P0 = 0xFF;

        set_BOF;                             // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x09)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** SPI Test ************************
        P0 = 0xFF;
                                             // Trigger Interrupt
        set_SPIF;

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x0A)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //******************* Watch Dog Test *********************
        P0 = 0xFF;

        set_WDTF;                            // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x0B)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** ADC Test ************************/
        P0 = 0xFF;

        set_ADCI;                            // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x0C)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //******************** Capture Test **********************
        P0 = 0xFF;

        set_CAPF0;                           // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x0D)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time
        //********************** PWM Test ************************
        P0 = 0xFF;

        set_BKF;                             // Trigger Interrupt

        PCON |= SET_BIT0;                    // Enter Idle Mode

        if(P0 != ~0x0E)                      // Check ISR return value
            Interrupt_Error();
        for(i = 0 ; i < 60000 ; i++);        // Delay time

        EA = 0;                              // Disable all interrupt
        InitialUART0_Timer1(9600);           // 9600 Baud Rate @ 11.0592MHz
        printf("\nInterrupt Test OK!");
        while(1)
        {
            P14 = 1;
            P21 = 1;
            Delay1ms(500);
            P14 = 0;
            P21 = 0;
            Delay1ms(500);
        }
    }
    //-----------------------------------------------------------------------------------------------------------
    void INT0_ISR(void) interrupt 0          // Vector @  0x03
    {
        P0 = 0xFF-1;
        clr_IE0;
    }
    //-----------------------------------------------------------------------------------------------------------
    void Timer0_ISR(void) interrupt 1        // Vector @  0x0B
    {
        P0 = 0xFF-2;
        clr_TF0;
    }
    //-----------------------------------------------------------------------------------------------------------
    void INT1_ISR(void) interrupt 2          // Vector @  0x13
    {
        P0 = 0xFF-3;
        clr_IE1;
    }
    //-----------------------------------------------------------------------------------------------------------
    void Timer1_ISR(void) interrupt 3        // Vector @  0x1B
    {
        P0 = 0xFF-4;
        clr_TF1;
    }
    //-----------------------------------------------------------------------------------------------------------
    void UART0_ISR(void) interrupt 4         // Vector @  0x23
    {
        P0 = 0xFF-5;
        clr_RI;
    }
    //-----------------------------------------------------------------------------------------------------------
    void Timer2_ISR(void) interrupt 5        // Vector @  0x2B
    {
        P0 = 0xFF-6;
        clr_TF2;
    }
    //-----------------------------------------------------------------------------------------------------------
    void I2C_ISR(void) interrupt 6           // Vector @  0x33
    {
        P0 = 0xFF-7;
        clr_SI;
    }
    //-----------------------------------------------------------------------------------------------------------
    void KBI_ISR(void) interrupt 7           // Vector @  0x3B
    {
        P0 = 0xFF-8;
        clr_KBIF0;
    }
    //-----------------------------------------------------------------------------------------------------------
    void BOD_ISR(void) interrupt 8           // Vector @  0x43
    {
        P0 = 0xFF-9;
        clr_BOF;
    }
    //-----------------------------------------------------------------------------------------------------------
    void SPI_ISR(void) interrupt 9           // Vector @  0x4B
    {
        P0 = 0xFF-10;
        clr_SPIF;
    }
    //-----------------------------------------------------------------------------------------------------------
    void WDT_ISR(void) interrupt 10          // Vector @  0x53
    {
        P0 = 0xFF-11;
        clr_WDTF;
    }
    //-----------------------------------------------------------------------------------------------------------
    void ADC_ISR(void) interrupt 11          // Vector @  0x5B
    {
        P0 = 0xFF-12;
        clr_ADCI;
    }
    //-----------------------------------------------------------------------------------------------------------
    void Capture_ISR(void) interrupt 12      // Vector @  0x63
    {
        P0 = 0xFF-13;
        clr_CAPF0;
    }
    //-----------------------------------------------------------------------------------------------------------
    void PWM_Brake_ISR(void) interrupt 14    // Vector @  0x73
    {
        P0 = 0xFF-14;
        clr_BKF;
    }
    //-----------------------------------------------------------------------------------------------------------
    嗯嗯,这是官网的中断程序,说实在话都没看懂,为什么在主函数里,他那个EA=1,后面又有EA=0,关掉中断,还有为什么要是P0=0xFF,然后每个中断服务程序里又是oxFF-X这种。我比如就是想P00为按键中断,还有它定义的那个延时,for()语句的延时具有什么功能,求指教
    9
    | 2018-11-15 16:25 | 只看该作者
    那是让你通过P0端口显示不同组合知道发生了什么中断啊。
    10
    | 2018-11-15 16:27 | 只看该作者
    关闭中断是让中断不再发生,你就可以观察P0端口的数据,比如你用了LED灯表示的,就可以看到刚才发生了什么中断了。
    11
    | 2018-11-15 17:47 | 只看该作者
    那个是外部晶振的配置,如果不适用外部的,不用管就行了。
    12
     楼主 | 2018-11-15 18:18 | 只看该作者
    jiekou001 发表于 2018-11-15 17:47
    那个是外部晶振的配置,如果不适用外部的,不用管就行了。

    谢谢,请问你说的外部晶振配置是哪条语句?这个用的是内部11.592M晶振的?;褂形揖褪歉悴幻靼孜裁此碩RO=1,就是让定时器1终止记时

    评论

    听沙的声音 2018-11-15 18:19 回复TA
    说错了,他写的是TR1=0 
    13
    | 2018-11-15 18:25 | 只看该作者
    听沙的声音 发表于 2018-11-15 18:18
    谢谢,请问你说的外部晶振配置是哪条语句?这个用的是内部11.592M晶振的?;褂形揖褪歉悴幻靼孜裁此?...

    内部不是22M那个RC振荡器吗?那个软件勾选11.592那个意思是如果你用外部的11.592,才打钩。
    14
     楼主 | 2018-11-15 19:55 | 只看该作者
    jiekou001 发表于 2018-11-15 18:25
    内部不是22M那个RC振荡器吗?那个软件勾选11.592那个意思是如果你用外部的11.592,才打钩。 ...

    那我就相当于keil编程时不需要在keil软件里勾选11.0592M,只需要在isp-icp烧录程序里默认就好?谢谢
    15
    | 2018-11-15 20:35 | 只看该作者
    我知道还有个单片机也是在配置字设置,PIC的
    16
    | 2018-11-15 22:08 | 只看该作者
    715是个好东西,可以加我QQ386923934提供支持
    17
     楼主 | 2018-11-15 22:11 | 只看该作者
    mintspring 发表于 2018-11-15 20:35
    我知道还有个单片机也是在配置字设置,PIC的

    还有我想请问一下你们,我用的内部的22.1184做为时钟,至于想12分频那么应该如何设置,这资料看的让人有点懵。我是需要设置时钟分频寄存器吗?谢谢各位大神了

    本帖子中包含更多资源

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

    x
    18
     楼主 | 2018-11-15 23:24 | 只看该作者
    听沙的声音 发表于 2018-11-15 22:11
    还有我想请问一下你们,我用的内部的22.1184做为时钟,至于想12分频那么应该如何设置,这资料看的让人有 ...

    他这个12分频和4分频请问是在哪里设置

    本帖子中包含更多资源

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

    x
    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    我要发帖 投诉建议 创建版块 申请版主

    快速回复

    您需要登录后才可以回帖
    登录 | 注册
    高级模式

    论坛热帖

    快速回复 广东快乐十分走势图 返回列表
  • 中英航母大战谁能赢歼151枚炸弹就能炸瘫女王 2019-03-22
  • 独特“光捕捉器”可控制分子生化性质 2019-03-22
  • 女性之声——全国妇联 2019-03-19
  • 【理上网来·辉煌十九大】德国北威州经济部长:十九大报告表明中国有能力为世界做出更多贡献 2019-03-11
  • 全国小麦收获进度过八成 2019-03-07
  • 【人事】中共临汾市委组织部公示3名拟任职干部 2019-03-07
  • 这泼猴,物理。古文,哲学,基础语文,那一项没出丑?看着就想笑 2019-02-20
  • 云南理发店老板涉嫌杀害女演员因办卡纠纷起杀心 2019-02-20
  • 1至5月我区为企业和社会减负4200余万元 2019-02-09
  • 【学习时刻】参会专家盛小云:坚定文化自信,用高尚的作品引领社会风尚 2019-01-28
  • 绘就生态文明新画卷—甘南州造林绿化工作纪实 2019-01-28
  • 某些人总是用“客观事实”来为自己壮胆,实际上根本不懂什么是“客观事实。 2019-01-12
  • 圣洁的雪山文章中国国家地理网 2018-11-22
  • 崇尚英雄 精忠报国——我们家的报国故事 2018-11-22
  • 618史上最壕“买家”现身 Google以 5.5亿美元投资京东 2018-11-21