89C51单片机,假定单片机晶振频率6MHz,试编写延时2ms的程序 编写延时子程序:单片机晶振频率为6MHZ,试编写一段4ms的...

作者&投稿:邸狄 (若有异议请与网页底部的电邮联系)
单片机晶振频率6MHz的时钟周期是0.166uS,89C51的指令周期是12个时钟周期,约等于2uS。
以下是例程:
汇编
DELAY: MOV Rn,#200 循环200次 *10uS = 2mS
LOOP: NOP 一个指令周期
NOP
NOP
DJNZ Rn,LOOP 二个指令周期,一次循环总共5个指令周期耗时10uS
RET

C语言 #define NOP _nop_(),_nop_(),_nop_()

for(int i = 200;i!=0;i-- )NOP;

DELAY2: MOV R1,#250
Q: NOP
NOP

DJNZ R1,Q

RET

void delay2ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}

若AT89S51单片机的晶振频率为6MHZ试计算延时子程序的延时时间~

单片机晶振频率6MHz的时钟周期是0.166uS,89C51的指令周期是12个时钟周期,约等于2uS。
以下是例程:
汇编
DELAY: MOV Rn,#200 循环200次 *10uS = 2mS
LOOP: NOP 一个指令周期
NOP
NOP
DJNZ Rn,LOOP 二个指令周期,一次循环总共5个指令周期耗时10uS
RET
C语言 #define NOP _nop_(),_nop_(),_nop_()
for(int i = 200;i!=0;i-- )NOP;

void delay(void)
{
uchar i;
for(i=0;i<100;i++)
{
_nop_();_nop_();//6MHZ下一个NOP是20us,4ms就是200个NOP
}
}

51单片机AT89c51怎么来设计信号发生器,要求晶振6HZ,P1.1引脚输出频率为5...
答:很久没接触过了 C51忘得差不多了。书上是有例子的 主函数 { TR0=1/;。。。这寄存器设置是相关 TH0=(65535-time)/256;TL0=(65535-time)%256; //这个是在12M晶振下,6M的话计时值就减半吧 其中time是你要定时的时间,单位是us while(1);} 具体真想不起来了 ...在中断服务函数中...

AT89C51单片机外接晶振频率为24MHz,要求编程从TXD管脚输出一频率为20...
答:include<reg51.h> // 24MHz //unsigned char j;sbit P3_1 = P3^1;void main(){ TMOD=0x20;TH1=256-50; // 定时器1设为自动重装载,计数器模式 TL1=256-50;EA=1;ET1=1;TR1=1;while(1){ } } void Timer1(void) interrupt 3 // 定时器1 { P3_1=~P3_1; // ...

已知51单片机89C51的晶振为24Mhz,请利用定时器0定时的方法在P1.0口输 ...
答:START:MOV R0,#5 MOV TMOD,#01H MOV TH0,#0B1H MOV TL0,#0E0H SETB TR0 NEXT: JB TF0,NEXT1 SJMP NEXT NEXT1:CJNE R0,#5,NEXT2 CLR TF0 SETB P1.0 SJMP LAST NEXT2:CJNE R0,#4,NEXT3 CLR TF0 SETB P1.0 SJMP LAST NEXT3:CJNE R0,#3,NEXT4 CLR TF0 SETB P1.0 SJMP ...

新手学习C51单片机(AT89C51),不懂晶振 能不能解释下下图的晶振电路
答:它的原型是《电容三点式》正弦波振荡电路;后来,又有《考比茨》和《西勒》两种改进型;目前广泛使用的晶振电路,是属于西勒电路,晶振,是在这里充当《电感》来使用的。《高频电子线路》,专门讲无线发射、接收方面的知识。高频的振荡电路,是其中必不可少的基本电路。现在的单片机方面的书,并不讲振荡...

假设51单片机采用12mhz晶振,利用单片机制作一个测量电阻为0-1kkhz的...
答:你好,这是一个1602液晶屏显示的简单频率计,最大测量频率可达65.535 KHZ include <reg52.h> define unit unsigned int define uchar unsigned char //定义以I/O口的功能 sbit beiguang=P3^2;//液晶屏背光 sbit rs=P1^3;//液晶屏写选择,0命令 1数据 sbit rw=P1^4;//液晶屏读写选择 sbi...

8051单片机系统中,已知晶振频率为12MHZ,用定时 计数器T1,编程实现从P...
答:include define uint unsigned int sbit  P1_1=P1^1;void  main( ){ uint i;TMOD=0x10;        //设置T0定时,工作在模式3              ...

已知,AT89C51单片机晶振为6MHZ,工作于定时方式1,现要求定时10毫秒,请...
答:要求定时 10 000us。晶振 = 6MHz,机器周期T是 2us。定时 5000T 即可。初值:65536 - 5000 = 60536 = EC78H MOV TMOD, #01H ;T0工作于定时方式1 MOV TH0, #0ECH ;写初值 MOV TL0, #078H

、在AT89S51单片机中,如果采用4MHz晶振,一个时钟周期是多少?一个机器...
答:1)晶振频率:fz=4MHz,时钟周期:Ts=1/fz,机器周期:T=12*Ts;2)复位信号最小时间:3)乘除法指令机器周期:

单片机c51编程。系统晶振频率为12Mhz,利用定时计数器T0的方式1,并使用...
答:每隔 250ms 翻转一次,就是输出周期500ms的方波。

c51单片机一些简单设计中,晶振的频率应该怎么选?
答:如果用定时器定器,选12M,计时比较准确。如果用串口通信,选11.0592M,波特率比较准确。不用串口通信,就选12M,也比较好。