小白求助,51单片机里的TMOD怎么设置的问题
时间:10-02
整理:3721RD
点击:
如果想要用T0,设置GATE为0,定时器模式,工作在模式1,那T0应该是0001,为什么初始化TMOD的程序为TMOD|=0x01啊?我觉得假如之前TMOD为0x11的话,那么执行TMOD|=0x01后,TMOD不还是0x11吗?那不就不能设置成我想要的模式了吗?真心求教
顶顶,大佬们帮帮我吧
应该这样设置
TMOD &= 0xF0; //定时/计数器0运行在模式1,16位模式
TMOD |= 0x0D; //GATE0=1; C/T0#=1; M1=0; M0=1;
TH0 = 0xff; //设置初值,初值=(65536-7)/256=FFH
TL0 = 0xf9; //设置初值,初值=(65536-7)%256=F9H
//初值为65529,只需要再计7个数,定时/计数器就可以溢出
ET0=1; //允许定时/计数器0中断
EA=1; //允许总中断
TR0=1; //启动定时/计数器
TMOD|=0x01;
定义 定时/计数器0,工作方式1;
小编可能认为TMOD的初始状态有可能是0x11;但是在51复位以后TMOD就是0x00,很明确,在程序中小编只是对TMOD赋值一次
小编如果感觉符号 | 看不明白的话,其实可以直接TMID=0x01;
和源程序一样
谢谢!
谢谢,现在搞明白了