标题:
单片机程序想加一个变量显示传感器数据,不知道怎么弄
[打印本页]
作者:
陈二土
时间:
2019-8-6 09:33
标题:
单片机程序想加一个变量显示传感器数据,不知道怎么弄
如果传感器收集到数据,应该怎么显示出来?
程序:
#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();
}
}
复制代码
作者:
来51学习
时间:
2019-8-6 22:34
具体是什么传感器?
作者:
陈二土
时间:
2019-8-7 09:53
来51学习 发表于 2019-8-6 22:34
具体是什么传感器?
光耦测车轮转速
作者:
jiangkeqin_sy
时间:
2019-8-7 19:29
定义一个全局变量啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1