向1602电子钟写数据时(+0x30)是什么意思?如 :01秒+0x30不是变成:0a了吗?
正常时向1602写入数据时只要这样: 写数据函数(要显示的数)可在不少高人写的时钟程序中为何要+0x30呢,我试过不加0x30还不好用???
如:
Lcd_WriteData(0x30+ge);
可是01秒+0x30不是变成0a了吗?
请高人指点下 查下ASCII码表先...
同时看下汇编列表里面
Lcd_WriteData('8');
到底是发送的多少... 查下ASCII码0x30就是十进制的48,就是在ACSII是0,01秒+0x30就是在1602显示1;
LCD1602的液晶资料你还是重新看看,它说明在1602显示使用ACSII来显示的
你看看C语言的书有写这个 看过你的博,aozima 残剑饮血兄真高人。
你的意思是说向1602写入字符时编译器会自动转成ASCII码,但是写入数字时编译器是不会自动转成ASCII码的,所以要加48也就是0x30对吧?? 1是数字,'1'是字符,数字当然不能自动变成字符,+0x30就是个最简单的itoa"涵数"咯.不然的话你只好用库函数了,比如说sprintf(),嘿嘿. 引用:向1602写入字符时编译器会自动转成ASCII码
非也! 并不是转成了ASCII 而是本来就是ASCII码....
a= '8'; // a = 0x38 字符 按字符的ASCII码的值进行操作 8的ASCII码是0x38
aa =8 ; // a = 0x08 数字 直接赋值
aa[] = "2A";// aa = {'2','A',0x0}
这里讲得不错:http://myweb.yzu.edu.cn/toby88/c/cstudy/rumen/shuzu/Rshz_zifu.htm 终于有些懂了,多谢以上几位兄弟们的讲解! 想让液晶显示得给它送ASCII码,你得到的数据加上0X30就会转成ASCII码了
液晶很多都是显示要给ASCII码的,多看点资料也可以知道的。 这个主要是 把16进制转ASCII吗? 0的ASCII码为0x30
x的ASCII码为 x+0x30
1602值认识ASCII码 查表可知。 数字直接转ASCII码,可以 数字+0x30 或 数字+‘0’,1602液晶只认ASCII码
页:
[1]