标题:
ADC0808模数转换显示 单片机程序
[打印本页]
作者:
dazhige
时间:
2019-4-17 09:12
标题:
ADC0808模数转换显示 单片机程序
新人咋到,贡献一个
ADC模数转换显示.rar
(24.38 KB, 下载次数: 52)
2019-4-17 09:11 上传
点击文件名下载附件
下载积分: 黑币 -5
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit ST= P1^3; //启动信号
sbit EOC=P1^4; //转换结束信号
sbit OE= P1^5; //输出使能
sbit CLK=P1^6; //时钟信号
//0~9字型码
uchar code seg_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/**************************************************
函数功能:软件延时
入口参数:类型uint x为1ms的倍数
出口参数:无
****************************************************/
void delay(uint x)
{
uchar i;
while(x--)
for(i=0;i<115;i++); //1ms
}
/**************************************************
函数功能:数码管显示
入口参数:seg_data[]为0~9字型码
出口参数:uint x 要显示的数字
****************************************************/
void display(uint x)
{
uchar i,disp[3];
disp[0]=seg_data[x/100]; //百位
disp[1]=seg_data[(x%100)/10]; //十位
disp[2]=seg_data[x%10]; //个位
for(i=0;i<3;i++)
{
P0=disp[i]; //数码管段码
P2=~(1<<i); //数码管位码移位,片选
delay(20); //延时2ms
P2=0xff; //关闭数码管显示
}
}
main()
{
TMOD=0x02; //T0工作模式2
TH0=0x14;
TL0=0x14;
ET0=1;
EA=1;
TR0=1;
P1=0; //选择ADC0808的通道0
while(1){
ST=0;
EOC=1; //高电平有效
OE=0;
ST=1; //上升沿清零、锁存地址
ST=0; //下降沿开始A/D转换
while(EOC==1); //等待转换完成
OE=1; //输出允许信号
display(P3); //显示转换的数据
}
}
/**************************************************
T0定时器中断给ADC0808提供时钟信号
****************************************************/
void Timer0_INT() interrupt 1
{
CLK=~CLK;
}
复制代码
作者:
admin
时间:
2019-4-17 14:28
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
作者:
dazhige
时间:
2022-2-7 18:53
程序注释都在源码中,都很清楚了
ADC.jpg
(90.47 KB, 下载次数: 134)
下载附件
2022-2-7 18:52 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1