建立新的文件

写好底层的代码

寄存器是连接软硬件的媒介,我们现在写一个关于这个的代码

我们要看的是关于以下的寄存器

TMOD的寄存模式,M1和M0是来决定工作模式的

TCON(可位寻址)如果TF等于1会直接产生中断,TR0看定时器是否开启(开启就为1) IE0和IT0控制外部中断

我们想让他间隔1秒产生中断,怎么去定时?采用赋初值

比如0~65535每隔1us计数加一 总共定时间65535us  64535离计数器溢出差值1000,所以计时时间为1ms 去给他取余。在下面去给他写中断子函数,他会在main中去到Timer0这个子函数当中去,再接着跳转回来。

能看到第一个确实亮了,子函数确实没有执行

现在我们要去做中断了,改正之后的是这样,但其实是还有缺陷在的

再TMOD上,这个是不可位寻址的,必须八位同时复制,如果同时使用定时器1和定时器0,先配置定时器1再去配置定时器0会把 之前前定时器1的更新掉,我们去给他让他只去执行一部分

这样得到的和我们预期的一样。LED灯会有定时的中断。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