• 孙杨、宁泽涛扛起中国游泳大旗 2019-05-11
  • 那你就写个帖子驳呀!告诉你,我是普通老百姓就是错了也没有啥,你可是论坛“真理化身”呀! 2019-05-11
  • 守住青山不放松 护好绿水不辞难——在渝全国人大代表聚焦“共抓大保护、不搞大开发”专题调研记略 2019-05-10
  • 巴厘岛被爆众多海域垃圾成灾 潜水常被塑料瓶塑料袋包围 2019-05-04
  • 两个不能否定,怎会是停留在30年前? 2019-04-27
  • 国际在线:向世界报道中国,向中国报道世界 2019-04-27
  • 【理上网来喜迎十九大】外媒记者:稳步推进生态文明建设的中国更加美丽 2019-04-26
  • 董卿海霞李思思康辉撒贝宁 央视名嘴童年照谁更萌 2019-04-26
  • “龙江二号”微卫星传回地月合影 2019-04-18
  • 中国驻泰国大使考察合艾国光中学孔子课堂 2019-04-18
  • 【清园20年】感恩大回馈!半价!半价! 2019-04-18
  • 中央纪委紧盯节点 4年来通报曝光问题近4000起 2019-04-13
  • 2013环球企业领袖宁夏圆桌会议嘉宾云集 2019-04-13
  • 《魔兽世界》未解之谜 那些仍不能被玩家们踏足的领地 2019-04-11
  • 钱江潮评 让高质量发展插上人才的翅膀 2019-04-10
  • 打印

    广东体育彩票11选5助手: [技术问答] N79E815A单片机复位问题

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

    IW`SB%CHTQJ}[LO78CNK7PH.jpg (102.62 KB, 下载次数: 0)

    网上看到MSP430都需要手动关闭看门狗复位

    网上看到MSP430都需要手动关闭看门狗复位

    5H{00]9O5_U[F0PGL$8%{IO.jpg (148.94 KB, 下载次数: 0)

    自己一上电就有5v的VDD提供给单片机

    自己一上电就有5v的VDD提供给单片机

    WEE8LWO[UFLC$)((2MJE6AK.jpg (63.11 KB, 下载次数: 0)

    WEE8LWO[UFLC$)((2MJE6AK.jpg
    沙发
    | 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上设置的。
    6
     楼主 | 2018-11-15 13:42 | 只看该作者
    我烧录器的配置位没有设置,是按照默认的。应该行把

    )1)[email protected])_ER9M7NZHM.jpg (209.53 KB, 下载次数: 1)

    )1)RUCDMYY@2)_ER9M7NZHM.jpg
    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分频那么应该如何设置,这资料看的让人有点懵。我是需要设置时钟分频寄存器吗?谢谢各位大神了

    LB6VN5OVN2V~7E32K4)~T8L.jpg (167.01 KB, 下载次数: 0)

    LB6VN5OVN2V~7E32K4)~T8L.jpg

    IW`SB%CHTQJ}[LO78CNK7PH.jpg (102.62 KB, 下载次数: 0)

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

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

    1{N1Q`8EIZRH[L70[}%TXJE.jpg (265.33 KB, 下载次数: 0)

    1{N1Q`8EIZRH[L70[}%TXJE.jpg
    扫描二维码,随时随地手机跟帖
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

    快速回复

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

    论坛热帖

    快速回复 广东快乐十分走势图 返回列表
  • 孙杨、宁泽涛扛起中国游泳大旗 2019-05-11
  • 那你就写个帖子驳呀!告诉你,我是普通老百姓就是错了也没有啥,你可是论坛“真理化身”呀! 2019-05-11
  • 守住青山不放松 护好绿水不辞难——在渝全国人大代表聚焦“共抓大保护、不搞大开发”专题调研记略 2019-05-10
  • 巴厘岛被爆众多海域垃圾成灾 潜水常被塑料瓶塑料袋包围 2019-05-04
  • 两个不能否定,怎会是停留在30年前? 2019-04-27
  • 国际在线:向世界报道中国,向中国报道世界 2019-04-27
  • 【理上网来喜迎十九大】外媒记者:稳步推进生态文明建设的中国更加美丽 2019-04-26
  • 董卿海霞李思思康辉撒贝宁 央视名嘴童年照谁更萌 2019-04-26
  • “龙江二号”微卫星传回地月合影 2019-04-18
  • 中国驻泰国大使考察合艾国光中学孔子课堂 2019-04-18
  • 【清园20年】感恩大回馈!半价!半价! 2019-04-18
  • 中央纪委紧盯节点 4年来通报曝光问题近4000起 2019-04-13
  • 2013环球企业领袖宁夏圆桌会议嘉宾云集 2019-04-13
  • 《魔兽世界》未解之谜 那些仍不能被玩家们踏足的领地 2019-04-11
  • 钱江潮评 让高质量发展插上人才的翅膀 2019-04-10
  • 北京赛车pk10预测 生肖时时彩开奖结果 试机号对应码365彩票网 快乐12开奖走势图 北京赛车冠亚军统计 北京快中彩玩法说明 新疆时时彩三星和值 山东群英会玩法及奖金 大乐透走势图带连线 秒速飞艇是哪里的彩票 nba比分直播 大赢家新时时彩 二十一点游戏规则 新疆时时彩三星和值尾 22选5中奖号码走势图 最新任选9场开奖结果