导航:首页 > 操作系统 > 单片机1ms延时

单片机1ms延时

发布时间:2023-08-04 19:42:21

A. 设单片机系统采用6M晶振,写出用定时器1方式2实现1ms的延时程序

6M晶振,方式2定时1mS的时间太长,不能直接实现,(最大定时应该是512uS)下面是500uS定时示例程序,可在中断函数中计数每2次得1S。
void Timer1Init(void) //500微秒@6.000MHz
{
AUXR &= 0xBF; //定时器时钟12T模式
TMOD &= 0x0F; //设置定时器模式
TMOD |= 0x20; //设置定时器模式
TL1 = 0x06; //设置定时初值
TH1 = 0x06; //设置定时重载值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
}

B. C51单片机,谁帮我写个1ms的延时

void delay(uint i) //调用子程序所需时间)
{
uchar j,k;
for (j=i; j>0; j--)
for(k=0;k<30;k++);
}

在程序调用函数就可以得到1ms的程序,具体调用如下:
delay(10); //延时1.011ms

C. 51单片机中,写个延时函数,延时1ms,该怎么写,为什么

用汇编语言写可以精确计算,但有时想拼出整数的ms或10ms也不容易,计算方法如下图说明:

而C语言靠经验和实验得来的,如下面程序

如果不准(与晶振频率有关),调K的值,,软件仿真查看,直到大致准确,想更精确用定时器

void delay(unsigned char i)//延时程序
{

unsigned chari,k;

for(j=i;j>0;j--)
for(k=125;k>0;k--);
}

D. 单片机延时1ms问题

首先,不知道你的晶振频率是多少,然后不知道你使用的是哪种类型的单片机。
我根据KEILC的测试:for循环这个语句是双周期指令2个机器周期,j=0;j<33;j++。这有三步单周期指令,每次三个机器周期。。。所以时间是(3j+2) 乘以循环次数i。就是时间微秒
上述指令在12MHZ的晶振频率,AT89S52的单片机测试情况下为0.0001060秒。也就是1MS

E. 求一个1ms的单片机C语言延时程序

void
delay(char
x)
{
unsigned
char
a,b,c;
for(c=x;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
学过标准C就知道了,char

int
是可以相互转换的,char的取值范围是-128~+127
unsigned
char
的是0~255
可以用unsigned
int啊,我一般都是用char的,用unsigned
int的话占的字节比较多,运行速度也没char那么快,计算机会麻烦点,建议使用char

阅读全文

与单片机1ms延时相关的资料

热点内容
cpu频率计算法 浏览:519
压缩模量与压缩性 浏览:996
android特效控件 浏览:412
linux文件为空 浏览:38
189原版服务器地址 浏览:115
程序员谈国足 浏览:336
本地电脑如何做网站服务器 浏览:484
小寻s5下载的app怎么卸载 浏览:306
zbrushpdf 浏览:897
met肌肉能量技术pdf 浏览:195
php面试重点 浏览:683
如何从管理员界面删除文件夹 浏览:908
单片机三总线信息如何隔离 浏览:690
云服务器研发费用明细 浏览:957
unity3d手机游戏开发pdf 浏览:366
mysql重启命令linux 浏览:876
程序员日常业余内容 浏览:363
steam如何更改吃鸡服务器 浏览:212
我的世界up主多人用什么服务器 浏览:161
缝纫机电脑机编程 浏览:59