单片机中断程序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();

单片机中断程序P1=P1 | 0x80;
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 。用上面说述说的只为了更好的...

单片机c程序里面的P1=0x80中的“x”表示的是什么意思?
0x80表示16进制数80,0x就是16进制数的标志,keil里面默认的数字是十进制的,如果数字前面加了0x则为16进制数。

P1=~(0x80>>j++)在单片机的c语言里是表示什么意思啊
把十六进制数0x80右移j位后按位取反,再将结果赋给变量p1,最后给j增1。其中>>右移操作符,~是按位取反操作符,++是自增1操作符(由于是所谓后++,所以要在整个运算结束后才生效)。比如当前j=2,则10000000>>2→00100000;~00100000→11011111。结果p1=11011111。然后再执行j++使j增1为3。

51单片机PO=0x80
编译器就是把它视觉化,少的在右边,大的在左边,因此0x80就是高位输出

不明白单片机的串口通信的PCON |= 0x80。。。
不是每位相与,而是相或。| 是或的符号,0x80也就是1000 0000,pcon 执行或运算 后,肯定是1。

单片机中 P1=P1<<1 和 P1=0xff 中P1什么意思
P1指的是单片机的其中一组io口的寄存器名字。第一句语句的意思是将P1寄存器的值左移一位然后再写入P1寄存器。第二句语句就是将0xff这个十六进制的数写入到P1寄存器。

51单片机中断函数怎么写
51单片机的中断函数格式:例 void jump_low() interrupt 2 { P1 = ~P1; \/\/位反转 } interrupt函数格式:void +函数名()+interrupt +数字0~4 0 表示外部中断0 1 表示定时器\/计数器(T0)2外部中断1 3:定时器\/计数器(T1)4:串行口 ...

单片机0x80|1等于什么
单片机中,0x80|1等于0x81。详细解释如下:单片机中的数值表示通常采用十六进制形式,例如这里的0x80和1都是十六进制数。在单片机编程中,“|”符号表示位或运算。位或运算的原理:在进行位或运算时,对应位只要有一个为1,结果就是1。无论操作数的其他位为何值,都会忽略。因此,当我们将...

51单片机0x80地址代表什么
51单片机的0x80地址标识了外部数据存储器的起始位置,它在程序设计中用于访问外部的存储区域。这个地址是较低的地址范围,通常被用来存放一些频繁使用的数据或控制参数。具体来说,0x80地址的功能取决于外部存储器的具体配置以及系统的设计需求。例如,在某些情况下,0x80地址可以存储初始化数据,而在其他应用...

51单片机问题求大神,别发别的就我这个看看有什么错的改下
P2_1 = 1; P2_2 = 0; P1 = 0xF8; delay1ms();P2_2 = 1; P2_3 = 0; P1 = 0x80; delay1ms();} void disp0(){ P2_3 = 1; P2_0 = 0; P1 = 0xff; delay1ms(); \/\/(A)语句 P2_0 = 1; P2_1 = 0; P1 = 0x82; delay1ms();P2_1 = ...

相似回答