打印
[51单片机]

单片机读8253当前计数值读出来为何一直是0.急求助、、、、

[复制链接]
1474|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 西城边 于 2014-8-11 09:42 编辑

程序如下:
#include <reg52.h>
#include <absacc.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
#define CT0 XBYTE[0x8000]//8254计数器地址
#define CT1 XBYTE[0x8001]
#define CT2 XBYTE[0x8002]
#define CTW XBYTE[0x8003]
//sbit test=P1^7;
//sbit rd=P3^7;
//sbit wr=P3^6;
sbit gate=P1^6;
uchar a,b,c;
uint d;
void main()
{
        gate=0;

    CTW=0x16;//计数器0,只写低字节,方式3
        CT0=255;
//        gate=0;
        CTW=0x00;
    d=a=CT0;
        c=XBYTE[0x8000];
        CTW=0x56;//计数器1,只写低字节,方式3
    CT1=10;
        b=XBYTE[0x8001];
if(P3^2==0)
{a++;}
c=XBYTE[0x8003];
while(1);
}



相关帖子

沙发
西城边|  楼主 | 2014-8-11 09:35 | 只看该作者
我用的是keil和protues联合仿真,可以控制8253产生方波,但是就是读出计数器当前值为0,这是为什么啊?急急急、、

使用特权

评论回复
板凳
西城边|  楼主 | 2014-8-11 09:36 | 只看该作者
读出指令a=CT0,结果发现a=0,即使我使gate=0,不计数,存入的计数值读出来还是0。是这个读出指令错误了吗?

使用特权

评论回复
地板
西城边|  楼主 | 2014-8-11 09:59 | 只看该作者
给跪了啊  没人用过啊?、、、、、、、、、、、、、、、求指导

使用特权

评论回复
5
西城边|  楼主 | 2014-8-11 14:14 | 只看该作者
好吧,我发现是keil和protues联调的问题,我下载到电路板上就可以读出来了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

32

帖子

0

粉丝