单片机开发的新手,真心求助各位前辈
代码附在下面,遇到的问题是在用keil debug的时候,
OSCICN = 0x88;这句话会卡住很久,之后程序会被复位,无法往下进行
改成OSCICN = 0x08;以后debug运行到这一句就会自动退出调试界面
代码如下,用途是使用串口发一个编号:
#include
#include
#define BAUDRATE 9600
#define Fosc 22118400
#define uchar unsigned char
#define uint unsigned int
void Clock_Init(void)
{
int n = 0;
OSCXCN = 0x67;
for(n=0;n<500;n++);
while(!(OSCXCN&0x80))
OSCICN = 0x88;
}
void PORT_Init (void)
{
XBR0 = 0x05;
XBR1 = 0x14;
XBR2 = 0x44;
}
void INT_Init (void)
{
TCON |= 0x05;
EX0 = 1;
EX1 = 1;
}
void MCU_Init()
{
EA = 0;
WDTCN = 0xDE;
WDTCN = 0xAD;
Clock_Init();
PORT_Init();
INT_Init();
EA = 1;
}
void delay(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<121;y++);
}
void UART0_Init(void)
{
SCON0 = 0x40;
T2CON = 0x30;
RCAP2H = (65536-Fosc/BAUDRATE/32)/256;
RCAP2L = (65536-Fosc/BAUDRATE/32)%256;
TI0 = 0;
RI0 = 0;
IE |= 0x90;
IE &= 0x95;
TR2 = 1;
}
void send_char(uchar c)
{
SBUF0 = c;
while(TI0==0);
TI0 = 0;
delay(50);
}
void main (void)
{
int n0=48;
int n1=49;
int n3=51;
int i = 0;
MCU_Init();
UART0_Init();
TCON &=0xFD;
delay(50);
send_char(n0);
send_char(n0);
send_char(n0);
send_char(n3);
}