永发信息网

单片机中时间问题

答案:5  悬赏:30  手机版
解决时间 2021-04-09 16:40
1、delay(unsigned int x)
{ while(x--);}
以及
2、delay(unsigned int x)
{for (i=0,i这两个时间函数,他们所延迟的时间分别是X的多少倍?怎么结算的!
谢谢高手指点!

函数2中的I是定义的全局变量!单片机的晶振为12M。
最佳答案
C语言的执行时间,从来就没有计算公式。
C程序的执行时间,和操作系统有很大的关系,和编译软件也有关,在单片机中,更和变量的存储类型有关(如单字节变量、两字节变量)。
因为有如此多的不确定因素,所以,从来就没有办法计算C的执行时间。
只是可以在仿真调试的时候,进行实际测量,得到一些(难以通用的)经验数据。
楼主要想准确的控制时间,应该研究使用汇编语言,或者使用硬件定时器。
C语言,只能干些粗活。
全部回答
这个取决于你使用晶振的大小! 比如说:12MHz的 每一个指令时间为:1us 如此类推! 当X为1000,就相当于1ms的延时作用
可以用定时器中断时现 比如用定时器1 通过写TMOD寄存器进行如下设置: C/T=0 定时/计数器1工作于定时方式 M1=1;M0=0--选择工作模式1,构成最大定时器 GATE=0 再通过写TL1和TL0指定定时时间, 比如定时50ms可设为 TL1 = 0x13; TH1 = 0x2C; //指定定时时间为50ms //65536-50/(11.0592/12)=11283=2C13h 然后开定时器中断 ET1 = 1 当计时满后会进入定时器中断服务程序 在中断服务程序中这样设计: TL1 = 0x13; TH1 = 0x2C; //重新赋值 timer_count++;//定时器计数器加1 timer_count为自己定义的一个变量,每进入一次中断,对变量加1,然后再退出中断,这样可以实现任意时间的定时,比如定时1s,即当timer_count等于20时时定时时间即为1s。 我是用C语言写的,你可以转为汇编语言。
两个函数的延时时间都是一样的,随X的值变化 一般一个机器周期的时间都是1us,例如调用延时函数是写delay(1000);那就是延时1000us
随便找个51的书就有,写出公式你也不一定看得懂. t = 12 * ( 65536 - m ) / fosc 其中:t 代表需要设定的时间 m 代表计时器初值 fosc 代表晶振频率 12 代表分频数 注:本公式仅限于12分频类51系列单片机,其他分频方式单片机请参照数据手册自行修改 多谢!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
代办社保的公司哪个好?
神龙集团地址在哪,我要去那里办事
哪种柚子最好吃,什么品种的柚子最好吃
汽车钥匙失灵和车上小红灯不亮有关系吗?
—Iwonderwhythey’relate.—They________the
请问在松原一套74.54平方米应交多少契税
酸料水果那个料汁有谁知道怎么做吗?
如图是国庆庆祝的活动标志,它以数学“60”为
三星手机开机后直接黑屏怎么办,急需求解啊?
说服人的广告台词,有些话能说服他人,却说服
小南沟村地址有知道的么?有点事想过去
人物品格的谚语,关于人物品格的诗句有哪些描
用同一浓度的稀盐酸分别溶解相同质量的CuO和F
补办驾驶证必须到户口所在地的车管所分所吗(
关于诸葛亮的七字诗句,诸葛亮的一生功绩中:六
推荐资讯
单选题细菌和真菌都不能进行A.光合作用B.呼吸
当实数m为何值时,复平面内表示复数z=(m2-8m
COD4读取等级错误,等级将被重置这个问题如何
橙光小游戏exo之专属化妆师 怎么玩。
德高金属怎么去啊,有知道地址的么
鼻头长痘痘,很大颗,挤出来很多脓
爱掉毛的狗狗怎么养,狗狗老是掉毛怎么办
请教高手,wordpress怎么把中文链接变成英文
2014东京住哪个区比较方便
美国国旗怎么画,中国,英国,美国,日本的国
宽容的句子说说心情,经典心情说说
姓陈的怎样自我介绍,陈佩玲这名字,如何进行自
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?