智能车制作
标题:
1
[打印本页]
作者:
寻找周杰伦
时间:
2010-10-20 23:41
标题:
1
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*SCI0初始化*/
void SCi0Init(void)
{
SCI0BDL=0X80;
SCI0BDH=0X00;
SCI0CR1=0X00;//正常8位模式,无奇偶校验
SCI0CR2=0X2C;//接收中断允许
}
//读SCI 查询方式接收放入字节型变量
uchar SCi0read()
{
if(SCI0SR1_RDRF==1) //表明数据从位移寄存器传输到SCI数据寄存器
{
SCI0SR1_RDRF=1;//读取数据寄存器会将RDRF清除 重新置位
return SCI0DRL;//返回数据寄存器的数据
}
}
//写SCI 判断SCI0SR1的第七位是否为1,是1则可以发送数据
void SCi0write(uchar ch)
{
SCI0SR1_TDRE=1;//数据已被传送到发送移位寄存器
SCI0DRL=ch;
delay(10);
}
//接收中断函数
#pragma CODE_SEG NON_BANKED
void interrupt 20 SCI0_ISR(void)
{
uchar ch;
ch=SCi0read();
PORTB=~ch;
}
void main(void)
{
SCi0Init();
DDRB=0XFF;
EnableInterrupts;
for(;;)
{
} /* wait forever */
/* please make sure that you never leave this function */
}
大家帮忙看看,这个串口通信SCI怎么不按我发送的数据点亮LED啊?
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2