c51延时程序

作者&投稿:储种 (若有异议请与网页底部的电邮联系)

51单片机延时1us,12M晶振怎么用c语言写
51单片机12M晶振延时1us,只需要执行一个NOP就是了。C语言中也是如此。include<reg51.h> include<intrins.h> main(){ _nop_(); \/\/延时1us while(1);}

51单片机中,写个延时函数,延时1ms,该怎么写,为什么?
用汇编语言写可以精确计算,但有时想拼出整数的ms或10ms也不容易,计算方法如下图说明:而C语言靠经验和实验得来的,如下面程序 如果不准(与晶振频率有关),调K的值,,软件仿真查看,直到大致准确,想更精确用定时器 void delay(unsigned char i) \/\/延时程序{ unsigned char i,k;for(j=i;j...

51单片机,求用汇编语言编写延时1小时的子程序,要精确到秒级别
这个可以做到,如果晶振是12M的话,一下方法可以实现延时1小时,精确度在秒级别。DELAY1H:MOV R7,#180 ;1\/1000000 DLY1H:LCALL DELAY_20S ;180*19.960603s +2*180 DJNZ R7,DLY1H ;2*180\/1000000 RET 2\/1000000 共延时时间:3592.9s误差为7.1秒,如果再精确的话,再加一点延时...

求一个单片机的延时子程序延时20ms 谢谢
12M晶振 51单片机 (一)51C 循环 include <reg51.h> void delay_ms(unsigned int ms) \/\/ 延时子程序 { unsigned int a,b;for(a=ms;a>0;a--)for(b=123;b>0;b--);} void main (){ while(1){ delay_ms(20); \/\/20ms延时,数字即为多少毫秒 \/\/这里写自己的程序 } } (...

设计一个由51单片机控制的一到五秒的程序延时程序!再加个数码管显示延时...
include <reg51.h> \/\/调用51单片机的头文件 define uchar unsigned char define uint unsigned int unsigned char code LED[]= { \/\/定义表格一定要使用code,这样会做到程序存储区中 0x3F, \/\/"0"的字形表,0B00111111 0x06, \/\/"1"的字形表,0B00000110 0x5B, \/\/"2"的字形...

51单片机求10微秒的延时函数 C语言(晶振11.0592MHz)
1、下面几个是单片机的延时程序(包括asm和C程序,都是我在学单片机的过程中用到的),在单片机延时程序中应考虑所使用的晶振的频率,在51系列的单片机中我们常用的是11.0592MHz和12.0000MHz的晶振,而在AVR单片机上常用的有8.000MHz和4.000MH的晶振所以在网上查找程序时如果涉及到精确延时则应该注意晶振...

51单片机延时程序时间是怎么计算的
51单片机延时时间计算需要考虑以下两种因素:1、指令执行时间 2、指令循环次数

51单片机用汇编语言设计1S延时子程序,晶振为12MHz。 (麻烦附上详细计算...
如果要精确的延时建议采用中断:include "reg51.h"\/\/timer init void initTimer(void){ TMOD=0x2;TH0=0x6;TL0=0x6;} int T250uS;char T_mark;\/\/timer0\/counter0 interrupt void timer0(void) interrupt 1 { \/\/add your code here.T250uS++;T_mark=0;} void Delay1S(char n){ for(...

请问51单片机定时器延时的调用是怎么调用的我有点不明白,谢谢
2.3 使用示波器确定延时时间 利用示波器来测定延时程序执行时间。方法如下:编写一个实现延时的函数,在该函数的开始置某个I\/O口线如P1.0为高电平,在函数的最后清P1.0为低电平。在主程序中循环调用该延时函数,通过示波器测量P1.0引脚上的高电平时间即可确定延时函数的执行时间。方法如下: ...

怎样用51单片机实现小时级延时
说明还没到100次 { TR=1;j=3600;} else { flag_1hour=0; \/\/循环了3600000次10ms,关闭延时标志位。。} } } ET0=1;} 调用程序:void delay1hour(){ delay_1hour=1;i=100;j=3600;TR0=1;}\/\/在任意你想开始延时一小时的地方加这个函数。在延时期间,单片机还可以干其他指令。

融东18522278264问: 求一个C51单片机上的20秒延时子程序!用汇编语言 -
泰和县帅克回答: 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 ...

融东18522278264问: C51单片机的延时程序是怎么回事 -
泰和县帅克回答: 给你说个简单的 void delay(int a) { while(a--); } 用上的时候就直接在delay的括号里加时间就行,比如 delay(5000);这是5000微妙.

融东18522278264问: 简单的单片机C51语言延时程序 -
泰和县帅克回答: 你第二个for语句后还差个分号吧.个人建议在初学的时候还是不要省的太多了,有时自己都看不懂了.延时函数简单点说就是不断在运行你的for函数,一共运行200*i次,而第二个for函数里面有没有什么语句,这样的话CPU这段时间就什么都不处理,就在这浪费时间,也就是起到延时的效果了.

融东18522278264问: 一个C51单片机上的25ms的延时子程序 -
泰和县帅克回答: 还是用定时器比较准确!#include#define uchar unsigned char uchar t; main() { TMOD=0x01;//定时器工作在方式1 TH0=(65536-25000)/256; TL0=(65536-25000)%256;//初始值 EA=1; ET0=1; TR0=1;//启动定时器工作while(1); //等待中断 } void time0() interrupt 1 { TH0=(65536-25000)/256; TL0=(65536-25000)%256;//初始值 语句;//写你自己要处理的函数(注意:函数的执行时间不能大于中断间隔时间,不然会出错) }

融东18522278264问: c51单片编程成中,延时程序怎么写? -
泰和县帅克回答: void Delay(uint del) { uint i,j,k; for(i=0; i<del; i++) for(j=0; j<100; j++) for(j=0; j<1827; j++) ; }

融东18522278264问: c51单片机如何编写程序就是,按一下按键,延时3秒,再按一下又,延时几5秒,再按一下又,延时3秒~~~~~~ -
泰和县帅克回答: bit flag = 0; //全局标志位 void button_require (void) interrupt 0 //按键中断 {if(flag)delays(3);elsedelays(5); flag = ~flag; }

融东18522278264问: 高手帮忙写个C51单片机10s延时程序 -
泰和县帅克回答: DELAY:MOV R1,#12 D1: MOV R2,#40 D2: DJNZ R2,D2 DJNZ R1,D1 RET

融东18522278264问: C51简单的延时程序 不懂问问 -
泰和县帅克回答: i,j,k分别初始化为 20,20,250 程序先将k递减,当k减到0时j递减 j减到0时i 递减 i到0时退出for循环 整个循环里 k减了250*20*20=100000次 j减了20*20=40次 i减了20次

融东18522278264问: C51单片机汇编写延时子程序20分钟的延时怎么写 -
泰和县帅克回答: 用定时中断来实现 50ms定时中断一次,20次就是1 秒. 你会1 秒了,20分钟就会了.再长的时间也能解决.

融东18522278264问: C51单片机怎样实现延时控制 -
泰和县帅克回答: 最简单的软件延时: 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次 }


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网