标题:
基于MSP430F169的LCD12864显示一个动态波形
[打印本页]
作者:
用户21111413
时间:
2017-3-1 16:08
标题:
基于MSP430F169的LCD12864显示一个动态波形
波形是自己给定的数值,并不是采集的值
0.png
(64.77 KB, 下载次数: 232)
下载附件
2017-3-1 23:37 上传
完整代码下载:
12864基于msp430 动态.zip
(27.71 KB, 下载次数: 76)
2017-3-1 16:07 上传
点击文件名下载附件
下载积分: 黑币 -5
部分代码预览:
#include<msp430f169.h>
#include<stdlib.h>
#include<math.h>
//延时函数,IAR自带,经常使用到
#define CPU_F ((double)8000000) //外部高频晶振8MHZ
//#define CPU_F ((double)32768) //外部低频晶振32.768KHZ
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define LCD_DataIn P4DIR=0x00 //数据口方向设置为输入
#define LCD_DataOut P4DIR=0xff //数据口方向设置为输出
#define LCD2MCU_Data P4IN
#define MCU2LCD_Data P4OUT
#define RS_CLR P5OUT &= ~BIT5 //RS置低
#define RS_SET P5OUT |= BIT5 //RS置高
#define RW_CLR P5OUT &= ~BIT6 //RW置低
#define RW_SET P5OUT |= BIT6 //RW置高
#define EN_CLR P5OUT &= ~BIT7 //E置低
#define EN_SET P5OUT |= BIT7 //E置高
#define PSB_CLR P5OUT &= ~BIT0 //PSB置低,串口方式
#define PSB_SET P5OUT |= BIT0 //PSB置高,并口方式
#define RST_CLR P5OUT &= ~BIT1 //RST置低
#define RST_SET P5OUT |= BIT1 //RST置高
uchar DIS1[] = {"Vpp:"};
uchar DIS2[] = {"F:"};
uchar DIS3[] = {"5V"};
uchar DIS4[] = {"12Hz"};
uchar D1[]={"0123456789"};
//正弦波代码
uchar tab[]={
126,100,80,70,65,62,65,70,80,100,126,152,172,182,187,190,187,182,172,152
};
//背景图片
uchar Photo1[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00
};
/******************************************************************************
函数名称: Clock_Init
功 能: 外部时钟初始化
参 数: 无
返回值 : 无
******************************************************************************/
void Clock_Init()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT2振荡器
BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ
do{
IFG1&=~OFIFG; //清楚振荡器错误标志
for(i=0;i<100;i++)
_NOP();
}
while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待
IFG1&=~OFIFG;
}
/******************************************************************************
函数名称: Port_Init
功 能: 端口初始化
参 数: 无
返回值 : 无
******************************************************************************/
void Port_Init()
{
P4SEL = 0x00;
P5SEL = 0x00;
P5DIR|= BIT0 + BIT1 + BIT5 + BIT6 + BIT7;
}
/******************************************************************************
函数名称: Delay_1ms
功 能: 延时约1ms的时间
参 数: 无
返回值 : 无
*******************************************************************************/
void Delay_1ms(void)
{
uchar i;
for(i = 150;i > 0;i--) _NOP();
}
/*******************************************************************************
函数名称: Delay_Nms
功 能: 延时N个1ms的时间
参 数: n--延时长度
返回值 : 无
*******************************************************************************/
void Delay_Nms(uint n)
{
uint i;
for(i = n;i > 0;i--) Delay_1ms();
}
/*******************************************************************************
函数名称: Write_Cmd
功 能: 向液晶中写控制命令
参 数: cmd--控制命令
返回值 : 无
*******************************************************************************/
void Write_Cmd(uchar cmd)
{
uchar lcdtemp = 0;
RS_CLR;
RW_SET;
LCD_DataIn;
do //判忙
{
EN_SET;
_NOP();
lcdtemp = LCD2MCU_Data;
EN_CLR;
}while(lcdtemp & 0x80);
LCD_DataOut;
RW_CLR;
MCU2LCD_Data = cmd;
EN_SET;
_NOP();
EN_CLR;
}
/******************************************************************************
函数名称: Write_Data
功 能: 向液晶中写显示数据
参 数: dat--显示数据
返回值 : 无
*******************************************************************************/
void Write_Data(uchar dat)
{
uchar lcdtemp = 0;
RS_CLR;
RW_SET;
LCD_DataIn;
do //判忙
{
EN_SET;
_NOP();
lcdtemp = LCD2MCU_Data;
EN_CLR;
}while(lcdtemp & 0x80);
LCD_DataOut;
RS_SET;
RW_CLR;
MCU2LCD_Data = dat;
EN_SET;
_NOP();
EN_CLR;
}
/*******************************************************************************
函数名称: Read_Data
功 能: 读数据
参 数: 无
返回值 : readvalue
********************************************/
uchar Read_Data()
{
uint readvalue;
LCD_DataOut;
MCU2LCD_Data |=0xff;
RS_SET;
RW_SET;
LCD_DataIn;
EN_CLR;
EN_SET;
readvalue=LCD2MCU_Data;
Delay_1ms();
EN_CLR;
return readvalue;
}
/******************************************************************************
函数名称: Lcd_Pos
功 能: 定位函数
参 数: X(行),Y(列)
返回值 :无
******************************************************************************/
void Lcd_Pos(uchar X,uchar Y)
{
uchar pos;
if (X==1)
{X=0x80;}
else if (X==2)
{X=0x90;}
else if (X==3)
{X=0x88;}
else if (X==4)
{X=0x98;}
pos = X+Y ;
Write_Cmd(pos); //显示地址
}
/******************************************************************************
函数名称: Clear_GDRAM
功 能: 所有GDRAM 写0x00
参 数: 无
返回值 : 无
******************************************************************************/
void Clear_RDRAM() //使用图形模式时,应对所有GDRAM 写0x00 才算清屏,清屏命令(write_cmd(0x01))是对使用自带字库显示时用的
{
uchar i, j, k ;
Write_Cmd(0x34); //打开扩展指令集,绘图显示关
Write_Cmd(0x36); //打开扩展指令集,绘图显示开
for( i = 0 ; i < 2 ; i++ ) //分上下两屏写
{
for( j = 0 ; j < 32 ; j++ )
{
Write_Cmd( 0x80 + j ) ; //写Y 坐标
Delay_1ms();
if( i == 0 ) //写X 坐标
{
Write_Cmd( 0x80 ) ;
Delay_1ms();
}
else //写下半屏
{
Write_Cmd( 0x88 ) ;
Delay_1ms();
}
for( k = 0 ; k < 16 ; k++ ) //写一整行数据
{
Write_Data(0x00) ;
Delay_1ms();
}
}
}
Write_Cmd( 0x30 ) ; //关闭扩展指令集
}
/******************************************************************************
函数名称: Picture_Display
功 能: 显示图片
参 数: bmp
返回值 : 无
******************************************************************************/
void Picture_Display(uchar *bmp)
{
uchar i,j;
Write_Cmd(0x34); //写数据时,关闭图形显示
for(i=0;i<32;i++)
{
Write_Cmd(0x80+i); //先写入水平坐标值
Write_Cmd(0x80); //写入垂直坐标值
for(j=0;j<16;j++) //再写入两个8位元的数据
Write_Data(*bmp++);
delay_ms(1);
}
for(i=0;i<32;i++)
{
Write_Cmd(0x80+i);
Write_Cmd(0x88);
for(j=0;j<16;j++)
Write_Data(*bmp++);
delay_ms(1);
}
Write_Cmd(0x36); //写完数据,开图形显示
}
/******************************************************************************
函数名称: Clear_Screen
功 能: 清屏
参 数: 无
返回值 : 无
******************************************************************************/
void Clear_Screen()
{
Write_Cmd(0x34); //扩充指令操作
Delay_Nms(3);
Write_Cmd(0x30); //基本指令操作
Delay_Nms(3);
Write_Cmd(0x01); //清屏
Delay_Nms(3);
}
/*******************************************************/
uchar Y_wz(uchar a)
{
uchar i;
for(i=0;i<64;i++)
{
if((a>(i*4))&&(a<=((i+1)*4)))break;
}
return i;
}
/*******************************************************************************
函数名: Draw_Point
函数说明: 画点
传入参数: 打点位置(x0,y0);color=1,点亮;color=0,擦除
x0为列作标,y0为行坐标
传出参数: 无
返回值: 无
*******************************************************************************/
void Draw_Point(unsigned char x,unsigned char y,unsigned char color)
{
unsigned char row,collum,cbite;
unsigned char tempH,tempL;
Write_Cmd(0x34); //设置扩充指令集,关闭绘图
Write_Cmd(0x36); //扩充指令集,打开绘图
collum=x>>4; //列 左移四位
cbite=x&0x0f;
if(y<32)
row=y;
else
{
row=y-32;
collum+=8;
}
Write_Cmd(0x80+row);
Write_Cmd(0x80+collum);
Read_Data();
tempH=Read_Data();
tempL=Read_Data();
Write_Cmd(0x80+row);
Write_Cmd(0x80+collum);
if (color)
{
if(cbite<8)
{
tempH|=(1<<(7-cbite));
//tempL=(1<<(7-cbite));
}
else
{
//tempH=(1<<(15-cbite));
tempL|=(1<<(15-cbite));
}
}
else
{
if(cbite<8)
{
tempH&=~(1<<(7-cbite));
//tempL=(1<<(7-cbite));
}
else
{
//tempH=(1<<(15-cbite));
tempL&=~(1<<(15-cbite));
}
}
Write_Data(tempH);
Write_Data(tempL);
Write_Cmd(0x30);
}
/*******************************************************************************
函数名: Write_LineX
函数说明: 画水平线
传入参数: x0为列作标,y0为行坐标
传出参数: 无
返回值: 无
*******************************************************************************/
void Write_LineX( unsigned char X0, unsigned char X1, unsigned char Y)
{ unsigned char Temp ;
if( X0 > X1 )
{
Temp = X1 ;
X1 = X0 ;
X0 = Temp ;
}
for( ; X0 <= X1 ; X0++ )
Draw_Point( X0, Y,1 ) ;
}
/*******************************************************************************
函数名: Write_LineY
函数说明: 画水平线
传入参数: x0为列作标,y0为行坐标
传出参数: 无
返回值: 无
*******************************************************************************/
void Write_LineY( unsigned char X, unsigned char Y0, unsigned char Y1 )
{
unsigned char Temp ;
if( Y0 > Y1 )
{
Temp = Y1 ;
Y1 = Y0 ;
Y0 = Temp ;
}
for(; Y0 <= Y1 ; Y0++)
Draw_Point( X, Y0,1);
}
/*******************************************************************************
函数名: Write_LineY
函数说明: 画水平线
传入参数: x0为列作标,y0为行坐标
传出参数: 无
返回值: 无
*******************************************************************************/
void Write_Line( unsigned char StartX, unsigned char StartY, unsigned char EndX, unsigned char EndY)
{
signed int t, distance; /*根据屏幕大小改变变量类型(如改为int型)*/
signed int x = 0 , y = 0 , delta_x, delta_y ;
signed char incx, incy ;
delta_x = EndX - StartX ;
delta_y = EndY - StartY ;
if( delta_x > 0 )
{
incx = 1;
}
else if( delta_x == 0 )
{
Write_LineY( StartX, StartY, EndY ) ;
return ;
}
else
{
incx = -1 ;
}
if( delta_y > 0 )
{
incy = 1 ;
}
else if(delta_y == 0 )
{
Write_LineX( StartX, EndX, StartY ) ;
return ;
}
else
{
incy = -1 ;
}
delta_x = abs( delta_x );
delta_y = abs( delta_y );
if( delta_x > delta_y )
{
distance = delta_x ;
}
else
{
distance = delta_y ;
}
Draw_Point( StartX, StartY ,1) ;
/* Draw Line*/
for( t = 0 ; t <= distance+1 ; t++ )
{
Draw_Point( StartX, StartY,1 ) ;
x += delta_x ;
y += delta_y ;
if( x > distance )
{
x -= distance ;
StartX += incx ;
}
if( y > distance )
{
y -= distance ;
StartY += incy ;
}
}
}
/*******************************************************************************
函数名: Lcd_Init
函数说明: LCD初始化
传入参数: 无
传出参数: 无
返回值: 无
*******************************************************************************/
void Lcd_Init(void)
{
Delay_Nms(500);
Write_Cmd(0x30); //基本指令集
Delay_1ms();
Write_Cmd(0x02); // 地址归位
Delay_1ms();
Write_Cmd(0x0c); //整体显示打开,游标关闭
Delay_1ms();
Write_Cmd(0x01); //清除显示
Delay_1ms();
Write_Cmd(0x06); //游标右移
Delay_1ms();
Write_Cmd(0x80); //设定显示的起始地址
}
/*******************************************************************************
函数名: main
函数说明: 主函数
传入参数: 无
传出参数: 无
返回值: 无
*******************************************************************************/
void main( void )
{
Port_Init();
WDTCTL = WDTPW + WDTHOLD; //关狗
uchar i,*a,x,y,z=0;
uint nn=0,mm=9;
y=0x00;
Delay_Nms(100); //上电,等待稳定
Lcd_Init(); //初始化液晶
a=Photo1;
while(1)
{
Lcd_Pos(1,6); //设置显示位置为第一行
for(i=0;i<4;i++)
{
Write_Data(DIS1[i]);
}
Lcd_Pos(3,6); //设置显示位置为第3行
for(i=0;i<2;i++)
{
Write_Data(DIS2[i]);
}
Lcd_Pos(2,6); //设置显示位置为第2行
if(nn==10)nn=0;
for(i=0;i<4;i++)
{
DIS3[0]=D1[nn];
Write_Data(DIS3[i]);
}
nn++;
Lcd_Pos(4,6); //设置显示位置为第四行
if(mm==0)mm=9;
for(i=0;i<4;i++)
{
………余下代码请下载附件………
复制代码
作者:
stanxia
时间:
2017-4-14 20:02
//************************************************************************ void xian_shi(void) { int i,j,k,l; Temp=(caltmp[0]*3300)/4095;//计算十进制的电压值 ptr[0]=Temp/1000; ptr[2]=Temp%1000/100; ptr[3]=Temp%100/10; ptr[4]=Temp%10; ptr[5]=11; ptr[1]=10; LCD_write_com(0x80); DisplayCgrom(0x80,"一通道电压"); for(i=0;i<6;i++) { delay_ms(10); LCD_write_data(shuzi[ptr]); } Temp=(caltmp[1]*3300)/4095; ptr[0]=Temp/1000; ptr[2]=Temp%1000/100; ptr[3]=Temp%100/10; ptr[4]=Temp%10; ptr[5]=11; ptr[1]=10; LCD_write_com(0x90); DisplayCgrom(0x90,"二通道电压"); for(j=0;j<6;j++) { delay_ms(10); LCD_write_data(shuzi[ptr[j]]); } Temp=(caltmp[2]*3300)/4095; ptr[0]=Temp/1000; ptr[2]=Temp%1000/100; ptr[3]=Temp%100/10; ptr[4]=Temp%10; ptr[5]=11; ptr[1]=10; LCD_write_com(0x88); DisplayCgrom(0x88,"三通道电压"); for(k=0;k<6;k++) { delay_ms(10); LCD_write_data(shuzi[ptr[k]]); } Temp=(caltmp[3]*3300)/4095; ptr[0]=Temp/1000; ptr[2]=Temp%1000/100; ptr[3]=Temp%100/10; ptr[4]=Temp%10; ptr[5]=11; ptr[1]=10; LCD_write_com(0x98); DisplayCgrom(0x98,"四通道电压"); for(l=0;l<6;l++) { delay_ms(10); LCD_write_data(shuzi[ptr[l]]); } }
作者:
stanxia
时间:
2017-4-14 20:03
厉害了
作者:
NZQ
时间:
2017-7-8 12:28
不错!!!
作者:
科学小怪蛋
时间:
2017-7-31 20:55
楼主可否贴个效果图看看?
作者:
科学小怪蛋
时间:
2017-7-31 21:04
楼主可否贴个效果图看看?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1