① 单片机中38h看做无符号数的二进制码怎么写
16进制转换成2进制,把高、低两位分别写出:0011 1000。
② 单片机各个按键值的映射表如何得到的
这里面的值是ascii码。是规范
数组的排列顺序应该是外围的矩阵键盘的电路结构决定的
③ 51单片机1602液晶实验时注释了命令0x38来设置全显示模式,发现原来在第二行显示的内容跑到了第
0x38命令字代表:8位数据总线,2行5*7点阵显示
02H命令字代表:<1> 把光标撤回到显示器的左上方; <2> 把地址计数器(AC)的值设置为0; <3> 保持DDRAM的内容不变。
这里所谓的回车就是光标。
④ lcd_wcmd(0x38);
0x38= 0b 00111000
看前三位(DB7-DB5)是001,对应的是“function set”命令
function set命令的写法是是(DB4-DB0):DL-N-F-*-*
DL: 0 for 4-bit; 1 for 8-bit;
N: 0 for 1-line; 1 for 2-line;
F: 0 for 5*7 dots; 1 for 5*10 dots;
*: 后两位一般不用管, 设为0
所以0x38对应的DL和N是1,就是2行,8位数据,F为0,就是5*7点阵
说是16*2显示是不准确的,我在20*4的LCD上也是用0x38的设置,只能说这样的设置是给偶数行的LCD用的,而不仅仅是16*2
⑤ 51单片机DDS程序 (dds>>8)&0xFF 的意思
ww[5]={0x09,0x0E,0x38,0xE3,0x8E} 是在给数组定值,以后如果你要调用这些值的话直接调用数组就可以了,方便而且有比较好的移植性
&这符号是"与"运算,你可以把它理解为相乘,
ww[1]=(dds>>8)&0xFF 就是对数组ww里的第二个元素(数组下标最低为0),进行赋值,赋的值是将dds这个变量的值向右移8位,然后与0xFF相与(假如dds右移8位后的值为10101010,那么与0xFF(11111111)相与后得到的值就是10101010,前面说过,&就是做相乘的动作,所以1*0=0,1*1则等于1)
这样你理解了吗?