标题: 利用51单片机和8253芯片生成方波程序 [打印本页]

作者: 小小磊    时间: 2017-4-21 14:45
标题: 利用51单片机和8253芯片生成方波程序
#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;   //反转电平,产生方波
}
作者: 忒帅的锅    时间: 2020-3-31 21:11
你这个程序不行吧,我的OUT0无法显示




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1