① 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