单片机编程中TM0D|=0x01;是什么意思

   更新日期:2024.06.03

TMOD

|=0X01不会影响到TMOD的其他位,将D0位置1.所以结果可能有多种。

TMOD=0x01则不能TMOD以前是何值,最后都只能是0x01。

LED的变化在定时器0中断服务器里,每进一次中断翻转一次,产生方波。

扩展资料:

单片机编程就是硬件是单片机,基于单片机进行的程序开发,在有周围外设支持的情况下,用软件来控制的部分通过单片机编程来实现。单片机能识别的语言是硬件语言即汇编,因此编程就是围绕汇编来实现,有直接用汇编程序来编写的,但是较难调试的编写,特别是一上规模就更不易实现,因此常用高级语言来写然后通过编译器转化成汇编。

参考资料来源:百度百科-单片机C语言编程



你好:

  1. TMOD|=0x01的意思是最低位或1,就是把TMOD的值按位或00000001,不管最低位为什么数都置1,与TMOD=0x01是有区别的,赋值为1是把TMOD无条件赋值为0x01,而不管TMOD之前是什么值;而TMOD|=0x01,仅仅是吧最低位置1,而不会改变其他位的状态。

  2. LED被定义为P1.0口,上点默认为低电平,所以不需要去赋值,而LED在中断函数里被取反,每中断一次LED电平翻转一次。

有不懂的可以回复我。

希望我的回答能帮助到你。



TMOD |= 0x01;等价于TMOD = TMOD | 0x01; // 将TMOD的最低位置1,也即表示将定时/计数器的其工作方式调整为方式1(16位定时器/计数器)。

TMOD是51单片机定时器/计数器模式控制寄存器,TMOD是一个逐位定义的8位寄存器。
TMOD的8位分别为:
GATE(D7) C/T(D6) M1(D5) M0(D4) GATE(D3) C/T(D2) M1(D1) M0(D0)
其中低四位(即D0 ~ D3)定义定时器/计数器T0,高四位(即D4 ~ D7)定义定时器/计数器T1

GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。
GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

C/T=0时为定时功能,
C/T=1时为计数功能。

M0、M1 方式选择功能
由于有2位,因此有4种工作方式
0 0 方式0 13位计数器
0 1 方式1 16位计数器
1 0 方式2 自动重装8位计数器
1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器

1、TMOD |=0X01;//这句话和TMOD=0x01有区别吗?
相当于 TMOD=TMOD | 0X01; 与 TMOD=0x01 有区别。后者是令最低位为 1,其它位都为 0。而前者仅令最低位为 1,而其它位保持原值。这是 C 语言的常用手段,叫做“位或”。通常用于对指定位进行置1 的操作。
2、LED=~LED; 表示对 LED 进行按位取反操作。

TMOD |=0X01不会影响到TMOD的其他位,将D0位置1.所以结果可能有多种。
TMOD=0x01则不能TMOD以前是何值,最后都只能是0x01。

