哪位单片机高手详细的告诉我一下:单片机中的延时程序的延时时间怎样计算的?比如,延迟 1S,2S等等

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-30
如果FOSC=12MHZ单片机,那么一个机器周期为12/12M=1us
如果是汇编语言的话:
L1:MOV
R7,#100
L2:MOV
R6,#100
L3:MOV
R5,#50
DJNZ
R5,$;此句两个机器周期也就是2T
DJNZ
R6,L3
DJNZ
R7,L2
RET
2T*50*100*100=1,000,000us(共一秒),这是粗略算法,有误差,但不是太大。

比如
c51单片机的定时器1
是16位定时器
那么就是最大是65536
如果晶振频率是12MHZ
那么
最大定时时间是65.536毫秒
你定时一秒
就可以把定时器装初值
是15536
15536加到65536
正好是50毫秒
经过20次50毫秒
那么就是1s


  • 哪位高手帮下忙,做一简单的单片机课题,万分感谢!!!急求
    答:define SEG_EnP2//数码管位驱动接口 define SEG_AllOff(SEG_En|=0x03)//关闭所有数码管(位驱动)define DisTimeAt1msCount8//单'位'数码管显示时间,数码管刷新频率f=1/(N×t),其中 N为数码管位数, t为单'位'数码管显示时间 define T1sAt1msCount1000//1秒 计数值(在定时器为1ms 情况下计数...
  • 求一高手解析一下单片机源程序,每一步的意思,表达了什么,可追加分数...
    答:include<reg52.h> //头文件,定义硬件相关的寄存器等 define uchar //宏,下面中的uchar 全部用unsigned char替代。编译器处理的第一步 sbit P3_4=P3^4; //sbit单片机特有的位变量地址类型,相当于给p3.4引脚重命名 //数码管的显示编码,要显示5就把tab[5]的值输出到对应引脚;co...
  • 求单片机程序分析,先谢谢高手们了!! (最好请详细说明一下执行每一条指 ...
    答:34.设片内RAM中(7CH)=50H,执行下列程序后填人执行结果。MOV A, 7CH;把7C单元中的数送到A,也就是把50H这个数送到A MOV RO, A;A中的数再送R0 MOV A, #0;A清0 MOV @RO, A;A中的0送到R0所指的单元,也就是50H单元 INC RO;R0加1,变成51H MOV A, #25H;A=25H MOV...
  • 这段是AVR单片机程序哪位高手指点下
    答:“if(point_on) PORTA|=0x80;”即“if(point_on==1)PORTA=PORTA||0x80 ;”,当point_on值为1就执行PORTA=PORTA||0x80 这条语句的意思。0x80是十六进制数,化成二进制是10000000,与PORTA作或运算,结果是把PORTA里的数最高位置1,后7位不变。(PORTA是一个8位的寄存器,存的是8位二...
  • 单片机提问,高手解答!!!
    答:1. 00H-1FH 四组工作寄存器区 每组占8B 20H-2FH 可位寻址区 共128位 30H-7FH用户RAM区(堆栈、数据缓冲)80H-FFH为特殊功能寄存器SFR区 2 虽然地址一样,可是访问的指令不同,访问ROM用MOVC,访问内部RAM用MOV 访问外部RAM用MOVX,指令不同控制片选信号,读写RAM时,用RD和WR反来选通,...
  • 有关单片机的几个问题!跪求高手回答
    答:2.这个看你的单片机的硬件电路了,你最好也先看懂硬件电路才编程。通常LED的公共端是用三极管选通的!看来你的LED是共阳极接法的,就是8个LED正极共同接到三极管的发射极,集电极接VCC,基极连到P1口的接法,如果你会三极管,应该就能看懂为什么了!P1=0,三极管正向导通,VCC加到LED上,如果LED的另一...
  • 各位单片机高手,哪位帮我分析一下下面这个程序,问题出...
    答:回答:首先给你解释一下“<<”位移符的作用: 因为你的P1=0xfe,二进制数据就是11111110,左移一位之后为11111100,0往左移了一位,但是最低位系统自动以0补齐,而0x7f的二进制数据位01111111,所以if语句是永远进入不了的。 当然,针对此问题,C51给出了一个解决方案: 使用_crol_()函数可解决此问题...
  • 请各位高手回答一下下面的单片机程序问题!谢谢!
    答:若晶振频率Fosc=12MHz,机器周期 = 12/Fosc = 12/(12x10^6Hz) =1μs 执行 DJNZ Rn, rel 指令耗用2个机器周期,即2μs 该段程序执行该类指令总次数=250x200x10=500000 耗用时间 = 500000x2μs = 10^6μs =1s 若改为延时0.1 第三行指令改为 LOOP1: MOV R1, #01 若改为延时0...
  • 我在学习单片机,但遇到很多芯片资料看不懂,有哪位高手可以教教我如何...
    答:嵌入式开发需要的入门知识,主要是这些:一是程序设计的基础,例如:基本的编程语言基础,至少对数据类型、程序的结构及流程控制等最基本的内容要相当清楚,所以建议恶补一下C语言,推荐谭浩强的C语言程序设计,好好看一下,呵呵!另外有不少同学都问到数据结构的基础,我一直认为数据结构和算法的学习是帮助...
  • 请单片机高手指点一下怎么写下面的程序(我的是六位数码管),谢谢~_百...
    答:include<reg52.h> include<intrins.h> define uint unsigned int define uchar unsigned char sbit dula=P2^6;sbit wela=P2^7;uchar temp,t0,t1,qian,bai,shi,ge,flag,flag1;uint shu;uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,...