找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4312|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)ADC0809模數(shù)轉(zhuǎn)換實(shí)驗(yàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
修改記錄: 由LED顯示模數(shù)轉(zhuǎn)換的結(jié)果,改變成由四位數(shù)碼管顯示電壓值  
-------------------------------------------------------------------------   
* 功能描述: 采集電位器的模擬電壓值,轉(zhuǎn)換成數(shù)字量
* 通過四位共陽數(shù)碼管顯示
-------------------------------------------------------------------------
* 接線說明:數(shù)碼管段碼P10~P17--SA~SH,數(shù)碼管位選P20~P23--C0~C3
*          ADC0809:0809DB0~DB7--P00~P07 , 0809CS--P27,0809EOC--P30
*                   0809WR--P36,0809RD--P37,0809A,B,C通道選擇--GND  
*                   0809CLK--ALE(注:在核心板上),0809IN0--POT(電位器輸出)                                       
*************************************************************************/
#include<reg52.h>
#include<absacc.h>

#define uchar unsigned char
#define uint unsigned int
//char code SST516[3] _at_ 0x003b;

unsigned char code segbit[]={0xc0,0xf9,0xa4,0xb0,        // 0, 1, 2, 3
                                                                 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
unsigned char code combit[]={0xf1,0xf2,0xf4,0xf8};




#define ADC0809 XBYTE[0x7fff]    /* 定義ADC0809 端口地址 */
#define Smg_Seg P1
#define Smg_Com P2
sbit EOC=P3^0;


void TimeInitial();
void Delay(unsigned int i);


void Delay(unsigned int i)
{
  unsigned int j;
  for(;i>0;i--)
  {
  for(j=0;j<125;j++)
  {;}
  }
}


void main()
{
        uchar  temp,loopdat1;
        uint   voldata;
        uchar dispbuf[4];
        while(1)
        {
                ADC0809=0x0f;               
                do
                {;}
                while(~EOC);  //轉(zhuǎn)換是否完成               
                //delayms(1);
                temp = ADC0809; //讀出轉(zhuǎn)換結(jié)果
                voldata = temp*1.0/255*500;
                dispbuf[3] = voldata%10;
                dispbuf[2] = voldata/10%10;
                dispbuf[1] = voldata/100%10;
                dispbuf[0] = voldata/1000;
                for(loopdat1=0;loopdat1<4;loopdat1++)
                {
                       
                        Smg_Seg = segbit[dispbuf[loopdat1]];
                        if( loopdat1 == 1 )
                        {
                                Smg_Seg &= 0x7f;
                        }
                        Smg_Com = combit[loopdat1];
                        Delay(4);
                        Smg_Com = 0xf0;
                }
        }
}

仿真.jpg (229.79 KB, 下載次數(shù): 130)

仿真.jpg

ADC0809模數(shù)轉(zhuǎn)換實(shí)驗(yàn).zip

89.79 KB, 下載次數(shù): 32, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:797146 發(fā)表于 2020-7-10 14:06 | 只看該作者
我想請(qǐng)教一下,我用ADC0809采集交流信號(hào)并用DAC0832還原交流信號(hào),但是只能還原10HZ之下的,需要怎么改進(jìn)呢
回復(fù)

使用道具 舉報(bào)

板凳
ID:611568 發(fā)表于 2020-8-5 19:25 | 只看該作者
學(xué)習(xí)一下,糾結(jié)好久了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表