在c51中P1 = temp; temp = _cror_(temp,1);为什么要用temp而不直接用P1
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/09 00:31:48
![在c51中P1 = temp; temp = _cror_(temp,1);为什么要用temp而不直接用P1](/uploads/image/z/13217087-47-7.jpg?t=%E5%9C%A8c51%E4%B8%ADP1+%3D+temp%3B+temp+%3D+_cror_%28temp%2C1%29%3B%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E7%94%A8temp%E8%80%8C%E4%B8%8D%E7%9B%B4%E6%8E%A5%E7%94%A8P1)
xTAS@+9319t[;SN֖=B"`#*`@*&!ٷ6rXf߾om%/tⷓ|YZW,Z_~&v|!$x3\FEv|CJꉕ
9ZJ<`TQyF+6dѦQ[璁I-v}rUpx ˤ;Uчz7Մ<8#e`;Jc:E=w8]L0iȶ1X=Zx!H%fh%DHXUy! 0͍iO,
^ lKu2.!1E~Me ;\aZ.dm֩n>X-ܗ1dPTlX~.=puAT8p2{
OJR_U_h#z켏 7#885ѱiwM̗%G1[ytw£8QmqXE%bнBP#.yqXx1)O,EUBHIgE#qMAx L
NvwxD"AO
~,EfM]m7y9EWAgX]%VsSo?.
6
在c51中P1 = temp; temp = _cror_(temp,1);为什么要用temp而不直接用P1
在c51中P1 = temp; temp = _cror_(temp,1);为什么要用temp而不直接用P1
在c51中P1 = temp; temp = _cror_(temp,1);为什么要用temp而不直接用P1
虽然你的程序没有全部弄上来
但根据这几句可以分析出,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,无法达到此效果