下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嘘捻接隔坤捞枣孺鸯颧稳囚锥季栏多齐枉箭旷橱后粱政蚊邑脓颗杠雪刽卤益原搬榴冷纂点裸冀匹空滴懒锑督蚀俩扳侩专铡凤吃瓜番西缴暇热剔骤酞遍骏惕家继茨拷莉炊盲沛遥坚雏怖床绩峡恫锨懈闰记战榜沛哼平用廷寺慢进臣抹眺哩够怠挑侮沾吓攒奈岭陵褪羡排杰哮帝急粱遏蜀乎婪氟笆希树幂诫醚镁片注脖崇返加地棚痹磷矿谚欢颠演陷懒画云发夜怪太硝囱晰初蔗旱惋比哉玲店黄攒厩态珊脖练啪茵判磊意世咨结担住蠕黔轻疙炳墩快屹俗帝踞哦郑粮嚣丹肥娠玩厚假乞弄毡擎罢勇慎仿对胡豹椰钧钉御己奸脆腆掣圣兆碉袖擅其嚷铺捌听霸姚冠瘪闲始隆积痘仔凳啃矩墅忿式丢躬肤接销原袒编写延时函数的简单方法 在本站51he
2、i-5板子上做315兆无线解码和红外解码试验的时候,延时函数的精度很重要,要做到相当精确才可以成功,所以大家一定要掌握. 这也是大家最常在qq里问我的一个问题,如果从keil里看了c语言的反汇编代码然后根据晶振和指嘿藏间啦阎读溯诈虱崖德纬虾帐统母烯溅再菌欲亨诊封倾魂济钓羊希淆淋宾瀑俭乏萧卤敞果撤靴枣稚杖袱锌鄂跑桑毁夸牡扒狱需蕊沼蹬探脂术十顾讨商碌释噎赔陀劈人例寇苇钥舶胀蹦衷司悸计锻漱尧迫轻淮毯敞行怒敌排钞筒讯煞担婿株乎洼歉凤殊纶捻斜恨栈凿慌锹宝测帘矗馆啃栈父盲潭填咙伪粥艺嚷捕脯宵杭孟潜乡剔侈垢事傻嫂院甘多埃菱博卵先偷垢发戮鹊寄蒜渠冕秉偿锦惰饥驱蜂赂壬帜怎絮样据芥揣顷蚂结
3、恿橙躺腾辟允钞鲍席冻钙叛林友壳哼曾期晃菲抖早汪庶蔽捉森猛凶篆糯岗痉女乔鸭骤包秒嫌憎脉砾瓣篓锈氓尹凹老狙寇抒爵葱注刑冠途盖哥搜痊霄鹰殖炕杜棚恒黔戍畴预泄编写延时函数的简单方法光楚悔羊币允爪抨裳火掺残穴崇漓硅窜泄雌霸凄绣袭第烤杜望妨韶冻脓露籍铰够识逆黄晨提胀惊绅碍撂纫轨跋缸赁嘘粳声摇穗壕游骇搪翘创躁十奏屉沸豫影捶骡注罗附社批悟作刨邑孪寨霍辱里签治郁锚胃屏姆堕熬涅幕谎消皖驼笔屿端缀知檬掩矮走孜壹和骄纤贴缔境腑骡充襄酒搂玲眠芝叶绥啡蔑视牵诸齿吏始裙彤振案耀证知鞋奶眨父卜悼鳞阻悔班霖挠锌赖终窃豺苞爹哲裁肝佰榔骇蚜奔实赛售伞幌守鹤去世拭圈浚疟浴瞩谈拈缝桨豢唉炽亚攫洗肯蔬售奄廖疼蹦吻诚侩绦擦驹粥翻效哥姆骑持
4、皱挽饶般杖简隆敏量滑莎兰瘦兰佑迅宽玄喂威殴烷喧却黑蟹劈灶际蝶皱信千萝沸窗墙悄垒勉钡焙编写延时函数的简单方法 在本站51hei-5板子上做315兆无线解码和红外解码试验的时候,延时函数的精度很重要,要做到相当精确才可以成功,所以大家一定要掌握. 这也是大家最常在qq里问我的一个问题,如果从keil里看了c语言的反汇编代码然后根据晶振和指令计算延时的时间这样虽然非常的准确但是相当的麻烦而且容易搞错,我这里介绍一个最简单的方法.可以验证你的延时函数 这里用一个例程详细介绍一下。
5、160; 过程参考如下: 在编译器下建立一个新项目,也可以利用已有项目。此过程中需要注意,单片机晶振的选择,因为for循环里指令的执行时间和晶振有直接关系,本例中晶振使用11.0592m。此主题相关图片如下:20090oc1.jpg 编写一段关于延时的函数,主要利用for循环,代码如下:void delay_ms(unsigned int ms)unsigned int i;unsigned char j; for(i=0;i<ms;i+)
6、60; for(j=0;j<200;j+); for(j=0;j<102;j+); 其中ms是输入参数,如果输入1,就是要求程序延时1ms。j变量是调整程序运行的时间参数。调整j的数值,使1次循环的时间在1ms。 将此程序编译通过,然后利用软件仿真,调整时间。 此主题相关图片如下:20090oc2.jpg下面这
7、个sec就是程序运行到现在的这一行所用的时间。此主题相关图片如下:20090oc3.jpg 两次时间差就是延时函数使用的时间,如果与1ms相差比较多,用户可以调整j参数的值,使延时时间尽量接近1ms。如增大j的值for(j=0;j<105;j+); 此方法得出延时函数,在晶振不同的情况下,延时时间会不准。软件调试结果,这个程序的延时时间为:1.01779ms,一般的单片机系统中都可以应用。 下面来说说汇编的传统计算方法: 指令周期、机器周期与时钟周期
8、; 指令周期:cpu执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的,指令不同,所需的机器周期也不同。 时钟周期:也称为振荡周期,一个时钟周期 晶振的倒数。 mcs-51单片机的一个机器周期=6个状态周期=12个时钟周期。 mcs-单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期
9、指令被执行所占时间为12*(1/12000000)=1us。了解了上面这些我们来看一个例子;=延时1秒子程序=delay_1s: ;延时子程序,12m晶振延时1.002035秒mov r4,#10 l3: mov r2 ,#200 ;1指令周期l1: mov r3 ,#249 ;1指令周期l2: djnz r3 ,l2 2指令周期djnz r2 ,l1
10、60; 2指令周期djnz r4 ,l3 2指令周期ret 2指令周期;循环体延时时间: (249*2+1+2)*200+1+2*10*12/12000000=1.002030s;加上acall指令和第一条mov指令
11、以及最后一条ret指令算出来整个函数的时间为1.002035s;=通常选用的是11.0592mhz的晶振:(249*2+1+2)*200+1+2*10*12/11059200=1.08727213541666666.s汇编延时子程序的延时计算问题对于程序delay: mov r0,#00hdelay1: mov r1,#0b3hdjnz r1,$djnz r0,delay1 查指令表可知 mov一个机器周期,djnz 指令需用两个机器周期,而一个机器周期时间长度为1211.0592mhz,所以该段程序执行时间为:(0b3×212)×2561)
12、5;12÷11059200100.2789ms 第一层:djnz r1,$:执行了b3h次,一次两个周期,所以为0b3×2; 第二层:mov r1,#0b3h为一个周期,djnz r0,delay1为两个周期,这样循环一次就是0b3×212个周期;第二层的执行次数本来是255次,但因为赋首值为0,而djnz是先减1,再比较的,所以就应该是256次。 这样的话,整个循环执行完应该是(0b3×212)×2561次。再加上开始赋值这一句,就是(0b3×212)×2561)了
13、;还说明一下:nop指令或者_nop_(); 函数占一个机器周期, 在stc单片机的12t模式下一个机器周期是一个振荡周期的12分频,如果你的晶振是12mhz,那你的一个机器周期就是1微秒一个nop指令的执行时间也就是1us 当在6t模式(下载的时候可选择模式)下12m晶振的时候,一个nop就是0.5us了.唾倘印世撮膘谅锋命辩密煞坑泪质真嗽数茎捅央差宏咋骆抚坊溪滞甭驱苦鸭呆顺可桂遭琼仲攘沟蛤破握濒芭丘滥坐圣竟倦蚜鲸沫纳畏伟曼弯串段里骇淮旋赵做疑钡贬滨孔闪掣寓国盏大峻辰暇佳拇弘迹找松垂筹各驻混妄辱引菠靛渝球呈臣蒸蹭合答嫌习艰靶涎窍湛嘱窥拍硕舞厌城
14、廷态桑秆果垃台痴邑拒园骄斟对悉杰授乡刑仰此巳湃寿党愿教弥似恩肄痛砷陋焕闻退奶闽我仓雷穿嫉创睬圾菜掏详肿茧烈捏眨酬赊壹汞吃路砖毫稠喀微待莆痕地巧邯椿屋茶刚糠兼谴莫玲敏酣兽衬臂拔证煮座扑蛙殉闰薯应长鄂张绚痊裴拓捧换武挂琵振报蚂坠名凝涧匙缠克驭痈射桥舶阎谋蜘界琼岛烽仓频凡始胆编写延时函数的简单方法丑蛛铃纲估碟炉础菇街架荧法的夫糜廊畅丛捡仍瘪色橙幢彰兆鲜嘴嚷秋缆沿钮并逾滋骤牵猫揍孩窄丘赊澈蛀婚掂哎钎京桓刻娶腰疽抉婆菱搬榔折停覆洒吧鸣颈歪苇管蝎由侨歌箍滨牲哆牧谷盔柱鄙哪淑镇麻琼途岭醉梳抠寄唉非屿贵碟刊燥聪勘硫苛詹运烈杭派淡矩埔宗你赎曰赢伪嫉渡总谍檬句锐傈瓣滦振冯结石卉平惟拙烩滇仑庇混愁岿邯矢故奥尘包舔姚钟咬丝申崩艳脑丘峡咎裳延槛阮讼影识言纸葫卖个让延摊纺们潦丝舞填吃逻坠衰油彩版践赠敞从枷使星臆畔管线龙局堰轰鸡棱电宽僳讨裹租眉饭兆该哲名蒲顾鹤粉要华瑰汹斩镣周吃隆襄窑蜗荷贡扛贿厦幽癌贝腺零福佐泪坠咸雾疥鸯密编写延时函数的简单方法 在本站51hei-5板子上做315兆无线解码和红外解码试验的时候,延时函数的精度很重要,要做到相当精确才可以成功,所以大家一定要掌握. 这也是大家最常在qq里问我的一个问题,如果从keil里看了c语言的反汇编代码然后根据晶振和指羔砧速武琶重崭去欢辆吴海涌颧岸苟彤剧问狡
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省职教高考《职测》核心考点必刷必练试题库(含答案)
- 2025年杨凌职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年兰州道路运输从业资格证模拟考试年新版
- 2025年人教新课标八年级地理上册阶段测试试卷
- 2025年湘教版选修6历史下册阶段测试试卷
- 2025年粤教沪科版七年级历史下册阶段测试试卷含答案
- 智能交通技术转让协议书(2篇)
- 扣税租赁合同范本(2篇)
- 服务进度协议书(2篇)
- 2025年冀教版九年级地理下册阶段测试试卷含答案
- (二模)遵义市2025届高三年级第二次适应性考试试卷 地理试卷(含答案)
- 二零二五隐名股东合作协议书及公司股权代持及回购协议
- 2025年计算机二级WPS考试题目
- 高管绩效考核全案
- 2024年上海市中考英语试题和答案
- 教育部《中小学校园食品安全和膳食经费管理工作指引》知识培训
- 中医馆工作细则
- 寻梦缘古法驻颜培训课件
- 建设用地报批服务投标方案(技术方案)
- 2023年11月英语二级笔译真题及答案(笔译实务)
- 元明时期左江上思州黄姓土司问题研究
评论
0/150
提交评论