本帖最后由 f136025450 于 2012-7-16 12:46 编辑
//RB0按下时,单片机发送table里字符串
#include<htc.h>
#include"display.h"
#define uchar unsigned char
#define uint unsigned int
const uchar table[]={'I','.','L','O','V','E','.','Y','O','U',0x0d,0x0a,'k'};
uint i=0;
/*********************************
按键判断
*********************************/
uchar keypress()
{
if(RB0==0)
{
return 1;
}
else return 0;
}
/*********************************
发数据
*********************************/
void senddata()
{
while(table!='k')
{
TXREG=table;
while(!TRMT); //检测TSR寄存器是否发送完毕
// display(i);
i++;
}
}
/*********************************
main 函数
*********************************/
void main()
{
TRISD=0X00;
TRISA=0X00;
TRISC=0X80; //配置RX、TX输入输出端口
//BRGH=1; //高速
SPBRG=25; //设置高速波特率9600
TXSTA=0B00100100;//0X24
RCSTA=0B10010000;
TXIE=1;
GIE=1;
PEIE=1;
while(1)
{
;
}
}
/********************************************
中断
********************************************/
void interrupt TX()
{
if(TXIE&&TXIF)
{
if(keypress())
{
delay(5);
if(keypress())
{
senddata();
}
}
while(keypress());
}
}
我按下RB0键后在仿真上显示的怎么是乱码啊??怎么不是table里面的字符串?我是按DATASHEET里面说的设置寄存器的啊,哪位大神知道,求解释!!!
谢谢!!!
|