打印
[51单片机]

C8051f380,配置问题

[复制链接]
1196|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
miao5061|  楼主 | 2016-1-6 14:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "main.h"
#include "config.h"
#include "compiler_defs.h"
#include "C8051F380_defs.h"

// Peripheral specific initialization functions,
// Called from the Init_Device() function

void Timer_Init()
{
    TCON      = 0x40;
    TMOD      = 0x20;
    CKCON     = 0x08;
    TH1       = 0x64;
}

void UART_Init()
{
    SCON0     = 0x10;
}


void Port_IO_Init()
{
    // P0.0  -  SCK  (SPI0), Open-Drain, Digital
    // P0.1  -  MISO (SPI0), Open-Drain, Digital
    // P0.2  -  MOSI (SPI0), Open-Drain, Digital
    // P0.3  -  NSS  (SPI0), Open-Drain, Digital
    // P0.4  -  TX0 (UART0), Open-Drain, Digital
    // P0.5  -  RX0 (UART0), Open-Drain, Digital
    // P0.6  -  SDA (SMBus0), Open-Drain, Digital
    // P0.7  -  SCL (SMBus0), Open-Drain, Digital

    // P1.0  -  TX1 (UART1), Open-Drain, Digital
    // P1.1  -  RX1 (UART1), Open-Drain, Digital
    // P1.2  -  Unassigned,  Open-Drain, Digital
    // P1.3  -  Unassigned,  Open-Drain, Digital
    // P1.4  -  Unassigned,  Open-Drain, Digital
    // P1.5  -  Unassigned,  Open-Drain, Digital
    // P1.6  -  Unassigned,  Open-Drain, Digital
    // P1.7  -  Unassigned,  Push-Pull,  Digital

    // P2.0  -  Unassigned,  Push-Pull,  Digital
    // P2.1  -  Unassigned,  Push-Pull,  Digital
    // P2.2  -  Unassigned,  Push-Pull,  Digital
    // P2.3  -  Unassigned,  Open-Drain, Digital
    // P2.4  -  Unassigned,  Open-Drain, Digital
    // P2.5  -  Unassigned,  Open-Drain, Digital
    // P2.6  -  Unassigned,  Open-Drain, Digital
    // P2.7  -  Unassigned,  Open-Drain, Digital

    // P3.0  -  Unassigned,  Open-Drain, Digital
    // P3.1  -  Unassigned,  Open-Drain, Digital
    // P3.2  -  Unassigned,  Open-Drain, Digital
    // P3.3  -  Unassigned,  Open-Drain, Digital
    // P3.4  -  Unassigned,  Open-Drain, Digital
    // P3.5  -  Unassigned,  Open-Drain, Digital
    // P3.6  -  Unassigned,  Open-Drain, Digital
    // P3.7  -  Unassigned,  Open-Drain, Digital

    P0MDOUT   = 0xFF;
    P1MDOUT   = 0x83;
    P2MDOUT   = 0x07;
    XBR0      = 0x07;
    XBR1      = 0x40;
    XBR2      = 0x01;
}

void Oscillator_Init()
{
    OSCLCN    |= 0x83;
    CLKSEL    = 0x08;
    OSCICN    = 0xC3;
}

void Interrupts_Init()
{
    IP        = 0x10;
    EIE1      = 0x01;
    EIE2      = 0x02;
    IE        = 0x18;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
    Timer_Init();
    UART_Init();
//        SMBus_Init();
//  SPI_Init();
    Port_IO_Init();
        Oscillator_Init();
//        Interrupts_Init();
}

这是我的配置程序,
//UART0·¢ËÍÒ»¸ö×Ö·û
void RS232SendChar(unsigned char byte)
{
        REN0 = 0;
        SBUF0 = byte;
        while(TI0 == 0);                //·¢ËÍÖжϱêÖ¾
        TI0 = 0;
        REN0 = 1;
}
这是串口发送程序,程序运行到while(TI0 == 0); 就TI0一直不置一,求高手看一下是不是配置出了问题?

相关帖子

沙发
luohuzgdzw| | 2016-1-6 19:12 | 只看该作者
void Interrupts_Init()有问题,最后一句 IE  = 0x18; 使IE.7(EA)=0;总中断关掉了,time1无法产生中断生产波特率。

使用特权

评论回复
板凳
yhn1973| | 2016-1-6 20:49 | 只看该作者
定时器T1不要允许中断

使用特权

评论回复
地板
miao5061|  楼主 | 2016-1-8 14:12 | 只看该作者
多谢楼上,问题解决了,PCA0MD &= ~0x40;          加这么一句话就可以了,当然总中断还是要开,要不然不能用中断。
PS:但是我不知道为什么,要把看门狗定时器禁止呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