中易网

在c51中P1 = temp; temp = _cror_(temp,1);为什么要用temp而不直接用P1

答案:2  悬赏:0  
解决时间 2021-01-16 00:24
  • 提问者网友:箛茗
  • 2021-01-15 04:13
在c51中P1 = temp; temp = _cror_(temp,1);为什么要用temp而不直接用P1
最佳答案
  • 二级知识专家网友:煞尾
  • 2021-01-15 05:20
虽然你的程序没有全部弄上来

但根据这几句可以分析出,temp是一个字符型变量

其功能可以理解为:跑马灯电路

temp可以被赋值为十六进制数,而十六进制数则是单片机中二进制数的表达方式

例如二进制 1111 1110,对应十六进制 FE,单片机中写法为 0xfe,点亮右边第一个发光管

二进制中的这8个数据位,则对应P1的8个IO端口

在你的程序中,开头的部分应该有一句 P1=0xfe 之类的语句

temp = _cror_(temp,1)
cror应该是移位函数,此句的意思为,将变量temp左移移位或右移移位

假设是左移,那么temp的值就变为 0xfd,即 1111 1101,则点亮右边第二个发光管

或temp的值变为 0xfc,即 1111 1100 ,点亮右边第一个和第二个发光管

再调用一次此函数,则又会移一位,temp变为0xfb或0xf8,即 1111 1011 或 1111 1000

点亮右边第三个或同时点亮第一二三个发光管,剩下的以此类推

所以直接用数值数据 1,无法达到此效果
全部回答
  • 1楼网友:爱难随人意
  • 2021-01-15 06:13
P1口不能进行移位运算的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息