打印

关于AD转换的一些问题

[复制链接]
1620|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Program1|  楼主 | 2009-5-23 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近用ADC0808编写的一个小程序,但还有一些问题不懂,请各位前辈指教。
1.在网上看到单片机ALE端口输出频率为内部频率的六分之一,但用在protues里面用示波器仿真,怎么看不出有方波。
2.D触发器分频的原理是什么?
3.在仿真过程中,改变定时器时间长短(输出频率的大小,我是用定时器中断模拟ADC0808所要求的频率),但数码管显示的各位和十位会出现颠倒
例如:将 TH0=(65536-2)/256;
    TL0=(65536-2)%256;
     改为:
         TH0=(65536-4000)/256;
    TL0=(65536-4000)%256;


程序:
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned char
uchar data1,nums,numg;
uchar shiwei[6]={0x40,0x79,0x24,0x30,0x19,0x12};
uchar gewei[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};


sbit CLK=P1^0;
sbit ST=P1^1;
sbit OE=P1^2;
sbit EOC=P1^3;
sbit SHI=P1^4;
sbit GE=P1^5;

void main()
{
    TMOD=0x01;    
    TH0=(65536-2)/256;
    TL0=(65536-2)%256;
    TR0=1;
    ET0=1;
    EA=1;
    while(1)
    {
        ST=0;
        ST=1;
        ST=0;
        while(EOC==0);
        OE=1;
        data1=~P3;
        OE=0;
        nums=data1/51;
        SHI=1;
        P2=shiwei[nums];
        SHI=0;
        data1=data1%51;
        numg=data1/5;
        GE=1;
        P2=gewei[numg];
        GE=0; 

    }
    
}
void t0(void) interrupt 1 
{
    TH0=(65536-2)/256;
    TL0=(65536-2)%256;
    CLK=!CLK;
}


相关链接:https://bbs.21ic.com/upfiles/img/20095/200952314535335.rar

相关帖子

沙发
leiyun121| | 2009-5-23 19:31 | 只看该作者

哈哈,有些设置问题,我也遇到过

把smiulate program fetches   no 的选项改为 yes
ale就有方波输出了

使用特权

评论回复
板凳
leiyun121| | 2009-5-23 19:31 | 只看该作者

哈哈,有些设置问题,我也遇到过

把smiulate program fetches   no 的选项改为 yes
ale就有方波输出了

使用特权

评论回复
地板
Program1|  楼主 | 2009-5-24 12:09 | 只看该作者

谢谢~!

呵呵,谢谢leiyun121~!

使用特权

评论回复
5
Program1|  楼主 | 2009-5-24 12:15 | 只看该作者

D触发器的原理也明白了!

来一个时钟脉冲,D端数据就被送到输出端Q,同时输出一个反向数据到Q非端
下一个时钟脉冲到,重复上面过程,但数据己被取反
由此每二个时钟脉,Q端数被取反一次,得到时钟的二分频

使用特权

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

本版积分规则

2

主题

6

帖子

0

粉丝