我现在用的芯片是n79e814,外接16M的晶振,我现在需要串口发送接收,我的波特率是250K;看了下手册,我发现有两种方法可以实现,第一种是模式2,波特率为系统时钟的六十四分之一,smod为0,16M/64=250K ;第二种是模式3:使用T1来作为波特率发生器,并设置smod为1,同时设置CKCON.4=1;经过公式 可算得TH1=255,也就是0xff;我的代码程序如下: 我现在的主要问题是程序总是进入不了中断,我想问下是不是哪里有问题?硬件是肯定没错的。刚开始接触新塘的芯片,对4T不是很懂,请教各位大师
#include"N79E81x.H"
#include"INTRINS.H"
#include"typed.h"
#include "Common.h"
#include "Define.h"
#define Uart_Port_Sel 0x00
void initUart();
void initUart()
{
AUXR1 |= Uart_Port_Sel; // Select P10/P11 as UART pin(default)
CKCON |=0x10; //设置CKCON.4为1
SCON = 0xd0; //设置串口工作方式3,允许接收
TMOD |= 0x20; //设置T1工作模式为8位重装
PCON |= 0x80; //设置smod为1,波特率加倍
TH1 = 255; //设置T1初值
TL1=255;
TR1 = 1; //开启T1
ES = 1; //允许串口中断
PS = 1; //设置串口优先级
EA=1; //开总中断
}
void main()
{
initUart();
while(1)
{
}
}
void uart(void) interrupt 4
{
}
|