?? 波形產生3(雙定時雙輸出).c
字號:
//*******************************************************************//
//用定時計數器0 工作在方式1 在P1.0引腳上輸出一個高電平為86ms低電平為//
//138ms的脈沖波形(即周期為224ms),在P2.0引腳上輸出一個低電平為600us高電平為//
//800us的脈沖波形(即周期為1400us),單片機采用12M晶體 //
//*******************************************************************//
#include <at89x52.h>
unsigned int data i=0;k=0;
void Timer0Interrupt( void ) interrupt 1
{
i++;
if(i==860){P1_0=0;}
if(i==2240){P1_0=1;i=0;} //改變i(860,2240)調占空比
}
void Timer1Interrupt( void ) interrupt 3
{
k++;
if(k==6){P2_0=1;}
if(k==14){P2_0=0;k=0;} //改變k(6,14)調占空比
}
void Timer01Init( void )
{ TMOD=0x22; //初始化,定時器T0T1,工作方式2 與INT0\NT1無關 定時器模式
P1_0=0;
TL0 = -200; //定時100us時標, 單片機采用24M晶體
TH0=-200;
TL1 = -200; //定時100us時標, 單片機采用24M晶體
TH1=-200;
TCON =0x50; //允許T0開始計數
IE=0x8a; //允許T0\T1中斷
//IP=0X80;
}
void main( void )
{
P1_0=1;
P2_0=0;
Timer01Init(); //time0time1初始化
while(1);
} ////等待硬件定時 到 并輸出波形
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -