单片机中断程序P1=P1 | 0x80;

是求或运算还是把P0口的值赋给单片机的P1口?
硬件是P0口跟ADC0809的数据输出端相连,P1口跟数码管的段选端相连

P1 = P1|0x80其实说白就是位操作。把第7位置1,通常写法P1 |= 0x80;
位操作: P1 &= ~0x80;把第7位置0
P1 |= 0x80 ; 把第7位置1
P1 ^= 0x80 ; 把第7位取反,比如当前是0b1000 0000 取反 变为0b0000 0000;
51自身带有位操作,sbit 或者bit 。用上面说述说的只为了更好的兼容其他单片机,因为其他单片机不支持位操作。
通常对单片机初始化要考虑清楚,是置0还是置1很关键,当然采用默认的电平有点不大可取。
51单片机没有输出方向控制寄存器,在设置为输入状态时通常把IO口对应的位置1。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-19
我猜是,这个表示的是八段数码管,然后这个“P1=P1 | 0x80;”是小数点,亮 /灭控制,(是不是只有个位才有这个);请回复!
第2个回答  2011-03-20
当然是求或运算了
第3个回答  2011-03-19
进行了一次置位……建议查找单片机芯片的资料……追问

呃……太宽泛了

追答

是求或运算还是把P0口的值赋给单片机的P1口?
相当于对P1口的那一位进行了置一的操作。

我的意思是,你的单片机型号是什么……AVR?51?PIC什么的

追问

我用的单片机是51的。单片机在复位后P1口都是高电平,如果是求或运算不就没有意义了吗?
求完或还是八个1呀……正如上面的硬件连接,如果我想让P1口的数码管显示P0口的数据,该怎么写程序呀?

追答

P0先赋值给寄存器变量,通过函数输出,比如P1 = LCD_Display();

相似回答