• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

請教單片機延时程序問題

遥控接收程序
......
YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒
D1: MOV R5,#20
DJNZ R5,$     (問題1的位置) "$"的作用?????
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒   (問題2的位置)
D2: MOV R5,#235      
DJNZ R5,$            
DJNZ R4,D2
RET                 為什么是4740微秒??????
YS3: MOV R4,#2;延时程序3,精确延时1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
END

問題
① DJNZ R5,$    "$"的符號在這一段是不是R5里的20若沒減到0就等待的意思?
"$"的作用范圍有哪些?
②  235 X  10 =2350 微秒
    2350  X 2 =4700微秒
為什么精确延时4740微秒?    而不是4700微秒

                請各位大俠幫忙解答
全部回复(6)
正序查看
倒序查看
sdcw
LV.1
2
2005-12-29 20:26
1、$的意思是原地踏步
2、我不知道你用的是哪个接收芯片,所以不好说 .
0
回复
2005-12-30 09:53
你用的是什么片子,频率是多少,就算是51的12MHZ的,它的精确振荡频率为11.059MHZ,所以精确延时是那么多.
0
回复
hyzl
LV.5
4
2005-12-30 12:12
@chengkai422
你用的是什么片子,频率是多少,就算是51的12MHZ的,它的精确振荡频率为11.059MHZ,所以精确延时是那么多.
是51芯片,晶振12M
那跟芯片有什么關系﹐老大怎么算﹐說清楚點?
它的精确振荡频率为11.059MHZ ,所以它的機器周期是12/11.059=1.085us  ???

樓上那位老大說  “$的意思是原地踏步 “   是不是等一下就是1微秒?占不占用時間?到什么時候?

先謝﹗
0
回复
2005-12-30 15:15
@hyzl
是51芯片,晶振12M那跟芯片有什么關系﹐老大怎么算﹐說清楚點?它的精确振荡频率为11.059MHZ,所以它的機器周期是12/11.059=1.085us  ???樓上那位老大說  “$的意思是原地踏步“  是不是等一下就是1微秒?占不占用時間?到什么時候?先謝﹗
还要根据指令执行周期来算.$应该是不产生溢位就原地执行,产生OVERFLOW就往下执行.
0
回复
少帅
LV.5
6
2006-01-10 11:12
@hyzl
是51芯片,晶振12M那跟芯片有什么關系﹐老大怎么算﹐說清楚點?它的精确振荡频率为11.059MHZ,所以它的機器周期是12/11.059=1.085us  ???樓上那位老大說  “$的意思是原地踏步“  是不是等一下就是1微秒?占不占用時間?到什么時候?先謝﹗
单字节 语句
执行时间是2MS吧
0
回复
sanplug
LV.2
7
2006-01-13 13:47
我看你是单片机初学者请去那里去看一看吧
www.elemcu.com
0
回复