單片機(jī)采用 12MHz 晶振,利用定時(shí)器 0 中斷定時(shí),產(chǎn)生頻率為 10Hz,
- 教育綜合
- 2024-05-03 17:44:32
單片機(jī)晶振頻率為12MHZ利用T0定時(shí)器產(chǎn)生10ms定時(shí)中斷采取哪一種工作方式比較適合
工作方式一就行。工作方式二也行。 工作方式一,程序如下, void Init_Timer() { TMOD=0x01; TH0=(-10000)/256; TL0=(-10000)%256; ET0=1; TR0=1; EA=1; } void Timer0() interrupt 1 { //在這里寫你的中斷代碼 TH0=(-10000)/256; TL0=(-10000)%256; } 工作方式二,程序如下: void Init_Timer() { TMOD=0x02; TH0=(-250); TL0=(-250); ET0=1; TR0=1; EA=1; } void Timer0()單片機(jī)系統(tǒng)晶振頻率為12mhz,利用工作方式1定時(shí)器0.中斷方式在p2.0輸出頻率為10hz
根據(jù)50ms換算出計(jì)數(shù)初值,你的晶振是12mhz,那么計(jì)數(shù)周期就是1微秒,下面計(jì)算計(jì)數(shù)初值: 公司為TH0=(65536-50000)/256, TL0=(65536-50000)%256,然后啟動(dòng)定時(shí)器就行了,如果你看了中斷還要在中斷里面重新載入初值,你也可以用查詢法,不斷詢問定時(shí)器0的中斷溢出標(biāo)志,定時(shí)時(shí)間到也別忘了重新賦值單片機(jī)的晶振頻率為12MHz,從P1.0輸出頻率為10KHz的方波,使用定時(shí)計(jì)數(shù)器0,工作于方式2, 用匯編寫出程序
ORG0000H
LJMPMAIN
ORG000BH
LJMPT0ISR
ORG0030H
MAIN:
MOVTMOD,#02H
MOVTH0,#206
MOVTL0,#206
SETBTR0
SETBET0
SETBEA
SJMP$
T0ISR:
CPLP1.0
RETI
END
單片機(jī)晶振頻率為12MHZ,要求定時(shí)器/計(jì)數(shù)器0產(chǎn)生10ms定時(shí),試編寫初始化程序
#include
voidmain()
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
}
.已知51單片機(jī)系統(tǒng)晶振頻率為12MHz,請利用定時(shí)器1工作方式1,中斷方式在P2.3輸出頻率為10Hz的方波,寫出
ORG0000H
SJMPSTART
ORG001BH;T1中斷入口。
SJMPT1_INT
MOVTMOD,#10H;設(shè)置T1定時(shí)方式1
MOVTH1,#(65536-50000)/256;送入初始值。
MOVTL1,#(65536-50000)MOD256;定時(shí)50000us@12MHz
MOVIE,#10001000B;開放總中斷和T1中斷。
SETBTR1;啟動(dòng)T1
MOVTH1,#(65536-50000)/256;重新送入初始值。
MOVTL1,#(65536-50000)MOD256;定時(shí)50000us@12MHz
RETI;中斷返回
END;完
功能特性
1,可以仿真63K程序空間,接近64K的16位地址空間;
2,可以仿真64Kxdata空間,全部64K的16位地址空間;
3,可以真實(shí)仿真全部32條IO腳;
4,完全兼容keilC51UV2調(diào)試環(huán)境,可以通過UV2環(huán)境進(jìn)行單步,斷點(diǎn),全速等操作;
5,可以使用C51語言或者ASM匯編語言進(jìn)行調(diào)試;
6,可以非常方便地進(jìn)行所有變量觀察,包括鼠標(biāo)取值觀察,即鼠標(biāo)放在某變量上就會(huì)立即顯示出它此的值;
以上內(nèi)容參考:百度百科-51單片機(jī)
展開全文閱讀
上一篇
楷書四大家是哪幾位?
下一篇
返回列表