扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
PUSH 40H PUSH 41H POP 40H POP 41H 上述程序满足楼主的要求。上述程序动态使用两个堆栈字节,既不占用A,也不占用42H。楼上两位的想法,都要有一个单元内容被破坏,而本程序不会。
站在用户的角度思考问题,与客户深入沟通,找到溧水网站设计与溧水网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广、国际域名空间、虚拟空间、企业邮箱。业务覆盖溧水地区。
下面的,仅仅使用了一个堆栈单元:push 50h mov 50h,40h pop 40h end 这个和楼主的程序雷同。但是,楼主的,a 原来的内容,被破坏了。而这里用的堆栈,应该就是空闲的,不怕破坏。
正确的。MOV 31H,30H;先将30H的值备份到31H,否则下一步会将30h的值覆盖掉 MOV 30H,40H;再将40H的值放到30H,MOV 40H,31H;最后将暂存在31H的值放到40H,实现30H和40H单元内的值交换。
MOV A,40H ;取压缩BCD数。ANL A,#0F0H ;屏蔽低4位,保留高4位。SWAP A ;高低四位交换。MOV 41H,A ;保存高4位。MOV A,40H ;再取压缩BCD数 ANL A,#0FH;屏蔽高4位,保留低4位。
编程将片内RAM中40H单元开始的50个数据传送到片外RAM中的3030H开始的单元中。
如果希望程序执行完一次就结束,可以将“EE: SJMP EE”改为“EE:END”那么程序就直接结束。
运算顺序不同 ~:位运算符,是对x,y进行位运算,x,y取值如上,那么有x&y=0;!:是逻辑运算符,用于从左到右求表达式的真值。运算方式不同 ~: 位运算的运算速度通常与加法运算相同。
~是按位反,将它后面的数一一取反,与它易混淆的是 !。
a=~a,取反有两种“!”“~”!符号是位取反(是“位”),只针对位变量。
符号是位取反(是“位”哦),只针对位变量。~符号是按位取反(是“按位”哦),针对字节变量,把字节中每位取反,相当于和FFH进行异或运算。但在C语言中!似乎可以用~来换,但希望按原来用法用。
p1out |= 0x01;//就是p0至高 p1out ^= 0x01;//就是p0取反 p1out &= ~0x01;//就是p0至低 msp430不再像51那样可以bit定义了。所以都是按位操作的,这个你以后熟悉了就慢慢的会懂的。
你这是在仿真图上运行的程序,还是在开发板上运行的?我在仿真图上运行,没 有问题,按一次K1,LED灯就亮灭变换 一次。你是在开发板上测试的吗,把delay(1000); 中的延时参数改小点实验一下。
现功能:按下按键三个全亮,在按下LED2灭,再按下三个LED全灭,如此循环,相当于三档,第三档是停止。第一档和第二档定时5S,5S终了,停止运行,如果此时再按1次则回到第一档。
51单片机中的一取反后是15,因为五十一中的1跟5,相反的话就是15,所以5一单片机中的一取反后是15。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流