51延时函数怎么写
1.51单片机中,定时器怎么做延时函数用,比如说,要精确延时1s,该怎
unsigned long TimeTickCount;//1ms计时器
void Timer0Configuration();
void Delay1ms(unsigned int a);
void main()
{
while(1)
{
Delay1ms(1000);//1s延时;
}
}
void Delay1ms(unsigned int a)//0~65535
{
unsigned long b;//0~0xffffffff
b = TimeTickCount;//记下及时器初始值
while((TimeTickCount-b<a)||(0xffffffff+TimeTickCount-b<a));
//当计数器未溢出只须用 计数器实时变化的值-其初始值
//当计数器溢出则须用 计时器上限值+计数器实时变化的值-其初始值
}
void Timer1Configuration()
{
TMOD=0X10;//选择为定时器模式,工作方式1。
TH1=0Xfc; //给定时器赋初值,定时1000us
TL1=0X18;
ET1=1;//打开定时器1中断允许
EA=1;//打开总中断
TR1=1;//打开定时器
}
void interrupt_timer1() interrupt 3 //1000us
{
TH1 = 0xfc; //重装
TL1 = 0x18;
TimeTickCount++;//1000us计时器
}
2.51单片机中,写个延时函数,延时1ms,该怎么写,为什么
用汇编语言写可以精确计算,但有时想拼出整数的ms或10ms也不容易,计算方法如下图说明:
而C语言靠经验和实验得来的,如下面程序
如果不准(与晶振频率有关),调K的值,,软件仿真查看,直到大致准确,想更精确用定时器
void delay(unsigned char i) //延时程序
{
unsigned char i,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
3.51单片机用软件定时来控制舵机,延时函数怎么写
延时可以用定时器来实现,也可以自己写延时函数。
这是51单片机定时器初始化示例程序。
TMOD = 0x10f; //GATE=0 01010001
//C/T=0--定时/计数器1工作于定时方式
//M1=1;M0=0--选择工作模式1,构成最大定时器
//T0:在此程序不使用
TL1 = 0x13; TH1 = 0x2C; //指定定时时间为50ms 65536-50/(11.0592/12)=11283=2C13h
EA = 1; //开总中断
TF1 = 0;
ET1 = 1; //开定时器中断
TR1 = 1; //开始计时
如果用延时函数,要精确计算时间。
这是精确定时1ms的程序,你可以参考一下。
void delay1ms(void)
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
4.单片机的延时函数如何编写准确时间
如实现知精确延时时间1ms(假设频率为6MHz,则1Tm=2us)
YS10: MOV R7,#124 ;循环计数器赋初值道
L1: NOP
NOP ;空操作1Tm
DJNZ R7,L1 ;循环体内4Tm
NOP
RET
实际延时时间为8μs*124+8μs=1000μs=1ms
所以从上可知,主要从循环次数,和专循环体内的每个循环的周期数关系很大,只要在此基础上,增加适当的NOP指令属就好。
单片机中函数怎么写
1.单片机中断函数如何编写
中断服务程序的入口地址是相对固定的,而普通的功能程序入口则是随意设置的,此外,中断服务程序的调用方式也不同于普通的功能程序,中断服务程序的调用是靠中断申请信号,而非普通的程序。
在C51中,中断服务程序同样是一种特殊的函数,其标准形式如下。
void 函数名(void)interrupt n using m
{
函数体语句
}
此处的interrupt和using是C51的关键字,interrupt表示该函数是一个中断服务函数,n表示该中断服务函数所对应的中断源,中断源与中断编号的对应关系见表
Using用指定该中断服务程序要使用的工作寄存器组号,m取值为0~3,当不使用关键字using时,编译系统将会把当前工作寄存器组的8个寄存器都压入堆栈,中断服务函数是由系统调用的,程序中的任何函数都不能调用中断服务函数。
一般可以不使用using m.
2.帮我写一个单片机函数
#include
#define uchar unsigned char
void delay(uchar a)
{
uchar i,j;
for(i=0;ifor(j=0;j}
main()
{
uchar m,led;
while(1)
{
led=0x00;
for(m=0;m {
P0=led;
led=(led delay(100);
}
led=0xaa;
for(m=0;m {
P0=~led;
delay(100);
}
}
}
matlab延时函数怎么写
1.matlab 函数如何延时
pause(n)表示延迟n秒再进行,其中n必须是正数。因此延迟5秒的命令是pause(5)。
官方解释:pause(n) pauses executionfor n seconds before continuing, where n isany nonnegative real number. Pausing must be enabled for this to takeeffect.
一般延迟用的比较少,我只是在浏览图片的时候用过,每隔3秒钟打开下一张图片。
2.matlab中如何设置延迟
采用MATLAB中的延时函数pause:Halt execution temporarily实现代码如下:1.pause, by itself, causes M-files to stop and wait for you topress any key before continuing.2.pause(n) pauses execution for n seconds before continuing, wheren can be any nonnegative real number. 3.pause(inf) puts you into an infinite loop. To return to theMATLAB prompt, type Ctrl+C.4.pause on allows subsequent pause commands to pauseexecution.5.pause off ensures that any subsequent pause or pause(n) statements do not pause execution。
3.matlab中如何设置延迟
采用MATLAB中的延时函数pause:Halt execution temporarily
实现代码如下:
1.pause, by itself, causes M-files to stop and wait for you to
press any key before continuing.
2.pause(n) pauses execution for n seconds before continuing, where
n can be any nonnegative real number.
3.pause(inf) puts you into an infinite loop. To return to the
MATLAB prompt, type Ctrl+C.
4.pause on allows subsequent pause commands to pause
execution.
5.pause off ensures that any subsequent pause or pause(n) statements do not pause execution.
4.matlab怎样表达序列的延时
采用MATLAB中的延时函数pause:Halt execution temporarily
实现代码如下:
1.pause, by itself, causes M-files to stop and wait for you to
press any key before continuin g.
2.pause(n) pauses execution for n seconds before continuing, where
n can be any nonnegative real number.
3.pause(inf) puts you into an infinite loop. To return to the
MATLAB prompt, type Ctrl+C.
4.pause on allows subsequent pause commands to pause
execution.
5.pause off ensures that any subsequent pause or pause(n) statements do not pause execution.
5.C语言delay的延时函数怎么写
回答这个问题前提需要搞清楚:
1.你的执行文件在那里运行?
2.你要延时是否“死等”,还是可以切换到其他任务?
-----------------------------------------------
如果你只是学习c语言,写个小函数玩玩,可以如下:
void delay(int time)
{
for(;time>0;time--)
{
nop;//可写任何无意义的操作
}
}
死等型的延时,时间根据指令执行速度不同而不同!!!!
6.已知传递函数怎么用matlab画群延时特性曲线
用grpdelay
Group delay of adaptive, discrete-time, and multirate filters
Syntax
[gd,w] = grpdelay(ha)
[gd,w] = grpdelay(ha,n)
[gd,w] = grpdelay(。,f)
grpdelay(ha)
[gd,w] = grpdelay(hd)
[gd,w] = grpdelay(hd,n)
[gd,w] = grpdelay(。,f)
grpdelay(hd)
[gd,w] = grpdelay(hm)
[gd,w] = grpdelay(hm,n)
[gd,w] = grpdelay(。,f)
grpdelay(hm
7.时钟用延时函数的方式怎么个写法
如实现精确延时时间1ms(假设频率为6MHz,则1Tm=2us)
YS10: MOV R7,#124 ;循环计数器赋初值
L1: NOP
NOP ;空操作1Tm
DJNZ R7,L1 ;循环体内4Tm
NOP
RET
实际延时时间为8μs*124+8μs=1000μs=1ms
所以从上可知,主要从循环次数,和循环体内的每个循环的周期数关系很大,只要在此基础上,增加适当的NOP指令就好。
转载请注明出处育才学习网 » c语言单片机延时函数怎么写
育才学习网