LCD5110怎么显示一个变量的值?现在有个程序如下。。

LCD5110怎么显示一个变量的值?现在有个程序如下。。,第1张

void LCD_write_bianliang(INT8U row,INT8U page,INT8U a,int c) //row:列 page:页 c:变量

{

int a1,a2,a3

a1=c/100

a2=c%100/10

a3=c%10

if(a==1)

{

LCD_write_shu(row,page,a3)

}

else if(a==2)

{

LCD_write_shu(row,page,a2)

LCD_write_shu(row+1,page,a3)

}

else

{

LCD_write_shu(row,page,a1)

LCD_write_shu(row+1,page,a2)

LCD_write_shu(row+2,page,a3)

}

}

/*-------------------------------------------------------------

LCD_write_shu: 显示8(宏塌扒宽)*16(高)点阵列数字字母符号等半角类

输入参数: c:显示的字符;衫消

---------------------------------------------------------------*/

void LCD_write_shu(INT8U row,INT8U page,INT8U c) //row:列 page:页 c:字符

{

INT8U i

LCD_set_XY(row*8,page)// 列,页 row*8

for(i=0i<8i++)

{

LCD_write_word(shuzi[c][i],1)

}

LCD_set_XY(row*8,page+1)// 列,页row*8

for(i=8i<16i++)

{

LCD_write_word(shuzi[c][i],1)

}

}

/*---------------------------------------------

LCD_write_hanzi: 显示16(宽)*16(高)点阵列汉字等半角类

输入参数:c:显示的字符;

-----------------------------------------------*/

void LCD_write_hanzi(INT8U row, INT8U page,INT8U c) //row:列 page:页 c:字符

{

INT8U i

LCD_set_XY(row*8, page)// 列,页row*8

for(i=0i<16i++)

{

LCD_write_word(hanzi[c][i],1)

}

LCD_set_XY(row*8, page+1)// 列,页 row*8

for(i=16i<32i++)

{

LCD_write_word(hanzi[c][i],1)

}

}

其中有一段是显蔽昌示变量的,那个时候简单写的,你试试看

常用的LCD有1602,可以查找其硬件电路,其程序也很容易找到,这是其常用的子程序:

sbit rw=P1^4//定义管脚,3个控制引脚 1个8位数据口

sbit rs=P1^3

sbit lcden=P1^5

#define db P2

void write_com(uchar com)//液晶屏猛唤握写命令,控制液晶屏开关或字符位置的数据是命令

{

db=com

rs=0

rw = 0

lcden=0

Delay1ms(12)

lcden=1

Delay1ms(12)

lcden=0

}

void write_date(uchar date)//液晶屏写数据,将要显示的字符是枝庆数据

{

db=date

rs=1

rw = 0

lcden=0

Delay1ms(12)

lcden=1

Delay1ms(12)

lcden=0

}

void init2()//液晶屏初始化

{

rw=0

write_com(0x38)

Delay1ms(12)

write_com(0x0f)

Delay1ms(12)

write_com(0x06)

Delay1ms(12)

write_com(0x01)

Delay1ms(12)

}

void display_1602(uchar temp)//显示链州一个字符型变量的子程序

{

uchar A1,A2,A3

A1=temp/1000//分离出 个 十 百

A2=temp/100%10

A3=temp%10

write_com(0x80)//第1行,第1字

write_date(A1+0x30)送的是ASCI码,因此如果显示2,就 要送0x32

Delay1ms(1)

write_date( A2+0x30)

Delay1ms(1)

write_date(A3+0x30)

Delay1ms(12)

}

如果想显示字符"A" 就 write_date(‘A’)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8239426.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存