关于51单片机的问题(C语言)

//按指定位置显示一个字符voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData){Y&=0x1... //按指定位置显示一个字符
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1?这个地方是怎么算的呀。说下呀
if (Y) X |= 0x40; //当要显示第二行时地址码+0x40; 还有这里!这里的“|”不是或的意思吗?
X |= 0x80; //算出指令码
WriteCommandLCM(X, 1); //发命令字
WriteDataLCM(DData); //发数据
}

//按指定位置显示一串字符
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength;

ListLength = 0;
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
while (DData[ListLength]>0x19) //若到达字串尾则退出 还有这里为什么不能 〉0x19
{
if (X <= 0xF) //X坐标应小于0xF
{
DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符
ListLength++;
X++;
}
}
}
展开
 我来答
意法半导体(中国)投资有限公司 2023-06-12
展开全部
char seg7[10]={0xc0,0xf9,0xa4,0xb0,0x9,0x92,0x82,0xf8,0x80} sbit w1=b2^0; sbit w2=b2^1; sbit k1=b3^0; /=1表示键盘按下 char count; void main(){ char flg=0; count =0; P0=0xf; /P0口接共阳极数码管,则低电平LED亮 w1=0; w2=0; /高电平LED亮 while(1){ P0=seg7[count/10];w1=1;w2=0; /显示十位 if(k1=0 & flg=0) flg=1; /键盘按下 delaymS(20); /延时20mS P0=seg7[count%10];w1=0;w2=1; /显示个位 if(k1=0 & flg=1) flg=2; /键盘按下有效 delaymS(20); /延时20mS if(k1=1 & flg=2) /键盘抬起 { count+; flg=0;} if(count>9)count=0; w1=0; w…
dmjcq
2012-09-22 · TA获得超过312个赞
知道小有建树答主
回答量:317
采纳率:0%
帮助的人:197万
展开全部
依程序来看,你的LCD应该是1602,所以Y不可大于1,除了0就是1,代表只有2行,15则代表16列(0-15)。

while (DData[ListLength]>0x19) //若到达字串尾则退出 还有这里为什么不能 〉0x19

这一句的意思是,你传入的字符串结尾以大于0x19来表示字符串的结束,是自定义的.

还有什么问题
意法半导体(中国)投资有限公司
2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
小兆86
2012-09-22 · TA获得超过802个赞
知道小有建树答主
回答量:990
采纳率:25%
帮助的人:896万
展开全部
按位与运算,一般用于清零操作,Y按位与0x01就是和00000001b进行按位与运算,00000001是零的那些位,同样Y的那写位也变成零,只有最后一位不变。所以不管原来Y是什么Y &= 0x1;之后就只有最后一位不变,其它位都清零了。这样只是把X的第6位置位为1,并不影响其他位的状态,如果你用+法,有可能把第7位状态修改了。而且,或运算比算数运算速度快。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kenlee_gz
2012-09-22 · TA获得超过494个赞
知道小有建树答主
回答量:457
采纳率:33%
帮助的人:365万
展开全部
“|”不是或的意思。

Y可以大于1,DisplayOneChar这个函数里面,Y取最低位,最低位为1(或者可以说Y为奇数)X的b6位置1.

为什么不能 >0x19,这个应该是跟硬件有关系的,是由于硬件的限制。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式