单片机上用LCD显示数据,如何转换成输出到上位机

2024-11-22 22:36:12
推荐回答(1个)
回答1:

我有个程序需要改,

--

把你的程序,传到你的百度网盘,共享。


新增加了两个函数,在主函数中调用,即可。



//**************串口发送初始化******
INIT_UART()
{
    PCON = 0x00;
    SCON = 0x50;
    TMOD &= 0x0F;
    TMOD |= 0x20;  //T1定时方式2
    TH1 = 0xFD;    //波特率9600
    TL1 = 0xFD;
    TR1 = 1;
}
//**************串口发送************
Send_string(uchar p)
{
    while(*p)  { SBUF = *p++;  while(!TI); TI = 0; }
    SBUF = 13;  while(!TI); TI = 0; 
    SBUF = 10;  while(!TI); TI = 0; 
}

//***************主函数*************
void main(void)
{
    IT0=1;         //INT0下降沿中断
    EX0=1;         //允许INT0中断
    initTimer();   //装入初值
    TR0=1;         //开定时器T0
    ET0=1;         //允许T0中断
    EA=1;          //中断总控制
    init_LCD       //LCD初始化
    INIT_UART();
    clear_LCD();   //清屏

    while(1)  {

      red();  //调用红色通道并显示色彩值
      s = int2str(date);

      Send_string("R:");
      Send_string(s);

      gotoxy(1,00); display_LCD_string("R:");
      gotoxy(1,02); display_LCD_string(s);
      gotoxy(1,05); display_LCD_string("  ");

      green();//调用绿色通道并显示色彩值
      s = int2str(date);

      Send_string("G:");
      Send_string(s);

      gotoxy(1,07); display_LCD_string("G:");
      gotoxy(1,11); display_LCD_string(s);
      gotoxy(1,14); display_LCD_string("  ");

      blue(); //调用蓝色通道并显示色彩值
      s = int2str(date);

      Send_string("B:");
      Send_string(s);

      gotoxy(2,00); display_LCD_string("B:");
      gotoxy(2,02); display_LCD_string(s);    
      gotoxy(2,05); display_LCD_string("  ");
    }
}


楼主的其它函数,都不变。


手头没有你用的传感器,无法试验。

故此,本程序仅供参考,如有不当,请自行修改。