⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uarttest.c

📁 口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河口若悬河
💻 C
字号:
/*********串口调试,并于LCD显示************/
#include <reg52.H>
#define uchar unsigned char 
uchar code dispcode1[]={" chong welcome!  "};
uchar code dispcode2[]={"www.ywcdream.com"};
uchar i,j,k,l,DData;
sbit RS=P1^1;
sbit RW=P1^0;
sbit E=P1^2;
uchar m=0;
//void delay()
//{for(l=0;l<=100;l++){}}
void enable() //write order
{
    RS=0;RW=0;E=0;//delay();
	E=1;
}
void enabledata() //write data
{
    RS=1;RW=0;E=0;//delay();
	E=1;
}
void initializtion()    //lcd initializtion
{									 
    for(i=0;i<=100;i++) //初始化LCD需先延时
    P0=0x01;enable();  //开显示器
    P0=0x38;enable();
    P0=0x0c;enable();
    P0=0x06;enable();
}

void Display(m,DData)    // display data
{
     P0=0xC0+m;     //write address
     enable();
     P0=DData;     //write data
     enabledata();
}

void Esisr() interrupt 4    //串口接收中断服务程序
{
    
uchar temp;
ES=0;
if(RI == 1)
{
    RI = 0;
    temp = SBUF; //接收数据
    SBUF=temp;      //将接收到的数据发送至PC机
    Display(m,temp);    //将接收到的数据送LCD显示
       while(!TI);    //等待数据发送完成
    TI=0;
    m++;
    if(m>15)
    m=0;
}
     ES=1;	   //开中断
}

void system_initial(void)     //system initializtion
{
     TMOD=0x21;// 定时器1工作方式2,定时器0工作方式1
     PCON=0x00;//数据传输率选择,0倍频。
     SCON=0x50;//串口工作方式选择,并打开接收允许。
     TH1=0xfa;//定时器赋初值。
     TL1=0xfa;//波特率4800bit/s
     TR1=1;//启动定时器。
     EA = 1;     //开总中断
     ES = 1;  //开串口中断
}

void main()
{
     initializtion();
     P0=0x80;enable();	//第一行第一个地址
     for(j=0;j<=15;j++)
     {
     P0=dispcode1[j];
     enabledata();
     }
     P0=0xC0;enable();
     for(k=0;k<=15;k++)
     {
     P0=dispcode2[k];
     enabledata();
     }
     system_initial();	//T1、串口中断
     while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -