完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我们只使用一个定时器,并工作于工作方式1
首先设定一个预置值,比如03CBOH (即 15536),等待其溢出,中间经历的是50000T 以24GHz为例,就是50ms 然后走20次,为1S 我的问题就是,那50ms是在什么过程中被执行掉的。。。。 |
|
相关推荐
13个回答
|
|
|
防止一楼太长- -。。。
我刚开始接触延时,是这样的汇编 DY5MS: MOV R6,#20 DY5MS1: MOV R7, #250 DJNZ R7,$ DJNZ R6,DY5MS1 RET DY1S: MOV R5,#200 DY1S1: ACALL DY5MS DJNZ R5,DY1S1 RET END 这种延时精度不高,但是每次走程序我能明白,执行的时间花在哪里 但是关于定时器,我从ppt上引出一个例子。。。 start:(里面的初始化,不细写) loop:ajmp loop TIME0: MOV TL0, #0B0H MOV TH0, #3CH DJNZ 30H, TIME1 ; CRL:P1.0 MOV 30H, #20 ; TIME1:RETI END (排版可能不好。。见谅)。。。 |
|
|
|
|
|
|
|
|
|
|
|
定时器一个相对独立的模块,定时器工作时,你的程序可以做其它事情!
|
|
|
|
|
|
|
|
|
|
|
|
计时器是独立工作的
|
|
|
|
|
|
定时器其实就是一个累加器或者累减器,当然你的是累加的过程,我们的定时器一般都是16位或者8位,你的是16位,那么累加的最大值就是65536,如果以冯诺依曼结构的话,一般还有一个12分之1的分频,所以以12M晶振计算的话,那么累加器加1就需要耗费1us,所以在开始的时候你给定时器赋值15536,如果累加到65536的时候需要50000us也就是50ms会溢出,TF0中断标志位就会置1,进入中断!也就是你进入中断需要耗费50个ms,进入20次累计1s.(注意进入中断需要给计数器重复赋值)
|
|
|
|
|
|
不懂汇编,我学的是C!学习学习!
|
|
|
|
|
|
定时器是独立的
|
|
|
|
|
|
来学习学习
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16901 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 04:55 , Processed in 0.983756 second(s), Total 66, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4158