欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于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.raoushi.com/bbs/)
Powered by Discuz! X3.1