如果傳感器收集到數據,應該怎么顯示出來?
程序:
- #include <reg52.H>
- #include <intrins.h>
- sbit lcd_sclk=P3^2;
- sbit lcd_sid=P3^1;
- sbit lcd_rs=P3^0;
- sbit lcd_reset=P1^0;
- sbit lcd_cs1=P1^1;
- sbit Rom_IN=P1^2;
- sbit Rom_OUT=P1^3;
- sbit Rom_SCK=P1^4;
- sbit Rom_CS=P1^5;
- sbit key1=P2^0;
- sbit key2=P2^1;
- sbit key3=P2^2;
- #define uchar unsigned char
- #define uint unsigned int
- #define ulong unsigned long
- //*******************************************字符庫*******************************************************************************************************************
- uchar code bmp1[];
- uchar code dang[]={0x10,0x10,0xd0,0xff,0x90,0x10,0x40,0x42,0x5c,0x40,0x7f,0x40,0x50,0xce,0x00,0x00,0x04,0x03,0x00,0xff,0x00,0x01,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0xff,0x00,0x00
- };
- uchar code su[]={0x40,0x40,0x42,0xcc,0x00,0x04,0xf4,0x94,0x94,0xff,0x94,0x94,0xf4,0x04,0x00,0x00,0x00,0x40,0x20,0x1f,0x20,0x48,0x44,0x42,0x41,0x5f,0x41,0x42,0x44,0x48,0x40,0x00
- };
- uchar code maohao[]={
- 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};
- uchar code bianliang[]={
- 0x00,0x00,0x20,0xEC, 0xEC,0x00,0x00,0x00, 0x00,0x00,0x08,0x0F, 0x0F,0x08,0x00,0x00};
- uchar code du[]={0x00,0x00,0xfc,0x24,0x24,0x24,0xfc,0x25,0x26,0x24,0xfc,0x24,0x24,0x24,0x04,0x00,0x40,0x30,0x8f,0x80,0x84,0x4c,0x55,0x25,0x25,0x25,0x55,0x4c,0x80,0x80,0x80,0x00
- };
- uchar code zhi[]={0x10,0x10,0x10,0xff,0x10,0x90,0x00,0x3f,0x48,0x48,0x44,0x44,0x44,0x42,0x70,0x00,0x04,0x44,0x82,0x7f,0x01,0x00,
- 0x00,0xff,0x49,0x49,0x49,0x49,0x49,0xff,0x00,0x00};
- uchar code ding[]={0x10,0x0c,0x44,0x44,0x44,0x44,0x45,0xc6,0x44,0x44,0x44,0x44,0x44,0x14,0x0c,0x00,0x80,0x40,0x20,0x1e,0x20,0x40,0x40,0x7f,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00
- };
- uchar code ju[]={0x00,0x3e,0x22,0xe2,0x22,0x3e,0x00,0xfe,0x22,0x22,0x22,0x22,0x22,0xe2,0x02,0x00,0x20,0x3f,0x20,0x1f,0x11,0x11,0x00,0x7f,0x44,0x44,0x44,0x44,0x44,0x47,0x40,0x00
- };
- uchar code li[]={0x04,0x04,0x04,0xf4,0x84,0xd4,0xa5,0xa6,0xa4,0xd4,0x84,0xf4,0x04,0x04,0x04,0x00,0x00,0xfe,0x02,0x02,0x12,0x3a,0x16,0x13,0x12,0x1a,0x32,0x42,0x82,0x7e,0x00,0x00
- };
- uchar code zhuan[]={0xc8,0xb8,0x8f,0xe8,0x88,0x88,0x40,0x48,0x48,0xe8,0x5f,0x48,0x48,0x48,0x40,0x00,0x08,0x18,0x08,0xff,0x04,0x04,0x00,0x02,0x0b,0x12,0x22,0xd2,0x0a,0x06,0x00,0x00
- };
- uchar code xing[]={0x00,0x10,0x88,0xc4,0x33,0x00,0x40,0x42,0x42,0x42,0xc2,0x42,0x42,0x42,0x40,0x00,0x02,0x01,0x00,0xff,0x00,0x00,0x00,0x00,0x40,0x80,0x7f,0x00,0x00,0x00,0x00,0x00
- };
- uchar code shi[]={0x02,0xfa,0x82,0x82,0xfe,0x80,0x00,0xf8,0x08,0x08,0xff,0x08,0x08,0xf8,0x00,0x00,0x08,0x18,0x48,0x84,0x44,0x3f,0x80,0x41,0x25,0x19,0x1f,0x21,0x41,0x81,0x80,0x00
- };
- uchar code zero[]={0xF8,0xF8,0x0C,0xC4, 0x0C,0xF8,0xF0,0x00, 0x03,0x07,0x0C,0x08, 0x0C,0x07,0x03,0x00};
- uchar code one[]={0x00,0x10,0x18,0xFC, 0xFC,0x00,0x00,0x00, 0x00,0x08,0x08,0x0F, 0x0F,0x08,0x08,0x00};
- uchar code two[]={0x08,0x0C,0x84,0xC4, 0x64,0x3C,0x18,0x00, 0x0E,0x0F,0x09,0x08, 0x08,0x0C,0x0C,0x00};
- uchar code three[]={0x08,0x0C,0x44,0x44, 0x44,0xFC,0xB8,0x00, 0x04,0x0C,0x08,0x08, 0x08,0x0F,0x07,0x00};
- uchar code five[]={0x7C,0x7C,0x44,0x44, 0x44,0xC4,0x84,0x00, 0x04,0x0C,0x08,0x08, 0x08,0x0F,0x07,0x00};
- uchar code seven[]={0x0C,0x0C,0x04,0x84, 0xC4,0x7C,0x3C,0x00, 0x00,0x00,0x0F,0x0F, 0x00,0x00,0x00,0x00};
- uchar code r[]={0x20,0xE0,0xC0,0x60, 0x20,0xE0,0xC0,0x00, 0x08,0x0F,0x0F,0x08, 0x00,0x00,0x00,0x00};
- uchar code chu[]={0x00,0x00,0x00,0x80, 0xC0,0x60,0x30,0x00, 0x0C,0x06,0x03,0x01, 0x00,0x00,0x00,0x00};
- uchar code s[]={0x40,0xE0,0xA0,0x20, 0x20,0x60,0x40,0x00, 0x04,0x0C,0x09,0x09, 0x0B,0x0E,0x04,0x00};
- uchar code mi[]={0xE0,0xE0,0x60,0xC0, 0x60,0xE0,0xC0,0x00, 0x0F,0x0F,0x00,0x07, 0x00,0x0F,0x0F,0x00};
- uchar code c[]={0xC0,0xE0,0x20,0x20, 0x20,0x60,0x40,0x00, 0x07,0x0F,0x08,0x08, 0x08,0x0C,0x04,0x00};
- uchar code point[]={0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0C, 0x0C,0x00,0x00,0x00};
- //**************************************************************************************************************************************************************************
- //***************************************************************************************************************************************************************************
- //數字庫
- //0xF8,0xF8,0x0C,0xC4, 0x0C,0xF8,0xF0,0x00, 0x03,0x07,0x0C,0x08, 0x0C,0x07,0x03,0x00, //-0-
- //0x00,0x10,0x18,0xFC, 0xFC,0x00,0x00,0x00, 0x00,0x08,0x08,0x0F, 0x0F,0x08,0x08,0x00, //-1-
- //0x08,0x0C,0x84,0xC4, 0x64,0x3C,0x18,0x00, 0x0E,0x0F,0x09,0x08, 0x08,0x0C,0x0C,0x00, //-2-
- //0x08,0x0C,0x44,0x44, 0x44,0xFC,0xB8,0x00, 0x04,0x0C,0x08,0x08, 0x08,0x0F,0x07,0x00, //-3-
- //0xC0,0xE0,0xB0,0x98, 0xFC,0xFC,0x80,0x00, 0x00,0x00,0x00,0x08, 0x0F,0x0F,0x08,0x00, //-4-
- //0x7C,0x7C,0x44,0x44, 0x44,0xC4,0x84,0x00, 0x04,0x0C,0x08,0x08, 0x08,0x0F,0x07,0x00, //-5-
- //0xF0,0xF8,0x4C,0x44, 0x44,0xC0,0x80,0x00, 0x07,0x0F,0x08,0x08, 0x08,0x0F,0x07,0x00, //-6-
- //0x0C,0x0C,0x04,0x84, 0xC4,0x7C,0x3C,0x00, 0x00,0x00,0x0F,0x0F, 0x00,0x00,0x00,0x00, //-7-
- //0xB8,0xFC,0x44,0x44, 0x44,0xFC,0xB8,0x00, 0x07,0x0F,0x08,0x08, 0x08,0x0F,0x07,0x00, //-8-
- //0x38,0x7C,0x44,0x44, 0x44,0xFC,0xF8,0x00, 0x00,0x08,0x08,0x08, 0x0C,0x07,0x03,0x00 //-9-
- //};
- //******************************************************************************************************************************
- void delay(int n_ms)
- {
- int j,k;
- for(j=0;j<n_ms;j++)
- for(k=0;k<110;k++);
- }
- void delay_us(int n_us)
- {
- int j,k;
- for(j=0;j<n_us;j++)
- for(k=0;k<1;k++);
- }
- void transfer_command_lcd(int data1) //寫指令
- {
- char i;
- lcd_cs1=0;
- lcd_rs=0;
- for(i=0;i<8;i++)
- {
- lcd_sclk=0;
- if(data1&0x80) lcd_sid=1;
- else lcd_sid=0;
- lcd_sclk=1;
- data1=data1<<=1;
- }
- lcd_cs1=1;
- }
- void transfer_data_lcd(int data1) //寫數據
- {
- char i;
- lcd_cs1=0;
- lcd_rs=1;
- for(i=0;i<8;i++)
- {
- lcd_sclk=0;
- if(data1&0x80) lcd_sid=1;
- else lcd_sid=0;
- lcd_sclk=1;
- data1=data1<<=1;
- }
- lcd_cs1=1;
- }
- void initial_lcd()
- {
- lcd_reset=0;
- delay(100);
- lcd_reset=1;
- delay(100);
- transfer_command_lcd(0xe2);
- delay(5);
- transfer_command_lcd(0x2c);
- delay(50);
- transfer_command_lcd(0x2e);
- delay(50);
- transfer_command_lcd(0x2f);
- delay(5);
- transfer_command_lcd(0x23);
- transfer_command_lcd(0x81);
- transfer_command_lcd(0x28);
- transfer_command_lcd(0xa2);
- transfer_command_lcd(0xc8);
- transfer_command_lcd(0xa0);
- transfer_command_lcd(0x40);
- transfer_command_lcd(0xaf);
- }
- void lcd_address(uint page,uint column)
- {
- column=column-0x01;
- transfer_command_lcd(0xb0+page-1);
- transfer_command_lcd(0x10+(column>>4&0x0f));
- transfer_command_lcd(column&0x0f);
- }
- void clear_screen()
- {
- unsigned char i,j;
- for(i=0;i<9;i++)
- {
- transfer_command_lcd(0xb0+i);
- transfer_command_lcd(0x10);
- transfer_command_lcd(0x00);
- for(j=0;j<132;j++)
- {
- transfer_data_lcd(0x00);
- }
- }
- }
- void display_128x64(uchar *dp)
- {
- uint i,j;
- for(j=0;j<8;j++)
- {
- lcd_address(j+1,1);
- for (i=0;i<128;i++)
- {
- transfer_data_lcd(*dp);
- dp++;
- }
- }
- }
- void display_graphic_16x16(uchar page,uchar column,uchar *dp)
- {
- uint i,j;
- for(j=0;j<2;j++)
- {
- lcd_address(page+j,column);
- for (i=0;i<16;i++)
- {
- transfer_data_lcd(*dp);
- dp++;
- }
- }
- }
- void display_graphic_8x16(uchar page,uchar column,uchar *dp)
- {
- uint i,j;
- for(j=0;j<2;j++)
- {
- lcd_address(page+j,column);
- for (i=0;i<8;i++)
- {
- transfer_data_lcd(*dp);
- dp++;
- }
- }
- }
- void display_graphic_5x8(uchar page,uchar column,uchar *dp)
- {
- uint i;
- lcd_address(page,column);
- for (i=0;i<6;i++)
- {
- transfer_data_lcd(*dp);
- dp++;
- }
- }
- void send_command_to_ROM( uchar datu )
- {
- uchar i;
- for(i=0;i<8;i++ )
- {
- Rom_SCK=0;
- delay_us(10);
- if(datu&0x80)Rom_IN = 1;
- else Rom_IN = 0;
- datu = datu<<1;
- Rom_SCK=1;
- delay_us(10);
- }
- }
- static uchar get_data_from_ROM( )
- {
- uchar i;
- uchar ret_data=0;
- for(i=0;i<8;i++)
- {
- Rom_OUT=1;
- Rom_SCK=0;
- ret_data=ret_data<<1;
- if( Rom_OUT )
- ret_data=ret_data+1;
- else
- ret_data=ret_data+0;
- Rom_SCK=1;
- }
- return(ret_data);
- }
- void get_and_write_16x16(ulong fontaddr,uchar page,uchar column)
- {
- uchar i,j,disp_data;
- Rom_CS = 0;
- send_command_to_ROM(0x03);
- send_command_to_ROM((fontaddr&0xff0000)>>16);
- send_command_to_ROM((fontaddr&0xff00)>>8);
- send_command_to_ROM(fontaddr&0xff);
- for(j=0;j<2;j++)
- {
- lcd_address(page+j,column);
- for(i=0; i<16; i++ )
- {
- disp_data=get_data_from_ROM();
- transfer_data_lcd(disp_data);
- }
- }
- Rom_CS=1;
- }
- void get_and_write_8x16(ulong fontaddr,uchar page,uchar column)
- {
- uchar i,j,disp_data;
- Rom_CS = 0;
- send_command_to_ROM(0x03);
- send_command_to_ROM((fontaddr&0xff0000)>>16);
- send_command_to_ROM((fontaddr&0xff00)>>8);
- send_command_to_ROM(fontaddr&0xff);
- for(j=0;j<2;j++)
- {
- lcd_address(page+j,column);
- for(i=0; i<8; i++ )
- {
- disp_data=get_data_from_ROM();
- transfer_data_lcd(disp_data);
- }
- }
- Rom_CS=1;
- }
- void get_and_write_5x8(ulong fontaddr,uchar page,uchar column)
- {
- uchar i,disp_data;
- Rom_CS = 0;
- send_command_to_ROM(0x03);
- send_command_to_ROM((fontaddr&0xff0000)>>16);
- send_command_to_ROM((fontaddr&0xff00)>>8);
- send_command_to_ROM(fontaddr&0xff);
- lcd_address(page,column);
- for(i=0; i<5; i++ )
- {
- disp_data=get_data_from_ROM();
- transfer_data_lcd(disp_data);
- }
- Rom_CS=1;
- }
- //*************************************************************************************************************************
- ulong fontaddr=0;
- void display_GB2312_string(uchar page,uchar column,uchar *text)
- {
- uchar i= 0;
- while((text[i]>0x00))
- {
- if(((text[i]>=0xb0) &&(text[i]<=0xf7))&&(text[i+1]>=0xa1))
- {
- fontaddr = (text[i]- 0xb0)*94;
- fontaddr += (text[i+1]-0xa1)+846;
- fontaddr = (ulong)(fontaddr*32);
- get_and_write_16x16(fontaddr,page,column);
- i+=2;
- column+=16; }
- else if(((text[i]>=0xa1) &&(text[i]<=0xa3))&&(text[i+1]>=0xa1))
- {
- fontaddr = (text[i]- 0xa1)*94;
- fontaddr += (text[i+1]-0xa1);
- fontaddr = (ulong)(fontaddr*32);
- get_and_write_16x16(fontaddr,page,column);
- i+=2;
- column+=16;
- }
- else if((text[i]>=0x20) &&(text[i]<=0x7e))
- {
- fontaddr = (text[i]- 0x20);
- fontaddr = (unsigned long)(fontaddr*16);
- fontaddr = (unsigned long)(fontaddr+0x3cf80);
- get_and_write_8x16(fontaddr,page,column);
- i+=1;
- column+=8;
- }
- else
- i++;
- }
- }
- void display_string_5x8(uchar page,uchar column,uchar *text)
- {
- unsigned char i= 0;
- while((text[i]>0x00))
- {
- if((text[i]>=0x20) &&(text[i]<=0x7e))
- {
- fontaddr = (text[i]- 0x20);
- fontaddr = (unsigned long)(fontaddr*8);
- fontaddr = (unsigned long)(fontaddr+0x3bfc0);
- get_and_write_5x8(fontaddr,page,column);
- i+=1;
- column+=6;
- }
- else
- i++;
- }
- }
- m=0;
- n=0;
- void keyscan()//按鍵
- {
- if(key1==0)
- delay(100);
- if(key1==0)
- {
- m=m+1;
- if(m==3)
- {m=3;}
- switch(m)
- {
- case(1):display_graphic_8x16(1,40,one);
- break;
- case(2):display_graphic_8x16(1,40,two);
- break;
- case(3):display_graphic_8x16(1,40,three);
- break;
- }
- }
- while(!key1);
- if(key2==0)
- delay(100);
- if(key2==0)
- {
- n=n+1;
- if(n==3)
- {n=3;}
- switch(n)
- {
- case(1):display_graphic_8x16(5,72,five);display_graphic_8x16(5,80,zero);
- break;
- case(2):display_graphic_8x16(5,72,seven);display_graphic_8x16(5,80,five);
- break;
- case(3):display_graphic_8x16(5,72,one);display_graphic_8x16(5,80,zero);display_graphic_8x16(5,88,zero);
- break;
- }
- }
- while(!key2);
- if(key3==0)
- delay(100);
- if(key3==0)
- {
- clear_screen();
-
- m=0;
- n=0;
- }
- while(!key3);
- }
- void display_caidan()//顯示菜單欄
- {
- display_graphic_16x16(1,1,su);
- display_graphic_16x16(1,16,du);
- display_graphic_8x16(1,32,maohao);
- display_graphic_16x16(1,112,dang);
-
- display_graphic_16x16(3,1,zhuan);
- display_graphic_16x16(3,16,su);
- display_graphic_8x16(3,32,maohao);
- display_graphic_8x16(3,106,r);
- display_graphic_8x16(3,112,chu);
- display_graphic_8x16(3,120,s);
-
- display_graphic_16x16(5,1,zhi);
- display_graphic_16x16(5,16,ding);
- display_graphic_16x16(5,32,ju);
- display_graphic_16x16(5,48,li);
- display_graphic_8x16(5,64,maohao);
- display_graphic_8x16(5,112,c);
- display_graphic_8x16(5,120,mi);
-
- display_graphic_16x16(7,1,xing);
- display_graphic_16x16(7,16,shi);
- display_graphic_16x16(7,32,ju);
- display_graphic_16x16(7,48,li);
- display_graphic_8x16(7,64,maohao);
- display_graphic_8x16(7,112,c);
-
-
- display_graphic_8x16(7,120,mi);
- }
- //*****************************************main函數********************************************************************
- void main()
- {
- initial_lcd();
- clear_screen();
- while(1)
- {
- keyscan();
- display_caidan();
- lcd_printf();
- }
- }
復制代碼
|