找回密码
 立即注册

QQ登录

只需一步,快速开始

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

AT89C51与8253A计数器连接,不知问题出在哪?

[复制链接]
跳转到指定楼层
楼主
上面那个8253A的3个计数器全用,下面的那个8253只用计数器0。每个计数器的gate脚通过脉冲信号选中,就会对时钟脉冲进行计数。仿真使用虚拟串口通信时,串口助手得到的数据不变是怎么回事,这是做实验要用的一个电路,纠结老长时间了,实在不知道错在哪,编译没错,求高手指导8253的使用或者给出以前做过的项目的例子,小弟在此谢过!程序如下:
#include<reg51.h>
#include<ctype.h>
#include<intrins.h>
#include<stdio.h>
#include<string.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int       
uint dat,dat1,data1,data2,data3,data4;
sbit P32=P3^2 ;

void Init_com()
{       
    TMOD=0x21;    //设定计数器1为模式2,定时器T0工作模式1
    SCON=0x50;
        PCON=0x80;        //波特率加倍
        TH1=0xE8;
        TL1=0xE8;   //设定波特率为4800,定时器T1自动重新装载定时初值
        TR1=1;       //启动计数器
        ES=0;
    TH0=47104/256;
    TL0=47104%256;
    EA=1;
    ET0=1;
    TR0=1;        //上面是定时器T0的初始化程序
}


void send(dat)
{

    SBUF=dat/256;
    while(!TI);
    TI=0; //RI 清零。
        SBUF=dat;
    while(!TI);
    TI=0; //RI 清零。
}



void main()
{
    P32=0;
    XBYTE[0x7FFF]=0x32;             //对计数器1写入控制字并赋初值
    XBYTE[0x7FFC]=65535;
    XBYTE[0x7FFF]=0x72;             //对计数器2写入控制字并赋初值
    XBYTE[0x7FFD]=65535;
    XBYTE[0x7FFF]=0xB2;             //对计数器3写入控制字并赋初值
        XBYTE[0x7FFE]=65535;
    XBYTE[0xBFF7]=0x32;             //对计数器4写入控制字并赋初值
    XBYTE[0xBFF3]=65535;
        P32=1;
    Init_com();              //串口初始化

    while(1)
    {}

}

void timer0() interrupt 1
{
     P32=0;                                      //输出信号控制晶体管的开断,实现对各计数器的复位      
     data1=65535-XBYTE[0x7FFC];
     data2=65535-XBYTE[0x7FFD];
     data3=65535-XBYTE[0x7FFE];
     data4=65535-XBYTE[0xBFF3];                        //XBYTE[0xAFF3]

     send(data1);                          //发送计数数据
         send(data2);
         send(data3);
         send(data4);
         TH0=55536/256;
     TL0= 55536%256;
     P32=1;                         //开通各计数器                          

}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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