怎么编写单片机晶振为6MHz,编写100ms延时程序?

设主频12MHz的51单片机,编一个100ms二重循环的延时程序如下,供参考。

其它汇编可以类似编程。

SSSS:MOV R0,#99;本指令是单周期指令,用时1usKKKK0:DJNZ R0,KKKKK;2usMOV R1,#125;1usLLLL0:DJNZ R1,LLLLL;2usNOP;1usNOP;1usNOP;1usNOP;1usLLLLL:SJMP LLLL0;2usNOP;1usNOP;1usNOP;1usNOP;1usNOP;1usKKKKK:SJMP KKKK0;2usNOP;1usNOP;1usNOP;1usNOP;1usNOP;1usRET;2us这段程序延时时间是1+99*[2+1+125*(2+1+1+1+1+2)+1+1+1+1+1+2]+1+1+1+1+2=100000us=100ms可以适当调整循环常数99、125以求减小NOP(空操作指令),使程序更加精练。

dshxxf程序不错,但延时时间是50301us,计算如下1+100*(1+2*250+3)

单片机系统晶振为6MHz,编写一个0.8秒的延时程序,采用定时器0,...

DELAY1MS: MOV R6,#47HDL0:MOV R5,#02HDJNZ R5,$DJNZ R6,DL0RETvoid delay1ms(void) {unsigned char a,b;for(b=71;b>0;b--)for(a=2;a>0;a--);}DELAY100MS:MOV R6,#0ADHDL0:MOV R5,#8FHDJNZ R5,$DJNZ R6,DL0RETvoid delay100ms(void) {unsigned char a,b;for(b=173;b>0;b--)for(a=143;a>0;a--);}

51单片机C语言程序,利用定时器1控制LED灯每隔100ms亮一个,并...

#include #include //本例采用89C52, 晶振为11.0592MHZ //关于如何编制音乐代码, 其实十分简单,各位可以看以下代码. //频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍; //所以拿出谱子, 试探编吧! sbit Beep = P1^5 ; unsigned char n=0; //n为节拍常数变量 unsigned char code music_tab[] ={ 0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10,0x1C, 0x10, 0x18 , 0x40,0x1C, 0x20, 0x20 , 0x20,0x1C, 0x20, 0x18 , 0x20,0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 , 0x1C,0x20, 0x20, 0x20 , 0x26,0x40, 0x20, 0x20 , 0x2B,0x20, 0x26, 0x20 , 0x20,0x20, 0x30, 0x80 , 0xFF,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x80,0x20, 0x30, 0x1C , 0x10,0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20,0x2B, 0x20, 0x30 , 0x20,0x2B, 0x40, 0x20 , 0x15,0x1F, 0x05, 0x20 , 0x10,0x1C, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x30,0x20, 0x30, 0x1C , 0x10,0x18, 0x40, 0x1C , 0x20,0x20, 0x20, 0x26 , 0x40,0x13, 0x60, 0x18 , 0x20,0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00}; void int0() interrupt 1 //采用中断0 控制节拍 { TH0=0xd8; TL0=0xef; n--; } void delay (unsigned char m) //控制频率延时 { unsigned i=3*m; while(--i); } void delayms(unsigned char a) //豪秒延时子程序 { while(--a); //采用while(--a) 不要采用while(a--); 各位可编译一下看看汇编结果就知道了! } void main() { unsigned char p,m; //m为频率常数变量 unsigned char i=0; TMOD&=0x0f; TMOD|=0x01; TH0=0xd8;TL0=0xef; IE=0x82; play: while(1) { a: p=music_tab[i]; if(p==0x00) { i=0, delayms(1000); goto play;} //如果碰到结束符,延时1秒,回到开始再来一遍 else if(p==0xff) { i=i+1;delayms(100),TR0=0; goto a;} //若碰到休止符,延时100ms,继续取下一音符 else {m=music_tab[i++], n=music_tab[i++];} //取频率常数 和 节拍常数 TR0=1; //开定时器1 while(n!=0) Beep=~Beep,delay(m); //等待节拍完成, 通过P1口输出音频(可多声道哦!) TR0=0; //关定时器1 } } 展开

51单片机,用键盘输入数码管显示的程序!!!用汇编语言,大家帮忙...

再显示下一个数码管数据,要关了上一个数码管你如果没有用译码器,那应该问题出在扫描部分。

在显示下一个数码管显示的时候,有两种方法。

这样一直扫描。

固定扫描时间,同时更新第二个数码管数据输出端的数据。

延时一段时间之后,一种是定时器中断,一种是自已用延时程序来自已作一个软件定时器。

还有一个要注意的问题就是按键要设置一个40-100ms的延时...

delay语句解释 最好全部帮忙说明下, 这是个atmega128编程。

谢谢大...

哥们,这就是一个流水灯程序。

让灯不停的来回亮。

m_delay(100)是延时100ms,在程序中两个for循环是由软件计算出时间的,至于代码前加__disable_interrupt(),代码后加__enable_interrupt()也就是防止在延时过程中延时被打断,中间的代码又称为临界代码。