LED的变化在定时器0中断服务器里,每进一次中断翻转一次,产生方波。

  • 15384422978 :51单片机中设置定时器模式时,TMOD|=0x01和TMOD=0x01有什么区别_百度知 ...
    瞿叛哀4740 :答:区别是TMOD中有8bit TMOD |= 0x01 这样第2~8bit原来是什么还是什么,不影响,第1bit赋值为1;TMOD=0x01 这样是给2~8bit赋值为0,第1bit赋值为1。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足...
  • 15384422978 :单片机编程中TM0D|=0x01是什么意思?
    瞿叛哀4740 :答:你好:TMOD|=0x01的意思是最低位或1,就是把TMOD的值按位或00000001,不管最低位为什么数都置1,与TMOD=0x01是有区别的,赋值为1是把TMOD无条件赋值为0x01,而不管TMOD之前是什么值;而TMOD|=0x01,仅仅是吧最低位置1,而不会改变其他位的状态。LED被定义为P1.0口,上点默认为低电平,所以...
  • 15384422978 :单片机编程中TM0D|=0x01;是什么意思
    瞿叛哀4740 :答:TMOD |=0X01不会影响到TMOD的其他位,将D0位置1.所以结果可能有多种。TMOD=0x01则不能TMOD以前是何值,最后都只能是0x01。LED的变化在定时器0中断服务器里,每进一次中断翻转一次,产生方波。
  • 15384422978 :单片机程序 TMOD&=0x0f; TMOD|=0x01;有什么作用
    瞿叛哀4740 :答:TMOD &= 0x0F; 按位与,就是把 TMOD 的 最右边的二进制 4 位 留着不变,其它位全部清 0。即TMOD = TMOD & 0x0f; [清 T1, 保留 T0]TMOD |= 0x01; 则是 把 刚才留下的 4 位里 最右 1 位 二进制 设为 1。即TMOD = TMOD | 0x01 [运行T0的要求,最右1位 二进制 设为 1]。 更多追问...
  • 15384422978 :单片机编程中TMOD |= 0x10;TMOD &= 0xdf;是什么意思??
    瞿叛哀4740 :答:TMOD &= 0xdf; //TOOD 里 M1 清零 定时器选择为 16位定时模式 TH1 = 0xFC; //下面2句是 定时器的初值 也就是你定时器需要定时的时间 TL1 = 0x67;TR1 = 1; //启动定时器。} 如果不懂 可以去我百度空间留言 。。。希望以上对你有帮助。
  • 15384422978 :51单片机定时器1方式2怎么设置为什么TMOD=0x20(是怎么换算得) 定时...
    瞿叛哀4740 :答:3、接着就是通过设置T2CON中的工作模式选择位可将定时器2设置为三种工作模式,接着就是分别为捕获、自动重新装载和波特率发生器即可。4、然后击亅F2:定时器2溢出标志位。这时候要注意用于请求中断(必须由软件清0)。5、最后就是EXF2:定时器外部标志位。当外部信号使能时,接着就是发生外部负跳变...
  • 15384422978 :用C编译单片机 提示错误undefined identifier
    瞿叛哀4740 :答:TMOD不是TM0D,注意一点啊O打错了
  • 15384422978 :问个单片机问题 TMOD=0x21;//设置定时器1为工作方式2 求教这句话什么意...
    瞿叛哀4740 :答:TMOD是单片机的内部寄存器。不管你是0x01也好还是0x10也好只要你付给TMOD他就是设置定时器的工作方式、TM0D的高四位也就是你说的0010 这个是设置定时\计数器1的 低四位也就是你说的0001是设置定时器0的。所以你说的TMOD = 0x21是将定时器1设置与工作方式2.将定时器0设置成工作方式1.希望你明白...
  • 15384422978 :哪位高手能帮我解释一下,TMOD=0X20与TMOD=0X02的区别吗??详细点,谢谢...
    瞿叛哀4740 :答:TMOD是单片机定时器方式控制寄存器 这8位控制着单片机中的两个定时器/计数器,如下 GATE C/T M1 M0 GATE C/T M1 M0 前四位是控制定时器1;后四位是控制定时器0 现在我就说下定时器1吧,也就是高四位:M1 M0:有四种组合,是指工作方式 C/T:通过设置可以控制它是作定时器用,还是作计数...
  • 15384422978 :51单片机C程序编程问题
    瞿叛哀4740 :答:TL1=0x0c;IE=0x00;TR1=1;} /***/ void main(void){ initial();for(;;){ while(!TF1);TF1=0;BZ=!BZ;} } 点解TF1前有!号.这样不是永远都是0,一开始就是0 ///答: 判断条件 !TF1 是判断TF1是否为0的表示,等价于 TF1==0 /// while(!TF1); //等待TF1置1(直到TF1...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网