51單片機(jī) C 語言編程:單片機(jī)定時(shí)中斷
要求:P1.0輸出周期為2ms的方波,P1.1輸出5ms的方波,占空比都為1:1.(高低電平一樣的)。
晶振頻率為24MHz。(使用T0和T1兩個(gè)定時(shí)計(jì)數(shù)器)匯編或C都行。
編程如下:
//================================================
#include
#define uchar unsigned char
#define uint unsigned int
void init();
sbit P10 = P1^0;
sbit P11 = P1^1;
//----------------------------
main()
{
init();
while(1) { }
}
//----------------------------
void init()
{
TMOD = 0x11;
TH0 = (65536 - 2000) / 256; //1ms@24MHz
TL0 = (65536 - 2000) % 256;
TR0 = 1;
TH1 = (65536 - 5000) / 256; //2.5ms@24MHz
TL1 = (65536 - 5000) % 256;
TR1 = 1;
ET0 = 1;
ET1 = 1;
EA = 1;
}
//----------------------------
void timer0() interrupt 1
{
TH0 = (65536 - 2000) / 256; //1ms@24MHz
TL0 = (65536 - 2000) % 256;
P10 = ~P10;
}
//----------------------------
void timer1() interrupt 3
{
TH1 = (65536 - 5000) / 256; //2.5ms@24MHz
TL1 = (65536 - 5000) % 256;
P11 = ~P11;
}
//================================================