51单片机控制12864绘制串口发送的距离变化曲线
数据采集端使用STM32为主控,超声波模块测距,测距信息经过压缩,串口发送给51单片机,51单片机控制12864显示距离变化曲线。
程序
#include<reg52.h>
#include<math.h>
#include"ZB.h"
#define uchar unsigned char
#define uint unsigned int
#define LCD_databus P0 //LCD数据总线连接P0口
sbit RS=P2^6;
sbit RW=P2^5;
sbit EN=P2^7;//LCD12864三个控制位
sbit DQ=P2^3;//DS18B20数据线
sbit KEY1=P3^2;
sbit KEY2=P3^3;
sbit KEY3=P3^4;
uchar key_value;
uchar DisTance; //距离作为横轴13-127 X 13-127
uchar RSSI; //信号强度作为纵轴20-63 Y 0-39
unsigned Interrupt_Flag=1;
unsigned int receiveData;
uchar HZ1[]="周期";
uchar HZ2[]="幅度";
//uchar DELE_DATA[115];
void delay(uint i) //延时函数
{
while(--i);
}
void Read_busy() //LCD12864忙检测
{
RS=0;
RW=1;
EN=1;
LCD_databus=0xFF;
while(LCD_databus & 0x80); //判断最高位,1---busy,0---Nobusy
EN=0;
}
void write_LCD_command(uchar value)//写指令
{
RS=0;
RW=0;
EN=1;
LCD_databus=value;
delay(7);
EN=0;
}
void write_LCD_data(uchar value)//写数据
{
RS=