1. 單片機的外部頻率
單片機外部晶振頻率指的是單片機外接晶體振盪器的固有頻率。外部時鍾頻率則指的是單片機外接的時鍾電路中晶體振盪器的固有頻率。在單片機系統中這是兩個分離的振盪源。
2. 89C51單片機的外接晶振頻率為6MHz,試計算狀態周期,振盪周期,機器周期
狀態周期=1/3us
振盪周期=1/6us
機器周期=2us
INC DPTR指令周期=4us
3. 單片機的晶振頻率為6MHz,定時50ms,則初值怎麼設置,應工作在哪種方式
51單片機,晶振頻率為6MHz時,一個計時脈沖是2us,定時50ms,設置工作方式1即16位模式,最大計數值65536,50ms是25000個脈沖,初值是65536-25000=40536,其中高8位是(65536-25000)/256,低8位是(65536-25000)%256。
4. 已知單片機系統晶振頻率為6mhz,若要求定時值為10ms時,定時器T0工作方
晶振頻率為6M,則機器周期為2us,定時10ms,溢出值為5000,TMOD可以設置為方式0或者1,一般設置為1,初始設置如下:
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
5. MCS-51單片機外接晶振頻率6MZH時,它的雙周期指令的指令周期是多少
振盪周期:
振盪周期是指為單片機提供定時信號的振盪源的周期,也稱為節拍(用P表示)。
時鍾周期:
時鍾周期又稱狀態周期或S周期。時鍾周期是振盪周期的兩倍,時鍾周期被分成兩個節拍,即P1節拍和P2節拍。在每個周期的前半周期,P1信號有效,這是通常完成算數邏輯操作;在每個時鍾的後半期,P2信號有效,內部寄存器與寄存器間的傳輸一般在次狀態發生。
機器周期:
一個機器周期由6個狀態(S1、S2、S3.....S6)組成,即6個時鍾周期,12個振盪周期。可依次表示為S1P1、S2P2、....S6P2共12個節拍,每個節拍持續一個振盪周期,每個狀態持續兩個振盪周期。可以用機器周期把一條指令劃分成若干個階段,每個機器周期完成某些規定操作。
指令周期:
指令周期是指執行一條指令所佔用的全部時間,一個指令周期通常含有1~4個機器周期(依指令類型而定)。
顯然,當震盪頻率為12MHz時,一個機器周期為1us;當振盪頻率為6MHz時,一個機器周期為2us。
具體各指令周期時間見下圖:
6. 設單片機的晶振頻率為6MHz,編程用定時器T0,在P1.0產生一個50Hz的方波。
f=50Hz,T=0.02s=20ms,所以每10ms中斷一次,P1.0取反若選用工作方式1,則計數初值為EC78H ORG 0000H
LJMP START
ORG 000BH
LJMP Timer0Interrupt;定時器中斷START:
MOV SP,#60H SETB P1.0
LCALL InitTimer0LOOP: NOP
;這可以加另外的代碼 LJMP LOOPInitTimer0://定時器初始化
MOV TMOD,#01H
MOV TH0,#0ECH
MOV TL0,#78H
SETB EA
SETB ET0
SETB TR0
RETTimer0Interrupt:
PUSH DPH
PUSH DPL
PUSH ACC
MOV TH0,#0ECH
MOV TL0,#78H
CPL P1.0;輸出方波
POP ACC
POP DPL
POP DPH
RETIEND
7. 單片機晶振頻率時多少
晶振頻率倒是范圍挺大 一般6或者12MHz吧 我用8051的是11.0592MHz的
8. 使用51單片機,晶振頻率為6MHz,使用定時器0,以 方式2,在P1.0輸出周期400us, 占空
#include<reg52.h>
sbit P1_1=P1^0;//PWM輸出
unsigned int num;//定時器計時標志位,一次40us
/*********************************************************
主函數
**********************************************************/
void main()
{
TMOD=0x02; //設置定時器0工作方式2 (00000010)
TH0=256-20;//40us@6MHz 方式2為八位初值自動裝載
TL0=256-20;
EA=1;//開總中斷
ET0=1;//開定時器0中斷
TR0=1;//啟動定時器0
// num = 0;//定時器計時標志位,一次40us
while(1);//等待
}
/********************************************************
中斷函數
********************************************************/
void time0() interrupt 1
{
// TL0 = (65536-50) % 256;
// TH0 = (65536-50) / 256; //50us @12MHz
num++;
if(num>=10)num=0;//PWM周期為 40*10=400us
if(num<1)P1_1=0xff;
else P1_1=0x00;
}
周期為:400us,40us產生一次中斷,所以占空比為1:9 。占空比為1:10則產生的波形不準確。