单片机C51写一个延时50ms的函数例题

作者&投稿:自霭 (若有异议请与网页底部的电邮联系)
请帮忙写一个单片机C51一个延时50ms的函数例题~

延时实际上就是让CPU暂停当前的任务,去执行一些空操作或其他任务.当然去执行其他任务所花的时间你必须要能够确定.不然可能会影响当前任务.常用的都是让它执行空操作.用C来实现就是给一个或几个变量让它再那里自增或自减.下面就是最基本的一个例子
void delay50ms()
{
unsigned int i;
for(i=50000;i>0;i--);
}
当然可以也可以用定时器来实现,时间也更精确.例子楼上那个就是标准的.具体用哪一个那要看用什么场合

用STC-ISP V6吧,很方便
DELAY50MS:;@12.000MHz
PUSH 30H
PUSH 31H
MOV 30H,#98
MOV 31H,#62
NEXT:
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 31H
POP 30H
RET

适合89C52,11.0592M晶振‘
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}

DELAY: ;误差 0us
MOV R6,#01H
DL0:
MOV R5,#16H
DJNZ R5,$
DJNZ R6,DL0
RET

void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=114;j>0;j--);
}


p43-c51主板上呢个红色方块是啥
散热片是一种给电器中的易发热电子元件散热的装置,多由铝合金,黄铜或青铜做成板状,片状,多片状等,如电脑中CPU中央处理器要使用相当大的散热片,电视机中电源管,行管,功放器中的功放管都要使用散热片。一般散热片在使用中要在电子元件与散热片接触面涂上一层导热硅脂,使元器件发出的热量更有效...

单片微机原理汇编与C51及接口技术图书目录
这本书的目录涵盖了单片微机原理的多个关键领域,从基础概念到实际应用,详细阐述了汇编语言、C51编程以及接口技术。以下是各章的主要内容概述:第1章 微型计算机基础 介绍了计算机中的数制、编码,以及逻辑运算和部件,如触发器、寄存器和计数器。深入剖析了MCS-51单片机的基本组成,存储器配置,以及不同...

C51中的data和idata有什么区别,谢谢了
1、作用机理不一样:data:直接寻址的片内RAM区低128B(00H~7FH)。idata::单片机间接访问的片内RAM区,允许访问全部片内RAM。2、使用的方向不一样:data:计算机中程序、文稿、数字、图像、声音等信息。idata:idata是51系列单片机能识别的存储器类型之一,固定指前面0x00-0xff的256个字节的片内...

stc89c51和89 c51有什么区别?
2、STC89C51是宏晶公司生产,AT89C51.是Atmel公司生产。3、STC89C51可以在线编程也就是有ISP功能,AT89C51必须通过编程器烧录。4、STC89C51具有6T模式,速度要快些,AT89C51是12T模式。5、STC89C51集成了512或1280字节的RAM ,AT89C51没有。6、STC89C51有3个16位定时器,AT89C51是2个(52是3个)。

stc89 c51的引脚个数?
数据存储器大小:4KB(4096);程序存储器大小:56KB;内置EEPROM大小:3KB;次单片机特点:1. 增强型 8051 CPU,1T,单时钟\/机器周期,速度比普通8051快8-12倍 2. 工作电压:2.5V - 5.5V 3. 56K字节片�Flash程序存储器,擦写次数10万次以上 4. 片内大容量4096字节 的SRAM,包括常规...

急!!!急!!急!跪求16X16LED点阵移动字幕 用C51单片机制作 带电路图的...
#define TOTAL 20 \/\/待显示字个数,本例共20个 #define CONIO P1 \/\/显示控制口 sbit G=CONIO^7; \/\/CONIO.7为154译码器显示允许控制信号端口,0时输出,1时输出全为高阻态. sbit CLK=CONIO^6; \/\/CONIO.6为595输出锁存器时钟信号端,1时输出数据,从1到0时锁存输出数据. sbit SCLR=CONIO^5; \/\/CONIO....

海尔LU58C51电视如何息屏听音乐?
电视机的类型结构与技术 :目前国内市场上的电视机主要分为led和OLED两大阵营,而Qled电视是指搭载量子点技术的led电视。液晶板 :液晶显示技术的基本原理是背光经过下偏光片(起偏器)形成单一偏振方向的光束也叫做线性偏振光,而tf驱动两层基板之间,液晶分子发生扭转,改变光束的偏振特性,从而产生不同的...

单片机的 分类
从应用的角度,单片机大致可分为四种。(1)通用型\/专用型。(2)总线型\/非总线型。(3)CISC/RISC指令结卡构。(4)OTPROM型\/EPROM型\/FLash ROM型 硬件特征 (1)单片机的体积比较小, 内部芯片作为计算机系统,其结构简单,但是功能完善,使用起来十分方便,可以模块化应用。(2)单片机有着较高的集...

