找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4814|回复: 1
打印 上一主题 下一主题
收起左侧

利用51单片机和8253芯片生成方波程序

[复制链接]
跳转到指定楼层
楼主
ID:192035 发表于 2017-4-21 14:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;   //反转电平,产生方波
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:707184 发表于 2020-3-31 21:11 | 只看该作者
你这个程序不行吧,我的OUT0无法显示
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表