|
#include<reg51.h> //定義51寄存器的頭文件
#include<absacc.h> //定義存儲(chǔ)器形式的頭文件
#define CH0 XBYTE[0xFCFF] //通道0地址 P2.1接A1,P2.0接A0
#define CH1 XBYTE[0xFDFF] //通道1地址
#define CON XBYTE[0xFFFF] //控制口地址
sbit PWM = P1^0; //P1.0口產(chǎn)生8253輸入時(shí)鐘
void main(void)
{
TMOD=0x01; //工作方式寄存器,低四位控制T0定時(shí)器 ,工作模式:GATE=0,定時(shí)器模式,方式1
TH0=0xFE; //定時(shí)500us,設(shè)置計(jì)數(shù)初始值,高八位254;
TL0=0x0C; //低八位12,65036~65536產(chǎn)生500個(gè)脈沖,定時(shí)500us
EA=1; //開總中斷
ET0=1; //開定時(shí)器T0中斷
TR0 = 1; //啟動(dòng)定時(shí)器T0
CON=0x16; //寫通道0控制字,只讀低字節(jié),方式3,BCD計(jì)數(shù)
CH0=50; //寫計(jì)數(shù)初值,CH0=50;
CON=0x56; //寫通道1控制字,只讀低字節(jié),方式3,BCD計(jì)數(shù)
CH1=20; //寫計(jì)數(shù)初值,CH1=20;
while(1);
}
void Timer0_Int_Routine(void) interrupt 1 using 1 //中斷服務(wù)子程序
{
TH0 = 0xFE; //500us,數(shù)據(jù)重載
TL0 = 0x0C; //低八位12,65036~65536產(chǎn)生500個(gè)脈沖,定時(shí)500us
PWM = ~PWM; //反轉(zhuǎn)電平,產(chǎn)生方波
} |
|