标题:
ADC0808 A/D转换之电压表显示的单片机源码+proteus仿真
[打印本页]
作者:
littlesan
时间:
2018-6-20 15:47
标题:
ADC0808 A/D转换之电压表显示的单片机源码+proteus仿真
如题,A/D转换基础教程
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(18.45 KB, 下载次数: 47)
下载附件
2018-6-20 18:07 上传
0.png
(10.26 KB, 下载次数: 43)
下载附件
2018-6-20 18:08 上传
单片机源程序如下:
#include<reg51.h>
#include<absacc.h>
#define AD_IN0 XBYTE[0x7fff]//IN0通道访问地址
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char count=0;//字模
unsigned int t=0;//中间值
sbit ad_busy=P2^6;//A/D转换结束标志定义
sbit o_e=P2^7; //锁存控制口
sbit s_t=P2^5; //开始信号
sbit p3_0=P3^0; //时钟端
sbit p2_0=P2^0; //选通端
sbit p2_1=P2^1;
sbit p2_2=P2^2;
sbit p2_3=P2^3;
void delay(unsigned int time){
unsigned int j=0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
int0_srv() interrupt 1{
p3_0=!p3_0;}
void main(){
TMOD=0X02;//设置T0定时方式2
TH0=TL0=256-100;//计算初值
ET0=1;//开中断
EA=1;
TR0=1;//启动T0
p3_0=0;
while(1){
AD_IN0=0;//启动A/D转换
s_t=0;//信号复原
while(ad_busy==0);//等待A/D转换结束
o_e=1;//准备读数
P1=AD_IN0;//转换数据显示
count=P1;
t=count*19.61;
p2_3=0; //分时显示
P0=table[t%10];
delay(10);
p2_3=1;
p2_2=0;
P0=table[t/10%10];
delay(10);
p2_2=1;
p2_1=0;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
实验7.rar
(36.59 KB, 下载次数: 102)
2018-6-20 15:47 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
kaikaikai
时间:
2020-4-22 16:37
楼主 你的proteus源文件打不开 后缀名都不一样
作者:
kaikaikai
时间:
2020-4-23 23:47
楼主你好,我想请教下你的代码53-10行是什么原理 能回答下我吗 谢谢!!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1