#include<reg51.h> //定义51寄存器的头文件
#include<absacc.h> //定义存储器形式的头文件
#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口产生8253输入时钟
void main(void)
{
TMOD=0x01; //工作方式寄存器,低四位控制T0定时器 ,工作模式:GATE=0,定时器模式,方式1
TH0=0xFE; //定时500us,设置计数初始值,高八位254;
TL0=0x0C; //低八位12,65036~65536产生500个脉冲,定时500us
EA=1; //开总中断
ET0=1; //开定时器T0中断
TR0 = 1; //启动定时器T0
CON=0x16; //写通道0控制字,只读低字节,方式3,BCD计数
CH0=50; //写计数初值,CH0=50;
CON=0x56; //写通道1控制字,只读低字节,方式3,BCD计数
CH1=20; //写计数初值,CH1=20;
while(1);
}
void Timer0_Int_Routine(void) interrupt 1 using 1 //中断服务子程序
{
TH0 = 0xFE; //500us,数据重载
TL0 = 0x0C; //低八位12,65036~65536产生500个脉冲,定时500us
PWM = ~PWM; //反转电平,产生方波
} |