问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

1、 已知单片机的晶振为12M,请以子函数形式写出10毫秒延时程序。该怎么写啊?用C语言写。

发布网友 发布时间:2022-10-11 00:01

我来回答

1个回答

热心网友 时间:2023-10-09 22:17

下面有你要的 选一个吧

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

软件延时:(asm)

晶振12MHZ,延时1秒
程序如下:
DELAY:MOV 72H,#100
LOOP3:MOV 71H,#100
LOOP1:MOV 70H,#47
LOOP0:DJNZ 70H,LOOP0
NOP
DJNZ 71H,LOOP1
MOV 70H,#46
LOOP2:DJNZ 70H,LOOP2
NOP
DJNZ 72H,LOOP3
MOV 70H,#48
LOOP4:DJNZ 70H,LOOP4

定时器延时:

晶振12MHZ,延时1s,定时器0工作方式为方式1

DELAY1:MOV R7,#0AH ;;晶振12MHZ,延时0.5秒
AJMP DELAY
DELAY2:MOV R7,#14H ;;晶振12MHZ,延时1秒
DELAY:CLR EX0
MOV TMOD,#01H ;设置定时器的工作方式为方式1
MOV TL0,#0B0H ;给定时器设置计数初始值
MOV TH0,#3CH
SETB TR0 ;开启定时器
HERE:JBC TF0,NEXT1
SJMP HERE
NEXT1:MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ R7,HERE
CLR TR0 ;定时器要软件清零
SETB EX0
RET

C语言延时程序:

10ms延时子程序(12MHZ)

void delay10ms(void)

{

unsigned char i,j,k;

for(i=5;i>0;i--)

for(j=4;j>0;j--)

for(k=248;k>0;k--);

}

1s延时子程序(12MHZ)

void delay1s(void)

{

unsigned char h,i,j,k;

for(h=5;h>0;h--)

for(i=4;i>0;i--)

for(j=116;j>0;j--)

for(k=214;k>0;k--);

}

200ms延时子程序(12MHZ)

void delay200ms(void)

{

unsigned char i,j,k;

for(i=5;i>0;i--)

for(j=132;j>0;j--)

for(k=150;k>0;k--);

}

500ms延时子程序程序: (12MHZ)
void delay500ms(void)
{
unsigned char i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}

下面是用了8.0000MHZ的晶振的几个延时程序(用定时0的工作模式1):

(1)延时0.9MS

void delay_0_9ms(void)
{
TMOD=0x01; /*定时器0工作在模式1下(16位计数器)*/
TH0=0xfd;
TL0=0xa8;
TR0=1; /*启动定时器*/
while(TF0==0);
TR0=0;
}

(2)延时1MS

void delay_1ms(void)
{
TMOD=0x01; /*定时器0工作在模式1下(16位计数器)*/
TH0=0xfd;
TL0=0x65;
TR0=1; /*启动定时器*/
while(TF0==0);
TR0=0;
}

(3)延时4.5ms

void delay_4_5ms(void)
{
TMOD=0x01; /*定时器0工作在模式1下(16位计数器)*/
TH0=0xf4;
TL0=0x48;
TR0=1; /*启动定时器*/
while(TF0==0);
TR0=0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 单片机外接12M的晶振,1ms的基准延时函数用C语言怎么写? 8MHZ的晶振定时10us该怎么写,C语言 微信防误触怎么关闭 全国物流保通保畅运行情况,疫情是否会冲到物流业? 白萝卜小白虾怎么做汤 白萝卜小白虾如何做汤 公主职位表 妃子职位表 阿哥职位表 王爷职位表 详细 长 王爷职位表 ~ 帮帮忙~ 怎么把冰封王座搞成宽屏的?我的电脑分辨率是1366x768的 希望高人指点 急用! 小米2短信,通讯录只要进去界面,就显示加载,然后就有个圆圈一直转,怎么办 华为儿童手表 3 Pro 添加联系人时一直在转圈,无法同步至手表,怎么办? 空调用多大的空气开关? 臭氧泄漏对人体有哪些危害呢 高中地理教学的工作总结 四十岁的男人,一位四十岁男人的内心独白 伊利婴儿奶粉怎样冲泡 离线随申码怎么更新时间 伊利婴幼儿奶粉 伊利婴儿奶粉好吗 昨天梦到一个人,突然就有点想他,想去见他啊 怎么回事,为什么? 提高机械效率有哪些方法?拜托各位大神 请问,延时1ms,的延时函数怎么写 怎么算的,假如是12mhz的晶振 [C51单片机C语言]:能否根据晶振和要延时时间定义一个通用的延时函数? stm8单片机软件延时问题 父母选购塑料玩具应注意什么 塑料电缆线槽需要3c认证吗? 梦见在雪地里走 橄榄油做面膜的作用与功效 橄榄油的护肤效果 交通银行信用卡退息靠谱吗 我胃窦糜烂每次拉出的大便里有青菜叶子发黑没有消化需要检查肠镜吗是什么原因造成 吃饭后吸收不好,吃东西不消化。从大便中明显能看出吃的东西。吃的青菜之类的只是菜叶变成黑色的了。 怎么处理宣纸不会被晕染 怎么能让晕染的的宣纸马上干 宣纸画泛黄了怎么处理? 技校的自主择业申请书怎么写? QQ三国中,24级YY(魏国)怎么升级快,赚钱快? 档案是放在人才市场还是人力保障局 植树节来历和意义 看完你就知道了 辛弃疾妻子是谁? 档案可以一直放在人才市场吗