单机片单机片发展趋势
低功耗CMOS化:早期的MCS-51系列如8031功耗较高,但随着需求变化,现在的单片机普遍采用低功耗的CMOS工艺。像80-C51就结合了HMOS和CHMOS,CMOS以低功耗见长,而CHMOS兼顾高速和低耗,特别适合电池供电设备。因此,CMOS工艺将成为未来单片机发展的重要趋势。 微型单片化:现代单片机集成了中央处理器、RAM...

avr单片机读写sd和手机sim卡的资料
单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上,概括的讲:一块芯片就成了一台计算机。单片机技术是计算机技术的一个分支,是简易机器人的核心元件。 1997年,由ATMEL公司挪威设计中心的A先生与V先生利用ATMEL公司的Flash新技术, 共同研发出RISC精简指令集的高速8位单片机,简称AVR。 AVR单片机的优势...

新城区18858454736: 请帮忙写一个单片机C51一个延时50ms的函数例题 -
凌习安宫: /*用中断比较准 晶振12M*/ #include<reg51.h> void main() {TMOD=0x01;TH0=(65536-500000)/256;TL0=(65536-500000)%256;EA=1;ET0=1;TR0=1;while(1); } void timer0()interrupt 1 {TH0=(65536-500000)/256;TL0=(65536-500000)%256; }good luck!

新城区18858454736: C51单片机计时器50ms程序编写 -
凌习安宫: 12MHz晶振,经典51核是12分频,因此时钟周期为1μs. 50ms = 50000μs,因此定时器累加至溢出需要50000个周期. 因此65536 - 50000 = 15536 = 0x3CB0 因此TH0 = 0x3C,TL0 = 0xB0. 0x4C00这个初值对应的不是12MHz晶振,*而是11.0592MHz晶振.你抄错了.

新城区18858454736: 如何用单片机编制一个延时50ms的程序? -
凌习安宫: 1、C51写的: //延时1ms子程序 void DelayMs(unsigned int n) {unsigned int i,j;for(i=0;i<n;i++)for(j=0;j<120;j++); } //调用 void main(void) {DelayMs(50) //想多少ms就填多少 } 2、汇编写的: ;;;;;;;;;;延时50ms子程序;;;;;;;;;;;;;; DELAY:MOV R7,#98D1: MOV R6,#255NOPNOPDJNZ R6,$ ;执行一次2微妙DJNZ R7,D1RET

新城区18858454736: 单片机50ms延时程序 -
凌习安宫: 如果要求计时很准确,最好还是用定时器.你这个程序虽然计算得比较准确了,可是有两点还没有考虑进来,一点是执行CALL指令调子程序的时间,一点是执行RET指令返回的时间,这两条指令各需要8个机器周期,所以,需要从上面的程序是减去16个机器周期的.所以,这种利用循环指令延时的时间是不太准确的,不过,用这种程序延时也是不要求十分精确的,没有必要,要准确就用定时器好了.

新城区18858454736: C51单片机汇编写延时子程序20分钟的延时怎么写 -
凌习安宫: 用定时中断来实现 50ms定时中断一次,20次就是1 秒. 你会1 秒了,20分钟就会了.再长的时间也能解决.

新城区18858454736: 怎样用单片机的汇编语言编写一个50ms的延时程序.(晶振频率为12MHz)ps51单片机 -
凌习安宫: DEL: MOV R7,#210 DEL1: MOV R6,#117 DEL2: DJNZ R6,DEL2NOPDJNZ R7,DEL1NOP ;此处17个NOPNOP....NOP RET 1μs+(1+234+1+2)μs*210+2μs+17=50000μs其实考虑到LCALL调用这个函数的时间,末尾应该再减少2个NOP. 另外,实际使用中需要精确延时的话应该使用定时器中断,一方面是精确,另一方面延时函数执行时,如果有中断发生,那么延时就不正确了.

新城区18858454736: 单片机延时时间程序怎么编程 -
凌习安宫: 举一个例子来说明吧.比如你要编一个延时50毫秒的子程序,那么步骤如下:1、查看一下你的硬件环境,比如晶振大小,CPU型号,不用CPU指令的机器周期是不一样的.2、计算延时需要的机器周期.比如采用12M晶振,CPU采用通用8051,...

新城区18858454736: 怎么用C51编写单片机延时函数 -
凌习安宫: 软件延时的话建议直接用单片机精灵或STC-ISP等软件计算生成的代码.用定时器的话,设置定时器基本定时时间,再增加标志判断定时器工作了几轮,基本时间*标志就是延时的时间了;如果要用时间很短的精准延时就需要计算该给TLx和THx的值了

新城区18858454736: 单片机 c51编程,求准确的延时函数. -
凌习安宫: void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=123;y>0;y--); } 要延迟的地方直接写 delay(数据);比如,delay(5);

新城区18858454736: 求用C编写一个51单片机的延时函数,用T0定时器. -
凌习安宫: #include <reg51.h>#define uchar unsigned char sbit LED=P1^0; uchar time; void InitTimer0(void) { TMOD = 0x01; //定时器0,工作方式1 TH0 = 0x3c; TL0 = 0xb0; //50ms中断一次 EA = 1; ET0 = 1; TR0 = 1; } void main(void) { InitTimer0(); while(1);...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网