//////////以下字符里面的0x0d,0x0a是换行符//////////
#includepic.h
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
uchar LED_CODE[]={I,.,L,O,V,E,.,Y,O,U,0x0d,0x0a,k};
void delay500us(uchar r);
void senddata();
void init();
void main()
{
init();//系统初始化
while(1)
{
//等待发送
}
}
void init()
{
TRISC=0xFF;//注意接收端一定要设置成输入不然不能接收操作
TRISB=0xFF;//B端口设置成输入(按键操作发送用途)
TRISD=0x00;//D端口设置成输出
PORTD=0xFF;//D端口初始输出高
TRISA=0x00;//A端口设置成输出
PORTA=0x00;//A端口初始输出高
TXSTA=0x24;//发送数据控制位配置 0B 0010 0100
RCSTA=0x90;//接收数据控制位配置 0B 1001 0000
SPBRG=25;//波特率设置9600
RCIE=1;//接收使能
TXIE=1;//发送使能
PEIE=1;//外中断使能
GIE=1;//总中断开启
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
/*void interrupt rc()//串口接收中断
{
if(RCIERCIF)//判断接收中断是否置位
{
uchar temp;//定义个字符型临时变量
temp=RCREG;//将接收到的串口数据存到临时变量里面以便后面操作
TXREG=PORTD=temp;
//=temp;
while(!TRMT);
}
}*/
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void interrupt tx()//串口发送中断
{
if(TXIETXIF)//判断发送中断是否置位
{
if(RB0==0)//检测按键0是否按下
{
delay500us(20);//按键被按下后延时消抖
if(RB0==0)//再次判断是否按下
{
senddata();//调用发送一个字符串的子函数
}
}
while(!RB0);//按键松手检测
}
}
void delay500us(uchar r)//500US延时子函数
{
uint p,m;
for(p=0;pr;p++)
for(m=0;m28;m++);
}
void senddata()//发送一个字符串的子函数
{
uchar i=0;//定义一个临时字符变量,并且赋0值
while(LED_CODE[i]!=k)//判断i的值是否不等于k将I LOVE YOU 这个字符串一个个装入移位寄存器
{
TXREG=LED_CODE[i];//发送字符串I LOVE YOU 到PC机
while(!TRMT);//检测移位寄存器是否发完 发完为1 没有发完是0
i++;//i的值加1
}
}
您可能关注的文档
最近下载
- ISO9001 质量管理体系全套(质量手册+程序文件+表格记录全套).doc VIP
- 深度解析(2026)SYT 5794-2010《钻井液用沥青类评价方法》:从标准解读到未来油田化学智能化应用的战略前瞻.pptx VIP
- 2025-2030中国化学镀镍行业市场发展趋势与前景展望战略研究报告.docx
- 深度解析(2026)《SYT 7377-2017钻井液设计规范》.pptx VIP
- 《船体振动学》教学课件.pdf
- 操作系统Windows操作系统模型.pptx VIP
- 2025年山东省选调公务员考试真题汇编附答案解析(夺冠).docx VIP
- Windows操作系统翻译词汇.pdf
- 基于灰色关联理论的广西农产品供应链影响因素分析.docx
- 关于绑架的小故事-绑架关起来的故事.docx VIP
原创力文档

文档评论(0)