
{
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’)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)