|
12864顯示曲線估計(jì)難倒不少人,網(wǎng)上的大多數(shù)都卻老多函數(shù)了。
編這個(gè)的關(guān)鍵點(diǎn)在于:國(guó)產(chǎn)的液晶屏1602和12864的寄存器全都讀不出來,只能寫(也許是我技術(shù)不夠)
此程序?yàn)橐活^文件,最簡(jiǎn)只需兩個(gè)函數(shù)就能在12864上顯示漢字
LCD_int();
LCD_write(1,1,“追雪”);
就會(huì)在前兩個(gè)位置顯示我的名字
曲線顯示要在內(nèi)存里構(gòu)建虛擬寄存器,因?yàn)樽x不出來,所以要在寫12864的同時(shí)寫虛擬寄存器,寫之前讀出虛擬寄存器的值與點(diǎn)位置相或,這樣才不會(huì)覆蓋之前的點(diǎn)。具體自己讀程序,注釋我寫的很清楚
此程序基于mage128單片機(jī)
文章里/+*不能連打,只能在中間加了一個(gè)空格,所以復(fù)制的時(shí)候請(qǐng)將注釋前的空格刪掉。
此程序原創(chuàng),辛辛苦苦編了幾天的東西,而且還無私的分享給大家,希望大家轉(zhuǎn)載請(qǐng)注明。
- / ****************************************************************/
- / ****** 12864顯示文件,串口程序——2019.8.20 追雪 ******/
- / ****************************************************************/
- / ****************************************************************/
- / ****** send_data () 寫入字節(jié)數(shù)據(jù) ******/
- / ****** wr_command() 向LCD寫入控制字 ******/
- / ****** wr_byte() 向LCD中寫入要顯示的漢字字符等 ******/
- / ****** setadress() 寫入要顯示出的字的位置 ******/
- / ****** LCD_write() 向LCD的任意位置寫入任意字符 ******/
- / ****** lcd_check() 點(diǎn)亮全屏,檢查壞點(diǎn) ******/
- / ****** photo_ready() 顯示圖形前的準(zhǔn)備,輸入繪圖地址 ******/
- / ****** lcd_clr_GDRAM() 清除上次圖像GDRAM和虛擬緩存 ******/
- / ****** photo_disp() 顯示圖形子程序 ******/
- / ****** photo_clr() 顯示圖形漸漸消失子程序 ******/
- / ****** LCD_int() 初始化LCD ******/
- / ****** lcd_quxian_int()畫曲線的坐標(biāo)軸 ******/
- / ****** lcd_clr() 液晶顯示屏清屏 ******/
- / ****** lcd_wrpot() 點(diǎn)亮坐標(biāo)為(x,y)的點(diǎn) ******/
- / ****** lcd_clpot() 點(diǎn)暗坐標(biāo)為(x,y)的點(diǎn) ******/
- / ****** lcd_quxian_all()數(shù)據(jù)采集完成后,顯示曲線 ******/
- / ****************************************************************/
- #define PORTX PORTA
- #define DDRX DDRA
- #define PINX PINA
- #define scl 3
- #define sda 2
- #define lcdclk_set PORTX|=BIT(scl) //液晶顯示屏?xí)r鐘
- #define lcdclk_low PORTX&=~BIT(scl)
- #define lcdclk_out DDRX|=BIT(scl)
- #define lcdclk_in DDRX&=~BIT(scl)
- #define lcdsda_set PORTX|=BIT(sda) //液晶顯示屏數(shù)據(jù)
- #define lcdsda_low PORTX&=~BIT(sda)
- #define lcdsda_out DDRX|=BIT(sda)
- #define lcdsda_in DDRX&=~BIT(sda)
- #define lcdsda_data PINX //讀取
- double yc=1; //必須為全局變量
- unsigned char LCD_Y,LCD_X,COUNT3,COUNT2,COUNT1,*p,huancun[64][16]={0};
- unsigned int hang;
- double box,shuju[512]={
- 01,02,03,04,05,06,07,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,
- 27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,41,41,40,39,38,37,36,35,34,33,
- 32,31,30,30,31,32,33,32,31,30,29,28,27,26,24,22,23,29,30,32,34,36,38,40,42,39,
- 39,44,46,48,50,51,52,53,54,55,56,57,58,59,60,60,60,60,61,60,59,56,55,54,53,52,
- 51,48,47,46,45,44,43,40,38,35,32,31,30,28,26,22,20,19,18,17,15,13,12,11,
- 01,02,03,04,05,06,07,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,
- 27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,41,41,40,39,38,37,36,35,34,33,
- 32,31,30,30,31,32,33,32,31,30,29,28,27,26,24,22,23,29,30,32,34,36,38,40,42,39,
- 39,44,46,48,50,51,52,53,54,55,56,57,58,59,60,60,60,60,61,60,59,56,55,54,53,52,
- 51,48,47,46,45,44,43,40,38,35,32,31,30,28,26,22,20,19,18,17,15,13,12,11,
- 01,02,03,04,05,06,07,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,
- 27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,41,41,40,39,38,37,36,35,34,33,
- 32,31,30,30,31,32,33,32,31,30,29,28,27,26,24,22,23,29,30,32,34,36,38,40,42,39,
- 39,44,46,48,50,51,52,53,54,55,56,57,58,59,60,60,60,60,61,60,59,56,55,54,53,52,
- 51,48,47,46,45,44,43,40,38,35,32,31,30,28,26,22,20,19,18,17,15,13,12,11,
- 01,02,03,04,05,06,07,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,
- 27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,41,41,40,39,38,37,36,35,34,33,
- 32,31,30,30,31,32,33,32,31,30,29,28,27,26,24,22,23,29,30,32,34,36,38,40,42,39,
- 39,44,46,48,50,51,52,53,54,55,56,57,58,59,60,60,60,60,61,60,59,56,55,54,53,52,
- 51,48,47,46,45,44,43,40,38,35,32,31,30,28,26,22,20,19,18,17,15,13,12,11
- };
- / *******************************************************/
- / ****** 函數(shù)名稱: send_data () ******/
- / ****** 功 能: 寫入字節(jié)數(shù)據(jù) ******/
- / ****** ******/
- / ****** 參 數(shù): unsigned char data ******/
- / ****** 返回值 : 無 ******/
- / *******************************************************/
- void send_data(unsigned char data)
- {
- unsigned char i;
- for(i=0;i<8;i++) //循環(huán)8次
- {
- lcdclk_low; //置低CLK
- if(data&0x80) //判斷數(shù)據(jù)極性
- lcdsda_set; //如果數(shù)據(jù)為1置高
- else
- lcdsda_low; //否則置低
- data<<=1; //右移一位
- lcdclk_set; //置高CLK
- }
- }
- / *******************************************************/
- / ****** 函數(shù)名稱: wr_command() ******/
- / ****** 功 能: 向LCD寫入控制字 ******/
- / ****** ******/
- / ****** 參 數(shù): com ******/
- / ****** 返回值 : 無 ******/
- / *******************************************************/
- void wr_command(unsigned char data)
- {
- send_data(0xf8); //命令字:寫命令
- send_data(data&0xf0); //寫命令字高4位
- send_data(data<<4); //寫命令字低4位
- delay_nus(5);
- }
- / *******************************************************/
- / ****** 函數(shù)名稱:wr_byte() ******/
- / ****** 功 能:向LCD中寫入要顯示的漢字字符等 ******/
- / ****** ******/
- / ****** 參 數(shù):unsigned char x ******/
- / ****** 返回值 :無 ******/
- / *******************************************************/
- void wr_byte(unsigned char data)
- {
- send_data(0xfa); //命令字:寫數(shù)據(jù)
- send_data(data&0xf0); //寫數(shù)據(jù)高4位
- send_data(data<<4); //寫數(shù)據(jù)低4位
- delay_nus(5);
- }
- / *******************************************************/
- / ****** 函數(shù)名稱: setadress() ******/
- / ****** 功 能: 寫入要顯示出的字的位置 ******/
- / ****** ******/
- / ****** 參 數(shù): unsigned char x, unsigned char y ***/
- / ****** 返回值 : 無 ******/
- / *******************************************************/
- void setaddress(unsigned char x, unsigned char y)
- {
- unsigned char move;
- if(x==1)
- { move=0x80 + y-1; }
- if(x==2)
- { move=0x90 + y-1; }
- if(x==3)
- { move=0x88 + y-1; }
- if(x==4)
- { move=0x98 + y-1; }
- wr_command(move);
- delay_nus(5);
- }
- / **************************************************************/
- / ****** 函數(shù)名稱:LCD_write(unsigned char x, unsigned ******/
- / ****** char y, unsigned char *p) ******/
- / ****** 功 能:向LCD的任意位置寫入任意字符 ******/
- / ****** ******/
- / ****** 參 數(shù): unsigned char x, unsigned char y, ******/
- / ****** unsigned char *p ******/
- / **************************************************************/
- void LCD_write(unsigned char x, unsigned char y, unsigned char *p)
- {
- setaddress(x,y);
- while(*p)
- {
- wr_byte(*p);
- p++;
- }
- }
- / ************************************************************/
- / ****** 函數(shù)名稱: lcd_check() ******/
- / ****** 功 能: 點(diǎn)亮全屏,檢查壞點(diǎn) ******/
- / ****** ******/
- / ****** 參 數(shù): 無 ******/
- / ****** 返回值 : 無 ******/
- / ************************************************************/
- void lcd_check(void)
- {
- unsigned char x,y;
- for(x=0;x<16;x++)
- for(y=0;y<32;y++)
- {
- LCD_Y=y+0x80; //行地址
- LCD_X=x+0x80; //列地址
- photo_ready(); //寫入地址
- wr_byte(0xff); //所有DGRAM寫1,全亮
- wr_byte(0xff);
- }
- wr_command(0x36); //打開圖形顯示
- wr_command(0x30); //進(jìn)入基本指令動(dòng)作
- }
- / *******************************************************/
- / ****** 函數(shù)名稱: photo_ready() ******/
- / ****** 功 能: 顯示圖形前的準(zhǔn)備 ******/
- / ****** 輸入繪圖地址 ******/
- / ****** 參 數(shù): 無 ******/
- / ****** 返回值 : 無 ******/
- / *******************************************************/
- void photo_ready(void)
- {
- wr_command(0x34);//使用擴(kuò)充指令,但是關(guān)閉繪圖
- wr_command(LCD_Y);//送地址Y
- wr_command(LCD_X); //送地址X
- wr_command(0x30); //返回基本指令動(dòng)作,向內(nèi)部寫數(shù)據(jù)
- }
- / ************************************************************/
- / ****** 函數(shù)名稱: lcd_clr_GDRAM() ******/
- / ****** 功 能: 清除上次圖像GDRAM和虛擬緩存 ******/
- / ****** ******/
- / ****** 參 數(shù): 無 ******/
- / ****** 返回值 : 無 ******/
- / ************************************************************/
- void lcd_clr_GDRAM()
- {
- unsigned char x,y,i,j;
- for(x=0;x<16;x++)
- for(y=0;y<32;y++)
- {
- LCD_Y=y+0x80; //行地址
- LCD_X=x+0x80; //列地址
- photo_ready(); //寫入地址
- wr_byte(0x00); //所有DGRAM寫0,清屏
- wr_byte(0x00);
- }
- for(i=0;i<=63;i++) //虛擬緩存清零
- for(j=0;j<=15;j++)
- {huancun[i][j]=0;}
- wr_command(0x36); //打開圖形顯示
- wr_command(0x30); //進(jìn)入基本指令動(dòng)作
- }
- / ************************************************************/
- / ****** 函數(shù)名稱: photo_disp(const unsigned char *s) ******/
- / ****** 功 能: 顯示圖形子程序 ******/
- / ****** ******/
- / ****** 參 數(shù): 圖形數(shù)組指針S ******/
- / ****** 返回值 : 無 ******/
- / ************************************************************/
- void photo_disp(const unsigned char *s)//定義一個(gè)指針型的變量 ,s指的是要顯示出的圖形
- {
- COUNT3=0X02; //2,1共兩次
- LCD_X=0X80; //設(shè)定起始的X地址,當(dāng)為圖形顯示出時(shí)候,默認(rèn)的將128*64的液晶模塊
- //分成了32*16的16塊,地址分別是80H-8FH,顯示時(shí)候可分為兩個(gè)部分給
- //數(shù)據(jù).這時(shí)就可以看為32*128的兩塊。
- //注意圖形顯示時(shí)候的每一個(gè)字節(jié)地址所對(duì)應(yīng)的位置。每行共八個(gè)模塊,
- //共送兩次開始地址//80H和88H
- for (;COUNT3!=0;COUNT3--) //循環(huán)兩次,第一次80H-87H(8塊);第二次88H-8FH(8塊)
- {
- LCD_Y=0X80;
- COUNT2=0X20;//送32行
- for (;COUNT2!=0;COUNT2--)
- {
- COUNT1=0X10;//16個(gè)每行
- photo_ready(); //寫入數(shù)據(jù)前的準(zhǔn)備,在寫入數(shù)據(jù)前,必須進(jìn)入基本指令模式
- for (;COUNT1!=0;COUNT1--)
- {
- wr_byte(*s++);
- }
- LCD_Y+=1; //80H一共加三二次,共三二行,
- }
- LCD_X=0X88;
- }
- wr_command(0x36); //打開圖形顯示
- wr_command(0x30); //進(jìn)入基本指令動(dòng)作
- }
- / ************************************************************/
- / ****** 函數(shù)名稱: photo_clr() ******/
- / ****** 功 能: 顯示圖形漸漸消失子程序 ******/
- / ****** ******/
- / ****** 參 數(shù): 圖形數(shù)組指針S ******/
- / ****** 返回值 : 無 ******/
- / ************************************************************/
- void photo_clr(void)
- {
- unsigned char i,j;
- for(i=0;i<=63;i++)
- {
- if(i/32) {LCD_X=0x80;} //y只能取0-63,x只能取0-127
- else {LCD_X=0x88;}
- LCD_Y=0X80+31-i2; //確定Y坐標(biāo)
- photo_ready(); //輸入x,y到LCD
- for(j=0;j<=16;j++)
- {
- wr_byte(0x00);
- }
- delay_nms(250); //
- wr_command(0x36); //打開圖形顯示
- wr_command(0x30); //進(jìn)入基本指令動(dòng)作
- }
-
- }
- / *******************************************************/
- / ****** 函數(shù)名稱:LCD_int() ******/
- / ****** 功 能:初始化LCD ******/
- / ****** ******/
- / ****** 參 數(shù):無 ******/
- / ****** 返回值 :無 ******/
- / *******************************************************/
- void LCD_int()
- {
- lcdclk_out;
- lcdsda_out;
- lcdclk_set;
- lcdsda_set;
- wr_command(0x30);
- delay_nus(5);
- wr_command(0x0c);
- delay_nus(5);
- wr_command(0x01);
- delay_nus(5);
- wr_command(0x14);
- delay_nus(5);
- lcd_clr_GDRAM(); //清除上次圖像GDRAM
- delay_nus(5);
- }
- / *************************************************************/
- / ****** 函數(shù)名稱: lcd_quxian_int() ******/
- / ****** 功 能: 畫曲線的坐標(biāo)軸 ******/
- / ****** ******/
- / ****** 參 數(shù): ******/
- / ****** 返回值 : ******/
- / *************************************************************/
- void lcd_quxian_int(void)
- {
- unsigned char i,j;
- lcd_clr_GDRAM(); //清除上次圖像GDRAM
- for(i=0;i<=127;i++) //畫x軸
- {
- lcd_wrpot(i,0,1);
- }
- for(i=0;i<=63;i++) //畫y軸
- {
- lcd_wrpot(0,i,1);
- }
- for(j=1;j<=2;j++) //畫y軸,10的點(diǎn)
- {
- for(i=1;i<=6;i++)
- {
- lcd_wrpot(j,i*10,1);
- }
- }
- for(j=1;j<=2;j++) //畫x軸,10的點(diǎn)
- {
- for(i=1;i<=12;i++)
- {
- lcd_wrpot(i*10,j,1);
- }
- }
- }
- const unsigned char huitu[]={
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xF8,0x1F,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xF0,0x0F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x07,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x3F,0xFD,0xFF,0xFF,0xE0,0x07,0xFF,0xFC,0x1F,0xF0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xFF,0xE0,0x7F,0xFF,0xE0,0x07,0xFF,0xF8,0x07,0xFC,0x00,0x00,0x00,
- 0x00,0x00,0x03,0xFF,0xC0,0x3F,0xFF,0xF0,0x0F,0xFF,0xF0,0x07,0xFF,0x00,0x00,0x00,
- 0x00,0x00,0x0F,0xFF,0xC0,0x1F,0xFF,0xF8,0x1F,0xFF,0xE0,0x07,0xFF,0xC0,0x00,0x00,
- 0x00,0x00,0x1F,0xFF,0x80,0x1F,0xFF,0xFF,0xFF,0xFF,0xE0,0x07,0xFF,0xF0,0x00,0x00,
- 0x00,0x00,0x7F,0xFF,0x80,0x0F,0xFF,0xFF,0xFF,0xFF,0xE0,0x07,0xFF,0xF8,0x00,0x00,
- 0x00,0x00,0xFF,0xFF,0xC0,0x1F,0xFF,0xFF,0xFF,0xFF,0xF0,0x07,0xFF,0xFC,0x00,0x00,
- 0x00,0x01,0xFF,0xFF,0xC0,0x1F,0xFF,0xFE,0x7F,0xFF,0xF0,0x0F,0xFF,0xFE,0x00,0x00,
- 0x00,0x03,0xFF,0xFF,0xE0,0x3F,0xFF,0xF0,0x07,0xFF,0xFC,0x1F,0xFF,0xFF,0x00,0x00,
- 0x00,0x03,0xFF,0xFF,0xF8,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,
- 0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,
- 0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,
- 0x00,0x0F,0xFF,0xFF,0xF0,0x7F,0xFF,0x0F,0xF8,0x7F,0xFF,0x7F,0xFF,0xFF,0xC0,0x00,
- 0x00,0x0F,0xFF,0xFF,0x80,0x0F,0xFE,0x3F,0xFC,0x3F,0xF8,0x03,0xFF,0xFF,0xE0,0x00,
- 0x00,0x1F,0xFF,0xFE,0x00,0x07,0xFC,0x3F,0xFE,0x3F,0xE0,0x00,0xFF,0xFF,0xE0,0x00,
- 0x00,0x1F,0xFF,0xFC,0x1F,0xC3,0xFC,0x7F,0xFF,0x1F,0xC3,0xF0,0x7F,0xFF,0xE0,0x00,
- 0x00,0x1F,0xFF,0xF8,0x7F,0xF1,0xF8,0xFF,0xFF,0x1F,0x8F,0xFC,0x3F,0xFF,0xE0,0x00,
- 0x00,0x1F,0xFF,0xF0,0xFF,0xFC,0xF8,0xFF,0xFF,0x1F,0x1F,0xFE,0x1F,0xFF,0xE0,0x00,
- 0x00,0x1F,0xFF,0xF9,0xFF,0xFC,0x71,0xFF,0xFF,0x8E,0x7F,0xFF,0x1F,0xFF,0xF0,0x00,
- 0x00,0x1F,0xFF,0xF3,0xFF,0xFE,0x79,0xFF,0xFF,0xBC,0x7F,0xFF,0x9F,0xFF,0xF0,0x00,
- 0x00,0x1F,0xFF,0xF3,0xFF,0xFE,0x3F,0xFF,0xFF,0xBC,0xFF,0xFF,0xCF,0xFF,0xF0,0x00,
- 0x00,0x1F,0xFF,0xE7,0xFF,0xFF,0x1F,0xFF,0xFF,0xB8,0xFF,0xFF,0xCF,0xFF,0xE0,0x00,
- 0x00,0x1F,0xFF,0xE7,0xFF,0xFF,0x9F,0xFF,0xFF,0xF9,0xFF,0xFF,0xCF,0xFF,0xE0,0x00,
- 0x00,0x0F,0xFF,0xE7,0xFF,0xFF,0x8F,0xFF,0xFF,0xF3,0xFF,0xFF,0xCF,0xFF,0xE0,0x00,
- 0x00,0x0F,0xFF,0xE7,0xFF,0xFF,0xCF,0xFF,0xFF,0xE3,0xFF,0xFF,0xCF,0xFF,0xC0,0x00,
- 0x00,0x07,0xFF,0xE7,0xFF,0xFF,0xE7,0xFF,0xFF,0xE7,0xFF,0xFF,0xCF,0xFF,0xC0,0x00,
- 0x00,0x07,0xFF,0xE7,0xFF,0xFF,0xE3,0xFF,0xFF,0xC7,0xFF,0xFF,0xCF,0xFF,0xC0,0x00,
- 0x00,0x03,0xFF,0xF7,0xFF,0xFF,0xF3,0xFF,0xFF,0x8F,0xFF,0xFF,0xCF,0xFF,0x00,0x00,
- 0x00,0x03,0xFF,0xF7,0xFF,0xFF,0x71,0xFF,0xFF,0x9E,0xFF,0xFF,0xCF,0xFF,0x00,0x00,
- 0x00,0x61,0xFF,0xF3,0xFF,0xFE,0x79,0xFF,0xFF,0x3C,0xFF,0xFF,0xDF,0xFE,0x40,0x00,
- 0x00,0x7C,0xFF,0xF9,0xFF,0xFE,0x3C,0x7F,0xFE,0x3C,0xFF,0xFF,0x9F,0xFD,0x88,0x00,
- 0x04,0xBF,0xFF,0xF1,0xFF,0xF8,0x7C,0x7F,0xFC,0x7C,0x3F,0xFF,0x3F,0xF9,0xF6,0x00,
- 0x06,0xFF,0xBF,0xF8,0x7F,0xF0,0xFE,0x1F,0xF8,0xFE,0x1F,0xFE,0x3F,0xF3,0xFE,0x00,
- 0x06,0xDB,0x8F,0xFC,0x3F,0xE0,0xFF,0x0F,0xE1,0xFE,0x0F,0xF8,0x3F,0xCF,0xFD,0x80,
- 0x03,0xEF,0x07,0xFE,0x07,0x01,0xFF,0x83,0xC3,0xFF,0x03,0xE0,0x7F,0x87,0xFF,0x80,
- 0x01,0x3E,0x71,0xFF,0x00,0x07,0xFF,0xE0,0x0F,0xFF,0xC0,0x01,0xFE,0x1F,0xFF,0x80,
- 0x01,0xFE,0xFC,0x7F,0xC0,0x1F,0xFF,0xFF,0xFF,0xFF,0xE0,0x03,0xF8,0x4F,0xFE,0x00,
- 0x00,0xCD,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x1F,0xE0,0x3F,0xFC,0x00,
- 0x00,0xCB,0xDF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xFF,0xFE,0x00,
- 0x00,0x07,0x3F,0xC1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x03,0xFC,0x7E,0x00,
- 0x00,0x0F,0x7F,0x07,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x0F,0xFD,0x00,0x00,
- 0x00,0x1F,0xF7,0xEF,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xC3,0xEF,0xC0,0x00,
- 0x00,0x13,0xFE,0xFE,0x08,0x1F,0xFF,0xFF,0xFF,0xFF,0xF8,0x39,0xCF,0xCD,0xC0,0x00,
- 0x00,0x01,0xFC,0x3F,0xE7,0xF1,0xFF,0xFF,0xFF,0xFE,0x03,0x3C,0xFE,0xFF,0x80,0x00,
- 0x00,0x00,0x78,0x1B,0xDF,0xB8,0x21,0xF8,0xF8,0x00,0xDF,0x03,0xE8,0x7B,0x00,0x00,
- 0x00,0x00,0x20,0xFC,0x7B,0xE1,0xF8,0x07,0x07,0xDD,0xFF,0xFF,0x70,0x38,0x00,0x00,
- 0x00,0x00,0x07,0xEE,0x0F,0xBD,0xFB,0x77,0x07,0xB8,0x1D,0xFE,0xF0,0xF0,0x00,0x00,
- 0x00,0x00,0x00,0x0E,0x79,0xE3,0x3F,0xFF,0xE0,0x66,0xFF,0xC7,0x78,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x07,0x87,0xFF,0x30,0x7F,0xEF,0xFF,0x77,0x87,0xB8,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x17,0x39,0xFE,0x77,0xEE,0x60,0x7D,0x8B,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0x7F,0xE0,0x60,0x3B,0xF0,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x76,0x30,0x70,0x0E,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x07,0xF1,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- void lcd_clr(void)
- {
- wr_command(0x01);
- delay_nus(5);
- }
- / ************************************************************/
- / ****** 函數(shù)名稱: lcd_wrpot(uchar x,unchar y,unchar z)******/
- / ****** 功 能: 點(diǎn)亮坐標(biāo)為(x,y)的點(diǎn) ******/
- / ****** z=1時(shí)有效(點(diǎn)亮) ******/
- / ****** 參 數(shù): x,y,z ******/
- / ****** 返回值 : 無 ******/
- / ************************************************************/
- void lcd_wrpot(unsigned char x,unsigned char y,unsigned char z)
- {
- unsigned char m,n,a[2]; //m,n為確定顯示點(diǎn)位于哪塊后,以塊單元左下角為
- //坐標(biāo)原點(diǎn),新x,y坐標(biāo).數(shù)組a[2]用于裝X的兩個(gè)8位數(shù)
- /
- / ****** 函數(shù)名稱: lcd_clpot(uchar x,unchar y,unchar z)******/
- / ****** 功 能: 點(diǎn)暗坐標(biāo)為(x,y)的點(diǎn) ******/
- / ****** z=1時(shí)有效(點(diǎn)暗) ******/
- / ****** 參 數(shù): x,y,z ******/
- / ****** 返回值 : 無 ******/
- / ************************************************************/
- void lcd_clpot(unsigned char x,unsigned char y,unsigned char z)
- {
- unsigned char m,n,a[2]; //m,n為確定顯示點(diǎn)位于哪塊后,以塊單元左下角為
- //坐標(biāo)原點(diǎn),新x,y坐標(biāo).數(shù)組a[2]用于裝X的兩個(gè)8位數(shù)
- /
- / ****** 函數(shù)名稱: lcd_quxian_all(udouble *da) ******/
- / ****** 功 能: 數(shù)據(jù)采集完成后,顯示曲線 ******/
- / ****** ******/
- / ****** 畫出以數(shù)據(jù)數(shù)組指針da數(shù)據(jù)為y軸,每 ******/
- / ****** n位數(shù)據(jù)產(chǎn)生一個(gè)點(diǎn),由左至右畫點(diǎn). ******/
- / ****** 其中,xc可理解為X軸壓縮系數(shù)。C為yc ******/
- / ****** 軸即,每行代表多少 ******/
- / ****** 參 數(shù): *da,xc,yc ******/
- / ****** 返回值 : ******/
- / **************************************************************/
- void lcd_quxian_all(double *da,unsigned int xc,double yc)
- {
- unsigned int i; //必須是INT型
- for(i=0;i<=127;i++)
- {
- lcd_wrpot(i,(unsigned char) (da[i*xc]/yc),1);
- }
- }
- / **************************************************************/
- / ****** 函數(shù)名稱: lcd_send_data(uchar x,uchar y,uint data) ******/
- / ****** 功 能: 數(shù)據(jù)采集完成后,顯示曲線 ******/
- / ****** ******/
- / ****** 畫出以數(shù)據(jù)數(shù)組指針da數(shù)據(jù)為y軸,每 ******/
- / ****** n位數(shù)據(jù)產(chǎn)生一個(gè)點(diǎn),由左至右畫點(diǎn). ******/
- / ****** 其中,xc可理解為X軸壓縮系數(shù)。C為yc ******/
- / ****** 軸即,每行代表多少 ******/
- / ****** 參 數(shù): *da,xc,yc ******/
- / ****** 返回值 : ******/
- void lcd_char_data1(unsigned char x,unsigned char y,unsigned char data1,unsigned char data2)
- {
- unsigned char wy[6];
- unsigned int data;
-
- data=data1*100+data2;
- data=600000/data;
-
- wy[0]=data/1000+0x30;
- wy[1]=(data00)/100+0x30;
- wy[2]='.';
- wy[3]=(data0)/10+0x30;
- wy[4]=data+0x30;
- wy[5]=0;
- LCD_write(x,y,wy);
- }
- void lcd_char_data2(unsigned char x,unsigned char y,unsigned char data1,unsigned char data2)
- {
- unsigned char wy[6];
- unsigned int data;
-
- data=data1*100+data2;
- data=400000/data;
-
- wy[0]=data/1000+0x30;
- wy[1]=(data00)/100+0x30;
- wy[2]='.';
- wy[3]=(data0)/10+0x30;
- wy[4]=data+0x30;
- wy[5]=0;
- LCD_write(x,y,wy);
- }
- void lcd_int_data(unsigned char x,unsigned char y,int data)
- {
- unsigned char wy[7];
- if(data>=0) wy[0]='+';
- else {wy[0]='-';data=data*(-1);}
- wy[1]=data/10000+0x30;
- wy[2]=data000/1000+0x30;
- wy[3]=data00/100+0x30;
- wy[4]=data0/10+0x30;
- wy[5]=data+0x30;
- wy[6]=0;
- LCD_write(x,y,wy);
- }
復(fù)制代碼
|
|