知识大全 51单片机汇编延时时间精确计算方法,小弟刚学51,不是很明白,麻烦大哥大姐帮帮忙,谢谢
Posted 知
篇首语:种子牢记着雨滴献身的叮嘱,增强了冒尖的勇气。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 51单片机汇编延时时间精确计算方法,小弟刚学51,不是很明白,麻烦大哥大姐帮帮忙,谢谢相关的知识,希望对你有一定的参考价值。
51单片机汇编延时时间精确计算方法?,小弟刚学51,不是很明白,麻烦大哥大姐帮帮忙,谢谢!
要精确定时的话还是不要用延时来做了,还是用定时器做精确定时吧
如果非要用延时,那你得计算延时程序里每条指令的周期T,然后循环执行那几条指令n次,则循环完就是延时nT us,多重循环就难计算些了
51单片机c语言问题,麻烦各位大哥大姐帮帮忙。。。
三种可能,
1、如果是多个数码管都很亮的话,是数码管的驱动电流太大,这种情况可串接一个小电阻实现。
2、是显示子程序里面的延时时间太长,一般5MS就够了。
3、也可能是因为你定义int s[4];是局部变量,当这个子程序执行结束后,变量释放,数值是随机的。虽然说单片机的程序的执行速度很快能够弥补这一点,但还是有可能会出问题的。建议把int s[4];定义为全局变量来试试。
不会有大问题的。加油!
我不知道你的整体电路时怎么实现的。你补充的很对,单片机的输出的控制信号应接到锁存器的输入端,锁存器的输出信号应与数码管的控制引脚相连接,这样才有锁存的意义,锁存器的输入输出如果弄反了,肯定不能工作的。如果还不行,建议你先试试把数码管的位选和段选直接接到单片机的IO来试一试,看程序本身有没有问题。程序没问题的话,那就是电路的问题了。
89C51单片机求助,各位大哥大姐帮帮忙!
1,w=0x01,这句不会是灯亮,尚未赋值给P1口
循环的时候才从P1.0亮逐个亮到P1.7;
2,protues 放置的时候没有快捷键旋转吧,放好后再转,或在元件库里面先转好再放,库的最底可以调角度。
单片机c编程问题,大哥大姐帮帮忙,小弟晕啊,谢啦!
a=temp&0xf0<<x; 相当于 a=temp&(0xf0<<x)
b=temp&0x0f>>x;
改为:
a=(temp&0xf0)<<x;
b=(temp&0x0f)>>x;
>>的优先级高于 &
51单片机汇编高手帮帮忙:
我也是学不久.
开始主程序当然要从 0030H开始啦!
因为以后你要学到中断程序.入口(系统默认)必须在主程序之前存放.而中断又要占0000H-0023H;
分别是外中断0:0003H;
定时中断0:000BH
外中断1:0013H;
定时中断1:001BH;
串行中断: 0023H
然后就是主程序开始了
MAIN: LJMP 0030H;
....
一般延时使用的都是R5 R6 R7
比如
MOV R5,#FFH
F1: MOV R6,#FFH
F2: MOV R7,#24H
F3: DJNZ R7,F3
DJNZ R6,F2
DJNZ R5,F1
RET
其它的就只剩下特殊寄存器了.那些不能存东西.只能查或改.
而A 只是个暂存累加器.你可以把它当渡船了.
我来不是为分的.
建议你了解汇编就得了.没必要学深入.
直接去学C语言.
要想找书的话....其实很多书都是一样.就是封面不一样而已!
只要你到图书馆或者书店去.
书上写有[单片机入门]5个字回来一看就行了.
我当时就是随便拿了一本[手把手教你学单片机]学汇编的.
到后来全忘记了.根本没用.都是用C的多.
但是时间多学学也好!
-
还有就是..学这个东西得花点材料钱.
要是经济一般的话.买个几十块钱的实验板回去自己看书做实验,(任何一本相关书都可以).
仿真 建议用软件.
硬件太贵了.而且软件仿真跟实际也差不了多少..
编写软件就用KEIL吧!
我也是新手..希望能给你帮助!
各位大哥大姐帮帮忙!!!基于51单片机和ADC0809数字温度计
“供电运行时候ADC0809的D0-D7没有输出”是什么意思
根据你的描述,你对用的不是总线接法,所以,P0口要接上拉才能读到正确的数据
另外你测一下CLK,看有没有信号出来
51单片机电子琴程序,急啊,大哥大姐帮忙啊!叩谢!
我博客上有相关程序,还有我独创的音乐书写格式,你可以去参考。
大哥大姐帮帮忙,小弟谢过
删掉,重下
51单片机12HZ的,怎么计算延时时间?
应该是 12MHz 吧?
单片机内部,计时的单位是《机器周期T》。
下面是每条指令执行时,所用的周期数:
MOV R1,#60 1T
F: MOV R3,#248 1T
DJNZ R3,$ 2T
DJNZ R1,F 2T
RET 2T
下面是程序循环时所用的周期数:
MOV R1,#60
F: MOV R3,#248
DJNZ R3,$ 2 * 248 = 496 T
DJNZ R1,F (2 + 496 + 1) * 60 = 29940T
RET 2 + 29940 + 1 = 29943T
总共是: 29943T。
如果是 12MHz,时间就是:29943us。
另外,执行这个程序,还需要一条 CALL 指令,应该再加上 2T。
--怎么样实现5S的延时?
慢慢算呗。
如何算51单片机延时时间
用KEIL软件可以计算时间,将while的起始位置和终止位置加红点(双击即可);
然后左侧的SEC后面的就是执行的时间。
再给你几个延时程序做参考:
软件延时:(asm)
晶振12MHZ,延时1秒
程序如下:
DELAY:MOV 72H,#100
LOOP3:MOV 71H,#100
LOOP1:MOV 70H,#47
LOOP0:DJNZ 70H,LOOP0
NOP
DJNZ 71H,LOOP1
MOV 70H,#46
LOOP2:DJNZ 70H,LOOP2
NOP
DJNZ 72H,LOOP3
MOV 70H,#48
LOOP4:DJNZ 70H,LOOP4
定时器延时:
晶振12MHZ,延时1s,定时器0工作方式为方式1
DELAY1:MOV
R7,#0AH
;;晶振12MHZ,延时0.5秒
AJMP
DELAY
DELAY2:MOV
R7,#14H
;;晶振12MHZ,延时1秒
DELAY:CLR
EX0
MOV
TMOD,#01H
;设置定时器的工作方式为方式1
MOV
TL0,#0B0H
;给定时器设置计数初始值
MOV
TH0,#3CH
SETB
TR0
;开启定时器
HERE:JBC
TF0,NEXT1
SJMP
HERE
NEXT1:MOV
TL0,#0B0H
MOV
TH0,#3CH
DJNZ
R7,HERE
CLR
TR0
;定时器要软件清零
SETB
EX0
RET
C语言延时程序:
10ms延时子程序(12MHZ)
void delay10ms(void)
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
1s延时子程序(12MHZ)
void delay1s(void)
unsigned char h,i,j,k;
for(h=5;h>0;h--)
for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);
200ms延时子程序(12MHZ)
void delay200ms(void)
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=132;j>0;j--)
for(k=150;k>0;k--);
500ms延时子程序程序: (12MHZ)
void delay500ms(void)
unsigned char i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
不过实际得到的延时会存在差异,所以最好用实验的方法调整延时参数。
相关参考
51单片机串口通信定时器初值怎么计算?公式和计算原理是什么?串口通信方式1和方式3,要用T1来控制波特率。T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值=256-f
知识大全 51单片机串口通讯为什么给T1附值以后芯片就默认该值为波特率,而不需要其他设置
51单片机串口通讯为什么给T1附值以后芯片就默认该值为波特率,而不需要其他设置?是跟PCON或者SCON有关吗 以下文字资料是由(本站网www.cha138.com)小
知识大全 关于51单片机的串口通信,为什么要用rs232电平
关于51单片机的串口通信,为什么要用rs232电平所谓的RS-232通信标准,就是对插件样式、信号名称和意义以及所谓的驱动器/接收器的电气模式这种硬件作出规定。一般的都是9针的接口,其中包括CD接口:
知识大全 用51单片机做一个定时器,程序用C语言写,有人会吗
用51单片机做一个定时器,程序用C语言写,有人会吗? 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用
89C51系列单片机串口通信的四种方式极其特点 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!89C5
知识大全 51单片机如何初始化成8-n-1(8数据位,无奇偶校验位,1停止位)波特率,是用串口的模式几
51单片机如何初始化成8-n-1(8数据位,无奇偶校验位,1停止位)波特率,是用串口的模式几?用串口的模式1,是10位异步通信方式。1起始位,8数据位,1停止位,没有奇偶校验位。这种模式就是:8-n-
知识大全 求51.27-(8.64+7.27)的简便运算,要脱式计算。
求51.27-(8.64+7.27)的简便运算,要脱式计算。原式=51.27-8.64-7.27=51.27-7.27-8.64=44-8.64=35.3610.380.14-1.380.28脱式计算
知识大全 嵌入式驱动开发和用单片机写一个程序驱动一个器件和芯片是不是类似的,求解决
嵌入式驱动开发和用单片机写一个程序驱动一个器件和芯片是不是类似的,求解决?我以前学校51和AVR,现在学习ARM9,和你分享一下我的观点,单片机如51和AVR之类,是对硬件的操作,不能跑操作系统,能力
自学编程应该买什么书啊!编程的种类太多了,你是想学汇编还是高级语言啊?学汇编主要是面向单片机,高级语言则可以在Windows平台编写应用程序了。如果是想学汇编的话,只要找单片机的书就好,里面就会有教汇
17除以51加(1除以68加2除以51)乘1717除以51加(1除以68加2除以51)乘17=3分之1加1除以68乘17加2除以51乘17=3分之1加4分之1加3分之2=1又4分之151除以17再除以