发表于:2004-04-08 12:03:00
楼主
程序如下
#pragma model(kd)
#include <kd_sfrs.h>
#include <kd_funcs.h>
#include <serial.h>
//串口初始化
void serialinital(void)
{
disable();
//清空发送寄存器
sbuf_tx=0;
//选择串口方式
ioc1=ioc1|0x20;
//且方式0\发送使能
sp_con=0x00;
//设置串口波特率9600
baud_rate=0x40;
baud_rate=0x83;
//接收使能
sp_con=0x08; //读拨位开关
while((sp_stat&0x40)==0){};
SWITCHCODE=sbuf_rx;
//开始接收数据
if( SWITCHCODE&0x080)
{
//设置串口模式1,波特率9600
baud_rate=0x67;
baud_rate=0x80;
sp_con=0x09;
sp_stat=0x00;
//设置中断
int_mask1=0x03;
}
enable();
//开中断
}
//串口接收中断处理程序
void Receive_ISR(void)
{
//读接收字符到缓存
unsigned char *Addr;
if(sp_stat&0x40)
{
int i;
for(i=0;i<=1;i++)
{
com.rxdata=sbuf_rx;
com.temp[i]=com.rxdata;
}
//CRC校验码比较\正确则存入地址0x4000开始
com.CRC=MarkCrc(&com.temp[0],8);
if(com.CRC&com.temp[1])
{
Addr=(unsigned char)0x4000;
*Addr=com.temp[0];
*Addr++;
}
}
//回送信息码
sp_con=0x09;
}
//串口发送中断处理程序
void Transmit_ISR(void)
{
sbuf_tx=com.temp[0];
//置接收
sp_con=0x09;
}
//主程序
void main(void)
{
serialinital();
while(1);
}
经编译连接后程序无错,但CPU无法运行(以加了cstart.obj连接)