资源简介

使用C语言编写利用AT89C52单片机和ADC0809芯片实现的AD模数转换实验,内含proteus仿真和keil4的项目,供学习实验参考

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include

//0809地址锁存
sbit ADDC=P1^6;
sbit ADDB=P1^5;
sbit ADDA=P1^4;

sbit CLK=P1^3; //clock
sbit ST=P1^2; //start (转换启动信号)
sbit EOC=P1^1; //end of conversion (转换结束信号)
sbit OE=P1^0; //output enable (输出允许信号用于)

//0~9
unsigned char code SEG7[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x00};

/*
* 延时
*  
* @param x 时间(不精确)
* @return
*/
void delay_ms(int i)
{
int j=0;
while(i--)
{
for(j=0;j<120;j++);
}
}

/*
* 显示函数

* @param ADx AD转换过后的八位数值
* @return
*/
void display(unsigned char ADx)
{
int AD = ADx*500.0/255.0;
P2=0xFD; P0=SEG7[AD/100]; delay_ms(5);//1111_1101 -> P2^1 
P2=0xFB; P0=SEG7[(AD/10)%10]; delay_ms(5);//1111_1011 -> P2^2
P2=0xF7; P0=SEG7[AD%10]; delay_ms(5);//1111_0111 -> P2^3
}

/*
* 初始化
*
* @return
*/
void init()
{
// ABC=110选择第三通道
ADDC=0;
ADDB=1;
ADDA=1;

CLK=0;
ST=1; //内部寄存器清零
EOC=1; // 转换结束(未开始)
OE=0; 
}

/*
* 中断
*
* @return
*/
void t0() interrupt 1
{
CLK=!CLK;
}

//主函数
void main()
{
init();

//TMOD定时器
TMOD=0x02; //0000_0010 8位 0~255
TH0=200; 
TL0=200; 
EA=1;  // 总中断开关置高
ET0=1;  // T0定时器总中断开关置高
TR0=1;  // 启动T0的开定时器位置高

while(1)
{
ST=0;_nop_();ST=1;_nop_();ST=0;
while(EOC==0);
OE=1;
display(P3);
OE=0;
}

}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-05-30 15:44  AD模数转换实验0809\keil4工程\
     文件        8365  2020-05-24 10:54  AD模数转换实验0809\keil4工程\ADC0809P
     文件        3002  2020-05-24 10:54  AD模数转换实验0809\keil4工程\ADC0809P.hex
     文件          46  2020-05-24 10:54  AD模数转换实验0809\keil4工程\ADC0809P.lnp
     文件        8760  2020-05-24 10:54  AD模数转换实验0809\keil4工程\ADC0809P.M51
     文件         184  2020-05-30 15:44  AD模数转换实验0809\keil4工程\ADC0809P.plg
     文件       55656  2020-05-30 15:44  AD模数转换实验0809\keil4工程\ADC0809P.uvopt
     文件       13402  2020-05-24 01:41  AD模数转换实验0809\keil4工程\ADC0809P.uvproj
     文件       55650  2020-05-24 12:48  AD模数转换实验0809\keil4工程\ADC0809P_uvopt.bak
     文件       13767  2020-05-24 01:19  AD模数转换实验0809\keil4工程\ADC0809P_uvproj.bak
     文件        1482  2020-05-24 10:54  AD模数转换实验0809\keil4工程\mainX.c
     文件        4043  2020-05-24 10:54  AD模数转换实验0809\keil4工程\mainX.LST
     文件        7166  2020-05-24 10:54  AD模数转换实验0809\keil4工程\mainX.OBJ
     文件        6376  2020-05-24 01:19  AD模数转换实验0809\keil4工程\STARTUP.A51
     文件       14061  2020-05-24 10:54  AD模数转换实验0809\keil4工程\STARTUP.LST
     文件         749  2020-05-24 10:54  AD模数转换实验0809\keil4工程\STARTUP.OBJ
     目录           0  2020-05-30 15:43  AD模数转换实验0809\proteus仿真\
     目录           0  2020-05-30 15:41  AD模数转换实验0809\proteus仿真\proteus2\
     文件        3002  2020-05-24 10:54  AD模数转换实验0809\proteus仿真\proteus2\ADC0809P.hex
     文件       19632  2020-05-30 15:41  AD模数转换实验0809\proteus仿真\proteus2\ADC0809模数转换与显示.pdsprj
     文件        2199  2020-05-30 15:41  AD模数转换实验0809\proteus仿真\proteus2\ADC0809模数转换与显示.pdsprj.DESKTOP-OC16VVM.hope and freedom.workspace
     文件       19641  2020-05-24 11:08  AD模数转换实验0809\proteus仿真\proteus2\Backup Of ADC0809模数转换与显示.pdsbak
     文件       19658  2020-05-24 11:49  AD模数转换实验0809\proteus仿真\proteus2\Last Loaded ADC0809模数转换与显示.pdsbak

评论

共有 条评论