你好,关于那个单片机点阵屏中74hc595的驱动程序中SER=dat&0x80;这句的理解?
我是用单片机开发板附带的资料,里面对74hc595的驱动内容和你的一样,我也产生了同样的疑问,一个是位操作,怎么赋给一个八位二进制数,结果运行还正常,请问你现在是怎么理解...
我是用单片机开发板附带的资料,里面对74hc595的驱动内容和你的一样,我也产生了同样的疑问,一个是位操作,怎么赋给一个八位二进制数,结果运行还正常,请问你现在是怎么理解的呢?谢谢
展开
4个回答
展开全部
这要从74hc595锁存方式说起,它是串行输入转并行输出的8位数据锁存器,需要串行输入8位二进制,也就是说要求将8位二进制dat,一位一位地送入74hc595数据输入端SD,且每输入一位需要一个时间脉冲CLK,共需要8个时钟脉冲才能将dat的8位数全部输入到74hc595内,再转换成并行8位数据。所以,要从dat的高位取出一位,送入SD,SER=dat&0x80;就是取出高位,然后还是将dat向左移一位,即将下一位移向高位,准备下次再取出送放SER。程序中肯定有移位一行或两行的。
而SER是定义为端口的,即是单片机接到74hc595的SD的那个I/O脚,假设是接到P1.1,那程序的前面就应该有一行是:sbit SER=P1.1;
这样,SER是一个位,并不是8位二进制,而你理解成8位二进制数了,所以,就不理解SER=dat&0x80这行的意义了。
而SER是定义为端口的,即是单片机接到74hc595的SD的那个I/O脚,假设是接到P1.1,那程序的前面就应该有一行是:sbit SER=P1.1;
这样,SER是一个位,并不是8位二进制,而你理解成8位二进制数了,所以,就不理解SER=dat&0x80这行的意义了。
广州晶晟电子
2023-10-12 广告
2023-10-12 广告
OSC有源晶振是一种电子元件,它需要接电源才能工作,一般有四个引脚,其中有两个是电源输入引脚,有正负极之分。它是石英晶体震荡器的简称,英文名为Crystal。石英晶体震荡器的应用范围非常广,包括通讯系统、时钟电路、显卡、网卡、主板等配件的各...
点击进入详情页
本回答由广州晶晟电子提供
展开全部
SER=dat&0x80, 是取数据dat的最高位给SER, 例如dat=0x7f(01111111), 则SER=0, 如dat=0x8f, 则SER=1.
上述数据如去最低位,语句为SER=dat&0x01, 结果都是SER=1.
上述数据如去最低位,语句为SER=dat&0x01, 结果都是SER=1.
追问
那SER是两个八位二进制数的与预算,它的结果也应该是八位二进制数啊,怎么SER=1,就算是dat=0x8f,那SER=dat&0x80后,SER等于0x80,我就是没明白怎么等于1的,万分感谢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SER=data&0x80的作用是:将data的后4位清零,保留前四位值,放入SER中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您好,这样的情况建议您下载最新版本的驱动精灵,或是直接在线升级一下驱动精灵。希望可以帮到您。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询