原因很简单,如果在延时过程中发生了中断,中断处理和中断恢复会占用一定的时间,那么就增加了延时的时间。

所以这里是可以加上这两句代码的。

接下来就是配置B口为输出且输出为高电平,流水灯向左为变量L_shift,向右微R_shift。

每一个灯亮灭100ms。

c语言延时100us程序,编写100MS软件延时程序 汇编语言编写延时程序相关推荐

  1. python能编写手机软件-怎么用Python编写一个手机聊天软件或程序

    首先声明下,下面的答案是从博客上粘过来了,因为以前自己写的时候也参考这个写的. 基于UDP的聊天程序服务器端源程序: #include "winsock2.h" #include ...

  2. ⭐程序员必备软件图鉴⭐(建议收藏)

    ⭐程序员必备软件图鉴⭐(建议收藏) 文章目录 ⭐程序员必备软件图鉴⭐(建议收藏) 前言: 一.系统处理类 无声的安全管家:火绒安全软件 压缩/解压神器:Band Zip 远程控制软件:向日葵 文件解锁 ...

  3. keil c语言 延迟程序,Keil C51程序设计中几种精确延时方法

    前几天时间在做一个基于51单片机开发板的等精度频率计,用LCD1602液晶显示的,晶振是22.1184MHZ,用得是测频率法,目的是想做到能够测试0--900KHZ的信号. 液晶显示部分花了我好几天才 ...

  4. c语言编写词库_C语言课程设计--电子生词库软件

    C语言课程设计--电子生词库软件 程序设计基础实训任务书程序设计基础实训任务书 题目电子生词库软件 学生姓名 学号 班级 题目类型软件工程(R) 指导教师 一.设计目的一.设计目的 1.进一步掌握和利 ...

  5. SAS(三)SAS软件基本介绍及编写第一个SAS(HelloWord.sas)程序

    SAS软件基本介绍及编写第一个SAS(HelloWord.sas)程序 SAS软件基本介绍 菜单栏: 文件 编辑 工具 解决方案: 各功能模块 窗口 帮助 SAS资源管理器 我的电脑 逻辑库:类似我的 ...

  6. kiel实现c语言编程,Kiel 软件的使用和简单C程序调试

    <Kiel 软件的使用和简单C程序调试>由会员分享,可在线阅读,更多相关<Kiel 软件的使用和简单C程序调试(15页珍藏版)>请在人人文库网上搜索. 1.单片机原理与接口技术 ...

  7. python编写的软件界面-为Python程序添加图形化界面的教程

    Python支持多种图形界面的第三方库,包括: Tk wxWidgets Qt GTK 等等. 但是Python自带的库是支持Tk的Tkinter,使用Tkinter,无需安装任何包,就可以直接使用. ...

  8. 用c语言写程序求序数的后缀,用C编写mex程序

    用C编写mex程序 大家都知道,matlab是一种解释型的编程环境,也就是说,跟以前的basic一样,是读 一句执行一句的.这样做可以很方便的实现编程过程中的交互,也免去了麻烦又耗时的 编译过程.但凡 ...

  9. 完成杂志续订c语言程序,C语言程序设计报告杂志订阅管理软件.doc

    C语言程序设计报告杂志订阅管理软件 C 语 言 程 序 设 计 学院: 工程学院 班级序号: 学号: 20071003303 姓名: 华进 指导老师: 刘文中 前言 我们学习C语言课程设计的主要目的是 ...

最新文章

  1. vim 7.4同时支持python 2.x和3.x问题调研
  2. mysql怎么增添数据_MySQL数据库怎么增添新用户
  3. 云上人替代方案训练代码
  4. Oracle大的存储层次体系,Oracle 数据库中的逻辑存储层次体系
  5. maven选包算法(两个相同的包)
  6. 如何让fragment刷新界面_快速实现android版抖音主界面的心得
  7. Spring框架 DI
  8. D3 transtion
  9. 设计牛人——设计入门答疑番外篇有感
  10. 腾讯广告算法大赛高分秘籍来袭!大咖直播详解TI-ONE与Angel框架
  11. 使用 CSS3 实现 3D 图片滑块效果
  12. socket简介和udp网络程序-发送、接收数据
  13. matlab:高斯函数对图像的空域滤波和频域滤波
  14. 快手与欧足联达成版权合作,获本赛季欧冠直播和短视频二创授权
  15. 一男的为媳妇写的、帅死了
  16. 慈航公益仲恺义工大区和爱心企业助力探亲日慈善活动
  17. Portainer-docker可视化工具
  18. async/await的用法
  19. fabric-ca服务构建及证书生成
  20. 求一百个人中有人生日相同的概率

热门文章

  1. 分析各家2440开发板的性价比(初学者如何选择开发板)
  2. Transformer最详细的原理加代码解读
  3. PHP工厂模式的好处
  4. 使用okHttp下载文件到本地
  5. 【要找能给你解决问题的人解决问题】
  6. WebRtc以Trickle ICE形式去进行pair
  7. Leetcode_12_Integer to Roman
  8. 微信小程序新手入门教程
  9. VMware Tools
  10. 旺店通·企业奇门与用友BIP旺店通销售出库单对接销售订单