① AT89C51单片机系统的晶振频率是12MHZ,阅读以下汇编代码回答问题..求大神高分悬赏啊!!
原程序:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTT0
ORG 0100H
MAIN:
MOV TMOD, #01H
MOV TH0, #0ECH ;定时5000us
MOV TL0, #78H
SETB ET0
SETB EA
MOV R7, #0AH
SETB TR0
SETB P1.7
SJMP $ ;等待中断
ORG 0200H
INTT0:
MOV TH0, #0ECH
MOV TL0, #78H
DJNZ R7, LEDRET ;中断10次了吗?
CPL P1.7 ;50ms取一次反
MOV R7, #0AH
LEDRET:
RETI
END
---------------------------
请对代码进行修改,以利用T0的工作方式0实现同样的功能:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INTT0
ORG 0100H
MAIN:
MOV TMOD, #00H ;方式0
MOV TH0, #63H ;定时5000us
MOV TL0, #18H
SETB ET0
SETB EA
MOV R7, #0AH
SETB TR0
SETB P1.7
SJMP $ ;等待中断
ORG 0200H
INTT0:
MOV TH0, #63H
MOV TL0, #18H
DJNZ R7, LEDRET ;中断10次了吗?
CPL P1.7 ;50ms取一次反
MOV R7, #0AH
LEDRET:
RETI
END
---------------------------
请对代码进行修改,以利用T1的工作方式0实现同样的功能:
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP INTT1
ORG 0100H
MAIN:
MOV TMOD, #00H ;方式0
MOV TH1, #63H ;定时5000us
MOV TL1, #18H
SETB ET1
SETB EA
MOV R7, #0AH
SETB TR1
SETB P1.7
SJMP $ ;等待中断
ORG 0200H
INTT1:
MOV TH1, #63H
MOV TL1, #18H
DJNZ R7, LEDRET ;中断10次了吗?
CPL P1.7 ;50ms取一次反
MOV R7, #0AH
LEDRET:
RETI
END
---------------------------
② 晶振在单片机中的作用是什么
没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。
单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。—个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,它的一个机器周期是12×(1/12)us,也就是1us。
MCS—51单片机的所有指令中,有一些完成得比较快,只要一个机器周期就行了,有一些完成得比较馒,得要2个机器周期,还有两条指令要4个机器周期才行。为了衡量指令执行时间的长短,又引入一个新的概念:指令周期。所谓指令周期就是指执行一条指令的时间。例如,当需要计算DJNZ指令完成所需要的时间时,首先必须要知道晶振的频率,设所用晶振为12MHz,则一个机器周期就是1us。而DJNZ指令是双周期指令,所以执行一次要2us。如果该指令需要执行500次,正好1000us,也就是1ms。
机器周期不仅对于指令执打有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一个单片机选择了12MHz晶振,那么当定时器的数值加1时,实际经过的时间就是1us,这就是单片机的定时原理。
③ 51单片机12M晶振延迟1us代码解析
12MHz频率,延迟1us,是不可能的。
就是调用函数、什么也不干、马上就返回,也不止 4us。
④ 单片机晶振为11.0592MHz,请设计电路并编写程序!
#include<reg51.h>
sbit led=P0^0;
bit flag
void delay(int a)
{
char i;
while(a--)for(i=0;i<110;i++);
}
void t0isr() interrupt 1
{
flag=1;
}
main()
{
char i;
TMOD=0x06;
TH0=251;
TL0=251;
TR0=1;
ET0=1;
EA=1;
flag=0;
while(flag==0);
for(i=0;i<5;i++)
{
led=0;
delay(3000);
led=1;
delay(1000);
}
}
⑤ 单片机晶振程序怎么找
1、首先在电脑上打开proteus软件,等待软件加载完成。
2、然后在出现的界面中,点击图中箭头所指的“P”字图标。
3、然后在出现的搜索窗口中,将晶振的英文“CRYSTAL”输入到keywords的编辑栏中,接着就会出现搜索结果。
4、然后在软件主界面放置两个晶振,
5、然后直接双击晶振元件,即可在出现的窗口中将频率值设置为4M或6M。
6、完成以上设置后,即可在proteus中找到晶振并设置其频率。
⑥ 单片机中时钟、晶振分别是起什么作用的
晶振用来提供时钟频率,时钟频率决定了单片机执行的快慢。没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。
单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us, 它的一个机器周期是12X (1/12)us,也就是1us。
(6)晶振在单片机中的代码扩展阅读
每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
⑦ 单片机编程:假设晶振频率为11.0592Mhz,试编写一程序,在P1.7引脚输出周期为2s的方波
精确定时,只要你的晶振够准确零误差
(256-56)×144×32=921600=11059200÷12
汇编:
CNT0EQU20H
CNT1EQU21H
ORG0000H
AJMPMAIN
ORG000BH
DJNZCNT0,ENDT0
MOVCNT0,#144
DJNZCNT1,ENDT0
MOVCNT1,#32
CPLP1.7
ENDT0:RETI
MAIN:
MOVTMOD,#02H
MOVTH0,#56
MOVTL0,#56
SETBET0
SETBEA
SETBTR0
SLEEP:
MOVPCON,#01
NOP
SJMPSLEEP
END
用C语言
//f=11.0592MHz
sbitpout=P1^7;
unsignedcharcnt0=144,cnt1=32;
voidmain()
{
Init();
while(1)
{
PCON=0x01;//休眠
}
}
voidInit()
{
TMOD=0x2;//方式2:8位自装入
TH0=0x56;//基础定时
TL0=0x56;
TR0=1;
ET0=1;
EA=1;
}
voidTimeon()interrupt1//定时器
{
if(--cnt0==0)
{
cnt0=144;
if(--cnt1==0)
{
cnt1=32;
pout=~pout;
}
}
}
⑧ MCS-51单片机 问题1, 晶振的引脚是什么缩写是什么作用是什么 问
1、对于51单片机而言,晶振的引脚一般是18/19脚,缩写是XTAL1、XTAL2,作用是给单片机正常工作提供时钟信号。
2、PSEN是29脚,外部程序存储器读选通信号:在读外部ROM时【PSEN非】(即PSEN上添加上划线)低电平有效,以实现外部ROM单元的读操作。
⑨ pic12f629单片机,想选内部4M晶振,应该如何写程序
要看是用什么语言? 哪一家的编译器?
以 Microchip MPLAB IDE 自带的 MPASM 为例,请看自己电脑中的这个组语代码模板范例:
C:\Program Files\Microchip\MPASM Suite\Template\Code\12F629TEMP.ASM 第 37 行
⑩ 求单片机 12MHz晶振 的汇编曲谱代码
DAT:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H
end