c51利用定时器延时c代码

@阎喻443:c51中如何用定时器做延时 -
韶殷15599578003…… 如果没有用using指定你所用的寄存器组的话那么r0~r7都会入栈,当然入站的还有当前的pc,psw等,如果想要节省入栈的时间可以指定using 0 就是用r0,只有r0会入栈,中断结束时压栈的数据会自动出栈.如果用汇编写的话就不一样了,有时候会更简单一点吧.如果你的程序里面只是用到了r0的话就是直接push r0,就好了,用到什么就push 什么,但是要注意pop的时候要与之对应.(pc是自己压栈的)

@阎喻443:c51用c语言实现延时126s -
韶殷15599578003…… //1ms延时程序(接近1ms)void delay_ms(uint x_ms){ uint i,j; for(i=x_ms;i>0;i--) for(j=130;j>0;j--);}/*!使用定时器可以实现精确延时

@阎喻443:如何用C语言对单片机进行精确延时 -
韶殷15599578003…… 用 定时器/计数器 实现, 给定时器 寄存器设个初值, 选个工作方式, 时间一到 溢出 产生中断, 在中断 子程序中 调用串口 可以输出延时的时间. 至于初值 设为多少, 那就要看你到底定时多少了. 12M晶震 的机器周期 是 1us 自己算酸 分单字节单周期指令, 双字节单周期指令, 单字节双周期指令.单片机在执行 指令时 首先要取指令和执行指令2步.单周期指令的执行时间 为一个机器周期.比如:如果想要知道 for(;;)这个循怀 到底用了多长时间来执行. 那么你可以 查编译器 这条语句所对应的 操作码和操作数. 然后再区分其到底是什么类型的指令.最后把时间加加 就可以了 .

@阎喻443:C51单片机怎样实现延时控制 -
韶殷15599578003…… 最简单的软件延时: unsigned char i; for(i=0;i<100;i++) { i++; } 可改变i的值以达到延迟的时间. 还有就是用定时器延时: void Delay(unsigned char t) { do { TH0 = 0xDC;//设置定时器初值(定时10ms) TL0 = 0x00; TR0 = 1; //启动定时器 while ( !TF0 ); //等待定时器溢出 TR0 = 0; //停止定时器 TF0 = 0; //清除溢出标志 } while ( --t != 0 ); //循环t次 }

@阎喻443:用C语言写一个KEILC51的延时1秒程序,急 -
韶殷15599578003…… keilc51好像也是用C编程, 一般延迟程序就是增加系统负载比如: int i,j; yanchi() { for(i=0;i<1000;i++) for(j=0;j<1000;j++) ; } 这样就可以达到延迟的目的,具体参数你可以随便设.

@阎喻443:怎么用C51编写单片机延时函数 -
韶殷15599578003…… 软件延时的话建议直接用单片机精灵或STC-ISP等软件计算生成的代码.用定时器的话,设置定时器基本定时时间,再增加标志判断定时器工作了几轮,基本时间*标志就是延时的时间了;如果要用时间很短的精准延时就需要计算该给TLx和THx的值了

@阎喻443:keil c51.怎么打开定时器,用什么语句可以使用定时器来实现精确延时? -
韶殷15599578003…… 定时器由定时器控制寄存器TCON控制,该寄存器的第4/6位TR0/TR1置1,则打开定时器0/1.示例语句如下:先初始化定时器1的相关寄存器:TMOD|= 0x11;//16位定时器/计数器模式 TH1=0x1C; //12.000M TL1=0x18; IE = 0x8A; //打开总中断 ...

@阎喻443:求一个C51单片机上的20秒延时子程序!用汇编语言 -
韶殷15599578003…… 1、软件延时方法:DELAY: MOV R7,#0BFH DL1: MOV R6,#0D1H DL0: MOV R5,#0F9H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 MOV R5,#02H DJNZ R5,$ RET2、定时器方法: ORG 0000H LJMP START ORG 000BH LJMP Timer0Interrupt ...

@阎喻443:求C51单片机延时程序…要求是用查询法的…且要用if语句的. -
韶殷15599578003…… 根据你所说的延时方法,应该是用定时器中断里面设定标志位来产生延时的方法.比如你可以把定时器设定为每1ms进一次中断,在中断里面把一个标志位(如flag)置一 当你需要1ms延时的时候你可以先初始化定时器,然后查询标志位是否置一,置一则执行if后面的语句,即if(flag){}; 当你需要10ms延时时,你可以把flag设置为uchar,中断里面flag++;外面查询用if(10==flag){}; 以此类推

@阎喻443:用C51单片机写一个定时器,延时2分半钟后驱动蜂鸣器或者喇叭发声音, -
韶殷15599578003…… uint i=0; TH0=(65536-50000)/256;//初始化设置一个基础定时 TL0=(65536-50000)%256; ET0=1; EA=1; if(K1==0) { TR0=1; } if(K2==0) { i=0; } void timer0 () interrupt 1 //中断 { TH0=(65536-50000)/256;//初始化设置一个基础定时 TL0=(65536-50000)%256; i++; if(i==300) i=0; }

相关推荐

  • 如何使用定时器延时1s
  • g代码延时怎么写
  • 编程怎么延时0.5秒
  • 保持型延时接通定时器
  • 定时器设置时间步骤
  • 定时器延时1ms程序
  • 51单片机延时0.5秒代码
  • c51定时器怎么设置时间
  • 利用定时器延时5s c程序
  • 51单片机延时程序怎么写
  • 51单片机延时函数怎么写
  • 接通延时定时器ton
  • c#延时函数怎么写
  • c51延时计算
  • c51延时程序怎么写0.5秒
  • c51定时器做时钟
  • 接通延时定时器指令
  • cnc代码大全
  • 51单片机延时函数代码
  • c#简易计算器代码
  • 用c51编写一个延时子程序
  • c51延时函数
  • c语言一秒延时delay
  • fanuc延时断开定时器
  • 延时一秒的程序c51
  • 51单片机1分钟延时程序
  • 本文由网友投稿,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
    若有什么问题请联系我们
    2024© 客安网